loqui-0.5.5/0000775000175000017500000000000012121622467007660 500000000000000loqui-0.5.5/autogen.sh0000775000175000017500000000075012121600532011570 00000000000000#!/bin/sh M4_MAKEFILE_AM_FILES="libloqui/protocols/jabber/Makefile.am libloqui/Makefile.am src/Makefile.am" set -e # pushd test # ./update-makefile.sh # popd rm -f ChangeLog if type gob2 >/dev/null 2>&1; then : else echo gob2 is not installed. exit 1 fi aclocal -I m4 glib-gettextize --force --copy libtoolize --force --copy autoheader for i in $M4_MAKEFILE_AM_FILES; do m4 -I. "$i.m4" > "$i" done automake --add-missing --foreign --copy autoconf ./configure "$@" loqui-0.5.5/loqui.desktop0000664000175000017500000000026712121600532012316 00000000000000[Desktop Entry] Name=Loqui Name[ja]=Loqui Comment=IRC client Comment[ja]=IRCクライアント Exec=loqui Icon=loqui Terminal=false Type=Application Categories=GTK;Network;IRCClient; loqui-0.5.5/ltmain.sh0000644000175000017500000105204012121622347011415 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 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. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [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 # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # 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. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1ubuntu1" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # 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='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # 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= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_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 $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # 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. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # 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 ;; 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 func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # 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 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) 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 "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" 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 $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE 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 func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [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: $progname [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 -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler 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: $progname [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: $progname [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: $progname [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 following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [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 -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -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 -precious-files-regex REGEX don't remove output files matching REGEX -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 -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) 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: $progname [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." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" 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 -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # 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 $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 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" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # 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. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; 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. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append 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 func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # 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" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | 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/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) 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*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; 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 "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # 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. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' 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 file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED '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 \"\$file\" | $SED '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 \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ 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 "\ # 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 "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # 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 \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${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\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \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" #define SHELL_SPACE_CHARS " \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" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_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" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append 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 func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" 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 func_append 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. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append 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 func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append 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 # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir 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 func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix 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*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # 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 func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # 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 ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" 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 func_append 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. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append 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 func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" 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. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'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\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$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 $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append 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 $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append 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 dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; 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 # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi 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%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" 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 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done 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 else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_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 fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; 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 use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac 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. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" 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. func_append dlprefiles " $lib $dependency_libs" else func_append 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 func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac 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 func_append 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*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; 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 $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append 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 "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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 use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" 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* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' 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 "$opt_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" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac 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 && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi 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 func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append 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:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; 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:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi 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 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*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append 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" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi 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 "*) ;; *) func_append 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" ;; -R*) ;; *) # 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 "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" 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 test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" 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 func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 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) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result 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 func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; 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 func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_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 | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "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 func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if 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 "*) ;; *) func_append 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 "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append 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 behavior. 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. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi 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 "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi 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 ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; 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 func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi 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 ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) 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 ;; esac ;; 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 with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; 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 # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # 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 # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append 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 func_append 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 "$opt_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 shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" 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" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # 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 func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append 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. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result 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~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "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" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi 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\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_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 "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_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 and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${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" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS 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" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append 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 "*) ;; *) func_append 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append 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 "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status 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 func_append 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 func_append 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 "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS 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" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED '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 "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "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}\" || $lt_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 func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; 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 $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "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}\" || $lt_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 func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { 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) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # 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' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # 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; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug 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) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; 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 func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append 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 func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$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 func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # 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: # vi:sw=2 loqui-0.5.5/config.guess0000755000175000017500000012743212121605222012115 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # 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, see . # # 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 (context # diff format) to and include a 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. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 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, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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 ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # 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. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; 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 ; 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 ; set_cc_for_build= ;' # 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 tuples: *-*-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 ;; sh5el) machine=sh5le-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 -q __ELF__ 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 # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # 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 ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # 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. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; 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 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; 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 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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 ;; 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 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; 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 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # 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 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; 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 && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; 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 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; 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 ;; *: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 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi 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 ;; *:AIX:*:[4567]) 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 ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 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` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 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 && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; 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 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; 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 ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; 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 i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; 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 -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; 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 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; 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 ;; 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 ;; 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 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; 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 ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. 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 ;; 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 ;; 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 i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; 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 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*: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 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*: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; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' 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; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *: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 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; 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 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *: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 ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *: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 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; 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\n"); 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 && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # 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 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; 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: loqui-0.5.5/AUTHORS0000664000175000017500000000004412121600532010633 00000000000000Yoichi Imai loqui-0.5.5/Makefile.in0000664000175000017500000006737712121622351011661 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/loqui.spec.in $(top_srcdir)/configure AUTHORS \ COPYING COPYING.LIB ChangeLog INSTALL NEWS config.guess \ config.sub depcomp install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = loqui.spec CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)" DATA = $(desktop_DATA) $(icon_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = m4 libloqui src po # test AUTOMAKE_OPTIONS = 1.5 EXTRA_DIST = autogen.sh \ AUTHORS \ README \ NEWS \ NEWS.ja \ COPYING \ COPYING.LIB \ LICENSE \ ChangeLog \ INSTALL \ loqui.spec \ loqui.spec.in \ loqui.desktop \ loqui.png \ loqui-am-macros.m4 ACLOCAL_AMFLAGS = -I m4 icon_DATA = loqui.png icondir = $(datadir)/pixmaps desktop_DATA = loqui.desktop desktopdir = $(datadir)/applications/ all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 loqui.spec: $(top_builddir)/config.status $(srcdir)/loqui.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) install-iconDATA: $(icon_DATA) @$(NORMAL_INSTALL) test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ done uninstall-iconDATA: @$(NORMAL_UNINSTALL) @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-desktopDATA install-iconDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-desktopDATA uninstall-iconDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-iconDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-desktopDATA uninstall-iconDATA ChangeLog: bzr log -v $(shell bzr info | sed -ne 's/^ *parent branch: //p') > $@ dist-spec: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz sed '/^Source:/ s/\.tar\.gz$$/\.tar\.bz2/' $(distdir)/loqui.spec > $(distdir)/loqui.spec.bzip2 mv $(distdir)/loqui.spec.bzip2 $(distdir)/loqui.spec $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/configure0000775000175000017500000223351512121622351011512 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for loqui 0.5.5. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then 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 # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='loqui' PACKAGE_TARNAME='loqui' PACKAGE_VERSION='0.5.5' PACKAGE_STRING='loqui 0.5.5' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_unique_file="src/main.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES DATADIRNAME CATOBJEXT CATALOGS XGETTEXT GMSGFMT MSGFMT_OPTS MSGFMT USE_NLS GETTEXT_PACKAGE GNET_LIBS GNET_CFLAGS GTK_LIBS GTK_CFLAGS GLIB_COMPILE_RESOURCES GLIB_MKENUMS GOBJECT_QUERY GLIB_GENMARSHAL GLIB_LIBS GLIB_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG HAVE_WINDRES_FALSE HAVE_WINDRES_TRUE WINDRES CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL LN_S CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE ac_ct_CC CFLAGS CC am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_glibtest enable_gtktest ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CC CFLAGS CPP CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures loqui 0.5.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/loqui] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of loqui 0.5.5:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-glibtest do not try to compile and run a test GLIB program --disable-gtktest do not try to compile and run a test GTK+ program Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags CPP C preprocessor CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF loqui configure 0.5.5 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by loqui $as_me 0.5.5, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` 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 || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='loqui' VERSION='0.5.5' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_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 `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_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 `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_WINDRES="windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi WINDRES=$ac_cv_prog_WINDRES if test -n "$WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 $as_echo "$WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$WINDRES" != x; then HAVE_WINDRES_TRUE= HAVE_WINDRES_FALSE='#' else HAVE_WINDRES_TRUE='#' HAVE_WINDRES_FALSE= fi # Checks for libraries. # Check whether --enable-glibtest was given. if test "${enable_glibtest+set}" = set; then : enableval=$enable_glibtest; else enable_glibtest=yes fi pkg_config_args=glib-2.0 for module in . gobject gio 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 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi no_glib="" if test "x$PKG_CONFIG" = x ; then no_glib=yes PKG_CONFIG=no fi min_glib_version=2.22.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB - version >= $min_glib_version" >&5 $as_echo_n "checking for GLIB - version >= $min_glib_version... " >&6; } 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_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` 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" rm -f conf.glibtest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { unsigned int major, minor, micro; char *tmp_version; fclose (fopen ("conf.glibtest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_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 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 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 enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_glib=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_glib" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5 $as_echo "yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } 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" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : 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" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GLIB is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GLIB_CFLAGS="" GLIB_LIBS="" GLIB_GENMARSHAL="" GOBJECT_QUERY="" GLIB_MKENUMS="" GLIB_COMPILE_RESOURCES="" as_fn_error $? "Test for GLib failed. See the 'INSTALL' for help." "$LINENO" 5 fi rm -f conf.glibtest if test "x${glib_config_major_version}" = "x2" -a "x${glib_config_minor_version}" = "x22"; then cat >>confdefs.h <<_ACEOF #define USE_GLIB_2_4 1 _ACEOF fi # Extract the first word of "glib-genmarshal", so it can be a program name with args. set dummy glib-genmarshal; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GLIB_GENMARSHAL+:} false; then : $as_echo_n "(cached) " >&6 else case $GLIB_GENMARSHAL in [\\/]* | ?:[\\/]*) ac_cv_path_GLIB_GENMARSHAL="$GLIB_GENMARSHAL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL if test -n "$GLIB_GENMARSHAL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5 $as_echo "$GLIB_GENMARSHAL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then : enableval=$enable_gtktest; else enable_gtktest=yes fi pkg_config_args=gtk+-2.0 for module in . gthread do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=2.4.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK+ - version >= $min_gtk_version" >&5 $as_echo_n "checking for GTK+ - version >= $min_gtk_version... " >&6; } 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 GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ 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" rm -f conf.gtktest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.gtktest", "w")); /* 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*** 'pkg-config --modversion gtk+-2.0' 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 pkg-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 pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } 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); } 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 pkg-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 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 enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 $as_echo "yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : 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" else 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+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" as_fn_error $? "Test for Gtk failed. See the 'INSTALL' for help." "$LINENO" 5 fi rm -f conf.gtktest # Checks for header files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in fcntl.h locale.h stdlib.h string.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if ${ac_cv_header_stat_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if defined S_ISBLK && defined S_IFDIR extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif #if defined S_ISBLK && defined S_IFCHR extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif #if defined S_ISLNK && defined S_IFREG extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif #if defined S_ISSOCK && defined S_IFREG extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stat_broken=no else ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 $as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then $as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi GETTEXT_PACKAGE="$PACKAGE" cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ALL_LINGUAS="ja" for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${am_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if ${gt_cv_func_ngettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if ${gt_cv_func_dgettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dcgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi 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 for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done 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" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF 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" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi 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 if test "x${prefix}" = "xNONE"; then cat >>confdefs.h <<_ACEOF #define PACKAGE_LOCALE_DIR "${ac_default_prefix}/${DATADIRNAME}/locale" _ACEOF else cat >>confdefs.h <<_ACEOF #define PACKAGE_LOCALE_DIR "${prefix}/${DATADIRNAME}/locale" _ACEOF fi # Checks for library functions. for ac_func in strftime do : ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRFTIME 1 _ACEOF else # strftime is in -lintl on SCO UNIX. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 $as_echo_n "checking for strftime in -lintl... " >&6; } if ${ac_cv_lib_intl_strftime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strftime (); int main () { return strftime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_strftime=yes else ac_cv_lib_intl_strftime=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 $as_echo "$ac_cv_lib_intl_strftime" >&6; } if test "x$ac_cv_lib_intl_strftime" = xyes; then : $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" fi fi done for ac_func in isascii memset mkdir setlocale strchr strpbrk strrchr strstr strtol do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done for ac_func in localtime_r do : ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r" if test "x$ac_cv_func_localtime_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALTIME_R 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile libloqui/Makefile libloqui/protocols/Makefile libloqui/protocols/jabber/Makefile src/Makefile src/icons/Makefile src/embedtxt/Makefile po/Makefile.in m4/Makefile loqui.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_WINDRES_TRUE}" && test -z "${HAVE_WINDRES_FALSE}"; then as_fn_error $? "conditional \"HAVE_WINDRES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then 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 # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by loqui $as_me 0.5.5, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ loqui config.status 0.5.5 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "libloqui/Makefile") CONFIG_FILES="$CONFIG_FILES libloqui/Makefile" ;; "libloqui/protocols/Makefile") CONFIG_FILES="$CONFIG_FILES libloqui/protocols/Makefile" ;; "libloqui/protocols/jabber/Makefile") CONFIG_FILES="$CONFIG_FILES libloqui/protocols/jabber/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/icons/Makefile") CONFIG_FILES="$CONFIG_FILES src/icons/Makefile" ;; "src/embedtxt/Makefile") CONFIG_FILES="$CONFIG_FILES src/embedtxt/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; "loqui.spec") CONFIG_FILES="$CONFIG_FILES loqui.spec" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi loqui-0.5.5/src/0000775000175000017500000000000012121622470010441 500000000000000loqui-0.5.5/src/loqui-channel-entry-action-group.h0000664000175000017500000002313112121605257017041 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_H__ #define __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include #include "loqui_channel_entry_action.h" #ifndef __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP__ #define __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP__ typedef struct _LoquiChannelEntryActionGroup LoquiChannelEntryActionGroup; #endif #include "loqui_app.h" /* * Type checking and casting macros */ #define LOQUI_TYPE_CHANNEL_ENTRY_ACTION_GROUP (loqui_channel_entry_action_group_get_type()) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_channel_entry_action_group_get_type(), LoquiChannelEntryActionGroup) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_channel_entry_action_group_get_type(), LoquiChannelEntryActionGroup const) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_channel_entry_action_group_get_type(), LoquiChannelEntryActionGroupClass) #define LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_channel_entry_action_group_get_type ()) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_channel_entry_action_group_get_type(), LoquiChannelEntryActionGroupClass) /* Private structure type */ typedef struct _LoquiChannelEntryActionGroupPrivate LoquiChannelEntryActionGroupPrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP__ #define __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP__ typedef struct _LoquiChannelEntryActionGroup LoquiChannelEntryActionGroup; #endif struct _LoquiChannelEntryActionGroup { GtkActionGroup __parent__; /*< public >*/ LoquiAccountManager * account_manager; /*< private >*/ LoquiChannelEntryActionGroupPrivate *_priv; }; /* * Class definition */ typedef struct _LoquiChannelEntryActionGroupClass LoquiChannelEntryActionGroupClass; struct _LoquiChannelEntryActionGroupClass { GtkActionGroupClass __parent__; /*signal*/void (* add_channel_entry_action) (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action); /*signal*/void (* remove_channel_entry_action) (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action); }; /* * Public methods */ GType loqui_channel_entry_action_group_get_type (void) G_GNUC_CONST; #line 54 "loqui-channel-entry-action-group.gob" LoquiChannelEntryActionGroup * loqui_channel_entry_action_group_new (LoquiApp * app, LoquiAccountManager * account_manager); #line 98 "loqui-channel-entry-action-group.h" #line 85 "loqui-channel-entry-action-group.gob" void loqui_channel_entry_action_group_add_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action); #line 102 "loqui-channel-entry-action-group.h" #line 90 "loqui-channel-entry-action-group.gob" void loqui_channel_entry_action_group_remove_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action); #line 106 "loqui-channel-entry-action-group.h" #line 168 "loqui-channel-entry-action-group.gob" gchar * loqui_channel_entry_action_group_create_channel_entry_action_name (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * chent); #line 110 "loqui-channel-entry-action-group.h" #line 173 "loqui-channel-entry-action-group.gob" gchar * loqui_channel_entry_action_group_create_placeholder_action_name (LoquiChannelEntryActionGroup * self, LoquiAccount * account); #line 114 "loqui-channel-entry-action-group.h" #line 178 "loqui-channel-entry-action-group.gob" LoquiChannelEntryAction * loqui_channel_entry_action_group_get_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * chent); #line 118 "loqui-channel-entry-action-group.h" #line 190 "loqui-channel-entry-action-group.gob" GtkAction * loqui_channel_entry_action_group_get_placeholder_action (LoquiChannelEntryActionGroup * self, LoquiAccount * account); #line 122 "loqui-channel-entry-action-group.h" /* * Signal connection wrapper macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define loqui_channel_entry_action_group_connect__add_channel_entry_action(object,func,data) g_signal_connect(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(__extension__ ({LoquiChannelEntryActionGroup *___object = (object); ___object; })),"add_channel_entry_action",(GCallback) __extension__ ({void (* ___add_channel_entry_action) (LoquiChannelEntryActionGroup * ___fake___self, LoquiChannelEntryAction * ___fake___ce_action, gpointer ___data ) = (func); ___add_channel_entry_action; }), (data)) #define loqui_channel_entry_action_group_connect_after__add_channel_entry_action(object,func,data) g_signal_connect_after(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(__extension__ ({LoquiChannelEntryActionGroup *___object = (object); ___object; })),"add_channel_entry_action",(GCallback) __extension__ ({void (* ___add_channel_entry_action) (LoquiChannelEntryActionGroup * ___fake___self, LoquiChannelEntryAction * ___fake___ce_action, gpointer ___data ) = (func); ___add_channel_entry_action; }), (data)) #define loqui_channel_entry_action_group_connect_data__add_channel_entry_action(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(__extension__ ({LoquiChannelEntryActionGroup *___object = (object); ___object; })),"add_channel_entry_action",(GCallback) __extension__ ({void (* ___add_channel_entry_action) (LoquiChannelEntryActionGroup * ___fake___self, LoquiChannelEntryAction * ___fake___ce_action, gpointer ___data ) = (func); ___add_channel_entry_action; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_channel_entry_action_group_connect__remove_channel_entry_action(object,func,data) g_signal_connect(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(__extension__ ({LoquiChannelEntryActionGroup *___object = (object); ___object; })),"remove_channel_entry_action",(GCallback) __extension__ ({void (* ___remove_channel_entry_action) (LoquiChannelEntryActionGroup * ___fake___self, LoquiChannelEntryAction * ___fake___ce_action, gpointer ___data ) = (func); ___remove_channel_entry_action; }), (data)) #define loqui_channel_entry_action_group_connect_after__remove_channel_entry_action(object,func,data) g_signal_connect_after(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(__extension__ ({LoquiChannelEntryActionGroup *___object = (object); ___object; })),"remove_channel_entry_action",(GCallback) __extension__ ({void (* ___remove_channel_entry_action) (LoquiChannelEntryActionGroup * ___fake___self, LoquiChannelEntryAction * ___fake___ce_action, gpointer ___data ) = (func); ___remove_channel_entry_action; }), (data)) #define loqui_channel_entry_action_group_connect_data__remove_channel_entry_action(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(__extension__ ({LoquiChannelEntryActionGroup *___object = (object); ___object; })),"remove_channel_entry_action",(GCallback) __extension__ ({void (* ___remove_channel_entry_action) (LoquiChannelEntryActionGroup * ___fake___self, LoquiChannelEntryAction * ___fake___ce_action, gpointer ___data ) = (func); ___remove_channel_entry_action; }), (data), (destroy_data), (GConnectFlags)(flags)) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define loqui_channel_entry_action_group_connect__add_channel_entry_action(object,func,data) g_signal_connect(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(object),"add_channel_entry_action",(GCallback)(func),(data)) #define loqui_channel_entry_action_group_connect_after__add_channel_entry_action(object,func,data) g_signal_connect_after(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(object),"add_channel_entry_action",(GCallback)(func),(data)) #define loqui_channel_entry_action_group_connect_data__add_channel_entry_action(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(object),"add_channel_entry_action",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_channel_entry_action_group_connect__remove_channel_entry_action(object,func,data) g_signal_connect(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(object),"remove_channel_entry_action",(GCallback)(func),(data)) #define loqui_channel_entry_action_group_connect_after__remove_channel_entry_action(object,func,data) g_signal_connect_after(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(object),"remove_channel_entry_action",(GCallback)(func),(data)) #define loqui_channel_entry_action_group_connect_data__remove_channel_entry_action(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_CHANNEL_ENTRY_ACTION_GROUP(object),"remove_channel_entry_action",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-account-dialog.c0000664000175000017500000010330412121605257014552 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 2 "loqui-account-dialog.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 28 "loqui-account-dialog.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include "loqui-account-dialog.h" #include "loqui-account-dialog-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 29 "loqui-account-dialog.gob" /* #include "config.h" */ #include #include "gtkutils.h" #include #include #include #include #include #include "loqui-protocol-selection-dialog.h" #include enum { CODECONV_COLUMN_TITLE, CODECONV_COLUMN_NAME, CODECONV_COLUMN_NUMBER, }; #line 69 "loqui-account-dialog.c" /* self casting macros */ #define SELF(x) LOQUI_ACCOUNT_DIALOG(x) #define SELF_CONST(x) LOQUI_ACCOUNT_DIALOG_CONST(x) #define IS_SELF(x) LOQUI_IS_ACCOUNT_DIALOG(x) #define TYPE_SELF LOQUI_TYPE_ACCOUNT_DIALOG #define SELF_CLASS(x) LOQUI_ACCOUNT_DIALOG_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_ACCOUNT_DIALOG_GET_CLASS(x) /* self typedefs */ typedef LoquiAccountDialog Self; typedef LoquiAccountDialogClass SelfClass; /* here are local prototypes */ #line 0 "loqui-account-dialog.gob" static void loqui_account_dialog_init (LoquiAccountDialog * o) G_GNUC_UNUSED; #line 86 "loqui-account-dialog.c" #line 0 "loqui-account-dialog.gob" static void loqui_account_dialog_class_init (LoquiAccountDialogClass * c) G_GNUC_UNUSED; #line 89 "loqui-account-dialog.c" #line 81 "loqui-account-dialog.gob" static void loqui_account_dialog_set_codeconv_mode (LoquiAccountDialog * self, LoquiCodeConvMode mode) G_GNUC_UNUSED; #line 92 "loqui-account-dialog.c" #line 99 "loqui-account-dialog.gob" static LoquiCodeConvMode loqui_account_dialog_get_codeconv_mode (LoquiAccountDialog * self) G_GNUC_UNUSED; #line 95 "loqui-account-dialog.c" #line 113 "loqui-account-dialog.gob" static void loqui_account_dialog_response_cb (GtkWidget * widget, gint response, gpointer data) G_GNUC_UNUSED; #line 98 "loqui-account-dialog.c" #line 128 "loqui-account-dialog.gob" static void loqui_account_dialog_radio_toggled_cb (GtkWidget * radio, LoquiAccountDialog * self) G_GNUC_UNUSED; #line 101 "loqui-account-dialog.c" #line 133 "loqui-account-dialog.gob" static void loqui_account_dialog_save_irc (LoquiAccountDialog * self, LoquiProfileAccountIRC * profile_irc) G_GNUC_UNUSED; #line 104 "loqui-account-dialog.c" #line 143 "loqui-account-dialog.gob" static void loqui_account_dialog_save_general (LoquiAccountDialog * self, LoquiProfileAccount * profile) G_GNUC_UNUSED; #line 107 "loqui-account-dialog.c" #line 172 "loqui-account-dialog.gob" static void loqui_account_dialog_save (LoquiAccountDialog * self, LoquiProfileAccount * profile) G_GNUC_UNUSED; #line 110 "loqui-account-dialog.c" #line 181 "loqui-account-dialog.gob" static void loqui_account_dialog_update_codeconv_sensitivity (LoquiAccountDialog * self) G_GNUC_UNUSED; #line 113 "loqui-account-dialog.c" #line 191 "loqui-account-dialog.gob" static void loqui_account_dialog_load_general (LoquiAccountDialog * self, LoquiProfileAccount * profile) G_GNUC_UNUSED; #line 116 "loqui-account-dialog.c" #line 241 "loqui-account-dialog.gob" static void loqui_account_dialog_load_irc (LoquiAccountDialog * self, LoquiProfileAccountIRC * profile_irc) G_GNUC_UNUSED; #line 119 "loqui-account-dialog.c" #line 253 "loqui-account-dialog.gob" static void loqui_account_dialog_load (LoquiAccountDialog * self, LoquiProfileAccount * profile) G_GNUC_UNUSED; #line 122 "loqui-account-dialog.c" #line 262 "loqui-account-dialog.gob" static void loqui_account_dialog_append_profile_page (LoquiAccountDialog * self) G_GNUC_UNUSED; #line 125 "loqui-account-dialog.c" #line 302 "loqui-account-dialog.gob" static void loqui_account_dialog_append_irc_page (LoquiAccountDialog * self) G_GNUC_UNUSED; #line 128 "loqui-account-dialog.c" #line 315 "loqui-account-dialog.gob" static void loqui_account_dialog_append_code_page (LoquiAccountDialog * self) G_GNUC_UNUSED; #line 131 "loqui-account-dialog.c" #line 383 "loqui-account-dialog.gob" static void loqui_account_dialog_append_nick_page (LoquiAccountDialog * self) G_GNUC_UNUSED; #line 134 "loqui-account-dialog.c" /* pointer to the class of our parent */ static GtkDialogClass *parent_class = NULL; /* Short form macros */ #define self_set_codeconv_mode loqui_account_dialog_set_codeconv_mode #define self_get_codeconv_mode loqui_account_dialog_get_codeconv_mode #define self_response_cb loqui_account_dialog_response_cb #define self_radio_toggled_cb loqui_account_dialog_radio_toggled_cb #define self_save_irc loqui_account_dialog_save_irc #define self_save_general loqui_account_dialog_save_general #define self_save loqui_account_dialog_save #define self_update_codeconv_sensitivity loqui_account_dialog_update_codeconv_sensitivity #define self_load_general loqui_account_dialog_load_general #define self_load_irc loqui_account_dialog_load_irc #define self_load loqui_account_dialog_load #define self_append_profile_page loqui_account_dialog_append_profile_page #define self_append_irc_page loqui_account_dialog_append_irc_page #define self_append_code_page loqui_account_dialog_append_code_page #define self_append_nick_page loqui_account_dialog_append_nick_page #define self_new loqui_account_dialog_new #define self_open_add_dialog loqui_account_dialog_open_add_dialog #define self_open_configure_dialog loqui_account_dialog_open_configure_dialog #define self_open_remove_dialog loqui_account_dialog_open_remove_dialog GType loqui_account_dialog_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiAccountDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_account_dialog_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiAccountDialog), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_account_dialog_init, NULL }; type = g_type_register_static (GTK_TYPE_DIALOG, "LoquiAccountDialog", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiAccountDialog *)g_object_new(loqui_account_dialog_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiAccountDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiAccountDialog * GET_NEW_VARG (const char *first, ...) { LoquiAccountDialog *ret; va_list ap; va_start (ap, first); ret = (LoquiAccountDialog *)g_object_new_valist (loqui_account_dialog_get_type (), first, ap); va_end (ap); return ret; } static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Account:Dialog::finalize" LoquiAccountDialog *self G_GNUC_UNUSED = LOQUI_ACCOUNT_DIALOG (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_account_dialog_init (LoquiAccountDialog * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Account:Dialog::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_ACCOUNT_DIALOG,LoquiAccountDialogPrivate); } #undef __GOB_FUNCTION__ static void loqui_account_dialog_class_init (LoquiAccountDialogClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Account:Dialog::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiAccountDialogPrivate)); parent_class = g_type_class_ref (GTK_TYPE_DIALOG); g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 81 "loqui-account-dialog.gob" static void loqui_account_dialog_set_codeconv_mode (LoquiAccountDialog * self, LoquiCodeConvMode mode) { #line 240 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::set_codeconv_mode" #line 81 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 81 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 246 "loqui-account-dialog.c" { #line 82 "loqui-account-dialog.gob" switch (mode) { case LOQUI_CODECONV_MODE_AUTOMATIC: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_automatic), TRUE); break; case LOQUI_CODECONV_MODE_NO_CONV: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_noconv), TRUE); break; case LOQUI_CODECONV_MODE_BY_TABLE: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_bytable), TRUE); break; case LOQUI_CODECONV_MODE_CODESET: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_codeset), TRUE); break; } }} #line 265 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 99 "loqui-account-dialog.gob" static LoquiCodeConvMode loqui_account_dialog_get_codeconv_mode (LoquiAccountDialog * self) { #line 272 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::get_codeconv_mode" #line 99 "loqui-account-dialog.gob" g_return_val_if_fail (self != NULL, (LoquiCodeConvMode )0); #line 99 "loqui-account-dialog.gob" g_return_val_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self), (LoquiCodeConvMode )0); #line 278 "loqui-account-dialog.c" { #line 100 "loqui-account-dialog.gob" if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_automatic))) return LOQUI_CODECONV_MODE_AUTOMATIC; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_noconv))) return LOQUI_CODECONV_MODE_NO_CONV; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_bytable))) return LOQUI_CODECONV_MODE_BY_TABLE; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_codeset))) return LOQUI_CODECONV_MODE_CODESET; return 0; }} #line 293 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 113 "loqui-account-dialog.gob" static void loqui_account_dialog_response_cb (GtkWidget * widget, gint response, gpointer data) { #line 300 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::response_cb" { #line 114 "loqui-account-dialog.gob" Self *self; self = SELF(data); switch(response) { case GTK_RESPONSE_OK: self_save(self, selfp->profile); break; default: break; } }} #line 317 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 128 "loqui-account-dialog.gob" static void loqui_account_dialog_radio_toggled_cb (GtkWidget * radio, LoquiAccountDialog * self) { #line 324 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::radio_toggled_cb" { #line 129 "loqui-account-dialog.gob" self_update_codeconv_sensitivity(self); }} #line 331 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 133 "loqui-account-dialog.gob" static void loqui_account_dialog_save_irc (LoquiAccountDialog * self, LoquiProfileAccountIRC * profile_irc) { #line 338 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::save_irc" #line 133 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 133 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 344 "loqui-account-dialog.c" { #line 134 "loqui-account-dialog.gob" g_object_set(profile_irc, "realname", gtk_entry_get_text(GTK_ENTRY(selfp->entry_realname)), "userinfo", gtk_entry_get_text(GTK_ENTRY(selfp->entry_userinfo)), "autojoin", gtk_entry_get_text(GTK_ENTRY(selfp->entry_autojoin)), "quit_message", gtk_entry_get_text(GTK_ENTRY(selfp->entry_quit_message)), NULL); }} #line 355 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 143 "loqui-account-dialog.gob" static void loqui_account_dialog_save_general (LoquiAccountDialog * self, LoquiProfileAccount * profile) { #line 362 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::save_general" #line 143 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 143 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 368 "loqui-account-dialog.c" { #line 144 "loqui-account-dialog.gob" GList *nick_list; GtkTreeIter iter; const gchar *codeconv_item_name; if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->combobox_table), &iter)) gtk_tree_model_get(selfp->model_codeconv_table, &iter, CODECONV_COLUMN_NAME, &codeconv_item_name, -1); else codeconv_item_name = NULL; g_object_set(profile, "use", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->check_use)), "name", gtk_entry_get_text(GTK_ENTRY(selfp->entry_name)), "nick", gtk_entry_get_text(GTK_ENTRY(selfp->entry_nick)), "username", gtk_entry_get_text(GTK_ENTRY(selfp->entry_username)), "password", gtk_entry_get_text(GTK_ENTRY(selfp->entry_password)), "servername", gtk_entry_get_text(GTK_ENTRY(selfp->entry_servername)), "port", (int) gtk_spin_button_get_value(GTK_SPIN_BUTTON(selfp->spin_port)), "codeconv_mode", self_get_codeconv_mode(self), "codeconv_item_name", codeconv_item_name, "codeset", gtk_entry_get_text(GTK_ENTRY(selfp->entry_codeset)), NULL); nick_list = NULL; gtkutils_set_string_list_from_textview(&nick_list, GTK_TEXT_VIEW(selfp->textview_nicklist)); loqui_profile_account_set_nick_list(selfp->profile, nick_list); }} #line 398 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 172 "loqui-account-dialog.gob" static void loqui_account_dialog_save (LoquiAccountDialog * self, LoquiProfileAccount * profile) { #line 405 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::save" #line 172 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 172 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 411 "loqui-account-dialog.c" { #line 173 "loqui-account-dialog.gob" self_save_general(self, profile); if (LOQUI_IS_PROFILE_ACCOUNT_IRC(profile)) { self_save_irc(self, LOQUI_PROFILE_ACCOUNT_IRC(profile)); } }} #line 421 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 181 "loqui-account-dialog.gob" static void loqui_account_dialog_update_codeconv_sensitivity (LoquiAccountDialog * self) { #line 428 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::update_codeconv_sensitivity" #line 181 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 181 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 434 "loqui-account-dialog.c" { #line 182 "loqui-account-dialog.gob" LoquiCodeConvMode mode; mode = self_get_codeconv_mode(self); gtk_widget_set_sensitive(selfp->entry_codeset, (mode == LOQUI_CODECONV_MODE_CODESET)); gtk_widget_set_sensitive(selfp->combobox_table, (mode == LOQUI_CODECONV_MODE_BY_TABLE)); }} #line 445 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 191 "loqui-account-dialog.gob" static void loqui_account_dialog_load_general (LoquiAccountDialog * self, LoquiProfileAccount * profile) { #line 452 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::load_general" #line 191 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 191 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 458 "loqui-account-dialog.c" { #line 192 "loqui-account-dialog.gob" const gchar *name; LoquiCodeConvTableItem *table; gint i; GtkTreeIter iter; gtk_entry_set_text(GTK_ENTRY(selfp->entry_name), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_name(profile))); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->check_use), loqui_profile_account_get_use(profile)); gtk_entry_set_text(GTK_ENTRY(selfp->entry_nick), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_nick(profile))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_username), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_username(profile))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_password), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_password(profile))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_servername), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_servername(profile))); gtk_spin_button_set_value(GTK_SPIN_BUTTON(selfp->spin_port), loqui_profile_account_get_port(profile)); table = loqui_protocol_get_codeconv_table(loqui_profile_account_get_protocol(profile)); name = loqui_profile_account_get_codeconv_item_name(profile); gtk_list_store_clear(GTK_LIST_STORE(selfp->model_codeconv_table)); for (i = 0; table[i].name != NULL; i++) { gtk_list_store_append(GTK_LIST_STORE(selfp->model_codeconv_table), &iter); gtk_list_store_set(GTK_LIST_STORE(selfp->model_codeconv_table), &iter, CODECONV_COLUMN_TITLE, loqui_codeconv_translate(table[i].title), CODECONV_COLUMN_NAME, table[i].name, -1); if (name != NULL && strcmp(table[i].name, name) == 0) { gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->combobox_table), &iter); } } self_set_codeconv_mode(self, loqui_profile_account_get_codeconv_mode(LOQUI_PROFILE_ACCOUNT(profile))); self_update_codeconv_sensitivity(self); gtk_entry_set_text(GTK_ENTRY(selfp->entry_codeset), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_codeset(LOQUI_PROFILE_ACCOUNT(profile)))); gtkutils_set_textview_from_string_list(GTK_TEXT_VIEW(selfp->textview_nicklist), loqui_profile_account_get_nick_list(profile)); }} #line 509 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 241 "loqui-account-dialog.gob" static void loqui_account_dialog_load_irc (LoquiAccountDialog * self, LoquiProfileAccountIRC * profile_irc) { #line 516 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::load_irc" #line 241 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 241 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 522 "loqui-account-dialog.c" { #line 242 "loqui-account-dialog.gob" gtk_entry_set_text(GTK_ENTRY(selfp->entry_realname), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_realname(profile_irc))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_userinfo), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_userinfo(profile_irc))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_autojoin), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_autojoin(profile_irc))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_quit_message), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_quit_message(profile_irc))); }} #line 535 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 253 "loqui-account-dialog.gob" static void loqui_account_dialog_load (LoquiAccountDialog * self, LoquiProfileAccount * profile) { #line 542 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::load" #line 253 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 253 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 548 "loqui-account-dialog.c" { #line 254 "loqui-account-dialog.gob" self_load_general(self, profile); if (LOQUI_IS_PROFILE_ACCOUNT_IRC(profile)) { self_load_irc(self, LOQUI_PROFILE_ACCOUNT_IRC(profile)); } }} #line 558 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 262 "loqui-account-dialog.gob" static void loqui_account_dialog_append_profile_page (LoquiAccountDialog * self) { #line 565 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::append_profile_page" #line 262 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 262 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 571 "loqui-account-dialog.c" { #line 263 "loqui-account-dialog.gob" GtkWidget *hbox, *vbox_c; GtkWidget *vbox; GtkWidget *frame; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("Profile"))); hbox = gtk_hbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); gtkutils_add_label_entry(hbox, _("Account name:"), &selfp->entry_name, NULL); selfp->check_use = gtk_check_button_new_with_label(_("Connect by default")); gtk_box_pack_start(GTK_BOX(hbox), selfp->check_use, TRUE, TRUE, 0); frame = gtk_frame_new(_("User")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); vbox_c = gtk_vbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox_c); gtkutils_add_label_entry(vbox_c, _("Nickname:"), &selfp->entry_nick, NULL); gtkutils_add_label_entry(vbox_c, _("User name:"), &selfp->entry_username, NULL); gtkutils_add_label_entry(vbox_c, _("Password:"), &selfp->entry_password, NULL); gtk_entry_set_visibility(GTK_ENTRY(selfp->entry_password), FALSE); frame = gtk_frame_new(_("Server")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); vbox_c = gtk_vbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox_c); gtkutils_add_label_entry(vbox_c, _("Hostname:"), &selfp->entry_servername, NULL); gtkutils_add_label_spin_button(vbox_c, _("Port:"), &selfp->spin_port, 1, 65535, 1); }} #line 612 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 302 "loqui-account-dialog.gob" static void loqui_account_dialog_append_irc_page (LoquiAccountDialog * self) { #line 619 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::append_irc_page" #line 302 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 302 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 625 "loqui-account-dialog.c" { #line 303 "loqui-account-dialog.gob" GtkWidget *vbox; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("IRC"))); gtkutils_add_label_entry(vbox, _("Realname:"), &selfp->entry_realname, NULL); gtkutils_add_label_entry(vbox, _("User information:"), &selfp->entry_userinfo, NULL); gtkutils_add_label_entry(vbox, _("Auto join channels (ex. #a,#b,#c keyA,keyB):"), &selfp->entry_autojoin, NULL); gtkutils_add_label_entry(vbox, _("Quit message:"), &selfp->entry_quit_message, NULL); }} #line 639 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 315 "loqui-account-dialog.gob" static void loqui_account_dialog_append_code_page (LoquiAccountDialog * self) { #line 646 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::append_code_page" #line 315 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 315 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 652 "loqui-account-dialog.c" { #line 316 "loqui-account-dialog.gob" GtkWidget *vbox; GtkCellRenderer *cell; GtkWidget *frame; GSList *group_codeconv = NULL; GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *label; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("Code"))); frame = gtk_frame_new(_("Code convertion")); gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 2); vbox1 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox1); selfp->radio_automatic = gtk_radio_button_new_with_mnemonic(NULL, _("Automatic detection by locale")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_automatic, FALSE, FALSE, 0); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_automatic)); g_signal_connect(G_OBJECT(selfp->radio_automatic), "toggled", G_CALLBACK(self_radio_toggled_cb), self); selfp->radio_noconv = gtk_radio_button_new_with_mnemonic(NULL, _("No convertion")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_noconv, FALSE, FALSE, 0); gtk_radio_button_set_group(GTK_RADIO_BUTTON(selfp->radio_noconv), group_codeconv); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_noconv)); g_signal_connect(G_OBJECT(selfp->radio_noconv), "toggled", G_CALLBACK(self_radio_toggled_cb), self); selfp->radio_bytable = gtk_radio_button_new_with_mnemonic(NULL, _("Select from the table")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_bytable, FALSE, FALSE, 0); gtk_radio_button_set_group(GTK_RADIO_BUTTON(selfp->radio_bytable), group_codeconv); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_bytable)); g_signal_connect(G_OBJECT(selfp->radio_bytable), "toggled", G_CALLBACK(self_radio_toggled_cb), self); selfp->model_codeconv_table = GTK_TREE_MODEL(gtk_list_store_new(CODECONV_COLUMN_NUMBER, G_TYPE_STRING, G_TYPE_STRING)); selfp->combobox_table = gtk_combo_box_new_with_model(selfp->model_codeconv_table); gtk_box_pack_start(GTK_BOX(vbox1), selfp->combobox_table, FALSE, FALSE, 0); cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->combobox_table), cell, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->combobox_table), cell, "text", 0, NULL); selfp->radio_codeset = gtk_radio_button_new_with_mnemonic(NULL, _("Specify codeset")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_codeset, FALSE, FALSE, 0); gtk_radio_button_set_group(GTK_RADIO_BUTTON(selfp->radio_codeset), group_codeconv); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_codeset)); g_signal_connect(G_OBJECT(selfp->radio_codeset), "toggled", G_CALLBACK(self_radio_toggled_cb), self); hbox1 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 0); label = gtk_label_new(_("Codeset: ")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0); selfp->entry_codeset = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox1), selfp->entry_codeset, TRUE, TRUE, 0); }} #line 722 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 383 "loqui-account-dialog.gob" static void loqui_account_dialog_append_nick_page (LoquiAccountDialog * self) { #line 729 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::append_nick_page" #line 383 "loqui-account-dialog.gob" g_return_if_fail (self != NULL); #line 383 "loqui-account-dialog.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_DIALOG (self)); #line 735 "loqui-account-dialog.c" { #line 384 "loqui-account-dialog.gob" GtkWidget *vbox; GtkWidget *frame; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("Nick"))); frame = gtkutils_create_framed_textview(&selfp->textview_nicklist, _("List of often used nick(Separate each words with linefeeds)")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); }} #line 750 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 397 "loqui-account-dialog.gob" GtkWidget * loqui_account_dialog_new (LoquiProfileAccount * profile) { #line 757 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::new" { #line 398 "loqui-account-dialog.gob" GtkWidget *vbox; Self *self; self = GET_NEW; selfp->profile = profile; gtk_dialog_add_buttons(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect(G_OBJECT(self), "response", G_CALLBACK(loqui_account_dialog_response_cb), self); vbox = GTK_DIALOG(self)->vbox; selfp->notebook = gtk_notebook_new(); gtk_box_pack_start(GTK_BOX(vbox), selfp->notebook, TRUE, TRUE, 0); self_append_profile_page(self); if (LOQUI_IS_PROFILE_ACCOUNT_IRC(profile)) { self_append_irc_page(self); } self_append_code_page(self); self_append_nick_page(self); self_load(self, profile); gtk_widget_show_all(GTK_WIDGET(self)); return GTK_WIDGET(self); }} #line 798 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 436 "loqui-account-dialog.gob" void loqui_account_dialog_open_add_dialog (GtkWindow * parent, LoquiAccountManager * manager) { #line 805 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::open_add_dialog" { #line 437 "loqui-account-dialog.gob" LoquiAccountDialog *dialog; LoquiProfileAccount *profile; LoquiAccount *account; gint response; LoquiProtocolSelectionDialog *protocol_dialog; LoquiProtocol *protocol; protocol = loqui_protocol_manager_get_protocol(manager->protocol_manager, "IRC"); /* FIXME */ protocol_dialog = LOQUI_PROTOCOL_SELECTION_DIALOG(loqui_protocol_selection_dialog_new(parent, manager->protocol_manager, protocol)); response = gtk_dialog_run(GTK_DIALOG(protocol_dialog)); if (response != GTK_RESPONSE_OK || (protocol = loqui_protocol_selection_dialog_get_protocol(protocol_dialog)) == NULL) { gtk_widget_destroy(GTK_WIDGET(protocol_dialog)); return; } g_object_ref(protocol); gtk_widget_destroy(GTK_WIDGET(protocol_dialog)); profile = loqui_protocol_create_profile_account(protocol); dialog = SELF(self_new(profile)); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(GTK_WIDGET(dialog)); if (response == GTK_RESPONSE_OK) { account = loqui_protocol_create_account(protocol, profile); loqui_account_manager_add_account(manager, account); g_object_unref(account); loqui_account_manager_save_accounts(manager); } g_object_unref(profile); g_object_unref(protocol); }} #line 847 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 476 "loqui-account-dialog.gob" void loqui_account_dialog_open_configure_dialog (GtkWindow * parent, LoquiAccountManager * manager, LoquiAccount * account) { #line 854 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::open_configure_dialog" { #line 477 "loqui-account-dialog.gob" GtkWidget *dialog; dialog = self_new(loqui_account_get_profile(account)); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); /* FIXME: should do account_manager_update_account(manager, account); */ loqui_account_manager_save_accounts(manager); }} #line 870 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ #line 490 "loqui-account-dialog.gob" void loqui_account_dialog_open_remove_dialog (GtkWindow * parent, LoquiAccountManager * manager, LoquiAccount * account) { #line 877 "loqui-account-dialog.c" #define __GOB_FUNCTION__ "Loqui:Account:Dialog::open_remove_dialog" { #line 491 "loqui-account-dialog.gob" GtkWidget *dialog; gint response; dialog = gtk_message_dialog_new(parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, _("This account's configuration and connection will be removed.\n" "Do you really want to remove this account?")); response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); if (response == GTK_RESPONSE_YES) { loqui_account_manager_remove_account(manager, account); loqui_account_manager_save_accounts(manager); loqui_debug_puts("Removed account."); } }} #line 900 "loqui-account-dialog.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/loqui-transfer-window.h0000664000175000017500000000517012121605257015021 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_TRANSFER_WINDOW_H__ #define __LOQUI_TRANSFER_WINDOW_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define LOQUI_TYPE_TRANSFER_WINDOW (loqui_transfer_window_get_type()) #define LOQUI_TRANSFER_WINDOW(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_transfer_window_get_type(), LoquiTransferWindow) #define LOQUI_TRANSFER_WINDOW_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_transfer_window_get_type(), LoquiTransferWindow const) #define LOQUI_TRANSFER_WINDOW_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_transfer_window_get_type(), LoquiTransferWindowClass) #define LOQUI_IS_TRANSFER_WINDOW(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_transfer_window_get_type ()) #define LOQUI_TRANSFER_WINDOW_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_transfer_window_get_type(), LoquiTransferWindowClass) /* Private structure type */ typedef struct _LoquiTransferWindowPrivate LoquiTransferWindowPrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_TRANSFER_WINDOW__ #define __TYPEDEF_LOQUI_TRANSFER_WINDOW__ typedef struct _LoquiTransferWindow LoquiTransferWindow; #endif struct _LoquiTransferWindow { GtkWindow __parent__; /*< private >*/ LoquiTransferWindowPrivate *_priv; }; /* * Class definition */ typedef struct _LoquiTransferWindowClass LoquiTransferWindowClass; struct _LoquiTransferWindowClass { GtkWindowClass __parent__; }; /* * Public methods */ GType loqui_transfer_window_get_type (void) G_GNUC_CONST; #line 107 "loqui-transfer-window.gob" GtkWidget * loqui_transfer_window_new (void); #line 81 "loqui-transfer-window.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui_select_dialog.c0000664000175000017500000002604012121600532014531 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_select_dialog.h" #include #include #include #include enum { LAST_SIGNAL }; enum { LAST_PROP }; enum { COLUMN_NAME, COLUMN_CHANNEL_NUMBER, COLUMN_ACCOUNT_NAME, COLUMN_CHANNEL_NAME, COLUMN_CHANNEL_ENTRY, N_COLUMNS }; struct _LoquiSelectDialogPrivate { LoquiApp *app; GtkWidget *entry_keyword; GtkWidget *check_case; GtkWidget *check_migemo; GtkWidget *treeview; GtkWidget *label_account; GtkWidget *label_channel; GtkListStore *store; }; static GtkDialogClass *parent_class = NULL; /* static guint loqui_select_dialog_signals[LAST_SIGNAL] = { 0 }; */ static GObject* loqui_select_dialog_constructor(GType type, guint n_props, GObjectConstructParam *props); static void loqui_select_dialog_class_init(LoquiSelectDialogClass *klass); static void loqui_select_dialog_init(LoquiSelectDialog *sdialog); static void loqui_select_dialog_finalize(GObject *object); static void loqui_select_dialog_dispose(GObject *object); static void loqui_select_dialog_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_select_dialog_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_select_dialog_destroy(GtkObject *object); GType loqui_select_dialog_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiSelectDialogClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_select_dialog_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiSelectDialog), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_select_dialog_init }; type = g_type_register_static(GTK_TYPE_DIALOG, "LoquiSelectDialog", &our_info, 0); } return type; } static GObject* loqui_select_dialog_constructor(GType type, guint n_props, GObjectConstructParam *props) { GObject *object; GObjectClass *object_class = G_OBJECT_CLASS(parent_class); object = object_class->constructor(type, n_props, props); return object; } static void loqui_select_dialog_finalize(GObject *object) { LoquiSelectDialog *sdialog; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_SELECT_DIALOG(object)); sdialog = LOQUI_SELECT_DIALOG(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(sdialog->priv); } static void loqui_select_dialog_dispose(GObject *object) { LoquiSelectDialog *sdialog; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_SELECT_DIALOG(object)); sdialog = LOQUI_SELECT_DIALOG(object); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_select_dialog_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiSelectDialog *sdialog; sdialog = LOQUI_SELECT_DIALOG(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_select_dialog_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiSelectDialog *sdialog; sdialog = LOQUI_SELECT_DIALOG(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_select_dialog_class_init(LoquiSelectDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->constructor = loqui_select_dialog_constructor; object_class->finalize = loqui_select_dialog_finalize; object_class->dispose = loqui_select_dialog_dispose; object_class->get_property = loqui_select_dialog_get_property; object_class->set_property = loqui_select_dialog_set_property; GTK_OBJECT_CLASS(klass)->destroy = loqui_select_dialog_destroy; } static void loqui_select_dialog_init(LoquiSelectDialog *sdialog) { LoquiSelectDialogPrivate *priv; priv = g_new0(LoquiSelectDialogPrivate, 1); sdialog->priv = priv; } static void loqui_select_dialog_destroy(GtkObject *object) { LoquiSelectDialog *sdialog; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_SELECT_DIALOG(object)); sdialog = LOQUI_SELECT_DIALOG(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); } GtkWidget * loqui_select_dialog_new(LoquiApp *app) { LoquiSelectDialog *sdialog; LoquiSelectDialogPrivate *priv; GtkWidget *dialog_vbox; GtkWidget *hbox1; GtkWidget *label1; GtkWidget *hseparator1; GtkWidget *scrolledwindow1; GtkWidget *hseparator2; GtkWidget *frame1; GtkWidget *hbox3; GtkWidget *hbox4; GtkWidget *label7; GtkWidget *vseparator1; GtkWidget *hbox5; GtkWidget *label8; GtkTreeViewColumn *column; GtkCellRenderer *renderer; sdialog = g_object_new(loqui_select_dialog_get_type(), NULL); priv = sdialog->priv; priv->app = app; gtk_window_set_title(GTK_WINDOW(sdialog), _("Selection Dialog")); gtk_dialog_add_buttons(GTK_DIALOG(sdialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); dialog_vbox = GTK_DIALOG(sdialog)->vbox; hbox1 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(dialog_vbox), hbox1, FALSE, FALSE, 5); label1 = gtk_label_new(_("Keyword:")); gtk_box_pack_start(GTK_BOX(hbox1), label1, FALSE, FALSE, 0); priv->entry_keyword = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox1), priv->entry_keyword, TRUE, TRUE, 0); priv->check_case = gtk_check_button_new_with_mnemonic(_("Case sensitive")); gtk_box_pack_start(GTK_BOX(dialog_vbox), priv->check_case, FALSE, FALSE, 0); priv->check_migemo = gtk_check_button_new_with_mnemonic(_("Use migemo")); gtk_box_pack_start(GTK_BOX(dialog_vbox), priv->check_migemo, FALSE, FALSE, 0); gtk_widget_set_sensitive(priv->check_migemo, FALSE); hseparator1 = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(dialog_vbox), hseparator1, FALSE, FALSE, 5); scrolledwindow1 = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(dialog_vbox), scrolledwindow1, TRUE, TRUE, 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); priv->store = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, LOQUI_TYPE_CHANNEL_ENTRY); priv->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(priv->store)); gtk_container_add(GTK_CONTAINER(scrolledwindow1), priv->treeview); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("#"), renderer, "text", COLUMN_CHANNEL_NUMBER, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->treeview), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Account"), renderer, "text", COLUMN_ACCOUNT_NAME, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->treeview), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Channel"), renderer, "text", COLUMN_CHANNEL_NAME, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->treeview), column); hseparator2 = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(dialog_vbox), hseparator2, FALSE, FALSE, 5); frame1 = gtk_frame_new(_("Target")); gtk_box_pack_start(GTK_BOX(dialog_vbox), frame1, FALSE, FALSE, 5); gtk_frame_set_shadow_type(GTK_FRAME(frame1), GTK_SHADOW_ETCHED_OUT); hbox3 = gtk_hbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame1), hbox3); gtk_container_set_border_width(GTK_CONTAINER(hbox3), 5); hbox4 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox3), hbox4, TRUE, TRUE, 0); label7 = gtk_label_new(_("Account:")); gtk_box_pack_start(GTK_BOX(hbox4), label7, FALSE, FALSE, 0); priv->label_account = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(hbox4), priv->label_account, FALSE, FALSE, 0); gtk_label_set_selectable(GTK_LABEL(priv->label_account), TRUE); vseparator1 = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(hbox3), vseparator1, FALSE, FALSE, 5); hbox5 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox3), hbox5, TRUE, TRUE, 0); label8 = gtk_label_new(_("Channel:")); gtk_box_pack_start(GTK_BOX(hbox5), label8, FALSE, FALSE, 0); priv->label_channel = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(hbox5), priv->label_channel, FALSE, FALSE, 0); gtk_label_set_selectable(GTK_LABEL(priv->label_channel), TRUE); return GTK_WIDGET(sdialog); } void loqui_select_dialog_construct_channel_entry_list(LoquiSelectDialog *sdialog) { LoquiSelectDialogPrivate *priv; LoquiChannelEntry *chent; LoquiAccountManagerIter iter; GtkTreeIter iter_tree; LoquiAccount *account; LoquiChannel *channel; const gchar *account_name, *channel_name; priv = sdialog->priv; loqui_account_manager_iter_init(loqui_app_get_account_manager(priv->app), &iter); loqui_account_manager_iter_set_first_channel_entry(&iter); while ((chent = loqui_account_manager_iter_channel_entry_next(&iter)) != NULL) { loqui_channel_entry_utils_separate(chent, &account, &channel); account_name = account ? loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account)) : ""; channel_name = channel ? loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(channel)) : ""; gtk_list_store_append(priv->store, &iter_tree); gtk_list_store_set(priv->store, &iter_tree, COLUMN_CHANNEL_NUMBER, loqui_channel_entry_get_position(chent), COLUMN_ACCOUNT_NAME, account_name, COLUMN_CHANNEL_NAME, channel_name, COLUMN_CHANNEL_ENTRY, chent, -1); } } loqui-0.5.5/src/loqui_channel_entry_store.c0000664000175000017500000005045012121600532016002 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_channel_entry_store.h" enum { LAST_SIGNAL }; enum { LAST_PROP }; struct _LoquiChannelEntryStorePrivate { }; static GObjectClass *parent_class = NULL; /* static guint loqui_channel_entry_store_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_channel_entry_store_class_init(LoquiChannelEntryStoreClass *klass); static void loqui_channel_entry_store_init(LoquiChannelEntryStore *store); static void loqui_channel_entry_store_finalize(GObject *object); static void loqui_channel_entry_store_dispose(GObject *object); static void loqui_channel_entry_store_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_channel_entry_store_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_channel_entry_store_tree_model_init(GtkTreeModelIface *iface); static GtkTreeModelFlags loqui_channel_entry_store_get_flags (GtkTreeModel *tree_model); static gint loqui_channel_entry_store_get_n_columns(GtkTreeModel *tree_model); static GType loqui_channel_entry_store_get_column_type(GtkTreeModel *tree_model, gint index); static gboolean loqui_channel_entry_store_get_iter(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path); static GtkTreePath *loqui_channel_entry_store_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter); static void loqui_channel_entry_store_get_value(GtkTreeModel *tree_model, GtkTreeIter *iter, gint column, GValue *value); static gboolean loqui_channel_entry_store_iter_next(GtkTreeModel *tree_model, GtkTreeIter *iter); static gboolean loqui_channel_entry_store_iter_children(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent); static gboolean loqui_channel_entry_store_iter_has_child(GtkTreeModel *tree_model, GtkTreeIter *iter); static gint loqui_channel_entry_store_iter_n_children(GtkTreeModel *tree_model, GtkTreeIter *iter); static gboolean loqui_channel_entry_store_iter_nth_child(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent, gint n); static gboolean loqui_channel_entry_store_iter_parent(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *child); static void loqui_channel_entry_store_add_after_cb(LoquiChannelEntry *entry, LoquiMember *member, LoquiChannelEntryStore *store); static void loqui_channel_entry_store_remove_cb(LoquiChannelEntry *chent, LoquiMember *member, LoquiChannelEntryStore *store); static void loqui_channel_entry_store_reordered_cb(LoquiChannelEntry *chent, LoquiChannelEntryStore *store); static void loqui_channel_entry_store_member_notify_cb(LoquiMember *member, GParamSpec *pspec, LoquiChannelEntryStore *store); static void loqui_channel_entry_store_user_notify_cb(LoquiUser *user, GParamSpec *pspec, LoquiChannelEntryStore *store); GType loqui_channel_entry_store_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiChannelEntryStoreClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_channel_entry_store_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiChannelEntryStore), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_channel_entry_store_init }; static const GInterfaceInfo tree_model_info = { (GInterfaceInitFunc) loqui_channel_entry_store_tree_model_init, NULL, NULL }; type = g_type_register_static(G_TYPE_OBJECT, "LoquiChannelEntryStore", &our_info, 0); g_type_add_interface_static(type, GTK_TYPE_TREE_MODEL, &tree_model_info); } return type; } static void loqui_channel_entry_store_finalize(GObject *object) { LoquiChannelEntryStore *store; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(object)); store = LOQUI_CHANNEL_ENTRY_STORE(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(store->priv); } static void loqui_channel_entry_store_dispose(GObject *object) { LoquiChannelEntryStore *store; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(object)); store = LOQUI_CHANNEL_ENTRY_STORE(object); if (store->chent) { g_signal_handlers_disconnect_by_func(store->chent, loqui_channel_entry_store_add_after_cb, store); g_signal_handlers_disconnect_by_func(store->chent, loqui_channel_entry_store_remove_cb, store); g_signal_handlers_disconnect_by_func(store->chent, loqui_channel_entry_store_reordered_cb, store); } if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_channel_entry_store_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiChannelEntryStore *store; store = LOQUI_CHANNEL_ENTRY_STORE(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_entry_store_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiChannelEntryStore *store; store = LOQUI_CHANNEL_ENTRY_STORE(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_entry_store_class_init(LoquiChannelEntryStoreClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_channel_entry_store_finalize; object_class->dispose = loqui_channel_entry_store_dispose; object_class->get_property = loqui_channel_entry_store_get_property; object_class->set_property = loqui_channel_entry_store_set_property; } static void loqui_channel_entry_store_init(LoquiChannelEntryStore *store) { LoquiChannelEntryStorePrivate *priv; priv = g_new0(LoquiChannelEntryStorePrivate, 1); store->column_types[LOQUI_CHANNEL_ENTRY_STORE_COLUMN_MEMBER] = LOQUI_TYPE_MEMBER; store->column_types[LOQUI_CHANNEL_ENTRY_STORE_COLUMN_BASIC_AWAY] = G_TYPE_INT; store->column_types[LOQUI_CHANNEL_ENTRY_STORE_COLUMN_POWER] = G_TYPE_INT; store->column_types[LOQUI_CHANNEL_ENTRY_STORE_COLUMN_NICK] = G_TYPE_STRING; store->stamp = g_random_int(); store->priv = priv; } static void loqui_channel_entry_store_tree_model_init(GtkTreeModelIface *iface) { iface->get_flags = loqui_channel_entry_store_get_flags; iface->get_n_columns = loqui_channel_entry_store_get_n_columns; iface->get_column_type = loqui_channel_entry_store_get_column_type; iface->get_iter = loqui_channel_entry_store_get_iter; iface->get_path = loqui_channel_entry_store_get_path; iface->get_value = loqui_channel_entry_store_get_value; iface->iter_next = loqui_channel_entry_store_iter_next; iface->iter_children = loqui_channel_entry_store_iter_children; iface->iter_has_child = loqui_channel_entry_store_iter_has_child; iface->iter_n_children = loqui_channel_entry_store_iter_n_children; iface->iter_nth_child = loqui_channel_entry_store_iter_nth_child; iface->iter_parent = loqui_channel_entry_store_iter_parent; } static GtkTreeModelFlags loqui_channel_entry_store_get_flags(GtkTreeModel *tree_model) { g_return_val_if_fail(tree_model != NULL, 0); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), 0); return GTK_TREE_MODEL_LIST_ONLY; } static gint loqui_channel_entry_store_get_n_columns(GtkTreeModel *tree_model) { g_return_val_if_fail(tree_model != NULL, 0); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), 0); return LOQUI_CHANNEL_ENTRY_STORE_N_COLUMNS; } static GType loqui_channel_entry_store_get_column_type(GtkTreeModel *tree_model, gint index) { LoquiChannelEntryStore *store; g_return_val_if_fail(tree_model != NULL, 0); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), 0); store = LOQUI_CHANNEL_ENTRY_STORE(tree_model); g_return_val_if_fail(index >= 0 && index < LOQUI_CHANNEL_ENTRY_STORE_N_COLUMNS, G_TYPE_INVALID); return store->column_types[index]; } static gboolean loqui_channel_entry_store_get_iter(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path) { LoquiChannelEntryStore *store; LoquiChannelEntryStorePrivate *priv; gint *indices, n, depth; LoquiMember *member; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), FALSE); store = LOQUI_CHANNEL_ENTRY_STORE(tree_model); priv = store->priv; indices = gtk_tree_path_get_indices(path); depth = gtk_tree_path_get_depth(path); g_assert(depth == 1); n = indices[0]; if(loqui_channel_entry_get_member_number(store->chent) <= n) { return FALSE; } member = loqui_channel_entry_get_nth_member(store->chent, n); g_assert(member != NULL); iter->stamp = store->stamp; iter->user_data = member; iter->user_data2 = GINT_TO_POINTER(n) + 1; return TRUE; } static GtkTreePath * loqui_channel_entry_store_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter) { GtkTreePath *path; LoquiChannelEntryStore *store; LoquiChannelEntryStorePrivate *priv; LoquiMember *member; gint pos; g_return_val_if_fail(tree_model != NULL, NULL); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), NULL); g_return_val_if_fail(iter != NULL, NULL); g_return_val_if_fail(iter->user_data != NULL, NULL); store = LOQUI_CHANNEL_ENTRY_STORE(tree_model); priv = store->priv; member = LOQUI_MEMBER(iter->user_data); pos = GPOINTER_TO_INT(iter->user_data2) - 1; g_assert(pos >= 0); path = gtk_tree_path_new(); gtk_tree_path_append_index(path, pos); return path; } static void loqui_channel_entry_store_get_value(GtkTreeModel *tree_model, GtkTreeIter *iter, gint column, GValue *value) { LoquiChannelEntryStore *store; LoquiChannelEntryStorePrivate *priv; LoquiMember *member; gint pos; gint power; g_return_if_fail(tree_model != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model)); g_return_if_fail(iter != NULL); g_return_if_fail(iter->user_data != NULL); g_return_if_fail(column < LOQUI_CHANNEL_ENTRY_STORE_N_COLUMNS); store = LOQUI_CHANNEL_ENTRY_STORE(tree_model); priv = store->priv; g_value_init(value, store->column_types[column]); member = LOQUI_MEMBER(iter->user_data); pos = GPOINTER_TO_INT(iter->user_data2) - 1; g_return_if_fail(member != NULL); switch (column) { case LOQUI_CHANNEL_ENTRY_STORE_COLUMN_MEMBER: g_value_set_object(value, member); break; case LOQUI_CHANNEL_ENTRY_STORE_COLUMN_NICK: g_value_set_string(value, loqui_user_get_nick(member->user)); break; case LOQUI_CHANNEL_ENTRY_STORE_COLUMN_BASIC_AWAY: g_value_set_int(value, loqui_user_get_basic_away(member->user)); break; case LOQUI_CHANNEL_ENTRY_STORE_COLUMN_POWER: power = 0; /* FIXME */ if (loqui_member_get_is_channel_operator(member)) power = 2; else if (loqui_member_get_speakable(member)) power = 1; g_value_set_int(value, power); break; } } static gboolean loqui_channel_entry_store_iter_next(GtkTreeModel *tree_model, GtkTreeIter *iter) { LoquiChannelEntryStore *store; LoquiChannelEntryStorePrivate *priv; LoquiMember *member; gint pos; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), FALSE); store = LOQUI_CHANNEL_ENTRY_STORE(tree_model); priv = store->priv; g_return_val_if_fail(iter != NULL, FALSE); g_return_val_if_fail(store->stamp == iter->stamp, FALSE); g_return_val_if_fail(iter->user_data != NULL, FALSE); pos = GPOINTER_TO_INT(iter->user_data2) - 1; pos++; member = loqui_channel_entry_get_nth_member(store->chent, pos); if (member == NULL) return FALSE; iter->user_data = member; iter->user_data2 = GINT_TO_POINTER(pos + 1); return TRUE; } static gboolean loqui_channel_entry_store_iter_children(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent) { g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), FALSE); if (parent != NULL) return FALSE; return loqui_channel_entry_store_iter_nth_child(tree_model, iter, parent, 0); } static gboolean loqui_channel_entry_store_iter_has_child(GtkTreeModel *tree_model, GtkTreeIter *iter) { return FALSE; } static gint loqui_channel_entry_store_iter_n_children(GtkTreeModel *tree_model, GtkTreeIter *iter) { LoquiChannelEntryStore *store; LoquiChannelEntryStorePrivate *priv; g_return_val_if_fail(tree_model != NULL, -1); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), -1); store = LOQUI_CHANNEL_ENTRY_STORE(tree_model); priv = store->priv; if (!store->chent) return -1; return loqui_channel_entry_get_member_number(store->chent); } static gboolean loqui_channel_entry_store_iter_nth_child(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent, gint n) { LoquiChannelEntryStore *store; LoquiChannelEntryStorePrivate *priv; LoquiMember *member; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(tree_model), FALSE); store = LOQUI_CHANNEL_ENTRY_STORE(tree_model); priv = store->priv; if (parent) return FALSE; if (!store->chent) return FALSE; member = loqui_channel_entry_get_nth_member(store->chent, n); if (member == NULL) return FALSE; iter->stamp = store->stamp; iter->user_data = member; iter->user_data2 = GINT_TO_POINTER(n + 1); return TRUE; } static gboolean loqui_channel_entry_store_iter_parent(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *child) { return FALSE; } static void loqui_channel_entry_store_add_after_cb(LoquiChannelEntry *entry, LoquiMember *member, LoquiChannelEntryStore *store) { GtkTreeIter iter; GtkTreePath *path; gint pos; g_return_if_fail(entry != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(entry)); g_return_if_fail(member != NULL); g_return_if_fail(LOQUI_IS_MEMBER(member)); g_return_if_fail(store != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(store)); iter.user_data = member; pos = loqui_channel_entry_get_member_pos(entry, member); g_return_if_fail(pos >= 0); iter.user_data2 = GINT_TO_POINTER(pos + 1); path = loqui_channel_entry_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_inserted(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); g_signal_connect_object(G_OBJECT(member), "notify::is-channel-operator", G_CALLBACK(loqui_channel_entry_store_member_notify_cb), store, 0); g_signal_connect_object(G_OBJECT(member), "notify::speakable", G_CALLBACK(loqui_channel_entry_store_member_notify_cb), store, 0); g_signal_connect_object(G_OBJECT(member->user), "notify::nick", G_CALLBACK(loqui_channel_entry_store_user_notify_cb), store, 0); g_signal_connect_object(G_OBJECT(member->user), "notify::away", G_CALLBACK(loqui_channel_entry_store_user_notify_cb), store, 0); } static void loqui_channel_entry_store_remove_cb(LoquiChannelEntry *chent, LoquiMember *member, LoquiChannelEntryStore *store) { gint pos; GtkTreePath *path; GtkTreeIter iter; g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); g_return_if_fail(member != NULL); g_return_if_fail(LOQUI_IS_MEMBER(member)); g_return_if_fail(store != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(store)); pos = loqui_channel_entry_get_member_pos(chent, member); g_return_if_fail(pos >= 0); iter.user_data = member; iter.user_data2 = GINT_TO_POINTER(pos + 1); g_signal_handlers_disconnect_by_func(G_OBJECT(member), loqui_channel_entry_store_member_notify_cb, store); g_signal_handlers_disconnect_by_func(G_OBJECT(member->user), loqui_channel_entry_store_user_notify_cb, store); path = loqui_channel_entry_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_deleted(GTK_TREE_MODEL(store), path); gtk_tree_path_free(path); } static void loqui_channel_entry_store_reordered_cb(LoquiChannelEntry *chent, LoquiChannelEntryStore *store) { gint i, num; GtkTreePath *path; GtkTreeIter iter; g_return_if_fail(store != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(store)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); num = loqui_channel_entry_get_member_number(chent); for (i = 0; i < num; i++) { iter.user_data = loqui_channel_entry_get_nth_member(chent, i); iter.user_data2 = GINT_TO_POINTER(i + 1); path = loqui_channel_entry_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); } } static void loqui_channel_entry_store_user_notify_cb(LoquiUser *user, GParamSpec *pspec, LoquiChannelEntryStore *store) { gint pos; GtkTreePath *path; GtkTreeIter iter; LoquiMember *member; g_return_if_fail(user != NULL); g_return_if_fail(LOQUI_IS_USER(user)); g_return_if_fail(store != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(store)); member = loqui_channel_entry_get_member_by_user(store->chent, user); pos = loqui_channel_entry_get_member_pos(store->chent, member); g_return_if_fail(pos >= 0); iter.user_data = member; iter.user_data2 = GINT_TO_POINTER(pos + 1); path = loqui_channel_entry_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); } static void loqui_channel_entry_store_member_notify_cb(LoquiMember *member, GParamSpec *pspec, LoquiChannelEntryStore *store) { gint pos; GtkTreePath *path; GtkTreeIter iter; g_return_if_fail(member != NULL); g_return_if_fail(LOQUI_IS_MEMBER(member)); g_return_if_fail(store != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_STORE(store)); pos = loqui_channel_entry_get_member_pos(store->chent, member); g_return_if_fail(pos >= 0); iter.user_data = member; iter.user_data2 = GINT_TO_POINTER(pos + 1); path = loqui_channel_entry_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); } LoquiChannelEntryStore* loqui_channel_entry_store_new(LoquiChannelEntry *chent) { LoquiChannelEntryStore *store; LoquiChannelEntryStorePrivate *priv; int i, num; LoquiMember *member; g_return_val_if_fail(chent != NULL, NULL); store = g_object_new(loqui_channel_entry_store_get_type(), NULL); priv = store->priv; store->chent = chent; num = loqui_channel_entry_get_member_number(chent); for(i = 0; i < num; i++) { member = loqui_channel_entry_get_nth_member(chent, i); loqui_channel_entry_store_add_after_cb(chent, member, store); } g_signal_connect_object(G_OBJECT(chent), "add", G_CALLBACK(loqui_channel_entry_store_add_after_cb), store, G_CONNECT_AFTER); g_signal_connect_object(G_OBJECT(chent), "remove", G_CALLBACK(loqui_channel_entry_store_remove_cb), store, 0); g_signal_connect_object(G_OBJECT(chent), "reordered", G_CALLBACK(loqui_channel_entry_store_reordered_cb), store, 0); return store; } loqui-0.5.5/src/channel_tree.h0000664000175000017500000000457512121600532013167 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include #ifndef __CHANNEL_TREE_H__ #define __CHANNEL_TREE_H__ G_BEGIN_DECLS #include #include #define TYPE_CHANNEL_TREE (channel_tree_get_type ()) #define CHANNEL_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHANNEL_TREE, ChannelTree)) #define CHANNEL_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHANNEL_TREE, ChannelTreeClass)) #define IS_CHANNEL_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHANNEL_TREE)) #define IS_CHANNEL_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHANNEL_TREE)) #define CHANNEL_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHANNEL_TREE, ChannelTreeClass)) typedef struct _ChannelTree ChannelTree; typedef struct _ChannelTreeClass ChannelTreeClass; typedef struct _ChannelTreePrivate ChannelTreePrivate; #include "loqui_app.h" struct _ChannelTree { GtkTreeView parent; ChannelTreePrivate *priv; }; struct _ChannelTreeClass { GtkTreeViewClass parent_class; }; GtkType channel_tree_get_type(void) G_GNUC_CONST; GtkWidget* channel_tree_new(LoquiApp *app, GtkMenu *menu_account, GtkMenu *menu_channel, GtkMenu *menu_private_talk); void channel_tree_select_channel_entry(ChannelTree *tree, LoquiChannelEntry *chent); void channel_tree_expand_to_channel_entry(ChannelTree *tree, LoquiChannelEntry *chent); G_END_DECLS #endif /* __CHANNEL_TREE_H__ */ loqui-0.5.5/src/nick_list.h0000664000175000017500000000451412121600532012510 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #ifndef __NICK_LIST_H__ #define __NICK_LIST_H__ #include "loqui_channel.h" #include "loqui_channel_entry_store.h" G_BEGIN_DECLS #define TYPE_NICK_LIST (nick_list_get_type ()) #define NICK_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NICK_LIST, NickList)) #define NICK_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NICK_LIST, NickListClass)) #define IS_NICK_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NICK_LIST)) #define IS_NICK_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NICK_LIST)) #define NICK_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NICK_LIST, NickListClass)) typedef struct _NickList NickList; typedef struct _NickListClass NickListClass; typedef struct _NickListPrivate NickListPrivate; #include "loqui_app.h" struct _NickList { GtkTreeView parent; NickListPrivate *priv; }; struct _NickListClass { GtkTreeViewClass parent_class; }; GtkType nick_list_get_type(void) G_GNUC_CONST; GtkWidget* nick_list_new(LoquiApp *app, GtkWidget *menu); void nick_list_change_mode_selected(NickList *list, gboolean is_give, IRCModeFlag flag); void nick_list_start_private_talk_selected(NickList *nick_list); void nick_list_whois_selected(NickList *nick_list); void nick_list_ctcp_selected(NickList *nick_list, const gchar *command); G_END_DECLS #endif /* __NICK_LIST_H__ */ loqui-0.5.5/src/loqui-notifier-gtk.c0000664000175000017500000001755212121605257014274 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 2 "loqui-notifier-gtk.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 28 "loqui-notifier-gtk.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-notifier-gtk.h" #include "loqui-notifier-gtk-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 29 "loqui-notifier-gtk.gob" #include #include #include #include #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" #include "gtkutils.h" #include "loqui-core-gtk.h" #line 64 "loqui-notifier-gtk.c" /* self casting macros */ #define SELF(x) LOQUI_NOTIFIER_GTK(x) #define SELF_CONST(x) LOQUI_NOTIFIER_GTK_CONST(x) #define IS_SELF(x) LOQUI_IS_NOTIFIER_GTK(x) #define TYPE_SELF LOQUI_TYPE_NOTIFIER_GTK #define SELF_CLASS(x) LOQUI_NOTIFIER_GTK_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_NOTIFIER_GTK_GET_CLASS(x) /* self typedefs */ typedef LoquiNotifierGtk Self; typedef LoquiNotifierGtkClass SelfClass; /* here are local prototypes */ #line 0 "loqui-notifier-gtk.gob" static void loqui_notifier_gtk_init (LoquiNotifierGtk * o) G_GNUC_UNUSED; #line 81 "loqui-notifier-gtk.c" #line 0 "loqui-notifier-gtk.gob" static void loqui_notifier_gtk_class_init (LoquiNotifierGtkClass * c) G_GNUC_UNUSED; #line 84 "loqui-notifier-gtk.c" #line 55 "loqui-notifier-gtk.gob" static void loqui_notifier_gtk_exec_notification (LoquiNotifierGtk * self, LoquiMessageText * msgtext) G_GNUC_UNUSED; #line 87 "loqui-notifier-gtk.c" #line 70 "loqui-notifier-gtk.gob" static void ___3_loqui_notifier_gtk_notify_highlight (LoquiNotifier * notifier, LoquiMessageText * msgtext) G_GNUC_UNUSED; #line 90 "loqui-notifier-gtk.c" /* pointer to the class of our parent */ static LoquiNotifierClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_notifier_gtk_new #define self_exec_notification loqui_notifier_gtk_exec_notification GType loqui_notifier_gtk_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiNotifierGtkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_notifier_gtk_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiNotifierGtk), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_notifier_gtk_init, NULL }; type = g_type_register_static (LOQUI_TYPE_NOTIFIER, "LoquiNotifierGtk", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiNotifierGtk *)g_object_new(loqui_notifier_gtk_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiNotifierGtk * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiNotifierGtk * GET_NEW_VARG (const char *first, ...) { LoquiNotifierGtk *ret; va_list ap; va_start (ap, first); ret = (LoquiNotifierGtk *)g_object_new_valist (loqui_notifier_gtk_get_type (), first, ap); va_end (ap); return ret; } static void loqui_notifier_gtk_init (LoquiNotifierGtk * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Notifier:Gtk::init" } #undef __GOB_FUNCTION__ static void loqui_notifier_gtk_class_init (LoquiNotifierGtkClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Notifier:Gtk::class_init" LoquiNotifierClass *loqui_notifier_class = (LoquiNotifierClass *)c; parent_class = g_type_class_ref (LOQUI_TYPE_NOTIFIER); #line 70 "loqui-notifier-gtk.gob" loqui_notifier_class->notify_highlight = ___3_loqui_notifier_gtk_notify_highlight; #line 156 "loqui-notifier-gtk.c" } #undef __GOB_FUNCTION__ #line 46 "loqui-notifier-gtk.gob" LoquiNotifierGtk * loqui_notifier_gtk_new (void) { #line 166 "loqui-notifier-gtk.c" #define __GOB_FUNCTION__ "Loqui:Notifier:Gtk::new" { #line 47 "loqui-notifier-gtk.gob" Self *self; self = GET_NEW; return self; }} #line 177 "loqui-notifier-gtk.c" #undef __GOB_FUNCTION__ #line 55 "loqui-notifier-gtk.gob" static void loqui_notifier_gtk_exec_notification (LoquiNotifierGtk * self, LoquiMessageText * msgtext) { #line 184 "loqui-notifier-gtk.c" #define __GOB_FUNCTION__ "Loqui:Notifier:Gtk::exec_notification" #line 55 "loqui-notifier-gtk.gob" g_return_if_fail (self != NULL); #line 55 "loqui-notifier-gtk.gob" g_return_if_fail (LOQUI_IS_NOTIFIER_GTK (self)); #line 190 "loqui-notifier-gtk.c" { #line 56 "loqui-notifier-gtk.gob" gchar *notification_command; notification_command = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS, "NotificationCommand", LOQUI_GENERAL_PREF_GTK_DEFAULT_COMMANDS_NOTIFICATION_COMMAND, NULL); if (notification_command && strlen(notification_command) > 0) { gchar *detail = loqui_message_text_get_detail(msgtext, TRUE, TRUE); gtkutils_exec_command_argument_with_error_dialog(notification_command, detail); g_free(detail); } g_free(notification_command); }} #line 206 "loqui-notifier-gtk.c" #undef __GOB_FUNCTION__ #line 70 "loqui-notifier-gtk.gob" static void ___3_loqui_notifier_gtk_notify_highlight (LoquiNotifier * notifier G_GNUC_UNUSED, LoquiMessageText * msgtext) #line 212 "loqui-notifier-gtk.c" #define PARENT_HANDLER(___notifier,___msgtext) \ { if(LOQUI_NOTIFIER_CLASS(parent_class)->notify_highlight) \ (* LOQUI_NOTIFIER_CLASS(parent_class)->notify_highlight)(___notifier,___msgtext); } { #define __GOB_FUNCTION__ "Loqui:Notifier:Gtk::notify_highlight" { #line 72 "loqui-notifier-gtk.gob" Self *self; LoquiApp *app; self = SELF(notifier); PARENT_HANDLER(notifier, msgtext); if (!loqui_message_text_get_is_remark(msgtext) || loqui_message_text_get_is_self(msgtext) || msgtext->highlight_region_list == NULL) { return; } if (!loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "UseNotification", LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_USE_NOTIFICATION, NULL)) return; if (loqui_message_text_get_text_type(msgtext) == LOQUI_TEXT_TYPE_NOTICE && !loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "ExecNotificationByNotice", LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_EXEC_NOTIFICATION_BY_NOTICE, NULL)) return; self_exec_notification(self, msgtext); app = loqui_core_gtk_get_app(LOQUI_CORE_GTK(loqui_get_core())); if (loqui_message_text_get_is_remark(msgtext) && !loqui_message_text_get_is_self(msgtext)) { loqui_tray_icon_blink(app->tray_icon); if (!loqui_app_has_toplevel_focus(app)) loqui_tray_icon_set_hilighted(app->tray_icon, TRUE); } }} #line 256 "loqui-notifier-gtk.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER loqui-0.5.5/src/loqui-notifier-gtk-private.h0000664000175000017500000000227312121605257015743 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 2 "loqui-notifier-gtk.gob" #line 26 "loqui-notifier-gtk-private.h" #ifndef __LOQUI_NOTIFIER_GTK_PRIVATE_H__ #define __LOQUI_NOTIFIER_GTK_PRIVATE_H__ #include "loqui-notifier-gtk.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui_app_info.h0000664000175000017500000001200012121600532013522 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ /* The class updates the app's information with the current account/channel */ #ifndef __LOQUI_APP_INFO_H__ #define __LOQUI_APP_INFO_H__ #define LOQUI_APP_INFO_DEFAULT_TITLE_FORMAT_TITLE _("[%channel_name% @ ][%account_name% - ]Loqui version %version%") #define LOQUI_APP_INFO_DEFAULT_TITLE_FORMAT_STATUSBAR _("$if($grater(%updated_entry_number%,0),%updated_entry_number% entries updated$if($grater(%updated_private_talk_number%,0), '('%updated_private_talk_number% private talk'(s))')") #include #include "loqui_title_format.h" G_BEGIN_DECLS #define LOQUI_TYPE_APP_INFO (loqui_app_info_get_type ()) #define LOQUI_APP_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_APP_INFO, LoquiAppInfo)) #define LOQUI_APP_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_APP_INFO, LoquiAppInfoClass)) #define LOQUI_IS_APP_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_APP_INFO)) #define LOQUI_IS_APP_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_APP_INFO)) #define LOQUI_APP_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_APP_INFO, LoquiAppInfoClass)) typedef struct _LoquiAppInfo LoquiAppInfo; typedef struct _LoquiAppInfoClass LoquiAppInfoClass; typedef struct _LoquiAppInfoPrivate LoquiAppInfoPrivate; #include "loqui_app.h" struct _LoquiAppInfo { GObject parent; LoquiTitleFormat *ltf_title; LoquiTitleFormat *ltf_statusbar; gchar *cache_account_name; gchar *cache_channel_name; gchar *cache_topic; gchar *cache_channel_mode; gchar *cache_member_number; gchar *cache_op_number; gchar *cache_nick; gchar *cache_updated_entry_number; gchar *cache_updated_private_talk_number; guint updated_entry_number; guint updated_private_talk_number; LoquiAppInfoPrivate *priv; }; struct _LoquiAppInfoClass { GObjectClass parent_class; }; GType loqui_app_info_get_type(void) G_GNUC_CONST; LoquiAppInfo* loqui_app_info_new(LoquiApp *app); void loqui_app_info_update_account_name(LoquiAppInfo *appinfo, LoquiAccount *account); void loqui_app_info_update_nick(LoquiAppInfo *appinfo, LoquiAccount *account); void loqui_app_info_update_topic(LoquiAppInfo *appinfo, LoquiChannelEntry *chent); void loqui_app_info_update_channel_name(LoquiAppInfo *appinfo, LoquiChannel *channel); void loqui_app_info_update_channel_mode(LoquiAppInfo *appinfo, LoquiChannel *channel); void loqui_app_info_update_member_number(LoquiAppInfo *appinfo, LoquiChannelEntry *chent); void loqui_app_info_update_op_number(LoquiAppInfo *appinfo, LoquiChannelEntry *chent); void loqui_app_info_update_preset(LoquiAppInfo *appinfo, LoquiAccount *account); void loqui_app_info_update_away_list(LoquiAppInfo *appinfo, LoquiAccount *account); void loqui_app_info_update_away(LoquiAppInfo *appinfo, LoquiAccount *account); void loqui_app_info_update_updated_entry_number(LoquiAppInfo *appinfo); void loqui_app_info_update_updated_private_talk_number(LoquiAppInfo *appinfo); void loqui_app_info_update_string_idle(LoquiAppInfo *appinfo); void loqui_app_info_update_string(LoquiAppInfo *appinfo); void loqui_app_info_update_all(LoquiAppInfo *appinfo, LoquiChannelEntry *chent); void loqui_app_info_current_channel_entry_changed(LoquiAppInfo *appinfo, LoquiChannelEntry *old_chent, LoquiChannelEntry *new_chent); void loqui_app_info_channel_entry_added(LoquiAppInfo *appinfo, LoquiChannelEntry *chent); void loqui_app_info_channel_entry_removed(LoquiAppInfo *appinfo, LoquiChannelEntry *chent); void loqui_app_info_account_added(LoquiAppInfo *appinfo, LoquiAccount *account); void loqui_app_info_account_removed(LoquiAppInfo *appinfo, LoquiAccount *account); void loqui_app_info_channel_added(LoquiAppInfo *appinfo, LoquiChannel *channel); void loqui_app_info_channel_removed(LoquiAppInfo *appinfo, LoquiChannel *channel); void loqui_app_info_set_title_format_title(LoquiAppInfo *appinfo, LoquiTitleFormat *ltf); void loqui_app_info_set_title_format_statusbar(LoquiAppInfo *appinfo, LoquiTitleFormat *ltf); void loqui_app_info_load_from_prefs_general(LoquiAppInfo *appinfo); G_END_DECLS #endif /* __LOQUI_APP_INFO_H__ */ loqui-0.5.5/src/loqui-notifier-gtk.gob0000664000175000017500000000633112121600532014601 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ %} %h{ #include #include %} %{ #include #include #include #include #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" #include "gtkutils.h" #include "loqui-core-gtk.h" %} class Loqui:Notifier:Gtk from Loqui:Notifier { public Loqui:Notifier:Gtk * new(void) { Self *self; self = GET_NEW; return self; } private void exec_notification(self, LoquiMessageText *msgtext) { gchar *notification_command; notification_command = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS, "NotificationCommand", LOQUI_GENERAL_PREF_GTK_DEFAULT_COMMANDS_NOTIFICATION_COMMAND, NULL); if (notification_command && strlen(notification_command) > 0) { gchar *detail = loqui_message_text_get_detail(msgtext, TRUE, TRUE); gtkutils_exec_command_argument_with_error_dialog(notification_command, detail); g_free(detail); } g_free(notification_command); } override (Loqui:Notifier) void notify_highlight(LoquiNotifier *notifier, LoquiMessageText *msgtext) { Self *self; LoquiApp *app; self = SELF(notifier); PARENT_HANDLER(notifier, msgtext); if (!loqui_message_text_get_is_remark(msgtext) || loqui_message_text_get_is_self(msgtext) || msgtext->highlight_region_list == NULL) { return; } if (!loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "UseNotification", LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_USE_NOTIFICATION, NULL)) return; if (loqui_message_text_get_text_type(msgtext) == LOQUI_TEXT_TYPE_NOTICE && !loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "ExecNotificationByNotice", LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_EXEC_NOTIFICATION_BY_NOTICE, NULL)) return; self_exec_notification(self, msgtext); app = loqui_core_gtk_get_app(LOQUI_CORE_GTK(loqui_get_core())); if (loqui_message_text_get_is_remark(msgtext) && !loqui_message_text_get_is_self(msgtext)) { loqui_tray_icon_blink(app->tray_icon); if (!loqui_app_has_toplevel_focus(app)) loqui_tray_icon_set_hilighted(app->tray_icon, TRUE); } } } loqui-0.5.5/src/loqui_channelbar.h0000664000175000017500000000572212121600532014041 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #ifndef __LOQUI_CHANNELBAR_H__ #define __LOQUI_CHANNELBAR_H__ #include #include #include #include "loqui_app.h" G_BEGIN_DECLS #define LOQUI_TYPE_CHANNELBAR (loqui_channelbar_get_type ()) #define LOQUI_CHANNELBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_CHANNELBAR, LoquiChannelbar)) #define LOQUI_CHANNELBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_CHANNELBAR, LoquiChannelbarClass)) #define LOQUI_IS_CHANNELBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_CHANNELBAR)) #define LOQUI_IS_CHANNELBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_CHANNELBAR)) #define LOQUI_CHANNELBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_CHANNELBAR, LoquiChannelbarClass)) typedef struct _LoquiChannelbar LoquiChannelbar; typedef struct _LoquiChannelbarClass LoquiChannelbarClass; typedef struct _LoquiChannelbarPrivate LoquiChannelbarPrivate; struct _LoquiChannelbar { GtkHBox parent; LoquiChannelbarPrivate *priv; }; struct _LoquiChannelbarClass { GtkHBoxClass parent_class; }; GtkType loqui_channelbar_get_type (void) G_GNUC_CONST; GtkWidget* loqui_channelbar_new(LoquiApp *app, GtkWidget *menu_dropdown, GtkToggleAction *toggle_scroll_action); void loqui_channelbar_set_current_channel(LoquiChannelbar *channelbar, LoquiChannel *channel); void loqui_channelbar_set_current_account(LoquiChannelbar *channelbar, LoquiAccount *account); void loqui_channelbar_update_channel_entry_label(LoquiChannelbar *channelbar, LoquiChannelEntry *chent); void loqui_channelbar_update_channel_mode(LoquiChannelbar *channelbar, LoquiChannel *channel); void loqui_channelbar_update_member_number(LoquiChannelbar *channelbar, LoquiChannelEntry *chent); void loqui_channelbar_update_op_number(LoquiChannelbar *channelbar, LoquiChannelEntry *chent); void loqui_channelbar_update_topic(LoquiChannelbar *channelbar, LoquiChannelEntry *chent); G_END_DECLS #endif /* __LOQUI_CHANNELBAR_H__ */ loqui-0.5.5/src/loqui_dropdown_box.c0000664000175000017500000002041112121600532014433 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_dropdown_box.h" #include "gtkutils.h" enum { LAST_SIGNAL }; enum { LAST_PROP }; struct _LoquiDropdownBoxPrivate { GtkWidget *arrow; }; static GtkHBoxClass *parent_class = NULL; /* static guint loqui_dropdown_box_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_dropdown_box_class_init(LoquiDropdownBoxClass *klass); static void loqui_dropdown_box_init(LoquiDropdownBox *dbox); static void loqui_dropdown_box_finalize(GObject *object); static void loqui_dropdown_box_dispose(GObject *object); static void loqui_dropdown_box_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_dropdown_box_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_dropdown_box_destroy(GtkObject *object); static void loqui_dropdown_box_menu_deactivated_cb(GtkWidget *widget, LoquiDropdownBox *dropdown_box); static void loqui_dropdown_box_detacher(GtkWidget *widget, GtkMenu *menu); GType loqui_dropdown_box_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiDropdownBoxClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_dropdown_box_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiDropdownBox), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_dropdown_box_init }; type = g_type_register_static(GTK_TYPE_HBOX, "LoquiDropdownBox", &our_info, 0); } return type; } static void loqui_dropdown_box_finalize(GObject *object) { LoquiDropdownBox *dbox; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_DROPDOWN_BOX(object)); dbox = LOQUI_DROPDOWN_BOX(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(dbox->priv); } static void loqui_dropdown_box_dispose(GObject *object) { LoquiDropdownBox *dbox; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_DROPDOWN_BOX(object)); dbox = LOQUI_DROPDOWN_BOX(object); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_dropdown_box_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiDropdownBox *dbox; dbox = LOQUI_DROPDOWN_BOX(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_dropdown_box_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiDropdownBox *dbox; dbox = LOQUI_DROPDOWN_BOX(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_dropdown_box_class_init(LoquiDropdownBoxClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_dropdown_box_finalize; object_class->dispose = loqui_dropdown_box_dispose; object_class->get_property = loqui_dropdown_box_get_property; object_class->set_property = loqui_dropdown_box_set_property; GTK_OBJECT_CLASS(klass)->destroy = loqui_dropdown_box_destroy; } static void loqui_dropdown_box_init(LoquiDropdownBox *dbox) { LoquiDropdownBoxPrivate *priv; priv = g_new0(LoquiDropdownBoxPrivate, 1); dbox->priv = priv; } static void loqui_dropdown_box_destroy(GtkObject *object) { LoquiDropdownBox *dbox; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_DROPDOWN_BOX(object)); dbox = LOQUI_DROPDOWN_BOX(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); } static gboolean loqui_dropdown_box_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data) { LoquiDropdownBox *dropdown_box; LoquiDropdownBoxPrivate *priv; g_return_val_if_fail(data != NULL, TRUE); g_return_val_if_fail(LOQUI_IS_DROPDOWN_BOX(data), TRUE); dropdown_box = LOQUI_DROPDOWN_BOX(data); priv = dropdown_box->priv; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dropdown_box->drop_button), TRUE); if (dropdown_box->menu) gtk_menu_popup(GTK_MENU(dropdown_box->menu), NULL, NULL, gtkutils_menu_position_under_widget, dropdown_box, event ? event->button : 0, event ? event->time : gtk_get_current_event_time()); return TRUE; } static void loqui_dropdown_box_detacher(GtkWidget *widget, GtkMenu *menu) { LoquiDropdownBox *dropdown_box; g_return_if_fail(widget != NULL); g_return_if_fail(LOQUI_IS_DROPDOWN_BOX(widget)); dropdown_box = LOQUI_DROPDOWN_BOX(widget); if (dropdown_box->menu) g_signal_handlers_disconnect_by_func(dropdown_box->menu, loqui_dropdown_box_menu_deactivated_cb, dropdown_box); dropdown_box->menu = NULL; } static void loqui_dropdown_box_menu_deactivated_cb(GtkWidget *widget, LoquiDropdownBox *dropdown_box) { g_return_if_fail(dropdown_box != NULL); g_return_if_fail(LOQUI_IS_DROPDOWN_BOX(dropdown_box)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dropdown_box->drop_button), FALSE); } GtkWidget * loqui_dropdown_box_new(GtkWidget *drop_widget) { LoquiDropdownBox *dbox; LoquiDropdownBoxPrivate *priv; dbox = g_object_new(loqui_dropdown_box_get_type(), NULL); priv = dbox->priv; dbox->drop_button = gtk_toggle_button_new(); g_signal_connect(dbox->drop_button, "button-press-event", G_CALLBACK(loqui_dropdown_box_button_press_event), dbox); /* gtk_button_set_relief(GTK_BUTTON(dbox->drop_button), GTK_RELIEF_NONE); */ gtk_box_pack_end(GTK_BOX(dbox), dbox->drop_button, FALSE, FALSE, 0); if (drop_widget) dbox->drop_widget = drop_widget; else dbox->drop_widget = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT); gtk_container_add(GTK_CONTAINER(dbox->drop_button), dbox->drop_widget); return GTK_WIDGET(dbox); } void loqui_dropdown_box_set_menu(LoquiDropdownBox *dropdown_box, GtkWidget *menu) { LoquiDropdownBoxPrivate *priv; g_return_if_fail(dropdown_box != NULL); g_return_if_fail(LOQUI_IS_DROPDOWN_BOX(dropdown_box)); g_return_if_fail(GTK_IS_MENU(menu)); priv = dropdown_box->priv; if (dropdown_box->menu != menu) { dropdown_box->menu = menu; g_signal_connect(menu, "deactivate", G_CALLBACK(loqui_dropdown_box_menu_deactivated_cb), dropdown_box); gtk_menu_attach_to_widget(GTK_MENU(menu), GTK_WIDGET(dropdown_box), loqui_dropdown_box_detacher); } } GtkWidget * loqui_dropdown_box_get_menu(LoquiDropdownBox *dropdown_box) { LoquiDropdownBoxPrivate *priv; g_return_val_if_fail(dropdown_box != NULL, NULL); g_return_val_if_fail(LOQUI_IS_DROPDOWN_BOX(dropdown_box), NULL); priv = dropdown_box->priv; return dropdown_box->menu; } void loqui_dropdown_box_remove_menu(LoquiDropdownBox *dropdown_box) { LoquiDropdownBoxPrivate *priv; g_return_if_fail(dropdown_box != NULL); g_return_if_fail(LOQUI_IS_DROPDOWN_BOX(dropdown_box)); priv = dropdown_box->priv; if (dropdown_box->menu) { gtk_menu_detach(GTK_MENU(dropdown_box->menu)); } } loqui-0.5.5/src/main.h0000664000175000017500000000176312121600532011460 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #ifndef __MAIN_H__ #define __MAIN_H__ #define LOG_DIR "logs" #endif /* __MAIN_H__ */ loqui-0.5.5/src/gtkutils.c0000664000175000017500000002762712121600532012404 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ /* Copyright (C) 2002-2003 Takuo KITAME gtk_tree_model_find_by_column_data() is written by him. */ /* Copyright (C) 2002 Marco Pesenti Gritti gtkut_menu_position_under_widget() (gul_gui_menu_position_under_widget) is written by him. */ /* Copyright (C) 1999-2005 Hiroyuki Yamamoto gtkut_get_default_font_desc() */ #include "config.h" #include "gtkutils.h" #include #include #include #include void gtkutils_msgbox_info(GtkMessageType icon, const gchar *format, ...) { GtkWidget *dialog; va_list args; gchar *buf; va_start(args, format); buf = g_strdup_vprintf(format, args); va_end(args); dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_DESTROY_WITH_PARENT, icon, GTK_BUTTONS_CLOSE, "%s", buf); g_signal_connect_swapped (GTK_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (dialog)); gtk_widget_show_all(dialog); g_free(buf); } void gtkutils_add_label_entry(GtkWidget *box, const gchar *label_text, GtkWidget **entry, const gchar *default_string) { GtkWidget *hbox; GtkWidget *label; g_return_if_fail(entry != NULL); g_return_if_fail(label_text != NULL); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, TRUE, 0); label = gtk_label_new(label_text); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); *entry = gtk_entry_new(); if(default_string != NULL) gtk_entry_set_text(GTK_ENTRY(*entry), default_string); gtk_box_pack_start(GTK_BOX(hbox), *entry, TRUE, TRUE, 0); } void gtkutils_add_label_spin_button(GtkWidget *box, const gchar *label_text, GtkWidget **spin, gdouble min, gdouble max, gdouble step) { GtkWidget *hbox; GtkWidget *label; g_return_if_fail(spin != NULL); g_return_if_fail(label_text != NULL); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, TRUE, 0); label = gtk_label_new(label_text); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); *spin = gtk_spin_button_new_with_range(min, max, step); gtk_box_pack_start(GTK_BOX(hbox), *spin, FALSE, FALSE, 0); } void gtkutils_toggle_button_with_signal_handler_blocked(GtkToggleButton *button, guint signal_handler_id, gboolean bool) { g_signal_handler_block(button, signal_handler_id); gtk_toggle_button_set_active(button, bool); g_signal_handler_unblock(button, signal_handler_id); } gboolean gtk_tree_model_find_by_column_data (GtkTreeModel * model, GtkTreeIter * iter, GtkTreeIter * start, gint col, gpointer data) { gpointer stock; gboolean valid = TRUE; if (start == NULL) { valid = gtk_tree_model_get_iter_first(model, iter); } else { valid = gtk_tree_model_iter_children(model, iter, start); } while (valid) { gtk_tree_model_get(model, iter, col, &stock, -1); if (stock && stock == data) { return valid; } if (gtk_tree_model_iter_has_child(model, iter)) { GtkTreeIter toget; valid = gtk_tree_model_find_by_column_data (model, &toget, iter, col, data); if (valid) { *iter = toget; return valid; } } valid = gtk_tree_model_iter_next (model, iter); } return FALSE; } gchar * gtkutils_menu_translate(const gchar *path, gpointer data) { return gettext(path); } void gtkutils_exec_command_argument_with_error_dialog(const gchar *command, const gchar *argument) { gchar *buf, *p; gchar *quoted; g_return_if_fail(command != NULL); g_return_if_fail(argument != NULL); if(!( (p = strchr(command, '%')) && *(p + 1) == 's' && !strchr(p + 2, '%') )) gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Illegal command (make sure one %%s exists)")); quoted = g_shell_quote(argument); loqui_debug_puts("Quoted: %s", quoted); buf = g_strdup_printf(command, quoted); g_free(quoted); gtkutils_exec_command_with_error_dialog(buf); g_free(buf); } void gtkutils_exec_command_with_error_dialog(const gchar *command) { GError *error = NULL; g_return_if_fail(command != NULL); loqui_debug_puts("Execute: %s", command); g_spawn_command_line_async(command, &error); if(error != NULL) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Error occured when executing command, \"%s\":\n%s"), error->message, command); g_error_free(error); } } void gtkutils_set_label_color(GtkLabel *label, const gchar *color) { PangoAttrList *pattr_list; PangoAttribute *pattr; PangoColor pcolor; if(!pango_color_parse(&pcolor, color)) { g_warning(_("Unable to determine color: %s"), color); return; } pattr = pango_attr_foreground_new(pcolor.red, pcolor.green, pcolor.blue); pattr->start_index = 0; pattr->end_index = G_MAXUINT; pattr_list = pango_attr_list_new(); pango_attr_list_insert(pattr_list, pattr); gtk_label_set_use_markup(label, FALSE); gtk_label_set_use_underline(label, FALSE); gtk_label_set_attributes(label, pattr_list); /* pango_attr_list_unref(pattr_list); pango_attribute_destroy(pattr); */ } void gtkutils_set_textview_from_string_list(GtkTextView *textview, GList *list) { GtkTextBuffer *buffer; gchar *buf; g_return_if_fail(textview != NULL); g_return_if_fail(GTK_IS_TEXT_VIEW(textview)); buffer = gtk_text_view_get_buffer(textview); if(list) { buf = loqui_utils_line_separated_text_from_list(list); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(buffer), buf, -1); g_free(buf); } else { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(buffer), "", -1); } } void gtkutils_set_string_list_from_textview(GList **list_ptr, GtkTextView *textview) { gchar *buf; g_return_if_fail(list_ptr != NULL); g_return_if_fail(textview != NULL); g_return_if_fail(GTK_IS_TEXT_VIEW(textview)); buf = gtkutils_get_text_from_textview(textview); LOQUI_G_LIST_FREE_WITH_ELEMENT_FREE_UNLESS_NULL(*list_ptr); *list_ptr = loqui_utils_line_separated_text_to_list(buf); g_free(buf); } gchar * gtkutils_get_text_from_textview(GtkTextView *textview) { gchar *buf; GtkTextBuffer *buffer; GtkTextIter start, end; g_return_val_if_fail(textview != NULL, NULL); buffer = gtk_text_view_get_buffer(textview); gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(buffer), &start); gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(buffer), &end); buf = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(buffer), &start, &end, FALSE); return buf; } GtkWidget * gtkutils_create_framed_textview(GtkWidget **textview_ptr, const gchar *frame_label) { GtkWidget *frame; GtkWidget *scrolled_win; g_return_val_if_fail(textview_ptr != NULL, NULL); frame = gtk_frame_new(frame_label); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(frame), scrolled_win); *textview_ptr = gtk_text_view_new(); gtk_container_add(GTK_CONTAINER(scrolled_win), *textview_ptr); return frame; } void gtkutils_get_current_font_pixel_size(GtkWidget *widget, gint *width, gint *height) { PangoLayout *layout; layout = gtk_widget_create_pango_layout(widget, NULL); pango_layout_get_pixel_size(layout, width, height); g_object_unref(layout); } gboolean gtkutils_bindings_has_matched_entry(const gchar *class_name, guint modifiers, guint keyval) { GtkBindingSet *bset; GtkBindingEntry *bentry; gboolean found = FALSE; bset = gtk_binding_set_find(class_name); bentry = bset->entries; while (bentry != NULL) { if (keyval == bentry->keyval && modifiers == bentry->modifiers) { found = TRUE; break; } bentry = bentry->set_next; } return found; } void gtkutils_tree_view_popup(GtkTreeView *tree, GdkEventButton *event, GtkMenu *menu) { GtkTreePath *clicked_path; GtkTreeSelection *selection; GList *row_list = NULL, *search_list; if (!gtk_tree_view_get_path_at_pos(tree, event->x, event->y, &clicked_path, NULL, NULL, NULL)) { return; } selection = gtk_tree_view_get_selection(tree); row_list = gtk_tree_selection_get_selected_rows(selection, NULL); search_list = g_list_find_custom(row_list, clicked_path, (GCompareFunc) gtk_tree_path_compare); if (!search_list) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, clicked_path); } g_list_foreach(row_list, (GFunc) gtk_tree_path_free, NULL); g_list_free(row_list); gtk_tree_path_free(clicked_path); gtk_menu_popup(menu, NULL, NULL, NULL, tree, event->button, event->time); } gboolean gtkutils_widget_is_iconified(GtkWidget *widget) { return gdk_window_get_state(widget->window) & GDK_WINDOW_STATE_ICONIFIED; } void gtkutils_bin_remove_child_if_exist(GtkBin *bin) { GtkWidget *child; child = gtk_bin_get_child(bin); if (child) gtk_container_remove(GTK_CONTAINER(bin), child); } void gtkutils_menu_position_under_widget(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer user_data) { GtkWidget *w = GTK_WIDGET(user_data); const GtkAllocation *allocation = &w->allocation; gint screen_width, screen_height; GtkRequisition requisition; gdk_window_get_origin(w->window, x, y); *x += allocation->x; *y += allocation->y + allocation->height; gtk_widget_size_request(GTK_WIDGET (menu), &requisition); screen_width = gdk_screen_width(); screen_height = gdk_screen_height(); *x = CLAMP(*x, 0, MAX(0, screen_width - requisition.width)); *y = CLAMP(*y, 0, MAX(0, screen_height - requisition.height)); } /* for notification area */ void gtkutils_menu_position_under_or_below_widget(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer user_data) { GtkWidget *w = GTK_WIDGET(user_data); const GtkAllocation *allocation = &w->allocation; gint screen_width, screen_height; GtkRequisition requisition; gdk_window_get_origin(w->window, x, y); *x += allocation->x; *y += allocation->y + allocation->height; gtk_widget_size_request(GTK_WIDGET (menu), &requisition); screen_width = gdk_screen_width(); screen_height = gdk_screen_height(); /* lower area */ if (*y > screen_height / 2) { *x = CLAMP(*x, 0, MAX(0, screen_width - requisition.width)); *y = CLAMP(MAX(*y - allocation->height, 0), 0, MAX(0, screen_height - requisition.height - allocation->height)); } else { /* upper area */ *x = CLAMP(*x, 0, MAX(0, screen_width - requisition.width)); *y = CLAMP(*y, 0, MAX(0, screen_height - requisition.height)); } } PangoFontDescription * gtkutils_get_default_font_desc(void) { static PangoFontDescription *font_desc = NULL; if (!font_desc) { GtkWidget *window; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_ensure_style(window); font_desc = pango_font_description_copy (window->style->font_desc); gtk_object_sink(GTK_OBJECT(window)); } return pango_font_description_copy(font_desc); } loqui-0.5.5/src/loqui_app.h0000664000175000017500000001057412121600532012525 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #ifndef __LOQUI_APP_H__ #define __LOQUI_APP_H__ #include #include "loqui-general-pref-gtk.h" G_BEGIN_DECLS #define LOQUI_TYPE_APP (loqui_app_get_type ()) #define LOQUI_APP(obj) (GTK_CHECK_CAST ((obj), LOQUI_TYPE_APP, LoquiApp)) #define LOQUI_APP_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_APP, LoquiAppClass)) #define LOQUI_IS_APP(obj) (GTK_CHECK_TYPE ((obj), LOQUI_TYPE_APP)) #define LOQUI_IS_APP_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_APP)) #define LOQUI_APP_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), LOQUI_TYPE_APP, LoquiAppClass)) typedef struct _LoquiApp LoquiApp; typedef struct _LoquiAppClass LoquiAppClass; typedef struct _LoquiAppPrivate LoquiAppPrivate; #include #include "nick_list.h" #include "channel_tree.h" #include "loqui-tray-icon.h" #include "loqui_app_info.h" #include "loqui_channel_buffer_gtk.h" #include "loqui-transfer-window.h" #include "loqui-channel-entry-action-group.h" struct _LoquiApp { GtkWindow parent; LoquiAppPrivate *priv; LoquiAppInfo *appinfo; LoquiAccountManager *account_manager; LoquiChannelEntry *current_channel_entry; gboolean is_pending_update_account_info; gboolean is_pending_update_channel_info; guint updated_channel_number; guint updated_private_talk_number; guint channel_entry_id_max; GAsyncQueue *error_connections; GtkActionGroup *action_group; GtkUIManager *ui_manager; LoquiChannelEntryActionGroup *channel_entry_action_group; GtkTooltips *tooltips; GtkWidget *channelbar; GtkWidget *statusbar; GtkWidget *remark_entry; GtkWidget *channel_notebook; NickList *nick_list; ChannelTree *channel_tree; GtkWidget *common_textview; LoquiTrayIcon *tray_icon; LoquiTransferWindow *transfer_window; }; struct _LoquiAppClass { GtkWindowClass parent_class; }; GType loqui_app_get_type (void) G_GNUC_CONST; GtkWidget* loqui_app_new(LoquiAccountManager *manager); gboolean loqui_app_has_toplevel_focus(LoquiApp *app); gboolean loqui_app_is_obscured(LoquiApp *app); void loqui_app_grab_focus_if_key_unused(LoquiApp *app, const gchar *class_name, GdkEventKey *event); void loqui_app_set_common_buffer(LoquiApp *app, LoquiChannelBufferGtk *buffer); void loqui_app_set_auto_switch_scrolling_channel_buffers(LoquiApp *app, gboolean auto_switch_scrolling); void loqui_app_set_auto_switch_scrolling_common_buffer(LoquiApp *app, gboolean auto_switch_scrolling); void loqui_app_set_show_statusbar(LoquiApp *app, gboolean show); void loqui_app_set_show_channelbar(LoquiApp *app, gboolean show); void loqui_app_get_current_widget_editing_status(LoquiApp *app, gboolean *cutable, gboolean *copiable, gboolean *pastable, gboolean *clearable, gboolean *findable); LoquiAccountManager *loqui_app_get_account_manager(LoquiApp *app); LoquiChannelEntry *loqui_app_get_current_channel_entry(LoquiApp *app); void loqui_app_set_current_channel_entry(LoquiApp *app, LoquiChannelEntry *chent); LoquiChannel *loqui_app_get_current_channel(LoquiApp *app); LoquiAccount *loqui_app_get_current_account(LoquiApp *app); GtkWidget *loqui_app_get_current_channel_text_view(LoquiApp *app); gboolean loqui_app_is_current_account(LoquiApp *app, LoquiAccount *account); gboolean loqui_app_is_current_channel(LoquiApp *app, LoquiChannel *channel); void loqui_app_set_nick_list_sort_type(LoquiApp *app, PrefSortType sort_type); G_END_DECLS #endif /* __LOQUI_APP_H__ */ loqui-0.5.5/src/loqui-general-pref-gtk-groups.h0000664000175000017500000000046212121600532016325 00000000000000#define LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS "Gtk.Commands" #define LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL "Gtk.General" #define LOQUI_GENERAL_PREF_GTK_GROUP_SIZE "Gtk.Size" #define LOQUI_GENERAL_PREF_GTK_GROUP_TITLE_FORMAT "Gtk.TitleFormat" #define LOQUI_GENERAL_PREF_GTK_GROUP_VISIBILITY "Gtk.Visibility" loqui-0.5.5/src/loqui-channel-entry-ui-data.gob0000664000175000017500000000226712121600532016274 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ %} %h{ #include %} %{ #include #include %} class Loqui:Channel:Entry:UI:Data from G:Object { public gint channel_entry_merge_id = 0; public gint placeholder_merge_id = 0; public Loqui:Channel:Entry:UI:Data * new(void) { Self *self; self = GET_NEW; return self; } } loqui-0.5.5/src/loqui-core-gtk.h0000664000175000017500000000736712121605257013415 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_CORE_GTK_H__ #define __LOQUI_CORE_GTK_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "config.h" #include #include #include #include #include #include "loqui_app.h" #define FRESH_COLOR "red" #define FRESH_WEAK_COLOR "blue" #define NONFRESH_COLOR "black" #define HIGHLIGHT_COLOR "purple" #define UNJOINED_COLOR "grey" #define SHORTCUT_CHANNEL_ENTRY_ACCEL_MAP_PREFIX "/ChannelEntry " #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" /* * Type checking and casting macros */ #define LOQUI_TYPE_CORE_GTK (loqui_core_gtk_get_type()) #define LOQUI_CORE_GTK(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_core_gtk_get_type(), LoquiCoreGtk) #define LOQUI_CORE_GTK_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_core_gtk_get_type(), LoquiCoreGtk const) #define LOQUI_CORE_GTK_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_core_gtk_get_type(), LoquiCoreGtkClass) #define LOQUI_IS_CORE_GTK(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_core_gtk_get_type ()) #define LOQUI_CORE_GTK_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_core_gtk_get_type(), LoquiCoreGtkClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_CORE_GTK__ #define __TYPEDEF_LOQUI_CORE_GTK__ typedef struct _LoquiCoreGtk LoquiCoreGtk; #endif struct _LoquiCoreGtk { LoquiCore __parent__; /*< public >*/ LoquiPref * style_pref; LoquiProtocolManager * protocol_manager; LoquiAccountManager * account_manager; LoquiApp * app; }; /* * Class definition */ typedef struct _LoquiCoreGtkClass LoquiCoreGtkClass; struct _LoquiCoreGtkClass { LoquiCoreClass __parent__; }; /* * Public methods */ GType loqui_core_gtk_get_type (void) G_GNUC_CONST; #line 79 "loqui-core-gtk.gob" LoquiCoreGtk * loqui_core_gtk_new (void); #line 100 "loqui-core-gtk.h" #line 112 "loqui-core-gtk.gob" void loqui_core_gtk_load_stylerc (LoquiCoreGtk * self); #line 103 "loqui-core-gtk.h" #line 123 "loqui-core-gtk.gob" void loqui_core_gtk_save_stylerc (LoquiCoreGtk * self); #line 106 "loqui-core-gtk.h" #line 164 "loqui-core-gtk.gob" void loqui_core_gtk_initialize_with_args (LoquiCoreGtk * self, int * argc, char ** argv[]); #line 111 "loqui-core-gtk.h" #line 200 "loqui-core-gtk.gob" void loqui_core_gtk_load_general_pref (LoquiCoreGtk * self); #line 114 "loqui-core-gtk.h" #line 208 "loqui-core-gtk.gob" void loqui_core_gtk_save_general_pref (LoquiCoreGtk * self); #line 117 "loqui-core-gtk.h" #line 231 "loqui-core-gtk.gob" void loqui_core_gtk_run (LoquiCoreGtk * self); #line 120 "loqui-core-gtk.h" #line 262 "loqui-core-gtk.gob" LoquiApp * loqui_core_gtk_get_app (LoquiCoreGtk * self); #line 123 "loqui-core-gtk.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/Makefile.in0000664000175000017500000007443612121622350012441 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = loqui$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_loqui_OBJECTS = gtkutils.$(OBJEXT) main.$(OBJEXT) \ loqui_app_actions.$(OBJEXT) loqui_stock.$(OBJEXT) \ loqui_app.$(OBJEXT) loqui_app_info.$(OBJEXT) \ loqui_channel_entry_store.$(OBJEXT) \ loqui_channel_entry_action.$(OBJEXT) \ loqui_channel_buffer_gtk.$(OBJEXT) \ loqui_dropdown_box.$(OBJEXT) \ loqui_account_manager_store.$(OBJEXT) channel_tree.$(OBJEXT) \ nick_list.$(OBJEXT) about.$(OBJEXT) \ account_list_dialog.$(OBJEXT) loqui_statusbar.$(OBJEXT) \ prefs_dialog.$(OBJEXT) loqui_channel_text_view.$(OBJEXT) \ command_dialog.$(OBJEXT) remark_entry.$(OBJEXT) \ loqui_channelbar.$(OBJEXT) loqui_select_dialog.$(OBJEXT) \ prefs_general_upgrader.$(OBJEXT) loqui-core-gtk.$(OBJEXT) \ loqui-style-entry.$(OBJEXT) loqui-account-dialog.$(OBJEXT) \ loqui-protocol-selection-dialog.$(OBJEXT) \ loqui-transfer-window.$(OBJEXT) loqui-tray-icon.$(OBJEXT) \ loqui-channel-entry-action-group.$(OBJEXT) \ loqui-channel-entry-ui-data.$(OBJEXT) \ loqui-channel-entry-action-group-ui.$(OBJEXT) \ loqui-notifier-gtk.$(OBJEXT) loqui_OBJECTS = $(am_loqui_OBJECTS) am__DEPENDENCIES_1 = @HAVE_WINDRES_TRUE@am__DEPENDENCIES_2 = loqui.res loqui_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ../libloqui/libloqui.la $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(loqui_SOURCES) DIST_SOURCES = $(loqui_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons embedtxt @HAVE_WINDRES_FALSE@LOQUI_RES = @HAVE_WINDRES_TRUE@LOQUI_RES = loqui.res INCLUDES = -I$(includedir) -I$(top_srcdir)/libloqui -I$(top_builddir)/libloqui -I$(top_srcdir) -I$(top_builddir) -DG_LOG_DOMAIN=\"Loqui\" AM_CFLAGS = $(GTK_CFLAGS) $(EXTRA_WARNING_CFLAGS) -g -DDATADIR=\""$(datadir)"\" $(GNET_CFLAGS) -Wall -Wredundant-decls -Wmissing-declarations -Wmissing-prototypes loqui_SOURCES = \ gtkutils.c gtkutils.h \ main.c main.h \ loqui_app_actions.c loqui_app_actions.h \ loqui_stock.c loqui_stock.h \ loqui_app.c loqui_app.h \ loqui_app_info.c loqui_app_info.h \ loqui_channel_entry_store.c loqui_channel_entry_store.h \ loqui_channel_entry_action.c loqui_channel_entry_action.h \ loqui_channel_buffer_gtk.c loqui_channel_buffer_gtk.h \ loqui_dropdown_box.c loqui_dropdown_box.h \ loqui_account_manager_store.c loqui_account_manager_store.h \ channel_tree.c channel_tree.h \ nick_list.c nick_list.h \ about.c about.h \ account_list_dialog.c account_list_dialog.h \ loqui_statusbar.c loqui_statusbar.h \ prefs_dialog.c prefs_dialog.h \ loqui_channel_text_view.c loqui_channel_text_view.h \ command_dialog.c command_dialog.h \ remark_entry.c remark_entry.h \ loqui_channelbar.c loqui_channelbar.h \ loqui_select_dialog.c loqui_select_dialog.h \ prefs_general_upgrader.c prefs_general_upgrader.h \ loqui-general-pref-gtk.h loqui-general-pref-gtk-groups.h loqui-general-pref-gtk-default.h \ loqui-core-gtk.gob loqui-style-entry.gob loqui-account-dialog.gob loqui-protocol-selection-dialog.gob loqui-transfer-window.gob loqui-tray-icon.gob loqui-channel-entry-action-group.gob loqui-channel-entry-ui-data.gob loqui-channel-entry-action-group-ui.gob loqui-notifier-gtk.gob loqui-core-gtk.c loqui-style-entry.c loqui-account-dialog.c loqui-protocol-selection-dialog.c loqui-transfer-window.c loqui-tray-icon.c loqui-channel-entry-action-group.c loqui-channel-entry-ui-data.c loqui-channel-entry-action-group-ui.c loqui-notifier-gtk.c \ loqui-core-gtk.h loqui-style-entry.h loqui-account-dialog.h loqui-protocol-selection-dialog.h loqui-transfer-window.h loqui-tray-icon.h loqui-channel-entry-action-group.h loqui-channel-entry-ui-data.h loqui-channel-entry-action-group-ui.h loqui-notifier-gtk.h \ loqui-core-gtk-private.h loqui-style-entry-private.h loqui-account-dialog-private.h loqui-protocol-selection-dialog-private.h loqui-transfer-window-private.h loqui-tray-icon-private.h loqui-channel-entry-action-group-private.h loqui-channel-entry-ui-data-private.h loqui-channel-entry-action-group-ui-private.h loqui-notifier-gtk-private.h BUILT_SOURCES := \ loqui-core-gtk.c loqui-style-entry.c loqui-account-dialog.c loqui-protocol-selection-dialog.c loqui-transfer-window.c loqui-tray-icon.c loqui-channel-entry-action-group.c loqui-channel-entry-ui-data.c loqui-channel-entry-action-group-ui.c loqui-notifier-gtk.c \ loqui-core-gtk.h loqui-style-entry.h loqui-account-dialog.h loqui-protocol-selection-dialog.h loqui-transfer-window.h loqui-tray-icon.h loqui-channel-entry-action-group.h loqui-channel-entry-ui-data.h loqui-channel-entry-action-group-ui.h loqui-notifier-gtk.h \ loqui-core-gtk-private.h loqui-style-entry-private.h loqui-account-dialog-private.h loqui-protocol-selection-dialog-private.h loqui-transfer-window-private.h loqui-tray-icon-private.h loqui-channel-entry-action-group-private.h loqui-channel-entry-ui-data-private.h loqui-channel-entry-action-group-ui-private.h loqui-notifier-gtk-private.h loqui_LDADD = \ $(GTK_LIBS) $(GNET_LIBS) ../libloqui/libloqui.la $(LOQUI_RES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list loqui$(EXEEXT): $(loqui_OBJECTS) $(loqui_DEPENDENCIES) $(EXTRA_loqui_DEPENDENCIES) @rm -f loqui$(EXEEXT) $(LINK) $(loqui_OBJECTS) $(loqui_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/about.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/account_list_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/channel_tree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/command_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkutils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-account-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-channel-entry-action-group-ui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-channel-entry-action-group.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-channel-entry-ui-data.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-core-gtk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-notifier-gtk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-protocol-selection-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-style-entry.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-transfer-window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-tray-icon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_account_manager_store.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_app.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_app_actions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_app_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_buffer_gtk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_entry_action.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_entry_store.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_text_view.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channelbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_dropdown_box.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_select_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_statusbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_stock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nick_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs_dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs_general_upgrader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remark_entry.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS @MAINTAINER_MODE_TRUE@Makefile.am: %: %.m4 $(top_srcdir)/loqui-am-macros.m4 @MAINTAINER_MODE_TRUE@ m4 -I$(top_srcdir) $< > $@ show-needless-svn-ignore: all-am @svn propget svn:ignore . | while read line; do \ [ ! -z "$$(find . -maxdepth 1 -name "$$line" -print)" ] || \ echo "$$line"; \ done add-built-sources-to-bzr-ignore: @set -e;tmpname=$$(mktemp -t bzr-ignore-temp.XXXXXX) && ( \ ((cat "$(top_srcdir)/.bzrignore"; \ echo -n "$(BUILT_SOURCES)" | tr " " "\n" | sed -e "s|^|$(subdir)/|") | \ sort | uniq > "$$tmpname") && \ if cmp -s "$(top_srcdir)/.bzrignore" "$$tmpname"; then \ rm "$$tmpname"; \ else \ mv "$$tmpname" "$(top_srcdir)/.bzrignore"; \ fi; \ ) %.c %.h %-private.h: %.gob gob2 --always-private-header $< @HAVE_WINDRES_TRUE@loqui.rc: @HAVE_WINDRES_TRUE@ echo "LOQUI ICON icons/loqui.ico" > $@ @HAVE_WINDRES_TRUE@loqui.res: loqui.rc @HAVE_WINDRES_TRUE@ $(WINDRES) $< -O coff -o $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/src/command_dialog.c0000664000175000017500000002102112121600532013451 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #include "config.h" #include "command_dialog.h" #include "gtkutils.h" #include #include static gboolean check_account_connected(LoquiAccount *account); static gboolean check_channel_joined(LoquiChannel *channel); static gboolean check_account_connected(LoquiAccount *account) { if(account == NULL) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Account is not selected.")); return FALSE; } if(!loqui_account_get_is_connected(account)) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Account is not connected.")); return FALSE; } return TRUE; } static gboolean check_channel_joined(LoquiChannel *channel) { if (channel == NULL) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Channel is not selected")); return FALSE; } if (!loqui_channel_get_is_joined(channel)) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("You are not joined in this channel.")); return FALSE; } return TRUE; } void command_dialog_join(LoquiApp *app, LoquiAccount *account) { GtkWidget *dialog; GtkWidget *label; GtkWidget *entry_name; GtkWidget *entry_key; gchar *buf; const gchar *text_name, *text_key; gint result; if(!check_account_connected(account)) return; dialog = gtk_dialog_new_with_buttons(_("Join a channel"), GTK_WINDOW(app), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); buf = g_strdup_printf(_("Join a channel with the account %s"), loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account))); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 0); g_free(buf); gtkutils_add_label_entry(GTK_DIALOG(dialog)->vbox, _("Channel name:"), &entry_name, NULL); gtk_entry_set_activates_default(GTK_ENTRY(entry_name), TRUE); gtkutils_add_label_entry(GTK_DIALOG(dialog)->vbox, _("Channel key (if any):"), &entry_key, NULL); gtk_entry_set_activates_default(GTK_ENTRY(entry_key), TRUE); gtk_widget_show_all(GTK_DIALOG(dialog)->vbox); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_OK) { text_name = gtk_entry_get_text(GTK_ENTRY(entry_name)); text_key = gtk_entry_get_text(GTK_ENTRY(entry_key)); loqui_sender_join_raw(loqui_account_get_sender(account), text_name, text_key); } gtk_widget_destroy(dialog); } void command_dialog_private_talk(LoquiApp *app, LoquiAccount *account) { GtkWidget *dialog; GtkWidget *label; GtkWidget *entry_name; gchar *buf; const gchar *text_name; gint result; if(!check_account_connected(account)) return; dialog = gtk_dialog_new_with_buttons(_("Start private talk"), GTK_WINDOW(app), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); buf = g_strdup_printf(_("Start private talk with the user in %s"), loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account))); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 0); g_free(buf); gtkutils_add_label_entry(GTK_DIALOG(dialog)->vbox, _("Nickname:"), &entry_name, NULL); gtk_entry_set_activates_default(GTK_ENTRY(entry_name), TRUE); gtk_widget_show_all(GTK_DIALOG(dialog)->vbox); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_OK) { text_name = gtk_entry_get_text(GTK_ENTRY(entry_name)); loqui_sender_start_private_talk_raw(loqui_account_get_sender(account), text_name); } gtk_widget_destroy(dialog); } void command_dialog_part(LoquiApp *app, LoquiAccount *account, LoquiChannel *channel) { GtkWidget *dialog; GtkWidget *label; GtkWidget *entry; gchar *buf; const gchar *text; gint result; if (!check_account_connected(account)) return; dialog = gtk_dialog_new_with_buttons(_("Part the channel"), GTK_WINDOW(app), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); buf = g_strdup_printf(_("Part the channel %s (in %s)"), loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(channel)), loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account))); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 0); g_free(buf); gtkutils_add_label_entry(GTK_DIALOG(dialog)->vbox, _("Part message:"), &entry, NULL); gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); gtk_widget_show_all(GTK_DIALOG(dialog)->vbox); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_OK) { text = gtk_entry_get_text(GTK_ENTRY(entry)); loqui_sender_part(loqui_account_get_sender(account), channel, text); } gtk_widget_destroy(dialog); } void command_dialog_topic(LoquiApp *app, LoquiAccount *account, LoquiChannel *channel) { GtkWidget *dialog; GtkWidget *label; GtkWidget *entry; gchar *buf; const gchar *text; gint result; if (!check_account_connected(account)) return; if (!check_channel_joined(channel)) return; dialog = gtk_dialog_new_with_buttons(_("Set topic"), GTK_WINDOW(app), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); buf = g_strdup_printf(_("Set the topic of the channel %s (in %s)"), loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(channel)), loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account))); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 0); g_free(buf); gtkutils_add_label_entry(GTK_DIALOG(dialog)->vbox, _("Topic:"), &entry, loqui_channel_entry_get_topic(LOQUI_CHANNEL_ENTRY(channel))); gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); gtk_widget_show_all(GTK_DIALOG(dialog)->vbox); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_OK) { text = gtk_entry_get_text(GTK_ENTRY(entry)); loqui_sender_topic(loqui_account_get_sender(account), channel, text); } gtk_widget_destroy(dialog); } void command_dialog_nick(LoquiApp *app, LoquiAccount *account) { GtkWidget *dialog; GtkWidget *label; GtkWidget *entry; gchar *buf; const gchar *text; gint result; if (!check_account_connected(account)) return; dialog = gtk_dialog_new_with_buttons(_("Change nickname"), GTK_WINDOW(app), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); buf = g_strdup_printf(_("New nickname of the account %s"), loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account))); label = gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 0); g_free(buf); gtkutils_add_label_entry(GTK_DIALOG(dialog)->vbox, _("Nickname:"), &entry, loqui_user_get_nick(loqui_account_get_user_self(account))); gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); gtk_widget_show_all(GTK_DIALOG(dialog)->vbox); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_OK) { text = gtk_entry_get_text(GTK_ENTRY(entry)); loqui_sender_nick(loqui_account_get_sender(account), text); } gtk_widget_destroy(dialog); } loqui-0.5.5/src/loqui_dropdown_box.h0000664000175000017500000000477612121600532014460 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_DROPDOWN_BOX_H__ #define __LOQUI_DROPDOWN_BOX_H__ #include G_BEGIN_DECLS #define LOQUI_TYPE_DROPDOWN_BOX (loqui_dropdown_box_get_type ()) #define LOQUI_DROPDOWN_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_DROPDOWN_BOX, LoquiDropdownBox)) #define LOQUI_DROPDOWN_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_DROPDOWN_BOX, LoquiDropdownBoxClass)) #define LOQUI_IS_DROPDOWN_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_DROPDOWN_BOX)) #define LOQUI_IS_DROPDOWN_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_DROPDOWN_BOX)) #define LOQUI_DROPDOWN_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_DROPDOWN_BOX, LoquiDropdownBoxClass)) typedef struct _LoquiDropdownBox LoquiDropdownBox; typedef struct _LoquiDropdownBoxClass LoquiDropdownBoxClass; typedef struct _LoquiDropdownBoxPrivate LoquiDropdownBoxPrivate; struct _LoquiDropdownBox { GtkHBox parent; GtkWidget *drop_button; GtkWidget *drop_widget; GtkWidget *menu; LoquiDropdownBoxPrivate *priv; }; struct _LoquiDropdownBoxClass { GtkHBoxClass parent_class; }; GType loqui_dropdown_box_get_type(void) G_GNUC_CONST; /* if null, arrow is used */ GtkWidget* loqui_dropdown_box_new(GtkWidget *drop_widget); void loqui_dropdown_box_set_menu(LoquiDropdownBox *dbox, GtkWidget *menu); GtkWidget *loqui_dropdown_box_get_menu(LoquiDropdownBox *dbox); void loqui_dropdown_box_remove_menu(LoquiDropdownBox *dbox); G_END_DECLS #endif /* __LOQUI_DROPDOWN_BOX_H__ */ loqui-0.5.5/src/loqui_account_manager_store.c0000664000175000017500000006770612121600532016313 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_account_manager_store.h" #include "loqui-core-gtk.h" #include "loqui_stock.h" enum { LAST_SIGNAL }; enum { LAST_PROP }; struct _LoquiAccountManagerStorePrivate { LoquiChannel *channel_to_be_removed; }; static GObjectClass *parent_class = NULL; /* static guint loqui_account_manager_store_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_account_manager_store_class_init(LoquiAccountManagerStoreClass *klass); static void loqui_account_manager_store_init(LoquiAccountManagerStore *store); static void loqui_account_manager_store_finalize(GObject *object); static void loqui_account_manager_store_dispose(GObject *object); static void loqui_account_manager_store_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_account_manager_store_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_account_manager_store_tree_model_init(GtkTreeModelIface *iface); static GtkTreeModelFlags loqui_account_manager_store_get_flags (GtkTreeModel *tree_model); static gint loqui_account_manager_store_get_n_columns(GtkTreeModel *tree_model); static GType loqui_account_manager_store_get_column_type(GtkTreeModel *tree_model, gint index); static gboolean loqui_account_manager_store_get_iter(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path); static GtkTreePath *loqui_account_manager_store_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter); static void loqui_account_manager_store_get_value(GtkTreeModel *tree_model, GtkTreeIter *iter, gint column, GValue *value); static gboolean loqui_account_manager_store_iter_next(GtkTreeModel *tree_model, GtkTreeIter *iter); static gboolean loqui_account_manager_store_iter_children(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent); static gboolean loqui_account_manager_store_iter_has_child(GtkTreeModel *tree_model, GtkTreeIter *iter); static gint loqui_account_manager_store_iter_n_children(GtkTreeModel *tree_model, GtkTreeIter *iter); static gboolean loqui_account_manager_store_iter_nth_child(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent, gint n); static gboolean loqui_account_manager_store_iter_parent(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *child); static void loqui_account_manager_store_add_channel_after_cb(LoquiAccount *account, LoquiChannel *channel, LoquiAccountManagerStore *store); static void loqui_account_manager_store_add_account_after_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiAccountManagerStore *store); static void loqui_account_manager_store_remove_channel_cb(LoquiAccount *account, LoquiChannel *channel, LoquiAccountManagerStore *store); static void loqui_account_manager_store_remove_channel_after_cb(LoquiAccount *account, LoquiChannel *channel, LoquiAccountManagerStore *store); static void loqui_account_manager_store_remove_account_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiAccountManagerStore *store); static void loqui_account_manager_store_channel_notify_cb(LoquiChannel *channel, GParamSpec *pspec, LoquiAccountManagerStore *store); static void loqui_account_manager_store_account_notify_cb(LoquiAccount *account, GParamSpec *pspec, LoquiAccountManagerStore *store); static void loqui_account_manager_store_user_self_notify_cb(LoquiUser *user_self, GParamSpec *pspec, LoquiAccountManagerStore *store); static void loqui_account_manager_store_account_row_changed(LoquiAccountManagerStore *store, LoquiAccount *account); GType loqui_account_manager_store_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiAccountManagerStoreClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_account_manager_store_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiAccountManagerStore), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_account_manager_store_init }; static const GInterfaceInfo tree_model_info = { (GInterfaceInitFunc) loqui_account_manager_store_tree_model_init, NULL, NULL }; type = g_type_register_static(G_TYPE_OBJECT, "LoquiAccountManagerStore", &our_info, 0); g_type_add_interface_static(type, GTK_TYPE_TREE_MODEL, &tree_model_info); } return type; } static void loqui_account_manager_store_finalize(GObject *object) { LoquiAccountManagerStore *store; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(object)); store = LOQUI_ACCOUNT_MANAGER_STORE(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(store->priv); } static void loqui_account_manager_store_dispose(GObject *object) { LoquiAccountManagerStore *store; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(object)); store = LOQUI_ACCOUNT_MANAGER_STORE(object); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_account_manager_store_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiAccountManagerStore *store; store = LOQUI_ACCOUNT_MANAGER_STORE(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_account_manager_store_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiAccountManagerStore *store; store = LOQUI_ACCOUNT_MANAGER_STORE(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_account_manager_store_class_init(LoquiAccountManagerStoreClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_account_manager_store_finalize; object_class->dispose = loqui_account_manager_store_dispose; object_class->get_property = loqui_account_manager_store_get_property; object_class->set_property = loqui_account_manager_store_set_property; } static void loqui_account_manager_store_init(LoquiAccountManagerStore *store) { LoquiAccountManagerStorePrivate *priv; priv = g_new0(LoquiAccountManagerStorePrivate, 1); store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_CHANNEL_ENTRY] = LOQUI_TYPE_CHANNEL_ENTRY; store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_POSITION] = G_TYPE_INT; store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_NAME] = G_TYPE_STRING; store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_USERS] = G_TYPE_INT; store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_OP_USERS] = G_TYPE_INT; store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_COLOR] = G_TYPE_STRING; store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY] = G_TYPE_INT; store->column_types[LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY_STOCK_ID] = G_TYPE_STRING; store->stamp = g_random_int(); store->priv = priv; } static void loqui_account_manager_store_tree_model_init(GtkTreeModelIface *iface) { iface->get_flags = loqui_account_manager_store_get_flags; iface->get_n_columns = loqui_account_manager_store_get_n_columns; iface->get_column_type = loqui_account_manager_store_get_column_type; iface->get_iter = loqui_account_manager_store_get_iter; iface->get_path = loqui_account_manager_store_get_path; iface->get_value = loqui_account_manager_store_get_value; iface->iter_next = loqui_account_manager_store_iter_next; iface->iter_children = loqui_account_manager_store_iter_children; iface->iter_has_child = loqui_account_manager_store_iter_has_child; iface->iter_n_children = loqui_account_manager_store_iter_n_children; iface->iter_nth_child = loqui_account_manager_store_iter_nth_child; iface->iter_parent = loqui_account_manager_store_iter_parent; } static GtkTreeModelFlags loqui_account_manager_store_get_flags(GtkTreeModel *tree_model) { g_return_val_if_fail(tree_model != NULL, 0); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), 0); return GTK_TREE_MODEL_ITERS_PERSIST; } static gint loqui_account_manager_store_get_n_columns(GtkTreeModel *tree_model) { g_return_val_if_fail(tree_model != NULL, 0); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), 0); return LOQUI_ACCOUNT_MANAGER_STORE_N_COLUMNS; } static GType loqui_account_manager_store_get_column_type(GtkTreeModel *tree_model, gint index) { LoquiAccountManagerStore *store; g_return_val_if_fail(tree_model != NULL, 0); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), 0); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); g_return_val_if_fail(index >= 0 && index < LOQUI_ACCOUNT_MANAGER_STORE_N_COLUMNS, G_TYPE_INVALID); return store->column_types[index]; } static gboolean loqui_account_manager_store_get_iter(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; gint *indices, n, depth; GList *account_list, *channel_list; LoquiAccount *account; LoquiChannel *channel; GList *cur; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), FALSE); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; indices = gtk_tree_path_get_indices(path); depth = gtk_tree_path_get_depth(path); g_assert(depth == 1 || depth == 2); n = indices[0]; account_list = loqui_account_manager_get_account_list(store->manager); if (g_list_length(account_list) <= n) { return FALSE; } cur = g_list_nth(account_list, n); g_assert(cur->data != NULL); account = LOQUI_ACCOUNT(cur->data); if (depth == 1) { iter->stamp = store->stamp; iter->user_data = account; iter->user_data2 = cur; return TRUE; } n = indices[1]; channel_list = loqui_account_get_channel_list(account); if (g_list_length(channel_list) <= n) return FALSE; cur = g_list_nth(channel_list, n); g_assert(cur->data != NULL); channel = LOQUI_CHANNEL(cur->data); iter->stamp = store->stamp; iter->user_data = channel; iter->user_data2 = cur; return TRUE; } static GtkTreePath * loqui_account_manager_store_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter) { GtkTreePath *path; LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; LoquiChannelEntry *chent; LoquiAccount *account = NULL; LoquiChannel *channel = NULL; gint pos_ac, pos_ch; g_return_val_if_fail(tree_model != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), NULL); g_return_val_if_fail(iter != NULL, NULL); g_return_val_if_fail(iter->user_data != NULL, NULL); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY(iter->user_data), NULL); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; chent = iter->user_data; path = gtk_tree_path_new(); if (LOQUI_IS_ACCOUNT(chent)) { account = LOQUI_ACCOUNT(chent); channel = NULL; } else if (LOQUI_IS_CHANNEL(chent)) { channel = LOQUI_CHANNEL(chent); account = loqui_channel_get_account(channel); } pos_ac = g_list_index(loqui_account_manager_get_account_list(store->manager), account); gtk_tree_path_append_index(path, pos_ac); if (channel) { pos_ch = g_list_index(loqui_account_get_channel_list(account), channel); gtk_tree_path_append_index(path, pos_ch); } return path; } static void loqui_account_manager_store_get_value(GtkTreeModel *tree_model, GtkTreeIter *iter, gint column, GValue *value) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; LoquiChannelEntry *chent; LoquiUser *user_self; g_return_if_fail(tree_model != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model)); g_return_if_fail(iter != NULL); g_return_if_fail(iter->user_data != NULL); g_return_if_fail(column < LOQUI_ACCOUNT_MANAGER_STORE_N_COLUMNS); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; g_value_init(value, store->column_types[column]); chent = LOQUI_CHANNEL_ENTRY(iter->user_data); switch (column) { case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_CHANNEL_ENTRY: g_value_set_object(value, chent); return; case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_POSITION: g_value_set_int(value, loqui_channel_entry_get_position(chent)); return; case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_NAME: g_value_set_string(value, loqui_channel_entry_get_name(chent)); return; case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_COLOR: if (loqui_channel_entry_get_has_unread_keyword(chent)) { g_value_set_string(value, HIGHLIGHT_COLOR); return; } if (LOQUI_IS_CHANNEL(chent) && !loqui_channel_get_is_joined(LOQUI_CHANNEL(chent))) { g_value_set_string(value, UNJOINED_COLOR); return; } if (loqui_channel_entry_get_is_updated(chent)) { g_value_set_string(value, FRESH_COLOR); return; } if (loqui_channel_entry_get_is_updated_weak(chent)) { g_value_set_string(value, FRESH_WEAK_COLOR); return; } g_value_set_string(value, NONFRESH_COLOR); return; case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_USERS: g_value_set_int(value, loqui_channel_entry_get_member_number(chent)); return; case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_OP_USERS: g_value_set_int(value, loqui_channel_entry_get_op_number(chent)); return; default: break; } if (LOQUI_IS_ACCOUNT(chent)) { user_self = loqui_account_get_user_self(LOQUI_ACCOUNT(chent)); switch (column) { case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY: g_value_set_int(value, loqui_user_get_basic_away(user_self)); break; case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY_STOCK_ID: g_value_set_string(value, loqui_stock_get_id_from_basic_away_type(loqui_user_get_basic_away(user_self))); break; default: break; } } else { switch (column) { case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY: g_value_set_int(value, LOQUI_BASIC_AWAY_TYPE_UNKNOWN); break; case LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY_STOCK_ID: g_value_set_string(value, NULL); break; default: break; } } } static gboolean loqui_account_manager_store_iter_next(GtkTreeModel *tree_model, GtkTreeIter *iter) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; GList *cur; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), FALSE); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; g_return_val_if_fail(iter != NULL, FALSE); g_return_val_if_fail(store->stamp == iter->stamp, FALSE); g_return_val_if_fail(iter->user_data != NULL, FALSE); g_return_val_if_fail(iter->user_data2 != NULL, FALSE); cur = iter->user_data2; cur = cur->next; if (cur == NULL) return FALSE; iter->user_data = cur->data; iter->user_data2 = cur; return TRUE; } static gboolean loqui_account_manager_store_iter_children(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent) { return loqui_account_manager_store_iter_nth_child(tree_model, iter, parent, 0); } static gboolean loqui_account_manager_store_iter_has_child(GtkTreeModel *tree_model, GtkTreeIter *iter) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; GList *list; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), FALSE); g_return_val_if_fail(iter != NULL, FALSE); g_return_val_if_fail(iter->user_data != NULL, FALSE); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; if (!LOQUI_IS_ACCOUNT(iter->user_data)) return FALSE; list = loqui_account_get_channel_list(LOQUI_ACCOUNT(iter->user_data)); /* channels.length == 1 && channels[0].removed? => doesn't have child */ if (list && list->data == priv->channel_to_be_removed && list->next == NULL) { return FALSE; } if (list) return TRUE; return FALSE; } static gint loqui_account_manager_store_iter_n_children(GtkTreeModel *tree_model, GtkTreeIter *iter) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; g_return_val_if_fail(tree_model != NULL, -1); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), -1); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; if (!store->manager) return -1; if (iter->user_data == NULL) return g_list_length(loqui_account_manager_get_account_list(store->manager)); else if (LOQUI_IS_ACCOUNT(iter->user_data)) return g_list_length(loqui_account_get_channel_list(LOQUI_ACCOUNT(iter->user_data))); return 0; } static gboolean loqui_account_manager_store_iter_nth_child(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *parent, gint n) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; GList *account_list, *channel_list; GList *cur; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), FALSE); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; if (parent == NULL) { account_list = loqui_account_manager_get_account_list(store->manager); cur = g_list_nth(account_list, n); if (cur == NULL) return FALSE; iter->stamp = store->stamp; iter->user_data = cur->data; iter->user_data2 = cur; return TRUE; } else if (LOQUI_IS_ACCOUNT(parent->user_data)) { channel_list = loqui_account_get_channel_list(parent->user_data); cur = g_list_nth(channel_list, n); if (cur == NULL) return FALSE; iter->stamp = store->stamp; iter->user_data = cur->data; iter->user_data2 = cur; return TRUE; } return FALSE; } static gboolean loqui_account_manager_store_iter_parent(GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreeIter *child) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; g_return_val_if_fail(tree_model != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(tree_model), FALSE); store = LOQUI_ACCOUNT_MANAGER_STORE(tree_model); priv = store->priv; if (child == NULL) return FALSE; else if (LOQUI_IS_ACCOUNT(child->user_data)) { return FALSE; } else if (LOQUI_IS_CHANNEL(child->user_data)) { iter->stamp = store->stamp; iter->user_data = loqui_channel_get_account(LOQUI_CHANNEL(child->user_data)); iter->user_data2 = g_list_find(loqui_account_manager_get_account_list(store->manager), iter->user_data); return TRUE; } return FALSE; } static void loqui_account_manager_store_add_channel_after_cb(LoquiAccount *account, LoquiChannel *channel, LoquiAccountManagerStore *store) { GtkTreeIter iter; GtkTreePath *path; iter.stamp = store->stamp; iter.user_data = channel; iter.user_data2 = g_list_find(loqui_account_get_channel_list(account), channel); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_inserted(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); g_signal_connect(G_OBJECT(channel), "notify", G_CALLBACK(loqui_account_manager_store_channel_notify_cb), store); if (iter.user_data2 == loqui_account_get_channel_list(account)) { /* first appears */ iter.stamp = store->stamp; iter.user_data = account; iter.user_data2 = g_list_find(loqui_account_manager_get_account_list(store->manager), account); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); } } static void loqui_account_manager_store_add_account_after_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiAccountManagerStore *store) { GtkTreeIter iter; GtkTreePath *path; iter.stamp = store->stamp; iter.user_data = account; iter.user_data2 = g_list_find(loqui_account_manager_get_account_list(manager), account); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_inserted(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); g_signal_connect(G_OBJECT(account), "notify", G_CALLBACK(loqui_account_manager_store_account_notify_cb), store); g_signal_connect_after(G_OBJECT(account), "add-channel", G_CALLBACK(loqui_account_manager_store_add_channel_after_cb), store); g_signal_connect(G_OBJECT(account), "remove-channel", G_CALLBACK(loqui_account_manager_store_remove_channel_cb), store); g_signal_connect_after(G_OBJECT(account), "remove-channel", G_CALLBACK(loqui_account_manager_store_remove_channel_after_cb), store); g_signal_connect(G_OBJECT(account->user_self), "notify", G_CALLBACK(loqui_account_manager_store_user_self_notify_cb), store); } static void loqui_account_manager_store_remove_channel_cb(LoquiAccount *account, LoquiChannel *channel, LoquiAccountManagerStore *store) { LoquiAccountManagerStorePrivate *priv; GtkTreePath *path; GtkTreeIter iter; priv = store->priv; /* FIXME: ad-hoc way to avoid failing to check whether an child exists or not */ priv->channel_to_be_removed = channel; iter.stamp = store->stamp; iter.user_data = channel; iter.user_data2 = g_list_find(loqui_account_get_channel_list(account), channel); g_signal_handlers_disconnect_by_func(G_OBJECT(channel), loqui_account_manager_store_channel_notify_cb, store); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_deleted(GTK_TREE_MODEL(store), path); gtk_tree_path_free(path); iter.stamp = store->stamp; iter.user_data = account; iter.user_data2 = g_list_find(loqui_account_manager_get_account_list(store->manager), account); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); } static void loqui_account_manager_store_remove_channel_after_cb(LoquiAccount *account, LoquiChannel *channel, LoquiAccountManagerStore *store) { LoquiAccountManagerStorePrivate *priv; priv = store->priv; priv->channel_to_be_removed = NULL; } static void loqui_account_manager_store_remove_account_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiAccountManagerStore *store) { GtkTreePath *path; GtkTreeIter iter; GList *channel_list, *cur; iter.stamp = store->stamp; iter.user_data = account; iter.user_data2 = g_list_find(loqui_account_manager_get_account_list(manager), account); channel_list = loqui_account_get_channel_list(account); for (cur = channel_list; cur != NULL; cur = cur->next) { loqui_account_manager_store_remove_channel_cb(account, cur->data, store); loqui_account_manager_store_remove_channel_after_cb(account, cur->data, store); } g_signal_handlers_disconnect_by_func(G_OBJECT(account), loqui_account_manager_store_account_notify_cb, store); g_signal_handlers_disconnect_by_func(G_OBJECT(account), loqui_account_manager_store_add_channel_after_cb, store); g_signal_handlers_disconnect_by_func(G_OBJECT(account), loqui_account_manager_store_remove_channel_cb, store); g_signal_handlers_disconnect_by_func(G_OBJECT(account), loqui_account_manager_store_remove_channel_after_cb, store); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_deleted(GTK_TREE_MODEL(store), path); gtk_tree_path_free(path); } static void loqui_account_manager_store_channel_notify_cb(LoquiChannel *channel, GParamSpec *pspec, LoquiAccountManagerStore *store) { GtkTreePath *path; GtkTreeIter iter; iter.stamp = store->stamp; iter.user_data = channel; iter.user_data2 = g_list_find(loqui_account_get_channel_list(loqui_channel_get_account(channel)), channel); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); } static void loqui_account_manager_store_account_row_changed(LoquiAccountManagerStore *store, LoquiAccount *account) { GtkTreePath *path; GtkTreeIter iter; iter.stamp = store->stamp; iter.user_data = account; iter.user_data2 = g_list_find(loqui_account_manager_get_account_list(store->manager), account); path = loqui_account_manager_store_get_path(GTK_TREE_MODEL(store), &iter); gtk_tree_model_row_changed(GTK_TREE_MODEL(store), path, &iter); gtk_tree_path_free(path); } static void loqui_account_manager_store_user_self_notify_cb(LoquiUser *user_self, GParamSpec *pspec, LoquiAccountManagerStore *store) { LoquiAccount *account; account = g_object_get_data(G_OBJECT(user_self), LOQUI_ACCOUNT_USER_SELF_ACCOUNT_KEY); g_return_if_fail(account != NULL); loqui_account_manager_store_account_row_changed(store, account); } static void loqui_account_manager_store_account_notify_cb(LoquiAccount *account, GParamSpec *pspec, LoquiAccountManagerStore *store) { loqui_account_manager_store_account_row_changed(store, account); } LoquiAccountManagerStore* loqui_account_manager_store_new(LoquiAccountManager *manager) { LoquiAccountManagerStore *store; LoquiAccountManagerStorePrivate *priv; GList *cur_ac, *cur_ch; GList *account_list, *channel_list; g_return_val_if_fail(manager != NULL, NULL); store = g_object_new(loqui_account_manager_store_get_type(), NULL); priv = store->priv; store->manager = manager; account_list = loqui_account_manager_get_account_list(manager); for (cur_ac = account_list; cur_ac != NULL; cur_ac = cur_ac->next) { loqui_account_manager_store_add_account_after_cb(manager, cur_ac->data, store); channel_list = loqui_account_get_channel_list(cur_ac->data); for (cur_ch = channel_list; cur_ch != NULL; cur_ch = cur_ch->next) { loqui_account_manager_store_add_channel_after_cb(cur_ac->data, cur_ch->data, store); } } g_signal_connect_after(G_OBJECT(manager), "add-account", G_CALLBACK(loqui_account_manager_store_add_account_after_cb), store); g_signal_connect(G_OBJECT(manager), "remove-account", G_CALLBACK(loqui_account_manager_store_remove_account_cb), store); return store; } void loqui_account_manager_store_get_iter_by_channel_entry(LoquiAccountManagerStore* store, GtkTreeIter *iter, LoquiChannelEntry *chent) { g_return_if_fail(store != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT_MANAGER_STORE(store)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); iter->stamp = store->stamp; iter->user_data = chent; if (LOQUI_IS_ACCOUNT(chent)) { iter->user_data2 = g_list_find(loqui_account_manager_get_account_list(store->manager), chent); } else if (LOQUI_IS_CHANNEL(chent)) { iter->user_data2 = g_list_find(loqui_account_get_channel_list(loqui_channel_get_account(LOQUI_CHANNEL(chent))), chent); } } loqui-0.5.5/src/loqui-account-dialog.h0000664000175000017500000000637612121605257014572 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_ACCOUNT_DIALOG_H__ #define __LOQUI_ACCOUNT_DIALOG_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include #include /* * Type checking and casting macros */ #define LOQUI_TYPE_ACCOUNT_DIALOG (loqui_account_dialog_get_type()) #define LOQUI_ACCOUNT_DIALOG(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_account_dialog_get_type(), LoquiAccountDialog) #define LOQUI_ACCOUNT_DIALOG_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_account_dialog_get_type(), LoquiAccountDialog const) #define LOQUI_ACCOUNT_DIALOG_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_account_dialog_get_type(), LoquiAccountDialogClass) #define LOQUI_IS_ACCOUNT_DIALOG(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_account_dialog_get_type ()) #define LOQUI_ACCOUNT_DIALOG_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_account_dialog_get_type(), LoquiAccountDialogClass) /* Private structure type */ typedef struct _LoquiAccountDialogPrivate LoquiAccountDialogPrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_ACCOUNT_DIALOG__ #define __TYPEDEF_LOQUI_ACCOUNT_DIALOG__ typedef struct _LoquiAccountDialog LoquiAccountDialog; #endif struct _LoquiAccountDialog { GtkDialog __parent__; /*< private >*/ LoquiAccountDialogPrivate *_priv; }; /* * Class definition */ typedef struct _LoquiAccountDialogClass LoquiAccountDialogClass; struct _LoquiAccountDialogClass { GtkDialogClass __parent__; }; /* * Public methods */ GType loqui_account_dialog_get_type (void) G_GNUC_CONST; #line 397 "loqui-account-dialog.gob" GtkWidget * loqui_account_dialog_new (LoquiProfileAccount * profile); #line 83 "loqui-account-dialog.h" #line 436 "loqui-account-dialog.gob" void loqui_account_dialog_open_add_dialog (GtkWindow * parent, LoquiAccountManager * manager); #line 87 "loqui-account-dialog.h" #line 476 "loqui-account-dialog.gob" void loqui_account_dialog_open_configure_dialog (GtkWindow * parent, LoquiAccountManager * manager, LoquiAccount * account); #line 92 "loqui-account-dialog.h" #line 490 "loqui-account-dialog.gob" void loqui_account_dialog_open_remove_dialog (GtkWindow * parent, LoquiAccountManager * manager, LoquiAccount * account); #line 97 "loqui-account-dialog.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/remark_entry.c0000664000175000017500000005356012121600532013233 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #include "config.h" #include "remark_entry.h" #include "gdk/gdkkeysyms.h" #include #include "gtkutils.h" #include "loqui_stock.h" #include "loqui_channel_text_view.h" #include #include #include "main.h" #include #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" #include enum { CALL_HISTORY, SCROLL_CHANNEL_TEXTVIEW, SCROLL_COMMON_TEXTVIEW, LAST_SIGNAL }; struct _RemarkEntryPrivate { GList *string_list; gint current_index; gboolean is_multiline; GtkWidget *vbox; GtkToggleAction *toggle_command_action; GtkWidget *toggle_command; GtkWidget *hbox_text; GtkWidget *textview; GtkWidget *button_ok; GtkWidget *button_notice; GtkWidget *toggle_multiline; guint toggle_multiline_toggled_id; GtkWidget *toggle_palette; LoquiApp *app; }; static GtkHBoxClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_HBOX static guint remark_entry_signals[LAST_SIGNAL] = { 0 }; static void remark_entry_class_init(RemarkEntryClass *klass); static void remark_entry_init(RemarkEntry *remark_entry); static void remark_entry_finalize(GObject *object); static void remark_entry_destroy(GtkObject *object); static void remark_entry_grab_focus(GtkWidget *widget); static void remark_entry_entry_text_shown_cb(GtkWidget *widget, gpointer data); static void remark_entry_entry_multiline_toggled_cb(GtkWidget *widget, gpointer data); static void remark_entry_ok_clicked_cb(GtkWidget *widget, gpointer data); static void remark_entry_activate_cb(GtkWidget *widget, gpointer data); static void remark_entry_notice_clicked_cb(GtkWidget *widget, gpointer data); static void remark_entry_entry_changed_cb(GtkEntry *widget, RemarkEntry *remark_entry); static gboolean remark_entry_entry_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, RemarkEntry *remark_entry); static void remark_entry_history_add(RemarkEntry *entry, const gchar *str); static void remark_entry_send_text(RemarkEntry *remark_entry, gboolean is_notice); static void remark_entry_call_history(RemarkEntry *entry, gint count); static void remark_entry_scroll_channel_textview(RemarkEntry *entry, gint pages); static void remark_entry_scroll_common_textview(RemarkEntry *entry, gint pages); GType remark_entry_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(RemarkEntryClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) remark_entry_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(RemarkEntry), 0, /* n_preallocs */ (GInstanceInitFunc) remark_entry_init }; type = g_type_register_static(PARENT_TYPE, "RemarkEntry", &our_info, 0); } return type; } static void remark_entry_class_init(RemarkEntryClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); GtkBindingSet *binding_set; parent_class = g_type_class_peek_parent(klass); object_class->finalize = remark_entry_finalize; gtk_object_class->destroy = remark_entry_destroy; klass->call_history = remark_entry_call_history; klass->scroll_channel_textview = remark_entry_scroll_channel_textview; klass->scroll_common_textview = remark_entry_scroll_common_textview; GTK_WIDGET_CLASS(klass)->grab_focus = remark_entry_grab_focus; remark_entry_signals[CALL_HISTORY] = g_signal_new("call_history", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(RemarkEntryClass, call_history), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); remark_entry_signals[SCROLL_CHANNEL_TEXTVIEW] = g_signal_new("scroll_channel_textview", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(RemarkEntryClass, scroll_channel_textview), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); remark_entry_signals[SCROLL_COMMON_TEXTVIEW] = g_signal_new("scroll_common_textview", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(RemarkEntryClass, scroll_common_textview), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); binding_set = gtk_binding_set_by_class(klass); gtk_binding_entry_add_signal(binding_set, GDK_Up, 0, "call_history", 1, G_TYPE_INT, -1); gtk_binding_entry_add_signal(binding_set, GDK_Down, 0, "call_history", 1, G_TYPE_INT, 1); gtk_binding_entry_add_signal(binding_set, GDK_Page_Up, 0, "scroll_channel_textview", 1, G_TYPE_INT, -1); gtk_binding_entry_add_signal(binding_set, GDK_Page_Down, 0, "scroll_channel_textview", 1, G_TYPE_INT, 1); gtk_binding_entry_add_signal(binding_set, GDK_Page_Up, GDK_MOD1_MASK, "scroll_common_textview", 1, G_TYPE_INT, -1); gtk_binding_entry_add_signal(binding_set, GDK_Page_Down, GDK_MOD1_MASK, "scroll_common_textview", 1, G_TYPE_INT, 1); } static void remark_entry_init(RemarkEntry *remark_entry) { RemarkEntryPrivate *priv; priv = g_new0(RemarkEntryPrivate, 1); priv->is_multiline = FALSE; priv->current_index = 0; remark_entry->priv = priv; } static void remark_entry_finalize(GObject *object) { RemarkEntry *remark_entry; g_return_if_fail(object != NULL); g_return_if_fail(IS_REMARK_ENTRY(object)); remark_entry = REMARK_ENTRY(object); if(G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(remark_entry->priv); } static void remark_entry_destroy(GtkObject *object) { RemarkEntry *remark_entry; g_return_if_fail(object != NULL); g_return_if_fail(IS_REMARK_ENTRY(object)); remark_entry = REMARK_ENTRY(object); if(GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void remark_entry_grab_focus(GtkWidget *widget) { RemarkEntry *entry; RemarkEntryPrivate *priv; g_return_if_fail(widget != NULL); g_return_if_fail(IS_REMARK_ENTRY(widget)); entry = REMARK_ENTRY(widget); priv = entry->priv; if(remark_entry_get_multiline(entry)) gtk_widget_grab_focus(priv->textview); else { gtk_widget_grab_focus(entry->entry); gtk_editable_select_region(GTK_EDITABLE(entry->entry), -1, -1); } } GtkWidget* remark_entry_new(LoquiApp *app, GtkToggleAction *toggle_command_action) { RemarkEntry *remark_entry; RemarkEntryPrivate *priv; GtkWidget *hbox; GtkWidget *image; gchar *text; GtkWidget *scwin; remark_entry = g_object_new(remark_entry_get_type(), NULL); priv = remark_entry->priv; priv->app = app; g_object_ref(toggle_command_action); priv->toggle_command_action = toggle_command_action; hbox = GTK_WIDGET(remark_entry); priv->toggle_command = gtk_toggle_button_new(); gtk_action_connect_proxy(GTK_ACTION(toggle_command_action), priv->toggle_command); gtkutils_bin_remove_child_if_exist(GTK_BIN((priv->toggle_command))); gtk_button_set_focus_on_click(GTK_BUTTON(priv->toggle_command), FALSE); g_object_get(G_OBJECT(toggle_command_action), "tooltip", &text, NULL); gtk_tooltips_set_tip(app->tooltips, priv->toggle_command, text, NULL); image = gtk_image_new_from_stock(LOQUI_STOCK_COMMAND, GTK_ICON_SIZE_BUTTON); gtk_container_add(GTK_CONTAINER(priv->toggle_command), image); gtk_widget_show(image); gtk_button_set_relief(GTK_BUTTON(priv->toggle_command), GTK_RELIEF_NONE); gtk_box_pack_start(GTK_BOX(hbox), priv->toggle_command, FALSE, FALSE, 0); priv->vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), priv->vbox, TRUE, TRUE, 0); remark_entry->entry = gtk_entry_new(); g_signal_connect(G_OBJECT(remark_entry->entry), "activate", G_CALLBACK(remark_entry_activate_cb), remark_entry); g_signal_connect(G_OBJECT(remark_entry->entry), "key_press_event", G_CALLBACK(remark_entry_entry_key_press_event_cb), remark_entry); g_signal_connect(G_OBJECT(remark_entry->entry), "show", G_CALLBACK(remark_entry_entry_text_shown_cb), remark_entry); g_signal_connect(G_OBJECT(remark_entry->entry), "changed", G_CALLBACK(remark_entry_entry_changed_cb), remark_entry); gtk_box_pack_start(GTK_BOX(priv->vbox), remark_entry->entry, TRUE, TRUE, 0); priv->hbox_text = gtk_hbox_new(FALSE, 0); g_signal_connect(G_OBJECT(priv->hbox_text), "show", G_CALLBACK(remark_entry_entry_text_shown_cb), remark_entry); gtk_box_pack_start(GTK_BOX(priv->vbox), priv->hbox_text, TRUE, TRUE, 2); scwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(priv->hbox_text), scwin, TRUE, TRUE, 0); priv->textview = gtk_text_view_new(); gtk_container_add(GTK_CONTAINER(scwin), priv->textview); image = gtk_image_new_from_stock(GTK_STOCK_OK, GTK_ICON_SIZE_BUTTON); priv->button_ok = gtk_button_new(); gtk_container_add(GTK_CONTAINER(priv->button_ok), image); g_signal_connect(G_OBJECT(priv->button_ok), "clicked", G_CALLBACK(remark_entry_ok_clicked_cb), remark_entry); g_signal_connect_swapped(G_OBJECT(priv->button_ok), "clicked", G_CALLBACK(remark_entry_grab_focus), remark_entry); gtk_box_pack_start(GTK_BOX(priv->hbox_text), priv->button_ok, FALSE, FALSE, 0); image = gtk_image_new_from_stock(LOQUI_STOCK_NOTICE, GTK_ICON_SIZE_BUTTON); priv->button_notice = gtk_button_new(); gtk_container_add(GTK_CONTAINER(priv->button_notice), image); g_signal_connect(G_OBJECT(priv->button_notice), "clicked", G_CALLBACK(remark_entry_notice_clicked_cb), remark_entry); gtk_tooltips_set_tip(app->tooltips, priv->button_notice, _("Send message with NOTICE command (Ctrl+Enter)"), NULL); gtk_button_set_focus_on_click(GTK_BUTTON(priv->button_notice), FALSE); gtk_box_pack_start(GTK_BOX(hbox), priv->button_notice, FALSE, FALSE, 0); image = gtk_image_new_from_stock(GTK_STOCK_JUSTIFY_LEFT, GTK_ICON_SIZE_BUTTON); priv->toggle_multiline = gtk_toggle_button_new(); gtk_container_add(GTK_CONTAINER(priv->toggle_multiline), image); priv->toggle_multiline_toggled_id = g_signal_connect(G_OBJECT(priv->toggle_multiline), "toggled", G_CALLBACK(remark_entry_entry_multiline_toggled_cb), remark_entry); gtk_button_set_focus_on_click(GTK_BUTTON(priv->toggle_multiline), FALSE); gtk_tooltips_set_tip(app->tooltips, priv->toggle_multiline, _("Toggle multiline mode"), NULL); gtk_box_pack_start(GTK_BOX(hbox), priv->toggle_multiline, FALSE, FALSE, 0); /* TODO: color palette image = gtk_image_new_from_stock(GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_BUTTON); priv->toggle_palette = gtk_toggle_button_new(); gtk_container_add(GTK_CONTAINER(priv->toggle_palette), image); gtk_box_pack_start(GTK_BOX(hbox), priv->toggle_palette, FALSE, FALSE, 0); gtk_widget_set_sensitive(priv->toggle_palette, FALSE); */ priv->string_list = g_list_prepend(priv->string_list, NULL); return GTK_WIDGET(remark_entry); } G_CONST_RETURN gchar * remark_entry_get_text(RemarkEntry *entry) { RemarkEntryPrivate *priv; GtkTextBuffer *buffer; GtkTextIter start, end; const gchar *str = NULL; g_return_val_if_fail(entry != NULL, NULL); g_return_val_if_fail(IS_REMARK_ENTRY(entry), NULL); priv = entry->priv; if(priv->is_multiline) { buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(priv->textview)); gtk_text_buffer_get_start_iter(buffer, &start); gtk_text_buffer_get_end_iter(buffer, &end); str = gtk_text_buffer_get_text(buffer, &start, &end, TRUE); } else { str = gtk_entry_get_text(GTK_ENTRY(entry->entry)); } return str; } void remark_entry_clear_text(RemarkEntry *entry) { RemarkEntryPrivate *priv; g_return_if_fail(entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(entry)); priv = entry->priv; gtk_entry_set_text(GTK_ENTRY(entry->entry), ""); gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(priv->textview)), "", 0); } void remark_entry_set_multiline(RemarkEntry *entry, gboolean is_multiline) { RemarkEntryPrivate *priv; GtkTextBuffer *buffer; GtkTextIter start, end; const gchar *str; g_return_if_fail(entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(entry)); priv = entry->priv; if(priv->is_multiline == is_multiline) return; priv->is_multiline = is_multiline; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(priv->textview)); if(is_multiline) { str = gtk_entry_get_text(GTK_ENTRY(entry->entry)); gtk_text_buffer_set_text(buffer, str, -1); gtk_widget_hide(entry->entry); gtk_widget_show_all(priv->hbox_text); } else { gtk_text_buffer_get_start_iter(buffer, &start); gtk_text_buffer_get_end_iter(buffer, &end); str = gtk_text_buffer_get_text(buffer, &start, &end, TRUE); gtk_entry_set_text(GTK_ENTRY(entry->entry), str); gtk_widget_hide_all(priv->hbox_text); gtk_widget_show(entry->entry); } gtkutils_toggle_button_with_signal_handler_blocked(GTK_TOGGLE_BUTTON(priv->toggle_multiline), priv->toggle_multiline_toggled_id, is_multiline); gtk_widget_grab_focus(GTK_WIDGET(entry)); } gboolean remark_entry_get_multiline(RemarkEntry *entry) { RemarkEntryPrivate *priv; g_return_val_if_fail(entry != NULL, FALSE); g_return_val_if_fail(IS_REMARK_ENTRY(entry), FALSE); priv = entry->priv; return priv->is_multiline; } void remark_entry_set_command_mode(RemarkEntry *entry, gboolean command_mode) { RemarkEntryPrivate *priv; g_return_if_fail(entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(entry)); priv = entry->priv; gtk_toggle_action_set_active(priv->toggle_command_action, command_mode); } gboolean remark_entry_get_command_mode(RemarkEntry *entry) { RemarkEntryPrivate *priv; g_return_val_if_fail(entry != NULL, FALSE); g_return_val_if_fail(IS_REMARK_ENTRY(entry), FALSE); priv = entry->priv; return gtk_toggle_action_get_active(priv->toggle_command_action); } static void remark_entry_history_add(RemarkEntry *entry, const gchar *str) { RemarkEntryPrivate *priv; gint diff; GList *cur, *prev; g_return_if_fail(entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(entry)); priv = entry->priv; priv->string_list = g_list_insert(priv->string_list, g_strdup(str), 1); diff = (gint) g_list_length(priv->string_list) - (gint) loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "RemarkHistoryNumber", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_REMARK_HISTORY_NUMBER, NULL) - 1; if(diff > 0) { cur = g_list_last(priv->string_list); while(cur && diff > 0) { prev = cur->prev; g_free((gchar *) cur->data); priv->string_list = g_list_delete_link(priv->string_list, cur); diff--; cur = prev; } } } static void remark_entry_call_history(RemarkEntry *entry, gint count) { RemarkEntryPrivate *priv; gint length, dest; GList *cur; gchar *new_str; g_return_if_fail(entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(entry)); priv = entry->priv; length = g_list_length(priv->string_list); if (priv->current_index >= length) return; dest = priv->current_index - count; if (dest < 0 || length <= dest) return; cur = g_list_nth(priv->string_list, priv->current_index); if(cur->data) g_free(cur->data); cur->data = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry->entry))); priv->current_index = dest; new_str = g_list_nth_data(priv->string_list, dest); gtk_entry_set_text(GTK_ENTRY(entry->entry), new_str == NULL ? "" : new_str); } static void remark_entry_scroll_channel_textview(RemarkEntry *entry, gint pages) { RemarkEntryPrivate *priv; GtkWidget *chview; g_return_if_fail(entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(entry)); priv = entry->priv; chview = loqui_app_get_current_channel_text_view(priv->app); if (chview) loqui_channel_text_view_scroll(LOQUI_CHANNEL_TEXT_VIEW(chview), GTK_MOVEMENT_PAGES, pages); } static void remark_entry_scroll_common_textview(RemarkEntry *entry, gint pages) { RemarkEntryPrivate *priv; g_return_if_fail(entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(entry)); priv = entry->priv; loqui_channel_text_view_scroll(LOQUI_CHANNEL_TEXT_VIEW(priv->app->common_textview), GTK_MOVEMENT_PAGES, pages); } static void remark_entry_send_text(RemarkEntry *remark_entry, gboolean is_notice) { RemarkEntryPrivate *priv; gchar *str, *cur; LoquiAccount *account; LoquiChannel *channel; gchar *command_prefix; g_return_if_fail(remark_entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(remark_entry)); priv = remark_entry->priv; if (strlen(remark_entry_get_text(remark_entry)) == 0) return; str = g_strdup(remark_entry_get_text(remark_entry)); account = loqui_app_get_current_account(priv->app); if (!account) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Not selected an account")); g_free(str); return; } if(!loqui_account_get_is_connected(account)) { gtkutils_msgbox_info(GTK_MESSAGE_WARNING, _("Not connected with this account")); g_free(str); return; } cur = str; if (remark_entry_get_command_mode(remark_entry)) { if (strchr(cur, '\n')) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Command contains linefeed.")); return; } command_prefix = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "CommandPrefix", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_COMMAND_PREFIX, NULL); if (g_str_has_prefix(cur, command_prefix)) cur += strlen(command_prefix); g_free(command_prefix); if (!LOQUI_IS_SENDER_IRC(account->sender)) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Using not IRC account")); return; } loqui_sender_irc_send_raw(LOQUI_SENDER_IRC(account->sender), cur); } else { channel = loqui_app_get_current_channel(priv->app); if(channel == NULL) { gtkutils_msgbox_info(GTK_MESSAGE_WARNING, _("No channel is selected")); return; } if (is_notice) loqui_sender_notice(account->sender, channel, str); else loqui_sender_say(account->sender, channel, str); } remark_entry_clear_text(remark_entry); remark_entry_history_add(remark_entry, str); g_free(str); priv->current_index = 0; LOQUI_G_FREE_UNLESS_NULL(priv->string_list->data); remark_entry_set_command_mode(remark_entry, FALSE); } static gboolean remark_entry_entry_key_press_event_cb(GtkWidget *ewidget, GdkEventKey *event, RemarkEntry *remark_entry) { g_return_val_if_fail(remark_entry != NULL, FALSE); g_return_val_if_fail(IS_REMARK_ENTRY(remark_entry), FALSE); if (event->state & GDK_CONTROL_MASK) { switch (event->keyval) { case GDK_Return: case GDK_KP_Enter: remark_entry_send_text(remark_entry, TRUE); return TRUE; default: break; } } return FALSE; } static void remark_entry_activate_cb(GtkWidget *widget, gpointer data) { remark_entry_send_text(data, FALSE); } static void remark_entry_ok_clicked_cb(GtkWidget *widget, gpointer data) { remark_entry_send_text(data, FALSE); } static void remark_entry_notice_clicked_cb(GtkWidget *widget, gpointer data) { remark_entry_send_text(data, TRUE); } static void remark_entry_entry_multiline_toggled_cb(GtkWidget *widget, gpointer data) { RemarkEntry *remark_entry; RemarkEntryPrivate *priv; g_return_if_fail(data != NULL); g_return_if_fail(IS_REMARK_ENTRY(data)); remark_entry = REMARK_ENTRY(data); priv = remark_entry->priv; remark_entry_set_multiline(remark_entry, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); } static void remark_entry_entry_changed_cb(GtkEntry *widget, RemarkEntry *remark_entry) { RemarkEntryPrivate *priv; const gchar *tmp; gchar *command_prefix; g_return_if_fail(remark_entry != NULL); g_return_if_fail(IS_REMARK_ENTRY(remark_entry)); priv = remark_entry->priv; if (loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoCommandMode", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_COMMAND_MODE, NULL)) { command_prefix = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "CommandPrefix", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_COMMAND_PREFIX, NULL); tmp = gtk_entry_get_text(GTK_ENTRY(remark_entry->entry)); remark_entry_set_command_mode(remark_entry, g_str_has_prefix(tmp, command_prefix)); g_free(command_prefix); } } static void remark_entry_entry_text_shown_cb(GtkWidget *widget, gpointer data) { RemarkEntry *remark_entry; RemarkEntryPrivate *priv; g_return_if_fail(data != NULL); g_return_if_fail(IS_REMARK_ENTRY(data)); remark_entry = REMARK_ENTRY(data); priv = remark_entry->priv; if(remark_entry_get_multiline(remark_entry)) gtk_widget_hide(remark_entry->entry); else gtk_widget_hide_all(priv->hbox_text); } loqui-0.5.5/src/loqui-channel-entry-action-group-private.h0000664000175000017500000000265112121605257020515 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 2 "loqui-channel-entry-action-group.gob" #line 26 "loqui-channel-entry-action-group-private.h" #ifndef __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_PRIVATE_H__ #define __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_PRIVATE_H__ #include "loqui-channel-entry-action-group.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ struct _LoquiChannelEntryActionGroupPrivate { #line 52 "loqui-channel-entry-action-group.gob" LoquiApp * app; #line 39 "loqui-channel-entry-action-group-private.h" }; #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-general-pref-gtk-default.h0000664000175000017500000000332412121600532016432 00000000000000#define LOQUI_GENERAL_PREF_GTK_DEFAULT_COMMANDS_BROWSER_COMMAND "xdg-open %s" #define LOQUI_GENERAL_PREF_GTK_DEFAULT_COMMANDS_NOTIFICATION_COMMAND "canberra-gtk-play --id message-new-instant" #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_COMMAND_MODE TRUE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_SWITCH_SCROLLING TRUE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_SWITCH_SCROLLING_COMMON_BUFFER FALSE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_CHANNEL_BUFFER_MAX_LINE_NUMBER 2000 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_COMMAND_PREFIX "/" #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_COMMON_BUFFER_MAX_LINE_NUMBER 500 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_CONNECT_STARTUP FALSE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_NICK_LIST_SORT_TYPE 2 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_REMARK_HISTORY_NUMBER 10 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_SAVE_LOG FALSE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_SELECT_CHANNEL_JOINED TRUE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_TIME_FORMAT "%H:%M " #define LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_CHANNEL_TREE_HEIGHT 180 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_CHANNEL_TREE_WIDTH 100 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_COMMON_BUFFER_HEIGHT 150 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_SAVE_SIZE TRUE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_WINDOW_HEIGHT 400 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_WINDOW_WIDTH 480 #define LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_STATUSBAR "" #define LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_TITLE "" #define LOQUI_GENERAL_PREF_GTK_DEFAULT_VISIBILITY_SHOW_CHANNELBAR TRUE #define LOQUI_GENERAL_PREF_GTK_DEFAULT_VISIBILITY_SHOW_STATUSBAR TRUE loqui-0.5.5/src/loqui-protocol-selection-dialog.c0000664000175000017500000002610212121605257016742 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-protocol-selection-dialog.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 28 "loqui-protocol-selection-dialog.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-protocol-selection-dialog.h" #include "loqui-protocol-selection-dialog-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 30 "loqui-protocol-selection-dialog.gob" #include #include enum { COLUMN_NAME, COLUMN_PROTOCOL, COLUMN_NUMBER, }; #line 62 "loqui-protocol-selection-dialog.c" /* self casting macros */ #define SELF(x) LOQUI_PROTOCOL_SELECTION_DIALOG(x) #define SELF_CONST(x) LOQUI_PROTOCOL_SELECTION_DIALOG_CONST(x) #define IS_SELF(x) LOQUI_IS_PROTOCOL_SELECTION_DIALOG(x) #define TYPE_SELF LOQUI_TYPE_PROTOCOL_SELECTION_DIALOG #define SELF_CLASS(x) LOQUI_PROTOCOL_SELECTION_DIALOG_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_PROTOCOL_SELECTION_DIALOG_GET_CLASS(x) /* self typedefs */ typedef LoquiProtocolSelectionDialog Self; typedef LoquiProtocolSelectionDialogClass SelfClass; /* here are local prototypes */ #line 0 "loqui-protocol-selection-dialog.gob" static void loqui_protocol_selection_dialog_init (LoquiProtocolSelectionDialog * o) G_GNUC_UNUSED; #line 79 "loqui-protocol-selection-dialog.c" #line 0 "loqui-protocol-selection-dialog.gob" static void loqui_protocol_selection_dialog_class_init (LoquiProtocolSelectionDialogClass * c) G_GNUC_UNUSED; #line 82 "loqui-protocol-selection-dialog.c" #line 50 "loqui-protocol-selection-dialog.gob" static void loqui_protocol_selection_dialog_add_widgets (LoquiProtocolSelectionDialog * self) G_GNUC_UNUSED; #line 85 "loqui-protocol-selection-dialog.c" #line 69 "loqui-protocol-selection-dialog.gob" static void loqui_protocol_selection_dialog_load_protocols (LoquiProtocolSelectionDialog * self, LoquiProtocol * default_protocol) G_GNUC_UNUSED; #line 88 "loqui-protocol-selection-dialog.c" /* pointer to the class of our parent */ static GtkMessageDialogClass *parent_class = NULL; /* Short form macros */ #define self_add_widgets loqui_protocol_selection_dialog_add_widgets #define self_load_protocols loqui_protocol_selection_dialog_load_protocols #define self_get_protocol loqui_protocol_selection_dialog_get_protocol #define self_new loqui_protocol_selection_dialog_new GType loqui_protocol_selection_dialog_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiProtocolSelectionDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_protocol_selection_dialog_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiProtocolSelectionDialog), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_protocol_selection_dialog_init, NULL }; type = g_type_register_static (GTK_TYPE_MESSAGE_DIALOG, "LoquiProtocolSelectionDialog", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiProtocolSelectionDialog *)g_object_new(loqui_protocol_selection_dialog_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiProtocolSelectionDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiProtocolSelectionDialog * GET_NEW_VARG (const char *first, ...) { LoquiProtocolSelectionDialog *ret; va_list ap; va_start (ap, first); ret = (LoquiProtocolSelectionDialog *)g_object_new_valist (loqui_protocol_selection_dialog_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::dispose" LoquiProtocolSelectionDialog *self G_GNUC_UNUSED = LOQUI_PROTOCOL_SELECTION_DIALOG (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #line 45 "loqui-protocol-selection-dialog.gob" if(self->_priv->protocol_manager) { g_object_unref ((gpointer) self->_priv->protocol_manager); self->_priv->protocol_manager = NULL; } #line 150 "loqui-protocol-selection-dialog.c" #line 48 "loqui-protocol-selection-dialog.gob" if(self->_priv->store) { g_object_unref ((gpointer) self->_priv->store); self->_priv->store = NULL; } #line 153 "loqui-protocol-selection-dialog.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::finalize" LoquiProtocolSelectionDialog *self G_GNUC_UNUSED = LOQUI_PROTOCOL_SELECTION_DIALOG (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_protocol_selection_dialog_init (LoquiProtocolSelectionDialog * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_PROTOCOL_SELECTION_DIALOG,LoquiProtocolSelectionDialogPrivate); #line 30 "loqui-protocol-selection-dialog.gob" o->_priv->protocol_manager = NULL; #line 176 "loqui-protocol-selection-dialog.c" } #undef __GOB_FUNCTION__ static void loqui_protocol_selection_dialog_class_init (LoquiProtocolSelectionDialogClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiProtocolSelectionDialogPrivate)); parent_class = g_type_class_ref (GTK_TYPE_MESSAGE_DIALOG); g_object_class->dispose = ___dispose; g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 50 "loqui-protocol-selection-dialog.gob" static void loqui_protocol_selection_dialog_add_widgets (LoquiProtocolSelectionDialog * self) { #line 200 "loqui-protocol-selection-dialog.c" #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::add_widgets" #line 50 "loqui-protocol-selection-dialog.gob" g_return_if_fail (self != NULL); #line 50 "loqui-protocol-selection-dialog.gob" g_return_if_fail (LOQUI_IS_PROTOCOL_SELECTION_DIALOG (self)); #line 206 "loqui-protocol-selection-dialog.c" { #line 51 "loqui-protocol-selection-dialog.gob" GtkCellRenderer *renderer; GtkWidget *vbox; vbox = GTK_DIALOG(self)->vbox; renderer = gtk_cell_renderer_text_new(); selfp->combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(selfp->store)); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->combobox), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->combobox), renderer, "text", COLUMN_NAME, NULL); gtk_box_pack_start(GTK_BOX(vbox), selfp->combobox, TRUE, TRUE, 5); gtk_widget_show_all(GTK_WIDGET(self)); }} #line 226 "loqui-protocol-selection-dialog.c" #undef __GOB_FUNCTION__ #line 69 "loqui-protocol-selection-dialog.gob" static void loqui_protocol_selection_dialog_load_protocols (LoquiProtocolSelectionDialog * self, LoquiProtocol * default_protocol) { #line 233 "loqui-protocol-selection-dialog.c" #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::load_protocols" #line 69 "loqui-protocol-selection-dialog.gob" g_return_if_fail (self != NULL); #line 69 "loqui-protocol-selection-dialog.gob" g_return_if_fail (LOQUI_IS_PROTOCOL_SELECTION_DIALOG (self)); #line 239 "loqui-protocol-selection-dialog.c" { #line 70 "loqui-protocol-selection-dialog.gob" GList *list, *cur; GtkTreeIter iter; LoquiProtocol *protocol; list = loqui_protocol_manager_get_protocol_list(selfp->protocol_manager); for (cur = list; cur != NULL; cur = cur->next) { protocol = LOQUI_PROTOCOL(cur->data); gtk_list_store_append(selfp->store, &iter); gtk_list_store_set(selfp->store, &iter, COLUMN_NAME, loqui_protocol_get_identifier(protocol), COLUMN_PROTOCOL, protocol, -1); if (protocol == default_protocol) { gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->combobox), &iter); } } g_list_free(list); }} #line 264 "loqui-protocol-selection-dialog.c" #undef __GOB_FUNCTION__ #line 92 "loqui-protocol-selection-dialog.gob" LoquiProtocol * loqui_protocol_selection_dialog_get_protocol (LoquiProtocolSelectionDialog * self) { #line 271 "loqui-protocol-selection-dialog.c" #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::get_protocol" #line 92 "loqui-protocol-selection-dialog.gob" g_return_val_if_fail (self != NULL, (LoquiProtocol * )0); #line 92 "loqui-protocol-selection-dialog.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL_SELECTION_DIALOG (self), (LoquiProtocol * )0); #line 277 "loqui-protocol-selection-dialog.c" { #line 93 "loqui-protocol-selection-dialog.gob" GtkTreeIter iter; LoquiProtocol *protocol; if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->combobox), &iter)) return NULL; gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROTOCOL, &protocol, -1); return protocol; }} #line 292 "loqui-protocol-selection-dialog.c" #undef __GOB_FUNCTION__ #line 106 "loqui-protocol-selection-dialog.gob" GtkWidget * loqui_protocol_selection_dialog_new (GtkWindow * parent, LoquiProtocolManager * protocol_manager, LoquiProtocol * default_protocol) { #line 299 "loqui-protocol-selection-dialog.c" #define __GOB_FUNCTION__ "Loqui:Protocol:Selection:Dialog::new" { #line 107 "loqui-protocol-selection-dialog.gob" Self *self = GET_NEW_VARG("message_type", GTK_MESSAGE_QUESTION, "buttons", GTK_BUTTONS_OK_CANCEL, "title", _("Protocol Selection"), NULL); selfp->protocol_manager = g_object_ref(protocol_manager); selfp->store = gtk_list_store_new(COLUMN_NUMBER, G_TYPE_STRING, LOQUI_TYPE_PROTOCOL); if (parent != NULL) gtk_window_set_transient_for(GTK_WINDOW(self), parent); gtk_window_set_destroy_with_parent(GTK_WINDOW(self), TRUE); gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(self), _("Choose a protocol.")); self_add_widgets(self); self_load_protocols(self, default_protocol); return GTK_WIDGET(self); }} #line 326 "loqui-protocol-selection-dialog.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/loqui_channel_entry_store.h0000664000175000017500000000570312121600532016010 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_CHANNEL_ENTRY_STORE_H__ #define __LOQUI_CHANNEL_ENTRY_STORE_H__ #include #include "loqui_channel_entry.h" G_BEGIN_DECLS #define LOQUI_TYPE_CHANNEL_ENTRY_STORE (loqui_channel_entry_store_get_type ()) #define LOQUI_CHANNEL_ENTRY_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_CHANNEL_ENTRY_STORE, LoquiChannelEntryStore)) #define LOQUI_CHANNEL_ENTRY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_CHANNEL_ENTRY_STORE, LoquiChannelEntryStoreClass)) #define LOQUI_IS_CHANNEL_ENTRY_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_CHANNEL_ENTRY_STORE)) #define LOQUI_IS_CHANNEL_ENTRY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_CHANNEL_ENTRY_STORE)) #define LOQUI_CHANNEL_ENTRY_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_CHANNEL_ENTRY_STORE, LoquiChannelEntryStoreClass)) typedef struct _LoquiChannelEntryStore LoquiChannelEntryStore; typedef struct _LoquiChannelEntryStoreClass LoquiChannelEntryStoreClass; typedef struct _LoquiChannelEntryStorePrivate LoquiChannelEntryStorePrivate; enum { LOQUI_CHANNEL_ENTRY_STORE_COLUMN_MEMBER, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_BASIC_AWAY, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_POWER, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_NICK, LOQUI_CHANNEL_ENTRY_STORE_N_COLUMNS, }; struct _LoquiChannelEntryStore { GObject parent; LoquiChannelEntry *chent; GType column_types[LOQUI_CHANNEL_ENTRY_STORE_N_COLUMNS]; gint stamp; LoquiChannelEntryStorePrivate *priv; }; struct _LoquiChannelEntryStoreClass { GObjectClass parent_class; }; GType loqui_channel_entry_store_get_type(void) G_GNUC_CONST; LoquiChannelEntryStore* loqui_channel_entry_store_new(LoquiChannelEntry *chent); /* void loqui_channel_entry_store_set_entry(LoquiChannelEntryStore *store, LoquiChannelEntry *chent); LoquiChannelEntry *loqui_channel_entry_store_get_entry(LoquiChannelEntryStore *store); */ G_END_DECLS #endif /* __LOQUI_CHANNEL_ENTRY_STORE_H__ */ loqui-0.5.5/src/nick_list.c0000664000175000017500000003555712121600532012516 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include "config.h" #include #include "nick_list.h" #include "gtkutils.h" #include "main.h" #include #include #include "loqui_stock.h" #include struct _NickListPrivate { LoquiApp *app; GdkPixbuf *op_icon; GdkPixbuf *speak_ability_icon; GdkPixbuf *busy_icon; GdkPixbuf *away_icon; GdkPixbuf *online_icon; GdkPixbuf *offline_icon; GtkWidget *popup_menu; }; static GtkTreeViewClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_TREE_VIEW static void nick_list_class_init(NickListClass *klass); static void nick_list_init(NickList *nick_list); static void nick_list_finalize(GObject *object); static void nick_list_destroy(GtkObject *object); static void nick_list_create_icons(NickList *list); static void nick_list_cell_data_func_op(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data); static void nick_list_cell_data_func_away(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data); static gint nick_list_button_press_event_cb(GtkWidget *widget, GdkEventButton *event, gpointer data); static void nick_list_row_activated_cb(NickList *list, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data); static gboolean nick_list_key_press_event(GtkWidget *widget, GdkEventKey *event); static GSList *nick_list_menu_get_selected_members(NickList *nick_list); GType nick_list_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(NickListClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) nick_list_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(NickList), 0, /* n_preallocs */ (GInstanceInitFunc) nick_list_init }; type = g_type_register_static(PARENT_TYPE, "NickList", &our_info, 0); } return type; } static void nick_list_class_init (NickListClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = nick_list_finalize; gtk_object_class->destroy = nick_list_destroy; widget_class->key_press_event = nick_list_key_press_event; } static void nick_list_init (NickList *nick_list) { NickListPrivate *priv; priv = g_new0(NickListPrivate, 1); nick_list->priv = priv; } static void nick_list_finalize (GObject *object) { NickList *nick_list; g_return_if_fail(object != NULL); g_return_if_fail(IS_NICK_LIST(object)); nick_list = NICK_LIST(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(nick_list->priv); } static void nick_list_destroy(GtkObject *object) { NickList *nick_list; NickListPrivate *priv; g_return_if_fail(object != NULL); g_return_if_fail(IS_NICK_LIST(object)); nick_list = NICK_LIST(object); priv = nick_list->priv; LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->op_icon); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->speak_ability_icon); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->away_icon); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->busy_icon); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->online_icon); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->offline_icon); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void nick_list_create_icons(NickList *list) { NickListPrivate *priv; g_return_if_fail(list != NULL); g_return_if_fail(IS_NICK_LIST(list)); priv = list->priv; priv->op_icon = gtk_widget_render_icon(GTK_WIDGET(list), LOQUI_STOCK_OPERATOR, LOQUI_ICON_SIZE_FONT, NULL); priv->speak_ability_icon = gtk_widget_render_icon(GTK_WIDGET(list), LOQUI_STOCK_SPEAK_ABILITY, LOQUI_ICON_SIZE_FONT, NULL); priv->online_icon = gtk_widget_render_icon(GTK_WIDGET(list), LOQUI_STOCK_ONLINE, LOQUI_ICON_SIZE_FONT, NULL); priv->offline_icon = gtk_widget_render_icon(GTK_WIDGET(list), LOQUI_STOCK_OFFLINE, LOQUI_ICON_SIZE_FONT, NULL); priv->busy_icon = gtk_widget_render_icon(GTK_WIDGET(list), LOQUI_STOCK_BUSY, LOQUI_ICON_SIZE_FONT, NULL); priv->away_icon = gtk_widget_render_icon(GTK_WIDGET(list), LOQUI_STOCK_AWAY, LOQUI_ICON_SIZE_FONT, NULL); } static void nick_list_cell_data_func_op(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { NickList *nick_list; LoquiMember *member; nick_list = NICK_LIST(data); gtk_tree_model_get(tree_model, iter, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_MEMBER, &member, -1); if (loqui_member_get_is_channel_operator(member)) g_object_set(G_OBJECT(cell), "pixbuf", nick_list->priv->op_icon, NULL); else if (loqui_member_get_speakable(member)) g_object_set(G_OBJECT(cell), "pixbuf", nick_list->priv->speak_ability_icon, NULL); else g_object_set(G_OBJECT(cell), "pixbuf", NULL, NULL); g_object_unref(member); } static void nick_list_cell_data_func_away(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { LoquiBasicAwayType basic_away; NickList *nick_list; NickListPrivate *priv; nick_list = NICK_LIST(data); gtk_tree_model_get(tree_model, iter, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_BASIC_AWAY, &basic_away, -1); priv = nick_list->priv; switch(basic_away) { case LOQUI_BASIC_AWAY_TYPE_UNKNOWN: g_object_set(G_OBJECT(cell), "pixbuf", NULL, NULL); return; case LOQUI_BASIC_AWAY_TYPE_AWAY: g_object_set(G_OBJECT(cell), "pixbuf", priv->away_icon, NULL); return; case LOQUI_BASIC_AWAY_TYPE_BUSY: g_object_set(G_OBJECT(cell), "pixbuf", priv->busy_icon, NULL); return; case LOQUI_BASIC_AWAY_TYPE_ONLINE: g_object_set(G_OBJECT(cell), "pixbuf", priv->online_icon, NULL); return; case LOQUI_BASIC_AWAY_TYPE_OFFLINE: g_object_set(G_OBJECT(cell), "pixbuf", priv->offline_icon, NULL); return; default: break; } } /** @return: GSList of LoquiMember. do g_object_unref for each entry and g_slist_free itself.. */ static GSList * nick_list_menu_get_selected_members(NickList *nick_list) { GSList *member_list = NULL; GList *row_list, *cur; GtkTreePath *path; GtkTreeSelection *selection; GtkTreeIter iter; GtkTreeModel *model; LoquiMember *member; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(nick_list)); if(!selection) return NULL; row_list = gtk_tree_selection_get_selected_rows(selection, NULL); if(!row_list) return NULL; model = gtk_tree_view_get_model(GTK_TREE_VIEW(nick_list)); for(cur = row_list; cur != NULL; cur = cur->next) { path = cur->data; if(!gtk_tree_model_get_iter(model, &iter, path)) { continue; } gtk_tree_model_get(model, &iter, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_MEMBER, &member, -1); member_list = g_slist_append(member_list, member); } g_list_foreach(row_list, (GFunc) gtk_tree_path_free, NULL); g_list_free(row_list); return member_list; } static void nick_list_unselect_all(NickList *nick_list) { GtkTreeSelection *selection; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(nick_list)); if (!selection) return; gtk_tree_selection_unselect_all(selection); } void nick_list_start_private_talk_selected(NickList *nick_list) { NickListPrivate *priv; GSList *member_list, *cur; LoquiAccount *account; LoquiMember *member; priv = nick_list->priv; account = loqui_app_get_current_account(priv->app); if(!account) return; member_list = nick_list_menu_get_selected_members(nick_list); for(cur = member_list; cur != NULL; cur = cur->next) { member = cur->data; loqui_sender_start_private_talk(loqui_account_get_sender(account), member->user); } g_slist_foreach(member_list, (GFunc) g_object_unref, NULL); g_slist_free(member_list); } void nick_list_whois_selected(NickList *nick_list) { NickListPrivate *priv; GSList *member_list, *cur; LoquiAccount *account; LoquiMember *member; priv = nick_list->priv; account = loqui_app_get_current_account(priv->app); if(!account) return; member_list = nick_list_menu_get_selected_members(nick_list); for(cur = member_list; cur != NULL; cur = cur->next) { member = cur->data; loqui_sender_whois(loqui_account_get_sender(account), member->user); } g_slist_foreach(member_list, (GFunc) g_object_unref, NULL); g_slist_free(member_list); } void nick_list_change_mode_selected(NickList *nick_list, gboolean is_give, IRCModeFlag flag) { NickListPrivate *priv; LoquiChannel *channel; GSList *member_list, *cur; LoquiMember *member; priv = nick_list->priv; channel = loqui_app_get_current_channel(priv->app); if(!channel) return; member_list = nick_list_menu_get_selected_members(nick_list); for(cur = member_list; cur != NULL; cur = cur->next) { member = cur->data; loqui_channel_push_user_mode_queue(channel, is_give, (IRCModeFlag) flag, loqui_user_get_nick(member->user)); } g_slist_foreach(member_list, (GFunc) g_object_unref, NULL); g_slist_free(member_list); loqui_channel_flush_user_mode_queue(channel); nick_list_unselect_all(nick_list); } void nick_list_ctcp_selected(NickList *nick_list, const gchar *command) { NickListPrivate *priv; GSList *member_list, *cur; LoquiAccount *account; LoquiMember *member; LoquiSender *sender; priv = nick_list->priv; account = loqui_app_get_current_account(priv->app); if(!account) return; sender = loqui_account_get_sender(account); if (!LOQUI_IS_SENDER_IRC(sender)) { g_warning("The account is not for IRC"); return; } member_list = nick_list_menu_get_selected_members(nick_list); for(cur = member_list; cur != NULL; cur = cur->next) { member = cur->data; loqui_sender_irc_ctcp_request_raw(LOQUI_SENDER_IRC(sender), loqui_user_get_nick(member->user), command); } g_slist_foreach(member_list, (GFunc) g_object_unref, NULL); g_slist_free(member_list); } static gint nick_list_button_press_event_cb(GtkWidget *widget, GdkEventButton *event, gpointer data) { NickList *nick_list; NickListPrivate *priv; GtkMenu *menu; nick_list = NICK_LIST(widget); priv = nick_list->priv; menu = GTK_MENU(priv->popup_menu); if (event->type == GDK_BUTTON_PRESS && event->button == 3) { gtkutils_tree_view_popup(GTK_TREE_VIEW(nick_list), event, menu); return TRUE; } return FALSE; } static void nick_list_row_activated_cb(NickList *list, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) { GtkTreeIter iter; GtkTreeModel *model; LoquiMember *member; LoquiAccount *account; NickListPrivate *priv; priv = list->priv; model = gtk_tree_view_get_model(GTK_TREE_VIEW(list)); if(!gtk_tree_model_get_iter(model, &iter, path)) { return; } gtk_tree_model_get(model, &iter, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_MEMBER, &member, -1); account = loqui_app_get_current_account(priv->app); if(!account) return; loqui_sender_start_private_talk(loqui_account_get_sender(account), member->user); g_object_unref(member); } static gboolean nick_list_key_press_event(GtkWidget *widget, GdkEventKey *event) { loqui_app_grab_focus_if_key_unused(NICK_LIST(widget)->priv->app, "GtkTreeView", event); if (* GTK_WIDGET_CLASS(parent_class)->key_press_event) return (* GTK_WIDGET_CLASS(parent_class)->key_press_event)(widget, event); return FALSE; } GtkWidget* nick_list_new(LoquiApp *app, GtkWidget *menu) { NickList *list; NickListPrivate *priv; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkTreeSelection *sel; list = g_object_new(nick_list_get_type(), NULL); priv = list->priv; priv->app = app; nick_list_create_icons(list); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE); /* gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(list), TRUE); */ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(list)); gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); renderer = gtk_cell_renderer_pixbuf_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes("Away", renderer, NULL); gtk_tree_view_column_set_cell_data_func(column, renderer, nick_list_cell_data_func_away, list, NULL); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width(column, 20); gtk_tree_view_column_set_sort_column_id(column, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_BASIC_AWAY); gtk_tree_view_append_column(GTK_TREE_VIEW(list), column); renderer = gtk_cell_renderer_pixbuf_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes("@", renderer, NULL); gtk_tree_view_column_set_cell_data_func(column, renderer, nick_list_cell_data_func_op, list, NULL); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width(column, 20); gtk_tree_view_column_set_sort_column_id(column, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_POWER); gtk_tree_view_append_column(GTK_TREE_VIEW(list), column); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes(_("Nick"), renderer, "text", LOQUI_CHANNEL_ENTRY_STORE_COLUMN_NICK, NULL); gtk_tree_view_column_set_sort_column_id(column, LOQUI_CHANNEL_ENTRY_STORE_COLUMN_NICK); gtk_tree_view_append_column(GTK_TREE_VIEW(list), column); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(list), TRUE); gtk_tree_view_set_search_column(GTK_TREE_VIEW(list), LOQUI_CHANNEL_ENTRY_STORE_COLUMN_NICK); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(list), TRUE); priv->popup_menu = menu; g_signal_connect(G_OBJECT(list), "row_activated", G_CALLBACK(nick_list_row_activated_cb), NULL); g_signal_connect(G_OBJECT(list), "button_press_event", G_CALLBACK(nick_list_button_press_event_cb), NULL); return GTK_WIDGET(list); } loqui-0.5.5/src/loqui-channel-entry-ui-data.h0000664000175000017500000000531412121605257015761 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_CHANNEL_ENTRY_UI_DATA_H__ #define __LOQUI_CHANNEL_ENTRY_UI_DATA_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define LOQUI_TYPE_CHANNEL_ENTRY_UI_DATA (loqui_channel_entry_ui_data_get_type()) #define LOQUI_CHANNEL_ENTRY_UI_DATA(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_channel_entry_ui_data_get_type(), LoquiChannelEntryUIData) #define LOQUI_CHANNEL_ENTRY_UI_DATA_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_channel_entry_ui_data_get_type(), LoquiChannelEntryUIData const) #define LOQUI_CHANNEL_ENTRY_UI_DATA_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_channel_entry_ui_data_get_type(), LoquiChannelEntryUIDataClass) #define LOQUI_IS_CHANNEL_ENTRY_UI_DATA(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_channel_entry_ui_data_get_type ()) #define LOQUI_CHANNEL_ENTRY_UI_DATA_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_channel_entry_ui_data_get_type(), LoquiChannelEntryUIDataClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_CHANNEL_ENTRY_UI_DATA__ #define __TYPEDEF_LOQUI_CHANNEL_ENTRY_UI_DATA__ typedef struct _LoquiChannelEntryUIData LoquiChannelEntryUIData; #endif struct _LoquiChannelEntryUIData { GObject __parent__; /*< public >*/ gint channel_entry_merge_id; gint placeholder_merge_id; }; /* * Class definition */ typedef struct _LoquiChannelEntryUIDataClass LoquiChannelEntryUIDataClass; struct _LoquiChannelEntryUIDataClass { GObjectClass __parent__; }; /* * Public methods */ GType loqui_channel_entry_ui_data_get_type (void) G_GNUC_CONST; #line 38 "loqui-channel-entry-ui-data.gob" LoquiChannelEntryUIData * loqui_channel_entry_ui_data_new (void); #line 79 "loqui-channel-entry-ui-data.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-channel-entry-action-group-ui.gob0000664000175000017500000001222112121600532017761 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ %} %h{ #include #include "loqui-channel-entry-action-group.h" #include "loqui-channel-entry-ui-data.h" %} %{ #include #include #include %} class Loqui:Channel:Entry:Action:Group:UI from G:Object { public GtkUIManager *ui_manager = NULL unrefwith g_object_unref; public LoquiChannelEntryActionGroup *action_group = NULL unrefwith g_object_unref; public gchar *ui_base_path = NULL unrefwith g_free; public GHashTable *ui_data_table = {g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_object_unref)} unrefwith g_hash_table_destroy; public Loqui:Channel:Entry:Action:Group:UI * new(LoquiChannelEntryActionGroup *action_group, GtkUIManager *ui_manager, gchar *ui_base_path) { Self *self; self = GET_NEW; self->action_group = g_object_ref(action_group); self->ui_manager = g_object_ref(ui_manager); self->ui_base_path = g_strdup(ui_base_path); g_signal_connect_after(G_OBJECT(self->action_group), "add_channel_entry_action", G_CALLBACK(self_add_channel_entry_action_after_cb), self); g_signal_connect(G_OBJECT(self->action_group), "remove_channel_entry_action", G_CALLBACK(self_remove_channel_entry_action_cb), self); return self; } override (G:Object) void dispose(G:Object *object) { Self *self; self = SELF(object); g_signal_handlers_disconnect_by_func(self->action_group, self_add_channel_entry_action_after_cb, self); g_signal_handlers_disconnect_by_func(self->action_group, self_remove_channel_entry_action_cb, self); PARENT_HANDLER(object); } private void add_channel_entry_action_in_placeholder(self, LoquiChannelEntryUIData *ui_data, LoquiChannelEntryAction *ce_action) { gchar *path; const gchar *name; LoquiAccount *account; LoquiChannelEntry *chent; chent = loqui_channel_entry_action_get_channel_entry(ce_action); /* get parent or itself */ loqui_channel_entry_utils_separate(chent, &account, NULL); name = gtk_action_get_name(GTK_ACTION(ce_action)); ui_data->channel_entry_merge_id = gtk_ui_manager_new_merge_id(self->ui_manager); path = self_create_path_placeholder(self, account); gtk_ui_manager_add_ui(self->ui_manager, ui_data->channel_entry_merge_id, path, name, name, GTK_UI_MANAGER_MENUITEM, FALSE); g_free(path); } private void add_channel_entry_action_after_cb(LoquiChannelEntryActionGroup *action_group, LoquiChannelEntryAction *ce_action, Self *self) { LoquiChannelEntryUIData *ui_data; LoquiChannelEntry *chent; gchar *name; ui_data = loqui_channel_entry_ui_data_new(); chent = loqui_channel_entry_action_get_channel_entry(ce_action); g_hash_table_insert(self->ui_data_table, GINT_TO_POINTER(loqui_channel_entry_get_id(chent)), ui_data); if (LOQUI_IS_ACCOUNT(chent)) { ui_data->placeholder_merge_id = gtk_ui_manager_new_merge_id(self->ui_manager); name = loqui_channel_entry_action_group_create_placeholder_action_name(self->action_group, LOQUI_ACCOUNT(chent)); gtk_ui_manager_add_ui(self->ui_manager, ui_data->placeholder_merge_id, self->ui_base_path, name, name, GTK_UI_MANAGER_PLACEHOLDER, FALSE); g_free(name); } self_add_channel_entry_action_in_placeholder(self, ui_data, ce_action); } private void remove_channel_entry_action_cb(LoquiChannelEntryActionGroup *action_group, LoquiChannelEntryAction *ce_action, Self *self) { LoquiChannelEntryUIData *ui_data; LoquiChannelEntry *chent; chent = loqui_channel_entry_action_get_channel_entry(ce_action); ui_data = g_hash_table_lookup(self->ui_data_table, GINT_TO_POINTER(loqui_channel_entry_get_id(chent))); g_return_if_fail(ui_data != NULL); gtk_ui_manager_remove_ui(self->ui_manager, ui_data->channel_entry_merge_id); if (ui_data->placeholder_merge_id > 0) { gtk_ui_manager_remove_ui(self->ui_manager, ui_data->placeholder_merge_id); } g_hash_table_remove(self->ui_data_table, GINT_TO_POINTER(loqui_channel_entry_get_id(chent))); } private gchar * create_path_placeholder(self, LoquiAccount *account) { gchar *name, *buf; name = loqui_channel_entry_action_group_create_placeholder_action_name(self->action_group, account); buf = g_strconcat(self->ui_base_path, "/", name, NULL); g_free(name); return buf; } public GtkWidget * get_widget(self) { return gtk_ui_manager_get_widget(self->ui_manager, self->ui_base_path); } } loqui-0.5.5/src/loqui-style-entry-private.h0000664000175000017500000000043512121605257015636 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ #ifndef __LOQUI_STYLE_ENTRY_PRIVATE_H__ #define __LOQUI_STYLE_ENTRY_PRIVATE_H__ #include "loqui-style-entry.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui_channelbar.c0000664000175000017500000002767112121600532014043 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_channelbar.h" #include #include "loqui-core-gtk.h" #include "gtkutils.h" #include "loqui_dropdown_box.h" #include "command_dialog.h" #include #include "gtkutils.h" #include "loqui_stock.h" struct _LoquiChannelbarPrivate { LoquiApp *app; GtkWidget *dbox_buffers; GtkWidget *button_channel; GtkWidget *label_channel_mode; GtkWidget *label_user_number; GtkWidget *entry_topic; GtkWidget *button_ok; gboolean entry_changed; GtkWidget *toggle_scroll; GtkAction *chent_action; }; static GtkHBoxClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_HBOX static void loqui_channelbar_class_init(LoquiChannelbarClass *klass); static void loqui_channelbar_init(LoquiChannelbar *channelbar); static void loqui_channelbar_finalize(GObject *object); static void loqui_channelbar_destroy(GtkObject *object); static void loqui_channelbar_entry_topic_activated_cb(GtkWidget *widget, gpointer data); static void loqui_channelbar_entry_changed_cb(GtkWidget *widget, gpointer data); static void loqui_channelbar_channel_button_clicked_cb(GtkWidget *widget, gpointer data); GType loqui_channelbar_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiChannelbarClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_channelbar_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiChannelbar), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_channelbar_init }; type = g_type_register_static(PARENT_TYPE, "LoquiChannelbar", &our_info, 0); } return type; } static void loqui_channelbar_class_init (LoquiChannelbarClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_channelbar_finalize; gtk_object_class->destroy = loqui_channelbar_destroy; } static void loqui_channelbar_init (LoquiChannelbar *channelbar) { LoquiChannelbarPrivate *priv; priv = g_new0(LoquiChannelbarPrivate, 1); channelbar->priv = priv; } static void loqui_channelbar_finalize (GObject *object) { LoquiChannelbar *channelbar; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(object)); channelbar = LOQUI_CHANNELBAR(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(channelbar->priv); } static void loqui_channelbar_destroy (GtkObject *object) { LoquiChannelbar *channelbar; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(object)); channelbar = LOQUI_CHANNELBAR(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void loqui_channelbar_entry_topic_activated_cb(GtkWidget *widget, gpointer data) { LoquiChannelbar *channelbar; LoquiChannelbarPrivate *priv; LoquiChannel *channel; const gchar *str; g_return_if_fail(data != NULL); channelbar = LOQUI_CHANNELBAR(data); priv = channelbar->priv; if(!priv->entry_changed) return; channel = loqui_app_get_current_channel(priv->app); str = gtk_entry_get_text(GTK_ENTRY(priv->entry_topic)); loqui_sender_topic(loqui_account_get_sender(loqui_channel_get_account(channel)), channel, str); } static void loqui_channelbar_entry_changed_cb(GtkWidget *widget, gpointer data) { LoquiChannelbar *channelbar; LoquiChannelbarPrivate *priv; g_return_if_fail(data != NULL); channelbar = LOQUI_CHANNELBAR(data); priv = channelbar->priv; priv->entry_changed = TRUE; gtk_widget_set_sensitive(priv->button_ok, TRUE); } static void loqui_channelbar_channel_button_clicked_cb(GtkWidget *widget, gpointer data) { LoquiChannelbar *channelbar; LoquiChannelbarPrivate *priv; LoquiAccount *account; g_return_if_fail(data != NULL); channelbar = LOQUI_CHANNELBAR(data); priv = channelbar->priv; account = loqui_app_get_current_account(priv->app); if (account) command_dialog_join(priv->app, account); else gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Not selected an account!")); } GtkWidget* loqui_channelbar_new(LoquiApp *app, GtkWidget *menu_dropdown, GtkToggleAction *toggle_scroll_action) { LoquiChannelbar *channelbar; LoquiChannelbarPrivate *priv; GtkWidget *image; gchar *text; channelbar = g_object_new(loqui_channelbar_get_type(), NULL); priv = channelbar->priv; priv->app = app; priv->dbox_buffers = loqui_dropdown_box_new(NULL); loqui_dropdown_box_set_menu(LOQUI_DROPDOWN_BOX(priv->dbox_buffers), menu_dropdown); gtk_box_pack_start(GTK_BOX(channelbar), priv->dbox_buffers, FALSE, FALSE, 0); priv->button_channel = gtk_button_new(); gtk_box_pack_start(GTK_BOX(priv->dbox_buffers), priv->button_channel, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(priv->button_channel), "clicked", G_CALLBACK(loqui_channelbar_channel_button_clicked_cb), channelbar); gtk_tooltips_set_tip(app->tooltips, priv->button_channel, _("Join a channel with the current account"), NULL); priv->label_channel_mode = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(channelbar), priv->label_channel_mode, 0, 0, FALSE); priv->label_user_number = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(channelbar), priv->label_user_number, 0, 0, FALSE); priv->entry_topic = gtk_entry_new(); g_signal_connect(G_OBJECT(priv->entry_topic), "changed", G_CALLBACK(loqui_channelbar_entry_changed_cb), channelbar); g_signal_connect(G_OBJECT(priv->entry_topic), "activate", G_CALLBACK(loqui_channelbar_entry_topic_activated_cb), channelbar); gtk_box_pack_start(GTK_BOX(channelbar), priv->entry_topic, TRUE, TRUE, 0); gtk_widget_set_sensitive(priv->entry_topic, FALSE); image = gtk_image_new_from_stock(GTK_STOCK_OK, GTK_ICON_SIZE_SMALL_TOOLBAR); priv->button_ok = gtk_button_new(); g_signal_connect(G_OBJECT(priv->button_ok), "clicked", G_CALLBACK(loqui_channelbar_entry_topic_activated_cb), channelbar); gtk_container_add(GTK_CONTAINER(priv->button_ok), image); gtk_box_pack_start(GTK_BOX(channelbar), priv->button_ok, FALSE, FALSE, 0); gtk_widget_set_sensitive(priv->button_ok, FALSE); gtk_tooltips_set_tip(app->tooltips, priv->button_ok, _("Update the topic"), NULL); priv->entry_changed = FALSE; priv->toggle_scroll = gtk_toggle_button_new(); gtk_action_connect_proxy(GTK_ACTION(toggle_scroll_action), priv->toggle_scroll); gtkutils_bin_remove_child_if_exist(GTK_BIN(priv->toggle_scroll)); image = gtk_image_new_from_stock(LOQUI_STOCK_WHETHER_SCROLL, GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_container_add(GTK_CONTAINER(priv->toggle_scroll), image); gtk_widget_show(image); gtk_button_set_focus_on_click(GTK_BUTTON(priv->toggle_scroll), FALSE); g_object_get(G_OBJECT(toggle_scroll_action), "tooltip", &text, NULL); gtk_tooltips_set_tip(app->tooltips, priv->toggle_scroll, text, NULL); gtk_box_pack_start(GTK_BOX(channelbar), priv->toggle_scroll, FALSE, FALSE, 0); return GTK_WIDGET(channelbar); } void loqui_channelbar_update_channel_entry_label(LoquiChannelbar *channelbar, LoquiChannelEntry *chent) { LoquiChannelbarPrivate *priv; GtkAction *action; g_return_if_fail(channelbar != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(channelbar)); priv = channelbar->priv; if (priv->chent_action) { gtk_action_disconnect_proxy(priv->chent_action, priv->button_channel); priv->chent_action = NULL; } if (chent) { action = GTK_ACTION(loqui_channel_entry_action_group_get_channel_entry_action(priv->app->channel_entry_action_group, chent)); gtk_action_connect_proxy(action, priv->button_channel); priv->chent_action = action; } } void loqui_channelbar_update_channel_mode(LoquiChannelbar *channelbar, LoquiChannel *channel) { gchar *buf, *channel_mode; LoquiChannelbarPrivate *priv; g_return_if_fail(channelbar != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(channelbar)); priv = channelbar->priv; if (channel && !loqui_channel_get_is_private_talk(channel)) { channel_mode = loqui_mode_manager_to_string(channel->channel_mode_manager); buf = g_strdup_printf("[%s]", channel_mode); g_free(channel_mode); gtk_label_set(GTK_LABEL(priv->label_channel_mode), buf); g_free(buf); } else { gtk_label_set(GTK_LABEL(priv->label_channel_mode), ""); } } void loqui_channelbar_update_member_number(LoquiChannelbar *channelbar, LoquiChannelEntry *chent) { guint user_num_all, user_num_op; gchar *buf; LoquiChannelbarPrivate *priv; g_return_if_fail(channelbar != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(channelbar)); priv = channelbar->priv; if (chent) { user_num_all = loqui_channel_entry_get_member_number(chent); user_num_op = loqui_channel_entry_get_op_number(chent); buf = g_strdup_printf("(%d/%d)", user_num_op, user_num_all); gtk_label_set(GTK_LABEL(priv->label_user_number), buf); g_free(buf); } else { gtk_label_set(GTK_LABEL(priv->label_user_number), ""); } } void loqui_channelbar_update_op_number(LoquiChannelbar *channelbar, LoquiChannelEntry *chent) { loqui_channelbar_update_member_number(channelbar, chent); } void loqui_channelbar_update_topic(LoquiChannelbar *channelbar, LoquiChannelEntry *chent) { const gchar *topic; LoquiChannelbarPrivate *priv; g_return_if_fail(channelbar != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(channelbar)); priv = channelbar->priv; if (chent) { topic = loqui_channel_entry_get_topic(chent); gtk_entry_set_text(GTK_ENTRY(priv->entry_topic), topic ? topic : ""); gtk_widget_set_sensitive(priv->entry_topic, TRUE); } else { gtk_entry_set_text(GTK_ENTRY(priv->entry_topic), ""); gtk_widget_set_sensitive(priv->entry_topic, FALSE); } gtk_widget_set_sensitive(priv->button_ok, FALSE); priv->entry_changed = FALSE; } void loqui_channelbar_set_current_channel(LoquiChannelbar *channelbar, LoquiChannel *channel) { LoquiChannelbarPrivate *priv; g_return_if_fail(channelbar != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(channelbar)); priv = channelbar->priv; loqui_channelbar_update_channel_entry_label(channelbar, LOQUI_CHANNEL_ENTRY(channel)); loqui_channelbar_update_topic(channelbar, LOQUI_CHANNEL_ENTRY(channel)); loqui_channelbar_update_channel_mode(channelbar, channel); loqui_channelbar_update_member_number(channelbar, LOQUI_CHANNEL_ENTRY(channel)); /* loqui_channelbar_update_op_number(channelbar, LOQUI_CHANNEL_ENTRY(channel)); */ } void loqui_channelbar_set_current_account(LoquiChannelbar *channelbar, LoquiAccount *account) { LoquiChannelbarPrivate *priv; g_return_if_fail(channelbar != NULL); g_return_if_fail(LOQUI_IS_CHANNELBAR(channelbar)); priv = channelbar->priv; loqui_channelbar_update_channel_entry_label(channelbar, account ? LOQUI_CHANNEL_ENTRY(account) : NULL); loqui_channelbar_update_topic(channelbar, NULL); loqui_channelbar_update_channel_mode(channelbar, NULL); loqui_channelbar_update_member_number(channelbar, NULL); } loqui-0.5.5/src/loqui-style-entry.gob0000664000175000017500000000354312121600532014500 00000000000000requires 2.0.0 %h{ #include %} %{ #include #include %} class Loqui:Style:Entry from G:Object { public gboolean is_color_default; public gchar *color_string; property BOOLEAN is_color_default (nick = _("Is color default"), blurb = _("Is color default or not"), default_value = TRUE, export, link); property STRING color_string( nick = _("string as color"), blurb = _("String representation of color"), default_value = NULL) set { self_set_color_string(self, g_value_get_string(VAL)); } get { g_value_set_string(VAL, self->color_string); }; public GdkColor color; public gboolean is_font_default; property BOOLEAN is_font_default (nick = _("Is font default"), blurb = _("Is font default or not"), default_value = TRUE, export, link); public PangoFontDescription *font_desc; /* various purpose */ public gchar *string; property STRING string( nick = "string", blurb = "String", default_value = NULL, link, export); public int i; property INT integer( nick = "integer", blurb = "Integer", default_value = 0, export) set { self->i = g_value_get_int(VAL); } get { g_value_set_int(VAL, self->i); }; public double d; property DOUBLE double( nick = "Double", blurb = "Double", default_value = 0.0, export) set { self->d = g_value_get_double(VAL); } get { g_value_set_double(VAL, self->d); }; public gboolean set_color_string(self, const gchar *color_string) { LOQUI_G_FREE_UNLESS_NULL(self->color_string); if (!color_string) return FALSE; if (!gdk_color_parse(color_string, &self->color)) return FALSE; self->color_string = g_strdup(color_string); return TRUE; } /** return value must not be freed. */ public gchar *get_color_string(self) { return self->color_string; } } loqui-0.5.5/src/main.c0000664000175000017500000000477112121600532011455 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include "config.h" #include "main.h" #include #include "loqui_stock.h" #include "loqui-core-gtk.h" #include #include "loqui-core-gtk.h" #include #include #include int main(int argc, char *argv[]) { int i; LoquiCoreGtk *core; bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); #ifdef HAVE_BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); #endif textdomain(GETTEXT_PACKAGE); g_type_init(); core = loqui_core_gtk_new(); loqui_init(LOQUI_CORE(core)); loqui_core_gtk_initialize_with_args(core, &argc, &argv); for(i = 0; i < argc; i++) { if(strcmp(argv[i], "--debug") == 0) { loqui_core_set_debug_mode(loqui_get_core(), TRUE); g_print("Start debug mode.\n"); continue; } if(strcmp(argv[i], "--show-msg") == 0) { loqui_core_set_show_msg_mode(loqui_get_core(), TRUE); g_print("Start show msg mode\n"); continue; } if(strcmp(argv[i], "--no-send-status-commands") == 0) { loqui_core_set_send_status_commands_mode(loqui_get_core(), FALSE); g_print("Loqui doesn't send commands to get status like MODE, WHO in this session\n"); continue; } if(strcmp(argv[i], "--help") == 0) { g_print("Loqui %s\n", VERSION); g_print(_(" --no-send-status-commands don't send commands to get status (like MODE, WHO)\n")); g_print(_(" --debug debug mode\n")); g_print(_(" --show-msg show message mode\n")); g_print(_(" --help show this help\n")); exit(0); } } loqui_core_gtk_run(core); return 0; } loqui-0.5.5/src/loqui_stock.h0000664000175000017500000000340312121600532013061 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_STOCK_H__ #define __LOQUI_STOCK_H__ #include #define LOQUI_STOCK_CONSOLE "loqui-console" #define LOQUI_STOCK_ONLINE "loqui-online" #define LOQUI_STOCK_OFFLINE "loqui-offline" #define LOQUI_STOCK_AWAY "loqui-away" #define LOQUI_STOCK_BUSY "loqui-busy" #define LOQUI_STOCK_COMMAND "loqui-command" #define LOQUI_STOCK_OPERATOR "loqui-operator" #define LOQUI_STOCK_SPEAK_ABILITY "loqui-speak-ability" #define LOQUI_STOCK_WHETHER_SCROLL "loqui-whether-scroll" #define LOQUI_STOCK_NOTICE "loqui-notice" #define LOQUI_STOCK_LOQUI "loqui-loqui" #define LOQUI_STOCK_LOQUI_HILIGHTED "loqui-loqui-hilighted" extern int LOQUI_ICON_SIZE_FONT; void loqui_stock_init(void); G_CONST_RETURN gchar* loqui_stock_get_id_from_basic_away_type(LoquiBasicAwayType basic_away); #endif /* __LOQUI_STOCK_H__ */ loqui-0.5.5/src/loqui_statusbar.h0000664000175000017500000000557312121600532013760 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_STATUSBAR_H__ #define __LOQUI_STATUSBAR_H__ #include #include #include #include "loqui_app.h" G_BEGIN_DECLS #define LOQUI_TYPE_STATUSBAR (loqui_statusbar_get_type ()) #define LOQUI_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_STATUSBAR, LoquiStatusbar)) #define LOQUI_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_STATUSBAR, LoquiStatusbarClass)) #define LOQUI_IS_STATUSBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_STATUSBAR)) #define LOQUI_IS_STATUSBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_STATUSBAR)) #define LOQUI_STATUSBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_STATUSBAR, LoquiStatusbarClass)) typedef struct _LoquiStatusbar LoquiStatusbar; typedef struct _LoquiStatusbarClass LoquiStatusbarClass; typedef struct _LoquiStatusbarPrivate LoquiStatusbarPrivate; struct _LoquiStatusbar { GtkStatusbar parent; LoquiStatusbarPrivate *priv; }; struct _LoquiStatusbarClass { GtkStatusbarClass parent_class; }; GtkType loqui_statusbar_get_type (void) G_GNUC_CONST; GtkWidget* loqui_statusbar_new(LoquiApp *app, GtkToggleAction *toggle_scroll_action_common_buffer); void loqui_statusbar_update_current_account(LoquiStatusbar *statusbar, LoquiAccount *account); void loqui_statusbar_set_default(LoquiStatusbar *statusbar, const gchar *str); void loqui_statusbar_update_account_name(LoquiStatusbar *statusbar, LoquiAccount *account); void loqui_statusbar_update_nick(LoquiStatusbar *statusbar, LoquiAccount *account); void loqui_statusbar_update_preset_menu(LoquiStatusbar *statusbar, LoquiAccount *account); void loqui_statusbar_update_away_menu(LoquiStatusbar *statusbar, LoquiAccount *account); void loqui_statusbar_update_away_icon(LoquiStatusbar *statusbar, LoquiAccount *account); G_END_DECLS #endif /* __LOQUI_STATUSBAR_H__ */ loqui-0.5.5/src/icons/0000775000175000017500000000000012121622470011554 500000000000000loqui-0.5.5/src/icons/command.h0000664000175000017500000002755212121605257013302 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (command_pixbuf) #endif #ifdef __GNUC__ static const guint8 command_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 command_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (4752) */ "\0\0\22\250" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (132) */ "\0\0\0\204" /* width (33) */ "\0\0\0!" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\377\252\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0&\372\261\20\346\367\257\21\311\356\237\1w\334\222\0#\5\3\1\2\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\377\252\0&\373\265\26\344\363\320N\377\362\322R\377\363\312C\377\362" "\271(\376\360\252\21\312\352\234\1q\11\6\2\4\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0&\373\265\26\344\363\320N\377\362\322" "R\377\362\322R\377\362\322R\377\362\322R\377\340\2626\377\276\201\13" "\251#\30\14\26\10\5\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373" "\265\26\344\363\320N\377\362\322R\377\362\322R\377\362\322R\377\362\322" "R\377\346\263;\377\276\203,\326wS(k5%\22'\13\10\4\6\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\377\252\0'\373\265\26\343\363\320N\377\362\322R\377\362\322R\377" "\362\322R\377\362\322R\377\350\265<\377\311\2147\341\233m5\225^A\40P" "#\31\14\30\7\4\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265\26\343\363\320" "N\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377\351\265<\377" "\312\2158\341\236o6\230dF\"V*\36\16\36\13\7\3\6\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252" "\0'\373\265\27\343\363\320N\377\362\322R\377\362\322R\377\362\322R\377" "\362\322R\377\351\266<\377\312\2158\341\237p6\231eG#W+\36\17\37\13\10" "\3\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265\27\343\363\320N\377\362\322R" "\377\362\322R\377\362\322R\377\362\322R\377\352\266<\377\313\2158\341" "\240p7\232fG#Y,\37\17\37\14\10\4\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265" "\27\343\363\320N\377\362\322R\377\362\322R\377\362\322R\377\362\322R" "\377\352\267<\377\313\2158\341\241q7\233gH$Z-\37\17\40\14\10\4\6\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\377\252\0'\373\265\27\343\363\320N\377\362\322R\377\362" "\322R\377\362\322R\377\362\322R\377\353\270<\377\313\2168\341\242q7\233" "hI$[.\40\20!\14\11\4\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265\27\343\363" "\320N\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377\353\270" "<\377\314\2168\341\242r7\234iJ$\\/!\20\"\15\11\4\6\2\1\0\1\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0$\373\265\27\343\363\320N\377\362\322R\377\362\322R\377\362\322" "R\377\362\322R\377\354\271<\377\314\2168\341\243r8\236jJ%]/!\20\"\15" "\11\4\6\2\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\367\244\0>\371\273#\367\362\321P\377\362" "\322R\377\362\322R\377\362\322R\377\361\321Q\377\332\2345\373\264~2\275" "mM&a1\"\21$\15\11\4\7\2\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\10\4\6\301\201" "\5S\370\264\32\353\363\317L\377\362\322R\377\362\322R\377\362\322R\377" "\360\317O\377\330\244,\374\277\200\11\247pK\4\27\4\2\1\2\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\10\6\3\3)\35\16\33\213_\25U\365\256\23\331\364\314" "G\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377\350\277\77" "\377\336\235\20\334\315\211\1""8\6\4\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\16\12\4\6.\40\20\36uP\31O\360\246\15\302\365\310>\377\362\322R\377" "\362\322R\377\362\322R\377\362\322R\377\357\314L\377\343\252\"\373\333" "\223\3\211xP\1\11\3\2\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\10\4\5(\34\15\31" "Y>\34B\345\233\12\246\367\3045\377\362\322R\377\362\322R\377\362\322" "R\377\362\322R\377\362\322R\377\347\274;\377\337\234\16\325\314\210\1" "/\5\3\1\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\6\3\3\"\27\13\24N7\33<\341\227\10" "\242\365\310>\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377" "\362\322R\377\356\312K\377\341\242\26\365\302\201\2\77\10\5\2\3\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\7\5\2\2\303\202\2""9\364\263\34\357\362\321P\377\362" "\322R\377\362\322R\377\362\322R\377\362\322R\377\362\321P\377\354\263" ",\375\274\201\33\275bD\26B\30\21\10\16\4\2\1\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252" "\0\40\372\263\23\336\363\320M\377\362\322R\377\362\322R\377\362\322R" "\377\362\322R\377\363\307B\377\343\240*\351\302\207<\307\231k5\215Z\77" "\37H\36\25\12\22\4\3\1\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0\20\375\260\15\307\363\317" "L\377\362\322R\377\362\322R\377\362\322R\377\362\321P\377\357\265.\375" "\323\2225\327\271\201>\265\230j5\213hI$U4$\22#\20\13\5\7\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0\5\376\255\7\255\364\314F\377\362\322R\377\362\322R\377\362\322" "R\377\363\310B\377\344\241*\351\306\211=\313\252w;\242\202[-sR9\34\77" "(\34\15\31\16\12\4\6\4\2\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0\1\376\254\5\225\365\310>\377\362" "\322R\377\362\322R\377\362\321P\377\360\266-\374\324\2234\326\271\201" ">\266\231k5\215jJ%Y;)\24*\31\21\10\16\10\5\2\2\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\376\253" "\3z\367\3034\376\362\322R\377\362\322R\377\364\310B\377\345\241(\347" "\306\211=\313\253x;\243\203\\-uR:\34A(\34\16\32\16\12\4\6\4\2\1\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\377\252\1[\370\277+\372\362\322R\377\362\321P\377\360\266" ",\374\322\2222\323\271\201>\267\231k5\217kK%[<*\25+\31\22\10\16\10\5" "\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0;\371\273#\366\362\322R\377\364" "\307\77\377\342\237\"\345\302\207:\305\253x;\244\203\\.wR:\34B(\34\16" "\32\17\12\5\7\4\3\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0,\372\270\35\360" "\363\317L\377\357\264%\372\306\210&\303\261|=\255\232l5\220lL&^<*\25" "-\31\21\10\17\10\5\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0\37\374" "\264\25\337\365\3058\377\336\234\24\330\245r,\237\242r8\232\205].xU;" "\35E*\35\16\34\17\12\5\10\4\2\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0\20\376\256\10\310\365\264\35\372\302\202\14\236\206],|\215c1\202" "mL&^\77,\25.\33\23\11\20\10\5\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\377\252\0\5\377\252\0\263\364\245\4\323\225d\15ZoN&btR(gT;\35C+" "\36\16\35\20\13\5\10\4\3\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\377\252\0_\364\242\0\204F0\16&T;\35EX>\36I<*\24-\34\23\11\20" "\11\6\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\6\4\2\2\32\22\11\16""4$\22$:)\24*'\33\15\32\20\13\5\10\4\3\1\2\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\6\4\2\2\23\15\6\10\34\24\11\17\24\16\7\12\10\6\2\3\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\6\4\2\2\7\4\2\2\3\2\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/online.png0000664000175000017500000000215312121600532013462 00000000000000PNG  IHDR$$bKGDVVV)' pHYs  d_tIME 2sIDATxkUƟs|5&EEP JZ(H-(4*ąEL)*kݺ"*8AqdPks\̤I2 b<} Þ׾Eaub>Clgb؟Ä`;C 5+8/zя32"Kk^iCT0? y g/lT QؠTbr(FgXp ZCO=by22 A)jTRlP#Ėa|~@6z0eBd%nåcĖV*%<>-bv80`%HuEU!mhx*TH;? OVdAQ {A#(|PQs~5t.6b+V2f=ZzJlzx 0{Y`B& FPf5?L !j Leg1?yά&!4T7D>ĕKwnu>݄{G~T_Zx\ڥSGK논Yͤ ϯ/%*ZhyQc3j@n@y: njߤ,(R} _-G/ usj^AF{^CS^Ni!">Rc{ 42ga+E7/P)iQ.؎tHEvמgͩ^:åS{fπb3Yj-ffπg D۔Em]~8ay uӍ-j$vf@I͈(2-pK62ΡZ+1bs:^[Xشy>HjUဒ"^dž k'$fް~&eM\~d&Ҿw^L/f(m?ۜ֒Ոm)mS] RJ?q믮] q- 4WIENDB`loqui-0.5.5/src/icons/Makefile.in0000664000175000017500000003124512121622351013544 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/icons DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ IMAGES_ID = console online offline away busy command naruto speaker loqui loqui_hilighted whether_scroll notice IMAGES = $(IMAGES_ID:%=%.png) loqui.ico IMAGES_H = $(IMAGES_ID:%=%.h) noinst_HEADERS = pixbufs.h $(IMAGES_H) EXTRA_DIST = $(IMAGES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am pixbufs.h: $(IMAGES_H) cat $(IMAGES_H) > $@ %.h: %.png gdk-pixbuf-csource --raw --build-list $(@:%.h=%)_pixbuf $< > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/src/icons/busy.h0000664000175000017500000003365212121605257012644 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (busy_pixbuf) #endif #ifdef __GNUC__ static const guint8 busy_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 busy_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4l\262\23\5v\302\200\6x" "\304\324\7z\307\377\7z\307\377\6y\306\336\5y\306\211\5y\306\32\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\5p\270;\6y\307\351\13|\310\377\20\177\311\377\23\200\312\377\23" "\200\312\377\20\177\312\377\14|\310\377\7z\307\365\5y\307P\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5u\300.\6y\306" "\361\16~\311\377\27\202\313\377\35\206\314\377\40\210\315\377\40\210" "\315\377\35\206\314\377\30\203\313\377\20\177\311\377\7z\310\371\5y\307" "K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3Jz\0\5w\304\277\15" "}\311\377\30\203\313\377!\210\315\377)\214\317\377-\217\320\377.\217" "\320\377*\215\317\377#\211\316\377\32\204\314\377\17~\311\377\6z\307" "\335\5y\307\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5s\275/\10z\307" "\376\24\201\312\377\40\207\315\377+\215\320\3775\223\322\377;\226\323" "\377<\226\323\3776\223\322\377-\216\320\377\"\210\315\377\26\202\313" "\377\11{\310\377\5y\306U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5w\303" "m\13|\310\377\30\203\313\377%\212\316\3772\221\321\377>\230\324\377H" "\235\326\377I\235\326\377@\231\324\3774\222\322\377'\213\317\377\32\204" "\314\377\15}\311\377\5w\303\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\5y\307z\14}\311\377\32\204\314\377'\213\317\3775\223\322\377C\232" "\325\377P\241\330\377Q\242\330\377E\233\325\3777\224\322\377)\215\317" "\377\34\205\314\377\16~\311\377\5x\305\246\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\5x\306p\13|\310\377\30\203\313\377%\212\316\3773\222\321" "\377\77\230\324\377I\235\326\377K\236\326\377A\231\325\3775\223\322\377" "(\214\317\377\33\205\314\377\15}\311\377\5v\302\225\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\5x\3055\10{\310\377\24\201\312\377\40\210\315" "\377,\216\320\3776\223\322\377=\227\324\377>\227\324\3778\224\322\377" ".\217\320\377\"\211\316\377\27\202\313\377\12{\310\376\5v\302^\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6y\307\306\16~\311\377\31" "\204\313\377\"\211\316\377*\215\317\377/\220\321\3770\220\321\377,\216" "\320\377$\212\316\377\33\205\314\377\20\177\311\377\6y\305\346\5y\307" "\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307<\7z\307\367" "\20\177\311\377\30\203\313\377\36\207\315\377\"\210\315\377\"\211\316" "\377\37\207\315\377\32\204\314\377\21\177\312\377\10{\310\376\5v\301" "^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307" "H\7z\307\366\14}\311\377\22\200\312\377\25\201\312\377\25\201\313\377" "\22\200\312\377\15}\311\377\7y\305\370\5y\307n\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\"\5" "y\307\233\6z\307\354\10y\305\372\10y\304\370\7y\305\362\5x\304\250\5" "x\3055\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\3\5y\307$\5y\307$\5" "y\307\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33}\276\6""4\222\321\224>\230\324\231>\230" "\324\231\77\230\324\231\77\230\324\231\77\230\324\231\77\230\324\231" "\77\230\324\231\77\230\324\231\77\230\324\231\35\206\3145\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\40\205\311PP\242\330\377" "S\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244" "\331\377T\244\331\377T\244\331\377T\244\331\3776\223\321\245\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4\221\320\266O\241" "\330\377O\241\330\377P\241\330\377P\241\330\377P\241\330\377P\241\330" "\377P\241\330\377P\241\330\377P\241\330\377P\241\330\377C\232\324\367" "\5y\307\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20y\300\36\77\230" "\324\371K\236\327\377K\236\327\377K\236\327\377K\236\327\377K\237\327" "\377L\237\327\377L\237\327\377L\237\327\377L\237\327\377L\237\327\377" "L\236\326\377Ky\255{\320DD,\320DD\33\320DD\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%\210\313" "~F\234\326\377G\234\326\377G\234\326\377G\234\326\377G\234\326\377G\234" "\326\377G\234\326\377G\234\326\377G\234\326\377W\222\305\377\226j\202" "\377\304LQ\377\320CC\377\320CC\377\320CC\377\320DD\345\320DD\214\320" "DD\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23x" "\274\3""1\220\317\337B\232\325\377B\232\325\377B\232\325\377B\232\325" "\377B\232\325\377B\232\325\377B\232\325\377B\232\325\377t|\243\377\310" "IL\377\320AA\377\320==\377\320;;\377\320::\377\320;;\377\320>>\377\320" "AA\377\320DD\353\320DDM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\27\177\305I:\225\323\377=\227\324\377=\227\324\377=\227\324\377" "=\227\324\377=\227\324\377>\227\324\377>\227\324\377q{\242\377\316DE" "\377\320>>\377\32088\377\32044\377\32011\377\32000\377\32011\377\320" "44\377\32099\377\320\77\77\377\320CC\371\320DDL\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0%\211\314\2558\224\322\3778\224\322\3779\225\323" "\3779\225\323\3779\225\323\3779\225\323\3779\225\323\377K\213\302\377" "\307IL\377\320\77\77\377\32077\377\32000\377\317++\377\317''\377\317" "&&\377\317''\377\317++\377\32000\377\32077\377\320\77\77\377\320DD\352" "\320DD\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17v\273\30*\215\317\3674\222\322" "\3774\222\322\3774\222\322\3774\222\322\3774\222\322\3774\222\322\377" "4\222\322\377\215f\201\377\320BB\377\32099\377\32000\377\317))\377\317" "\"\"\377\317\35\35\377\317\34\34\377\317\36\36\377\317\"\"\377\317))" "\377\32011\377\320::\377\320BB\377\320DD\203\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\30\201\307u/\220\320\377/\220\320\377/\220\320\377/\220\320\377" "/\220\320\3770\220\321\3770\220\321\3770\220\320\377\302KP\377\320>>" "\377\32055\377\317,,\377\317##\377\317\32\32\377\316\24\24\377\316\22" "\22\377\316\24\24\377\317\33\33\377\317##\377\317,,\377\32055\377\320" "\77\77\377\320DD\331\320DD\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\37\206\313\331*\215" "\317\377*\215\317\377+\215\317\377+\215\317\377+\215\317\377+\215\320" "\377+\215\320\377=\205\300\377\320DD\377\320<<\377\345\214\214\377\350" "\230\230\377\350\224\224\377\350\217\217\377\347\213\213\377\347\212" "\212\377\347\214\214\377\350\217\217\377\350\224\224\377\350\231\231" "\377\343\206\206\377\320==\377\320DD\371\320DD\23\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16z\302" "@#\211\316\377&\213\316\377&\213\316\377&\213\316\377&\213\316\377&\213" "\316\377&\213\316\377&\213\316\377D\177\266\377\320DD\377\320<<\377\367" "\337\337\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\365\323\323\377\320<<\377\320DD\376\320DD\36\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\26\201\310\245!\210\315\377!\210\315\377!\210\315\377!\210\315" "\377!\210\315\377!\211\315\377\"\211\315\377\"\211\315\3774\201\277\377" "\320DD\377\320==\377\367\337\337\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\365\323\323\377\320>>\377" "\320DD\371\320DD\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\10t\274\25\30\203\313\366\35\206\314\377\35\206" "\314\377\35\206\314\377\35\206\314\377\35\206\314\377\35\206\314\377" "\36\206\314\377\36\206\314\377\36\206\314\377\275KR\377\320@@\377\336" "tt\377\341yy\377\340tt\377\340pp\377\340ll\377\340kk\377\340ll\377\340" "pp\377\340tt\377\341zz\377\335pp\377\320@@\377\320DD\325\320DD\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\15|\306q\31\203\313\377\31\204\313\377\31\204\313\377\31\204\313\377" "\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313" "\377\31\204\313\377}a\201\377\320CC\377\320;;\377\32033\377\317,,\377" "\317&&\377\317!!\377\317\40\40\377\317\"\"\377\317&&\377\317,,\377\320" "44\377\320<<\377\320CC\377\320DD|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17Ip\1\17~\310\325\24\201\312\377" "\24\201\312\377\24\201\313\377\24\201\313\377\24\201\313\377\24\201\313" "\377\25\201\313\377\25\201\313\377\25\201\313\377\25\201\313\377'{\275" "\377\301IN\377\320AA\377\320::\377\32044\377\320..\377\317++\377\317" "**\377\317++\377\320//\377\32044\377\320::\377\320AA\377\320DD\344\320" "DD\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\7u\2768\16~\311\376\17~\311\377\17~\311\377\20\177\311\377\20" "\177\311\377\20\177\311\377\20\177\311\377\20\177\311\377\20\177\311" "\377\20\177\311\377\20\177\311\377\20\177\311\377Jm\241\377\314EG\377" "\320AA\377\320<<\377\32088\377\32055\377\32044\377\32055\377\32088\377" "\320<<\377\320BB\377\320DD\366\320DDB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10x\304\235\13|\310" "\377\13|\310\377\13|\310\377\13|\310\377\13|\310\377\13|\310\377\13|" "\310\377\13|\310\377\13|\311\377\14}\311\377\14}\310\377\14}\311\377" "\14}\310\377Fl\241\377\277IO\377\320CC\377\320AA\377\320\77\77\377\320" ">>\377\320\77\77\377\320AA\377\320CC\377\273JR\377\300HNG\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\5m\263\20\6y\306\363\6z\307\377\6z\307\377\6z\307\377\6z\307\377\6z" "\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307" "\377\7z\307\377\7z\307\377\7z\307\377\27v\275\377m^\204\377\262LW\377" "\313EG\377\320DD\377\313EG\377\257MY\377i`\207\377\25w\277\377\6y\307" "Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\5y\307\22\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307" "M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y" "\307M\5y\307M\5y\307M\7x\306M7l\246MSd\224M4l\250M\6y\307M\5y\307M\5" "y\307M\5y\307.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/away.h0000664000175000017500000003520712121605257012621 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (away_pixbuf) #endif #ifdef __GNUC__ static const guint8 away_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 away_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4l\262\23\5v\302\200\6x" "\304\324\7z\307\377\7z\307\377\6y\306\336\5y\306\211\5y\306\32\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\5p\270;\6y\307\351\13|\310\377\20\177\311\377\23\200\312\377\23" "\200\312\377\20\177\312\377\14|\310\377\7z\307\365\5y\307P\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5u\300.\6y\306" "\361\16~\311\377\27\202\313\377\35\206\314\377\40\210\315\377\40\210" "\315\377\35\206\314\377\30\203\313\377\20\177\311\377\7z\310\371\5y\307" "K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3Jz\0\5w\304\277\15" "}\311\377\30\203\313\377!\210\315\377)\214\317\377-\217\320\377.\217" "\320\377*\215\317\377#\211\316\377\32\204\314\377\17~\311\377\6z\307" "\335\5y\307\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5s\275/\10z\307" "\376\24\201\312\377\40\207\315\377+\215\320\3775\223\322\377;\226\323" "\377<\226\323\3776\223\322\377-\216\320\377\"\210\315\377\26\202\313" "\377\11{\310\377\5y\306U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5w\303" "m\13|\310\377\30\203\313\377%\212\316\3772\221\321\377>\230\324\377H" "\235\326\377I\235\326\377@\231\324\3774\222\322\377'\213\317\377\32\204" "\314\377\15}\311\377\5w\303\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\5y\307z\14}\311\377\32\204\314\377'\213\317\3775\223\322\377C\232" "\325\377P\241\330\377Q\242\330\377E\233\325\3777\224\322\377)\215\317" "\377\34\205\314\377\16~\311\377\5x\305\246\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\5x\306p\13|\310\377\30\203\313\377%\212\316\3773\222\321" "\377\77\230\324\377I\235\326\377K\236\326\377A\231\325\3775\223\322\377" "(\214\317\377\33\205\314\377\15}\311\377\5v\302\225\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\5x\3055\10{\310\377\24\201\312\377\40\210\315" "\377,\216\320\3776\223\322\377=\227\324\377>\227\324\3778\224\322\377" ".\217\320\377\"\211\316\377\27\202\313\377\12{\310\376\5v\302^\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6y\307\306\16~\311\377\31" "\204\313\377\"\211\316\377*\215\317\377/\220\321\3770\220\321\377,\216" "\320\377$\212\316\377\33\205\314\377\20\177\311\377\6y\305\346\5y\307" "\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307<\7z\307\367" "\20\177\311\377\30\203\313\377\36\207\315\377\"\210\315\377\"\211\316" "\377\37\207\315\377\32\204\314\377\21\177\312\377\10{\310\376\5v\301" "^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307" "H\7z\307\366\14}\311\377\22\200\312\377\25\201\312\377\25\201\313\377" "\22\200\312\377\15}\311\377\7y\305\370\5y\307n\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\"\5" "y\307\233\6z\307\354\10y\305\372\10y\304\370\7y\305\362\5x\304\250\5" "x\3055\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\3\5y\307$\5y\307$\5" "y\307\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33}\276\6""4\222\321\224>\230\324\231>\230" "\324\231\77\230\324\231\77\230\324\231\77\230\324\231\77\230\324\231" "\77\230\324\231\77\230\324\231\77\230\324\231\35\206\3145\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\40\205\311PP\242\330\377" "S\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244" "\331\377T\244\331\377T\244\331\377T\244\331\3776\223\321\245\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4\221\320\266O\241" "\330\377O\241\330\377P\241\330\377P\241\330\377P\241\330\377P\241\330" "\377P\241\330\377P\241\330\377P\241\330\377P\241\330\377D\232\324\367" "\211x\235%\377ww\24\377ww\23\377ww\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20y\300\36\77\230" "\324\371K\236\327\377K\236\327\377K\236\327\377K\236\327\377K\237\327" "\377L\237\327\377L\237\327\377L\237\327\377i\230\307\377\264\210\237" "\377\347|\204\377\376ww\377\377ww\377\377ww\376\377ww\342\377ww\236\377" "ww6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0%\210\313~F\234\326\377G\234\326\377G\234\326\377G\234\326\377G\234" "\326\377G\234\326\377G\234\326\377J\234\324\377\241\212\250\377\372x" "z\377\373\204\204\377\361\243\243\377\377ww\377\377ww\377\377ww\377\357" "\253\253\377\372\210\210\377\377ww\374\377ww\213\377ww\10\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23x\274\3""1\220\317\337B\232\325\377" "B\232\325\377B\232\325\377B\232\325\377B\232\325\377B\232\325\377E\231" "\323\377\276\203\230\377\377xx\377\360\247\247\377\342\335\335\377\344" "\333\333\377\377ww\377\377ww\377\377ww\377\341\341\341\377\340\336\336" "\377\356\257\257\377\376zz\377\377ww\264\377ww\10\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\27\177\305I:\225\323\377=\227\324\377=\227\324\377=" "\227\324\377=\227\324\377=\227\324\377>\227\324\377\227\211\251\377\377" "xx\377\353\272\272\377\342\342\342\377\344\344\344\377\347\337\337\377" "\377ww\377\377ww\377\377ww\377\345\345\345\377\343\343\343\377\340\340" "\340\377\350\303\303\377\376{{\377\377ww\212\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0%\211\314\2558\224\322\3778\224\322\3779\225\323\3779\225" "\323\3779\225\323\3779\225\323\377K\222\312\377\367x{\377\362\243\243" "\377\343\343\343\377\346\346\346\377\350\350\350\377\353\343\343\377" "\377ww\377\377ww\377\377ww\377\351\351\351\377\346\346\346\377\344\344" "\344\377\341\341\341\377\356\257\257\377\377ww\372\377ww,\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\17v\273\30*\215\317\3674\222\322\3774\222\322\3774\222\322\377" "4\222\322\3774\222\322\3774\222\322\377\225\205\247\377\375||\377\344" "\332\332\377\346\346\346\377\351\351\351\377\354\354\354\377\357\347" "\347\377\377ww\377\377ww\377\377ww\377\354\354\354\377\352\352\352\377" "\346\346\346\377\343\343\343\377\340\335\335\377\373\203\203\377\377" "ww\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\30\201\307u/\220\320\377/\220\320\377/\220" "\320\377/\220\320\377/\220\320\3770\220\321\3770\220\321\377\312~\216" "\377\365\234\234\377\344\344\344\377\350\350\350\377\354\354\354\377" "\357\357\357\377\362\352\352\377\377ww\377\377ww\377\377ww\377\363\322" "\322\377\361\320\320\377\356\315\315\377\353\314\314\377\341\341\341" "\377\360\247\247\377\377ww\325\377ww\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\37\206\313\331*\215" "\317\377*\215\317\377+\215\317\377+\215\317\377+\215\317\377+\215\320" "\377+\215\320\377\352y\200\377\357\262\262\377\346\346\346\377\352\352" "\352\377\356\356\356\377\361\361\361\377\366\355\355\377\377ww\377\377" "ww\377\377ww\377\377ww\377\377ww\377\377ww\377\376{{\377\342\342\342" "\377\352\274\274\377\377ww\375\377ww\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16z\302@#\211\316\377&\213" "\316\377&\213\316\377&\213\316\377&\213\316\377&\213\316\377&\213\316" "\377&\213\316\377\351y\200\377\355\274\274\377\346\346\346\377\353\353" "\353\377\357\357\357\377\363\363\363\377\370\357\357\377\377ww\377\377" "ww\377\377ww\377\377ww\377\377ww\377\377ww\377\376{{\377\343\343\343" "\377\347\306\306\377\377ww\377\377ww\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\201\310\245!\210\315\377" "!\210\315\377!\210\315\377!\210\315\377!\210\315\377!\211\315\377\"\211" "\315\377\"\211\315\377\344y\201\377\361\257\257\377\346\346\346\377\353" "\353\353\377\357\357\357\377\363\363\363\377\367\364\364\377\376\224" "\224\377\376\217\217\377\376\216\216\377\375\215\215\377\374\215\215" "\377\373\214\214\377\372\217\217\377\343\343\343\377\353\272\272\377" "\377ww\371\377ww\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\10t\274\25\30\203\313\366\35\206\314\377\35\206\314\377" "\35\206\314\377\35\206\314\377\35\206\314\377\35\206\314\377\36\206\314" "\377\36\206\314\377\263|\224\377\370\222\222\377\346\346\346\377\352" "\352\352\377\356\356\356\377\362\362\362\377\365\365\365\377\367\367" "\367\377\370\370\370\377\366\366\366\377\362\362\362\377\357\357\357" "\377\353\353\353\377\347\347\347\377\342\342\342\377\363\236\236\377" "\377ww\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\15|\306q\31\203\313\377\31\204\313\377\31\204\313\377" "\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313" "\377\31\204\313\377r\177\253\377\376zz\377\351\323\323\377\350\350\350" "\377\354\354\354\377\357\357\357\377\362\362\362\377\363\363\363\377" "\364\364\364\377\362\362\362\377\360\360\360\377\355\355\355\377\351" "\351\351\377\345\345\345\377\344\331\331\377\375~~\377\377ww\200\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17Ip\1\17" "~\310\325\24\201\312\377\24\201\312\377\24\201\313\377\24\201\313\377" "\24\201\313\377\24\201\313\377\25\201\313\377\25\201\313\377\25\201\313" "\377\35\201\310\377\340x\202\377\370\221\221\377\346\345\345\377\351" "\351\351\377\354\354\354\377\356\356\356\377\357\357\357\377\357\357" "\357\377\356\356\356\377\354\354\354\377\352\352\352\377\347\347\347" "\377\343\343\343\377\364\234\234\377\377ww\353\377ww\31\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7u\2768\16~\311\376" "\17~\311\377\17~\311\377\20\177\311\377\20\177\311\377\20\177\311\377" "\20\177\311\377\20\177\311\377\20\177\311\377\20\177\311\377\20\177\311" "\377Q}\263\377\373wx\377\364\244\244\377\346\344\344\377\350\350\350" "\377\352\352\352\377\353\353\353\377\353\353\353\377\352\352\352\377" "\351\351\351\377\346\346\346\377\344\343\343\377\357\257\257\377\377" "ww\376\377ww`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\10x\304\235\13|\310\377\13|\310\377\13|\310\377\13|" "\310\377\13|\310\377\13|\310\377\13|\310\377\13|\310\377\13|\311\377" "\14}\311\377\14}\310\377\14}\311\377iz\251\377\374wx\377\370\221\221" "\377\351\321\321\377\346\346\346\377\347\347\347\377\347\347\347\377" "\346\346\346\377\345\345\345\377\347\325\325\377\366\230\230\377\377" "ww\376\377ww~\377ww\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\5m\263\20\6y\306\363\6z\307\377\6z\307\377\6z\307\377" "\6z\307\377\6z\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307\377\7" "z\307\377\7z\307\377\7z\307\377\7z\307\377Gy\262\377\331w\203\377\377" "xx\377\371\216\216\377\362\251\251\377\357\266\266\377\362\253\253\377" "\370\222\222\377\376yy\377\344w\177\377\240x\225\211\377ww\1\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307" "\22\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5" "y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\34y\300M\356w" "|Z\377ww\236\377ww\321\377ww\326\377ww\324\377ww\244\371wy`.y\272M\5" "y\307.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0"}; loqui-0.5.5/src/icons/console.h0000664000175000017500000006555212121605257013330 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (console_pixbuf) #endif #ifdef __GNUC__ static const guint8 console_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 console_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\32\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0" "\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0" "\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0\31\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\26HHHh\361\361\361\243\365\365\365\377\366\366\366\377" "\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366" "\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366" "\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366" "\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377" "\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\365" "\365\365\377\314\314\314\300\0\0\0T\0\0\0\35\0\0\0\6\0\0\0\2\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\362\362\362" "\245\365\365\365\377\362\362\362\377\361\361\361\377\361\361\361\377" "\360\360\360\377\357\357\357\377\356\356\356\377\356\356\356\377\355" "\355\355\377\354\354\354\377\353\353\353\377\353\353\353\377\352\352" "\352\377\351\351\351\377\350\350\350\377\347\347\347\377\346\346\346" "\377\345\345\345\377\344\344\344\377\343\343\343\377\342\342\342\377" "\340\340\340\377\337\337\337\377\336\336\336\377\317\317\317\377}}}\377" "\\\\\\m\0\0\0[\0\0\0\17\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\365\365\365\377\362\362\362\377\361\361" "\361\377\361\361\361\377\360\360\360\377\357\357\357\377\357\357\357" "\377\356\356\356\377\355\355\355\377\354\354\354\377\353\353\353\377" "\353\353\353\377\352\352\352\377\351\351\351\377\350\350\350\377\347" "\347\347\377\346\346\346\377\345\345\345\377\344\344\344\377\343\343" "\343\377\342\342\342\377\341\341\341\377\337\337\337\377\336\336\336" "\377\335\335\335\377\334\334\334\377\267\267\267\377jjj\377\0\0\0k\0" "\0\0\36\0\0\0\17\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\1\0\0\0M\365\365\365\377\361\361\361\377\361\361\361\377\266\266" "\266\377\256\256\256\377\245\245\245\377\245\245\245\377\245\245\245" "\377\243\243\243\377\243\243\243\377\243\243\243\377\243\243\243\377" "\240\240\240\377\240\240\240\377\240\240\240\377\240\240\240\377\240" "\240\240\377\240\240\240\377\236\236\236\377\236\236\236\377\233\233" "\233\377\233\233\233\377\271\271\271\377\313\313\313\377\334\334\334" "\377\333\333\333\377\332\332\332\377SSS\377\0\0\0z\0\0\0/\0\0\0\31\0" "\0\0\12\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0M\365" "\365\365\377\361\361\361\377\360\360\360\377\256\256\256\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\353\353\353\377\332" "\332\332\377\330\330\330\377TTT\377\0\0\0\206\0\0\0=\0\0\0\"\0\0\0\15" "\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0N\365\365\365" "\377\360\360\360\377\357\357\357\377\245\245\245\377\0\0\0\377\276\273" "\266\377\350\345\336\377\346\342\334\377\342\337\330\377\336\333\323" "\377\331\326\316\377\325\321\311\377\321\314\304\377\314\307\277\377" "\310\303\272\377\303\277\265\377\273\267\255\377\267\262\250\377\256" "\251\237\377\245\241\226\377\231\224\212\377\221\215\202\377rnf\377\0" "\0\0\377\353\353\353\377\330\330\330\377\327\327\327\377TTT\377\0\0\0" "\213\0\0\0E\0\0\0'\0\0\0\20\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\2\0\0\0O\365\365\365\377\357\357\357\377\357\357\357\377\245" "\245\245\377\0\0\0\377\350\345\336\377\304\317\325\377\377\377\377\377" "\377\377\377\377\366\367\370\377\277\307\314\377\247\262\271\377\241" "\255\263\377\233\247\256\377\310\304\272\377\303\277\265\377\275\270" "\256\377\266\261\247\377\256\251\236\377\243\236\224\377dov\377[fl\377" "\206\202x\377\0\0\0\377\353\353\353\377\327\327\327\377\326\326\326\377" "TTT\377\0\0\0\216\0\0\0H\0\0\0)\0\0\0\21\0\0\0\5\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\357\357\357\377\356\356" "\356\377\245\245\245\377\0\0\0\377\346\342\334\377\367\366\364\377\377" "\377\377\377\377\377\377\377\364\363\360\377\356\354\351\377\353\352" "\347\377\351\347\344\377\346\344\340\377\310\303\272\377\303\277\265" "\377\275\271\257\377\266\261\247\377\255\247\236\377\243\236\224\377" "cnt\377\243\225i\377\203\177u\377\0\0\0\377\353\353\353\377\326\326\326" "\377\325\325\325\377TTT\377\0\0\0\216\0\0\0I\0\0\0*\0\0\0\21\0\0\0\5" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\356" "\356\356\377\356\356\356\377\243\243\243\377\0\0\0\377\342\337\330\377" "\365\363\361\377\377\377\377\377\371\370\367\377\360\356\354\377\355" "\353\351\377\352\351\346\377\350\346\343\377\345\343\337\377\307\302" "\271\377\303\276\264\377\275\270\256\377\266\261\247\377\254\247\236" "\377\241\234\222\377\224\217\206\377\221\215\204\377\202}t\377\0\0\0" "\377\352\352\352\377\325\325\325\377\323\323\323\377TTT\377\0\0\0\217" "\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0O\365\365\365\377\356\356\356\377\355\355\355\377\243\243" "\243\377\0\0\0\377\336\333\323\377\361\360\355\377\377\377\377\377\363" "\361\360\377\356\354\351\377\354\352\347\377\352\350\344\377\347\345" "\341\377\344\342\337\377\305\301\270\377\301\275\263\377\273\266\254" "\377\266\261\250\377\252\246\233\377\236\231\220\377\252\235p\377\222" "`]\377\200zr\377\0\0\0\377\352\352\352\377\323\323\323\377\322\322\322" "\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\356\356\356\377\354" "\354\354\377\243\243\243\377\0\0\0\377\331\326\316\377\357\355\352\377" "\375\374\374\377\355\353\351\377\354\352\347\377\352\350\345\377\350" "\346\342\377\346\344\337\377\344\341\335\377\303\277\266\377\277\273" "\261\377\272\265\253\377\264\257\245\377\252\244\233\377\236\231\217" "\377\200>:\377\220^[\377~yp\377\0\0\0\377\352\352\352\377\322\322\322" "\377\321\321\321\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\355" "\355\355\377\353\353\353\377\243\243\243\377\0\0\0\377\325\321\311\377" "\354\352\347\377\366\365\364\377\352\351\346\377\352\350\344\377\350" "\346\342\377\346\344\340\377\344\341\336\377\342\340\333\377\301\275" "\263\377\276\271\257\377\271\264\252\377\262\254\242\377\251\244\232" "\377\235\230\216\377\216\212\201\377\235\231\222\377}xo\377\0\0\0\377" "\351\351\351\377\321\321\321\377\317\317\317\377TTT\377\0\0\0\217\0\0" "\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\2\0\0\0O\365\365\365\377\354\354\354\377\353\353\353\377\243\243\243" "\377\0\0\0\377\321\314\304\377\352\347\344\377\356\355\353\377\346\344" "\341\377\345\343\337\377\342\340\333\377\341\336\333\377\337\335\330" "\377\335\333\326\377\274\267\255\377\270\263\251\377\264\257\246\377" "\256\251\237\377\244\237\225\377\231\224\212\377\215\210\177\377\233" "\230\220\377|xn\377\0\0\0\377\351\351\351\377\317\317\317\377\316\316" "\316\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\353\353\353\377" "\352\352\352\377\240\240\240\377\0\0\0\377\311\304\274\377\342\340\334" "\377\342\340\334\377\337\335\331\377\334\332\330\377\333\331\325\377" "\332\330\324\377\330\326\321\377\327\324\320\377\265\261\247\377\263" "\256\244\377\257\251\237\377\250\243\231\377\240\233\221\377\224\217" "\205\377\213\206|\377\231\225\216\377{um\377\0\0\0\377\350\350\350\377" "\316\316\316\377\314\314\314\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0" "\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365" "\365\377\353\353\353\377\351\351\351\377\240\240\240\377\0\0\0\377\303" "\276\265\377\334\331\326\377\332\327\323\377\327\324\320\377\323\321" "\315\377\322\317\313\377\315\313\307\377\317\314\307\377\314\311\305" "\377\254\250\236\377\252\244\233\377\246\240\227\377\236\232\220\377" "\230\223\211\377\216\211\200\377\203~t\377\225\221\212\377vqh\377\0\0" "\0\377\350\350\350\377\314\314\314\377\313\313\313\377TTT\377\0\0\0\217" "\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0O\365\365\365\377\352\352\352\377\351\351\351\377\240\240" "\240\377\0\0\0\377\274\270\256\377\322\320\314\377\316\313\310\377\313" "\311\305\377\310\306\301\377\304\302\276\377\302\300\273\377\301\276" "\272\377\301\276\272\377\242\235\224\377\237\233\221\377\236\231\217" "\377\225\220\207\377\220\214\202\377\206\200w\377\201}t\377\224\220\212" "\377vri\377\0\0\0\377\350\350\350\377\313\313\313\377\311\311\311\377" "TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\351\351\351\377\350\350" "\350\377\240\240\240\377\0\0\0\377\260\254\243\377\312\310\303\377\303" "\301\274\377\276\274\266\377\273\270\264\377\274\272\267\377\275\273" "\266\377\274\272\266\377\300\276\272\377\253\247\240\377\252\247\240" "\377\250\244\235\377\242\237\230\377\237\233\224\377\230\224\215\377" "\225\222\214\377\235\232\224\377sof\377\0\0\0\377\350\350\350\377\311" "\311\311\377\310\310\310\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22" "\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365" "\377\350\350\350\377\350\350\350\377\245\245\245\377\0\0\0\377\205\201" "z\377\244\240\227\377\237\232\222\377\230\224\214\377\225\221\211\377" "\220\215\205\377\217\212\202\377\215\211\201\377\216\212\201\377\216" "\212\202\377\213\210\177\377\212\206~\377\206\202y\377\201|t\377xtk\377" "vrj\377qne\377^[T\377\0\0\0\377\350\350\350\377\310\310\310\377\306\306" "\306\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\350\350\350\377" "\347\347\347\377\275\275\275\377\12\12\12\377\0\0\0\377\0\0\0\377\0\0" "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\341\341\341\377\306\306\306\377\304\304" "\304\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\347\347\347\377" "\346\346\346\377\324\324\324\377\354\354\354\377\356\356\356\377\356" "\356\356\377\355\355\355\377\355\355\355\377\355\355\355\377\354\354" "\354\377\353\353\353\377\353\353\353\377\353\353\353\377\353\353\353" "\377\352\352\352\377\352\352\352\377\352\352\352\377\351\351\351\377" "\350\350\350\377\350\350\350\377\350\350\350\377\350\350\350\377\343" "\343\343\377\353\353\353\377\304\304\304\377\303\303\303\377TTT\377\0" "\0\0\217\0\0\0I\0\0\0+\0\0\0\23\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\346\346\346\377\345\345\345\377" "\343\343\343\377\342\342\342\377\341\341\341\377\340\340\340\377\337" "\337\337\377\336\336\336\377\335\335\335\377\334\334\334\377\332\332" "\332\377\330\330\330\377\327\327\327\377\326\326\326\377\325\325\325" "\377\323\323\323\377\322\322\322\377\317\317\317\377\316\316\316\377" "\314\314\314\377\313\313\313\377\337\337\337\377\343\343\343\377\306" "\306\306\377\303\303\303\377\301\301\301\377BBB\377\0\0\0\217\0\0\0~" "\0\0\0i\0\0\0Y\0\0\0O\0\0\0\31\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0" "\0\0N\365\365\365\377\330\330\330\377\344\344\344\377\343\343\343\377" "\341\341\341\377\340\340\340\377\357\357\357\377\315\315\315\377\335" "\335\335\377\357\357\357\377\313\313\313\377\330\330\330\377\357\357" "\357\377\277\277\277\377\325\325\325\377\323\323\323\377\322\322\322" "\377\321\321\321\377\316\316\316\377\314\314\314\377\313\313\313\377" "\337\337\337\377\344\3132\377\342\311:\377}}}\377\303\303\303\377\251" "\251\251\377BBB\377\236\236\236\377\236\236\236\377\236\236\236\377\236" "\236\236\377\217\217\217n\0\0\0P\0\0\0\25\0\0\0\3\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" "\0\0\0M\337\337\337w\236\236\236\377\272\272\272\377\304\304\304\377" "\340\340\340\377\337\337\337\377\315\315\315\377\252\252\252\377\334" "\334\334\377\304\304\304\377\232\232\232\377\327\327\327\377\277\277" "\277\377\220\220\220\377\323\323\323\377\322\322\322\377\321\321\321" "\377\317\317\317\377\316\316\316\377\313\313\313\377\311\311\311\377" "\310\310\310\377\200\200\200\377}}}\377\303\303\303\377\201\201\201\377" "TTT\377(((\261\0\0\0\216\0\0\0\201\0\0\0p\0\0\0c\236\236\236\377\0\0" "\0W\0\0\0T\0\0\0\30\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\31\0\0\0SpppiMMM\377TTT" "\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377T" "TT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377" "TTT\377BBB\377888\377\31\31\31\310\0\0\0\224\0\0\0\\\0\0\0U\0\0\0phh" "h[\236\236\236\377\236\236\236\377uuuQ\0\0\0W\0\0\0\13\0\0\0\4\0\0\0" "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0\35\0\0\0Y\0\0\0gBBB\377&&&\377\24\24\24\377&&&\377\24\24" "\24\377&&&\377\33\33\33\377&&&\377\33\33\33\377&&&\377&&&\377\33\33\33" "\377&&&\377&&&\377&&&\377\33\33\33\377&&&\377&&&\377&&&\377\33\33\33" "\377&&&\377\24\24\24\377\0\0\0\274\0\0\0v\0\0\0_\0\0\0N\0\0\0tddd^\236" "\236\236\377\236\236\236\377///\213\0\0\0g\0\0\0.\0\0\0\23\0\0\0\10\0" "\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\1\0\0\0\5\0\0\0\33\0\0\0]\77\77\77\377\24\24\24\377&&&\377\24" "\24\24\377&&&\377\24\24\24\377&&&\377\33\33\33\377&&&\377\33\33\33\377" "&&&\377&&&\377\33\33\33\377&&&\377&&&\377&&&\377\33\33\33\377&&&\377" "&&&\377&&&\377\33\33\33\377\13\13\13\377\0\0\0\242\0\0\0`\0\0\0P\0\0" "\0;\0\0\0""5\0\0\0^rrrS\236\236\236\377\236\236\236\377\\\\\\f\0\0\0" "i\0\0\0\33\0\0\0\14\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\3\0\0\0\40\0\0\0U\0\0\0a\0\0\0p" "\0\0\0\177\0\0\0\213\0\0\0\220\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223" "\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223" "\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\221\0\0\0\216" "\0\0\0`\0\0\0>\0\0\0(\0\0\0[~~~K\236\236\236\377\236\236\236\377...\223" "\0\0\0u\0\0\0E\0\0\0\37\0\0\0\16\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\31\0\0\0J\0\0\0L\0\0\0O\0\0\0S\0" "\0\0[\0\0\0h\0\0\0u\0\0\0\200\0\0\0\206\0\0\0\210\0\0\0\210\0\0\0\210" "\0\0\0\210\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211" "\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\210\0\0\0\210\0\0\0\206" "\0\0\0\202\0\0\0y\0\0\0k\0\0\0^\0\0\0W\0\0\0TyyyN\236\236\236\377\236" "\236\236\377VVVn\0\0\0p\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26```{\365\365\365\377\365\365\365\377" "\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365" "\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365" "\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365" "\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377" "\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365" "\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365" "\365\377\365\365\365\377\365\365\365\377ooo\234{{{M\236\236\236\377\236" "\236\236\377:::\242\0\0\0x\0\0\0V\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0J\365\365\365\377\355\355" "\355\377\362\362\362\377\363\363\363\377\274\274\274\377\350\350\350" "\377\362\362\362\377\352\352\352\377\240\240\240\377\357\357\357\377" "\351\351\351\377\256\256\256\377\362\362\362\377\361\361\361\377\356" "\356\356\377\356\356\356\377\361\361\361\377\361\361\361\377\226\226" "\226\377\322\322\322\377\317\317\317\377\316\316\316\377\313\313\313" "\377\311\311\311\377\306\306\306\377\304\304\304\377\301\301\301\377" "\275\275\275\377\274\274\274\377\270\270\270\377\266\266\266\377BBB\377" "\0\0\0e000\212\236\236\236\377\0\0\0u\0\0\0X\0\0\0""9\0\0\0\36\0\0\0" "\15\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!___|\365\365" "\365\377\355\355\355\377\233\233\233\377\256\256\256\377\351\351\351" "\377\350\350\350\377\245\245\245\377\243\243\243\377\344\344\344\377" "\233\233\233\377\231\231\231\377\340\340\340\377\277\277\277\377\243" "\243\243\377\233\233\233\377\233\233\233\377\240\240\240\377\236\236" "\236\377\303\303\303\377\325\325\325\377\345\345\345\377\342\342\342" "\377\337\337\337\377\264\264\264\377\332\332\332\377\332\332\332\377" "jjj\377\236\236\236\377\332\332\332\377\326\326\326\377jjj\377BBB\377" "\236\236\236\377\236\236\236\377{{{\225\0\0\0v\0\0\0G\0\0\0,\0\0\0\31" "\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0K\365" "\365\365\377\355\355\355\377\354\354\354\377\353\353\353\377\306\306" "\306\377\351\351\351\377\350\350\350\377\347\347\347\377\335\335\335" "\377\344\344\344\377\342\342\342\377\330\330\330\377\337\337\337\377" "\336\336\336\377\334\334\334\377\333\333\333\377\330\330\330\377\327" "\327\327\377\325\325\325\377\323\323\323\377\321\321\321\377\251\251" "\251\377\245\245\245\377\243\243\243\377\236\236\236\377\233\233\233" "\377\231\231\231\377\226\226\226\377\275\275\275\377\216\216\216\377" "\211\211\211\377\264\264\264\377\262\262\262\377BBB\377\0\0\0\200\0\0" "\0{\0\0\0W\0\0\0""3\0\0\0#\0\0\0\22\0\0\0\6\0\0\0\2\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0!QQQr\365\365\365\377\354\354\354\377\321\321\321" "\377\301\301\301\377\351\351\351\377\335\335\335\377\353\353\353\377" "\361\361\361\377\311\311\311\377\360\360\360\377\360\360\360\377\301" "\301\301\377\361\361\361\377\356\356\356\377\245\245\245\377\361\361" "\361\377\361\361\361\377\264\264\264\377\353\353\353\377\226\226\226" "\377\321\321\321\377\317\317\317\377\314\314\314\377\311\311\311\377" "\310\310\310\377\304\304\304\377\303\303\303\377\277\277\277\377\275" "\275\275\377\272\272\272\377\327\327\327\377\327\327\327\377\200\200" "\200\377BBB\377,,,\240\0\0\0\201\0\0\0=\0\0\0+\0\0\0\31\0\0\0\13\0\0" "\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0K\365\365\365\377" "\354\354\354\377\362\362\362\377\363\363\363\377\363\363\363\377\361" "\361\361\377\266\266\266\377\272\272\272\377\270\270\270\377\344\344" "\344\377\262\262\262\377\260\260\260\377\340\340\340\377\251\251\251" "\377zzz\377\334\334\334\377\245\245\245\377\240\240\240\377\336\336\336" "\377\260\260\260\377\360\360\360\377\360\360\360\377\357\357\357\377" "\236\236\236\377\311\311\311\377\310\310\310\377\341\341\341\377\350" "\350\350\377\224\224\224\377\275\275\275\377\272\272\272\377lll\377o" "oo\377\260\260\260\377\256\256\256\377BBB\377\0\0\0\204\0\0\0U\0\0\0" "%\0\0\0\22\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34Q" "QQr\365\365\365\377\362\362\362\377\356\356\356\377\236\236\236\377\275" "\275\275\377\303\303\303\377\362\362\362\377\363\363\363\377\362\362" "\362\377\362\362\362\377\362\362\362\377\362\362\362\377\362\362\362" "\377\362\362\362\377\362\362\362\377\362\362\362\377\361\361\361\377" "\356\356\356\377zzz\377\275\275\275\377\256\256\256\377\221\221\221\377" "\251\251\251\377\313\313\313\377\311\311\311\377\342\342\342\377\346" "\346\346\377\337\337\337\377\337\337\337\377\334\334\334\377ggg\377\272" "\272\272\377\340\340\340\377\314\314\314\377TTT\377BBB\377///\245\0\0" "\0v\0\0\0%\0\0\0\21\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0J\365\365\365\377\353\353\353\377\262\262\262\377\206\206\206\377" "\306\306\306\377\350\350\350\377\350\350\350\377\270\270\270\377\206" "\206\206\377\203\203\203\377\203\203\203\377}}}\377zzz\377www\377uuu" "\377rrr\377ooo\377lll\377rrr\377\260\260\260\377\323\323\323\377\321" "\321\321\377\221\221\221\377\214\214\214\377\221\221\221\377\310\310" "\310\377\203\203\203\377rrr\377```\377]]]\377[[[\377PPP\377\266\266\266" "\377\200\200\200\377}}}\377\254\254\254\377\251\251\251\377BBB\377\0" "\0\0|\0\0\0,\0\0\0\25\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0L\365\365\365\377\352\352\352\377\351\351\351\377\351\351\351\377" "\350\350\350\377\350\350\350\377\347\347\347\377\345\345\345\377\344" "\344\344\377\343\343\343\377\342\342\342\377\340\340\340\377\337\337" "\337\377\336\336\336\377\334\334\334\377\333\333\333\377\332\332\332" "\377\327\327\327\377\326\326\326\377\325\325\325\377\322\322\322\377" "\321\321\321\377\316\316\316\377\314\314\314\377\311\311\311\377\310" "\310\310\377\304\304\304\377\303\303\303\377\277\277\277\377\275\275" "\275\377\272\272\272\377\270\270\270\377\264\264\264\377\262\262\262" "\377\256\256\256\377\254\254\254\377\247\247\247\377BBB\377\0\0\0\202" "\0\0\0""5\0\0\0\33\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0L\325\325\325N'''\377+++\377+++\377+++\377+++\377+++\377+++\377+" "++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377" "+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377" "+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377***\377\33\33" "\33\245\0\0\0\205\0\0\0;\0\0\0\40\0\0\0\14\0\0\0\3\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0#\0\0\0R\0\0\0]\0\0\0m\0\0\0}\0\0\0\210\0\0\0\215" "\0\0\0\216\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\216\0\0\0\212\0\0\0c\0\0\0""7\0\0\0\36\0\0" "\0\14\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0" "\24\0\0\0&\0\0\0""7\0\0\0B\0\0\0G\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I" "\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0" "I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0" "\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0H\0\0\0D\0\0\0""9\0\0\0(" "\0\0\0\26\0\0\0\11\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" "\0\0\4\0\0\0\13\0\0\0\25\0\0\0\37\0\0\0&\0\0\0)\0\0\0*\0\0\0*\0\0\0*" "\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0" "*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0" "\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0)\0\0\0'\0" "\0\0\40\0\0\0\27\0\0\0\14\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\10\0\0\0\15\0\0\0\17\0\0\0\21\0\0" "\0\21\0\0\0\21\0\0\0\21\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22" "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0" "\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0" "\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\21\0\0\0\21" "\0\0\0\20\0\0\0\15\0\0\0\11\0\0\0\5\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0" "\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0" "\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0" "\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0" "\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\4\0\0\0\4\0\0\0" "\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0" "\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0" "\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0" "\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0"}; loqui-0.5.5/src/icons/loqui_hilighted.h0000664000175000017500000006277012121605257015037 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (loqui_hilighted_pixbuf) #endif #ifdef __GNUC__ static const guint8 loqui_hilighted_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 loqui_hilighted_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T" "\177\1\20T\177\11\21V\203\20\21V\203\21\20V\203\21\17V\203\21\17U\203" "\21\17U\203\21\17T\203\21\16S\203\21\16S\203\21\16R\203\21\16R\203\21" "\15Q\203\21\15Q\203\21\15P\203\21\15P\203\21\14O\203\21\14O\203\21\14" "N\203\21\14O\204\15\13L\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\4\22]\2165\23g\234^\24j\243" "p\24l\246x\24l\246y\23k\246y\23k\246y\22j\246y\22i\246y\22i\246y\22h" "\246y\21g\246y\21g\246y\21f\246y\21f\246y\20e\246y\20d\246y\17d\246y" "\17c\246w\15[\231T\13K\177\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\5\22`\222\77\24j\243p\25u\264" "\226\27}\300\255\30\204\315\301\33\227\352\351\33\235\366\366\34\235" "\370\370\33\234\370\370\33\233\370\370\32\232\370\370\32\231\370\370" "\31\230\370\370\30\225\365\365\26\213\344\342\24}\317\305\22u\303\261" "\21s\302\260\21q\300\253\16`\244s\13K\177\5\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20S\177\2\17S" "\177\4\17R\177\5\17R\177\11\20Z\215/\24s\264\226\32\225\352\351\33\240" "\376\376\34\240\377\377\33\237\377\377\33\236\377\377\32\235\377\377" "\30\230\372\372\25\204\331\323\17e\250}\31U\2636\26L\246\11\26K\246\6" "\26K\246\6\15\3\\F\16\0__\13\0P\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\16Q\177\3\17V\210%\25}\306\267\33\233\370\370\33\237\377\377\33\236" "\377\377\32\235\377\377\31\234\377\377\26\214\347\346\17a\241k\14L\177" "\13\26L\246\1\0\0\0\0\0\0\0\0\13\0M\12\25\0\221\357\27\0\233\377\25\0" "\222\360\17\0i\210\13\0P\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16R\204\16\22" "j\251\177\31\224\356\356\32\236\377\377\32\235\377\377\31\234\377\377" "\30\231\375\375\23\200\324\313\14Q\207!\13L\177\1\0\0\0\0\0\0\0\0\0\0" "\0\0\13\0M\2\23\0\204\324\212[\307\377\255g\323\377'\17\241\377\26\0" "\225\366\21\0u\255\14\0U1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15O\177\11\20`\233\\\27\217\347" "\346\32\235\377\377\31\234\377\377\31\233\377\377\27\223\365\365\21r" "\276\250\13N\203\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0k\217" "P/\261\377\376Z\350\377\375i\351\377\310v\334\377M*\260\377\26\0\232" "\376\21\0w\265\15\0\\Q\13\0M\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\15O\177\11\17_\233\\\27\216\347\346\31\234\377\377" "\31\233\377\377\30\232\377\377\26\221\361\361\20j\263\223\13N\203\17" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15\0[N\31\2\234\377\366t\351" "\377\377Y\350\377\377Y\350\377\376_\350\377\342|\344\377oE\275\377\31" "\2\234\377\23\0\203\322\16\0_^\13\0P\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\15N\177\11\17_\233\\\26\214\347\346\31\233\377\377\30\232" "\377\377\30\231\377\377\25\220\361\361\20j\263\223\13M\203\17\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0P\15\26\0\224\363\302s\332\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\376[\350\377\363v\350" "\377\230_\314\377\36\10\236\377\25\0\217\352\17\0f}\13\0O\22\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\15N\177\11\17^\233\\\26\214\347\346\30\232\377\377\30" "\231\377\377\27\230\377\377\25\217\361\361\17i\263\223\13M\203\17\0\0" "\0\0\0\0\0\0\13\0P\15\13\0P\20\13\0P\20\13\0P\20\22\0|\300a<\270\377" "\376[\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\373p\352\377\276o\331\377:\36\251\377\26\0\224" "\363\20\0m\226\14\0V7\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13" "\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\17\13\0M\3\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14M\177\11\17]\233\\\25\213\347" "\346\30\230\377\377\27\230\377\377\27\227\377\377\24\216\361\361\16h" "\263\223\12L\203\17\0\0\0\0\15\0]Y\26\0\226\367\26\0\231\374\26\0\231" "\374\26\0\231\374\26\0\231\375\33\4\235\377\371s\352\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\376`\350\377\326{\341\377`:\267\376\26\0\231\375" "\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26" "\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\230" "\373\20\0q\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14M\177" "\11\16]\233\\\24\212\347\346\27\227\377\377\26\227\377\377\26\226\377" "\377\23\215\361\361\16h\263\223\12L\203\17\0\0\0\0\17\0g\202\26\0\231" "\374\27\1\231\375\30\2\233\376\30\2\233\376\27\1\232\376\27\0\233\377" "\315u\336\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\376\\\350\377\355y\347\377\203U\304\376\33\5\234\376\30\2\233\376" "\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30" "\2\233\376\30\2\233\376\27\1\231\375\24\0\212\341\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14L\177\11\16\\\233\\\24\211\347\346\26" "\226\377\377\26\225\377\377\25\225\377\377\23\214\361\361\16g\263\223" "\12K\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\30\2\233" "\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13" "L\177\11\16\\\233\\\24\210\347\346\26\225\377\377\25\224\377\377\25\224" "\377\377\22\213\361\361\16f\263\223\11K\203\17\0\0\0\0\17\0g\202\26\0" "\231\374\212T\301\362\375e\351\377\223T\311\377\221R\310\377\221R\310" "\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377" "\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221" "R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310" "\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377" "\330u\341\377\361s\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13K\177\11\15[\233\\\24\207\347\346" "\25\224\377\377\25\223\377\377\24\222\377\377\22\212\361\361\15e\263" "\223\11J\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\376a\351" "\377\324r\337\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377" "\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322" "p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336" "\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377" "\322p\336\377\322p\336\377\322p\336\377\360v\350\377\361s\347\377\30" "\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\13K\177\11\15Z\233\\\23\206\347\346\25\223\377\377\24\222\377\377" "\24\221\377\377\22\211\361\361\15e\263\223\11I\203\17\0\0\0\0\17\0g\202" "\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\361s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13J\177\11\14Z\233\\\23\205\347" "\346\24\222\377\377\24\221\377\377\23\220\377\377\21\207\361\361\14d" "\263\223\10I\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\374h" "\351\377P)\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377" "M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377" "M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377\313r\335" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\361s\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\12J\177\11\14Y\233\\\22\204\347\346\23\221\377\377" "\23\220\377\377\22\217\377\377\21\206\361\361\13c\263\223\10H\203\17" "\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\376a\351\377\324r\337\377" "\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322" "p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336" "\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377" "\322p\336\377\322p\336\377\363u\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213" "\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12I\177\11\14X\233" "\\\21\203\347\346\23\220\377\377\22\217\377\377\22\216\377\377\20\205" "\361\361\13b\263\223\10H\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301" "\362\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361" "s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\12I\177\11\13X\233\\\21\202\347\346\22\217\377\377\22" "\216\377\377\21\215\377\377\20\204\361\361\13a\263\223\10G\203\17\0\0" "\0\0\17\0g\202\26\0\231\374\212T\301\362\357u\347\377M'\260\377M'\260" "\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260" "\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260" "\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377\341x\344\377\377" "Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213" "\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11H\177\11\13W\233" "\\\20\202\347\346\22\216\377\377\21\215\377\377\21\214\377\377\17\203" "\361\361\13a\263\223\7F\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301" "\362\376e\351\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377" "\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360" "r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347" "\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377" "\360r\347\377\375i\351\377\377Y\350\377\377Y\350\377\377Y\350\377\361" "s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\11H\177\11\12W\233\\\20\201\347\346\21\215\377\377\21" "\214\377\377\20\213\377\377\17\202\361\361\12`\263\223\7F\203\17\0\0" "\0\0\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\361s\347\377\30\2\233\376\24\0\213\342" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11G\177\11\12V\233\\" "\17\200\347\346\21\214\377\377\20\213\377\377\20\212\377\377\16\201\361" "\361\12_\263\223\7E\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347" "\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\11G\177\11\12U\233\\\17\177\347\346\20\213\377\377\20\212" "\377\377\17\211\377\377\15\201\361\361\11^\263\223\6E\203\17\0\0\0\0" "\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213\342\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10F\177\11\11U\233\\\16" "~\347\346\17\212\377\377\17\211\377\377\16\210\377\377\15\200\361\361" "\11^\263\223\6D\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347\377" "\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\10F\177\11\11T\233\\\15}\347\346\17\211\377\377\16\210\377\377" "\16\207\377\377\14\177\361\361\11]\263\223\6D\203\17\0\0\0\0\17\0g\202" "\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10E\177\11\11T\233\\\15|\347\346" "\16\210\377\377\16\207\377\377\15\206\377\377\14~\361\361\10\\\263\223" "\6C\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\30\2\233\376" "\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7E\177" "\11\11S\233\\\14{\347\346\16\207\377\377\15\206\377\377\15\205\377\377" "\13}\361\361\10\\\263\223\5C\203\17\0\0\0\0\17\0g\202\26\0\231\374\212" "T\301\362\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\361s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\7D\177\11\10R\233\\\14z\347\346\15\206\377\377\15" "\205\377\377\14\204\377\377\13|\361\361\7[\263\223\5B\203\17\0\0\0\0" "\17\0g\202\26\0\231\374\77\37\247\371\223T\311\377\223T\311\377\223T" "\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311" "\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377" "\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223" "T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311" "\377\223T\311\377\223T\311\377yE\300\377\27\1\231\375\24\0\213\342\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7D\177\11\10R\233\\\13" "y\347\346\15\205\377\377\14\204\377\377\13\203\377\377\12{\361\361\7" "Z\263\223\5B\203\17\0\0\0\0\16\0dt\26\0\231\374\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27" "\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\26" "\0\231\374\23\0\201\315\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\7C\177\11\7Q\233\\\12x\347\346\14\204\377\377\13\203\377\377\13\202" "\377\377\11z\361\361\7Z\263\223\4A\203\17\0\0\0\0\13\0M\10\15\0\\S\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\5ii\16\5ii\16" "\1``\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0^]\14\0R\40" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6C\177\11\7Q\233\\\12" "x\347\346\13\203\377\377\13\202\377\377\12\201\377\377\11y\361\361\6" "Y\263\223\4A\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13""7\246\12\5G\262x\5E\260" "l\13""8\251\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6" "B\177\11\7P\233\\\12w\347\346\13\202\377\377\12\201\377\377\12\200\377" "\377\10x\361\361\6X\263\223\4@\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\1\0\77" "\222D\0R\300\253\0B\232[\0""7\177\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\6A\177\11\6O\233\\\12v\347\346\12\201\377\377\12\200" "\377\377\11\177\377\377\10w\361\361\5W\263\223\4@\203\17\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0""8\203\17\0J\254\207\0R\276\251\0=\2165\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5A\177\11\6O\233\\\11u\347\346" "\12\200\377\377\11\177\377\377\11~\377\377\7v\361\361\5W\263\223\3\77" "\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0""7\177\5\0A\226N\0Z\322\311\0J\254\207\0""8\202\23\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\11" "\6N\233\\\11t\347\346\11\177\377\377\11~\377\377\10}\377\377\6u\361\361" "\4V\263\223\3\77\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\212+\0P\272\241\0c\347\345\0D\236d" "\0""7\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\5@\177\11\6M\233\\\10r\347\346\10~\377\377\10}\377\377\7|\377\377" "\6u\363\363\4W\266\233\3>\203\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\210\40\0L\260\216\0f\354\354\0W\313" "\277\0>\221=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\4B\204\15\5R\246w\7t\354\354\10|\377\377\7|\377\377\7{\377" "\377\5w\372\372\4_\312\274\2\77\206\34\2;\177\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0""7\177\13\0>\220;\0M\264\227\0d\347\346\0m\376" "\376\0L\261\217\0""9\205\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\4B\205\25\6^\301\256\7x\367\367\7{\377\377" "\7{\377\377\6z\377\377\6y\377\377\4m\350\347\3M\246y\2@\213*\2<\204\15" "\1:\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0""7\177\5\0""9\204\31\0<\215/\0@\224J\0H\247{\0X\316\302\0j\366" "\366\0n\377\377\0d\351\350\0D\236b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\5@\177\1\5@\177\1\4\77\177\1\4\77\177\12\4L\234_\7m\341\335" "\6z\375\375\7z\377\377\6y\377\377\6y\377\377\5x\377\377\4v\375\375\3" "k\350\347\3Z\304\263\2R\266\231\2O\260\216\1N\260\215\0N\260\215\0M\260" "\215\0L\260\215\0L\260\215\0L\260\215\0L\260\215\0L\260\215\0M\262\222" "\0P\273\244\0V\307\270\0]\327\320\0h\361\361\0n\377\377\0n\377\377\0" "m\376\376\0V\307\271\0=\2168\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5A\177\2\5D" "\206\34\5G\2152\5I\223E\5M\235c\5U\257\212\6i\330\322\6x\371\371\6y\376" "\376\5x\376\376\5w\376\376\4w\376\376\4v\376\376\3u\376\376\3t\376\376" "\2s\376\376\1r\376\376\1q\376\376\0p\376\376\0o\376\376\0n\376\376\0" "m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376" "\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\375\375" "\0K\257\212\0""8\203\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\5\5J\224I\6" "T\252\200\6X\263\223\5[\273\244\6`\306\267\5c\316\302\5c\317\304\4b\317" "\304\4a\317\304\4`\317\304\4_\317\304\3_\317\304\3_\317\304\2^\317\304" "\1]\317\304\1\\\317\304\0[\317\304\0[\317\304\0Z\317\304\0Y\317\304\0" "Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317" "\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0V\307\271" "\0A\230U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\2\4C\207\32\4E\213" ".\4E\2152\4D\2152\3D\2152\3C\2152\3C\2152\3B\2152\2B\2152\2A\2152\2A" "\2152\1A\2152\1@\2152\1\77\2152\1\77\2152\0>\2152\0>\2152\0=\2152\0=" "\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\215" "2\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0<\213-\0""9\206\24\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/naruto.h0000664000175000017500000004071612121605257013171 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (naruto_pixbuf) #endif #ifdef __GNUC__ static const guint8 naruto_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 naruto_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\357\351\325\31\357\351\325\33\357\351\325\6\357" "\351\325\215\357\351\325\263\357\351\325*\0\0\0\0\0\0\0\0\357\351\325" "\3\357\351\325\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357" "\351\325\6\357\351\325\4\357\351\3254\357\351\325\367\357\351\325\371" "\357\351\325\252\357\351\325\377\357\351\325\377\357\351\325\270\357" "\351\325W\357\351\325\250\357\351\325\367\357\351\325\341\357\351\325" "\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\3254\357\351\325\361\357\351" "\325\347\357\351\325\315\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325|\357\351" "\325I\357\351\325\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325h\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\261\357\351\325\11\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325h\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\336\315\377\357\303\270\377\357\253\246\377\357\247\243\377" "\360\302\270\377\357\350\324\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\207\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351" "\325{\357\351\325\364\357\351\325\377\357\351\325\377\357\351\325\377" "\357\307\273\377\357ow\377\357GW\377\357CT\377\357CT\377\357CT\377\357" "DU\377\357ow\377\360\262\254\377\357\344\322\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\233\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\20\357\351\325\373\357" "\351\325\377\357\351\325\377\357\350\324\377\357\246\242\377\357FW\377" "\357CT\377\357CT\377\357CT\377\357KZ\377\357L[\377\357CT\377\357CT\377" "\357CT\377\357Xe\377\357\261\253\377\357\351\325\377\357\351\325\377" "\357\351\325\241\357\351\325\15\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\357\351\325\30\357\351\325\377\357\351\325\377\357\351" "\325\377\360\220\221\377\357CT\377\357CT\377\357S`\377\357\241\236\377" "\360\322\304\377\357\344\321\377\357\344\322\377\357\253\246\377\357" "dn\377\357CT\377\357CT\377\357EV\377\357\241\236\377\357\350\324\377" "\357\351\325\377\357\351\325\350\357\351\325Q\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\357\351\325\16\357\351\325\372\357\351\325\377\357" "\315\300\377\357EV\377\357CT\377\357is\377\357\325\306\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\347\324\377\360\274\263\377\357Yf\377\357CT\377\357DU\377\357\275" "\264\377\357\351\325\377\357\351\325\377\357\351\325\333\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\34\357\351\325q\357\351\325\372" "\357\351\325\377\357\206\211\377\357CT\377\357Q_\377\357\335\314\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\327" "\310\377\357Xe\377\357CT\377\357gq\377\357\350\324\377\357\351\325\377" "\357\351\325\227\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\32\357\351\325" "\356\357\351\325\377\357\351\325\377\357\335\314\377\357K[\377\357CT" "\377\357\222\222\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\315\300\377\360\234\232\377\360\230\227\377\360\227\227\377\360" "\265\256\377\357\350\324\377\357\351\325\377\357\253\246\377\357CT\377" "\357CT\377\360\273\262\377\357\351\325\377\357\351\325[\357\351\325\2" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\357\351\325-\357\351\325\377\357\351\325\377\357" "\351\325\377\357\232\230\377\357CT\377\357FV\377\357\326\307\377\357" "\351\325\377\357\350\324\377\357\242\236\377\357FW\377\357CT\377\357" "CT\377\357CT\377\357CT\377\357\244\240\377\357\351\325\377\357\344\321" "\377\357^j\377\357CT\377\357ow\377\357\350\324\377\357\351\325\377\357" "\351\325\272\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\1\357\351\325\276\357\351" "\325\377\357\350\324\377\357_j\377\357CT\377\357y\177\377\357\351\325" "\377\357\351\325\377\357\274\263\377\357DU\377\357CT\377\357O^\377\357" "^j\377\357Ra\377\357CT\377\357Uc\377\357\344\322\377\357\351\325\377" "\360\261\252\377\357CT\377\357bn\377\357\350\324\377\357\351\325\377" "\357\351\325\371\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325T\357\351\325" "\377\357\344\322\377\357FW\377\357CT\377\357\256\250\377\357\351\325" "\377\357\347\323\377\357do\377\357CT\377\357Xe\377\357\333\313\377\357" "\351\325\377\357\307\273\377\357CT\377\357CT\377\360\265\256\377\357" "\351\325\377\357\347\324\377\357\276\264\377\357\326\307\377\357\351" "\325\377\357\351\325\351\357\351\326}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357" "\351\325\11\357\351\325\342\357\344\322\377\357FW\377\357CT\377\357\264" "\255\377\357\351\325\377\357\314\277\377\357CT\377\357CT\377\360\267" "\257\377\357\351\325\377\357\351\325\377\357\350\324\377\357al\377\357" "CT\377\357{\200\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\352\326\243\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\357\351\325S\357\351\325\377\357\344\322\377\357FW\377\357" "CT\377\357\264\255\377\357\351\325\377\357\304\271\377\357CT\377\357" "CT\377\357\322\304\377\357\351\325\377\357\351\325\377\357\351\325\377" "\360\230\227\377\357CT\377\357N]\377\357\346\323\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\367\361" "\353\327'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\\\357\351\325\377\357" "\344\322\377\357FW\377\357CT\377\357\264\255\377\357\351\325\377\360" "\331\312\377\357CT\377\357CT\377\357\301\267\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\265\255\377\357CT\377\357FV\377\357" "\336\315\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357" "\351\325\177\357\351\325\377\357\345\322\377\357HX\377\357CT\377\357" "\252\245\377\357\351\325\377\357\340\316\377\357FV\377\357CT\377\357" "\244\240\377\357\351\325\377\357\351\325\377\357\351\325\377\360\310" "\275\377\357CT\377\357CT\377\357\323\305\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\217\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325'\357\351\325\374\357\351\325\377" "\357\351\325\377\357Yf\377\357CT\377\360\233\232\377\357\351\325\377" "\357\350\324\377\357t{\377\357CT\377\357[g\377\357\345\322\377\357\351" "\325\377\357\351\325\377\357\316\301\377\357CT\377\357CT\377\360\305" "\272\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325L\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325&\357" "\351\325\374\357\351\325\377\357\351\325\377\357nw\377\357CT\377\357" "s{\377\357\351\325\377\357\351\325\377\357\274\263\377\357CT\377\357" "CT\377\360\220\221\377\357\351\325\377\357\351\325\377\357\340\317\377" "\357CT\377\357CT\377\357\274\263\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\360\352\326\260\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\357\351\325v\357\351\325\376\357\351\325\377\360\232" "\230\377\357CT\377\357K[\377\357\341\317\377\357\351\325\377\357\350" "\324\377\357w}\377\357CT\377\360\177\204\377\357\351\325\377\357\351" "\325\377\360\340\317\377\357CT\377\357CT\377\357\274\263\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\360\353\327" "W\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\253\357\351" "\325\377\357\315\300\377\357DU\377\357CT\377\357\242\237\377\357\351" "\325\377\357\351\325\377\357\345\322\377\360\305\273\377\357\342\320" "\377\357\351\325\377\357\351\325\377\360\265\256\377\357CT\377\357CT" "\377\357\310\275\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\312\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\357\351\325\342\357\351\325\377\357\351\325\377\357ow\377\357" "CT\377\357Sa\377\357\330\310\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\344\321\377\357[g\377" "\357CT\377\357]i\377\357\347\324\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\306\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\342\357\351\325\377\357\351\325" "\377\357\277\266\377\357CT\377\357CT\377\357S`\377\357\245\242\377\357" "\346\323\377\357\351\325\377\357\351\325\377\357\350\324\377\357\212" "\214\377\357CT\377\357CT\377\360\267\257\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325R\357\351\325" "\344\357\351\325\377\357\350\324\377\360\235\233\377\357FV\377\357CT" "\377\357CT\377\357\\h\377\357s{\377\357s{\377\357do\377\357CT\377\357" "CT\377\360{\201\377\357\350\324\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\360\352\327.\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\335\332\322z\356\351\325\371" "\357\351\325\377\357\351\325\377\357\311\275\377\357u|\377\357DU\377" "\357CT\377\357CT\377\357CT\377\357CT\377\357CT\377\357js\377\357\342" "\320\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\361\355\337K\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\334\332\325m\357\352\330\333\357\351" "\325\377\357\351\325\377\357\351\325\377\357\350\324\377\357\276\265" "\377\357\210\213\377\357\203\207\377\357\203\207\377\357\204\207\377" "\357\255\250\377\357\345\322\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\354\350" "\327\377\361\357\345l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\355\353\342Z\365\362\344\377\352\345\324\372\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\352\331\375\355\352\336\377\337\335\326\377\364\362\346\255\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\361\357\345/\365\363" "\346\377\345\342\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\356\351\326\360\363\362\345\377\356\355" "\345\377\337\335\327\377\363\362\346\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\364\363\346\24\362\361\346\375\343\340\325\377" "\357\351\325\377\357\351\325\377\357\351\325\374\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\355\347\325" "\376\357\355\342\375\367\365\347\377\356\355\345\377\332\330\323\321" "\365\363\347\40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\371" "\367\350\5\356\354\343\357\336\335\330\377\353\351\337\377\355\352\336" "\377\355\353\340\377\356\350\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\356\351\327\350\340\335\326\377\362\361\346\377\367\365" "\347\377\356\355\345\354\340\337\3316\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\351\347\337\223\337\336\332\377" "\363\361\346\377\367\365\347\377\364\362\346\377\347\344\327\375\356" "\350\324\376\357\351\325\377\356\350\325\362\356\350\326\370\350\344" "\326\377\345\343\331\345\355\352\333\311\356\355\344\375\334\333\327" "\377\362\361\346\377\364\362\346\377\353\352\344\213\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\343\341" "\331\37\337\336\331\204\354\353\344\350\366\364\347\377\365\363\346\377" "\346\345\337\377\341\337\330\344\355\353\340\355\357\355\344\377\362" "\361\346\377\343\342\334\377\346\345\336\377\366\364\347\377\362\361" "\346\377\334\333\327\377\361\360\346\377\360\356\345\377\354\353\344" "7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\353\353\344\235\362\361\346\377\365\363\346" "\377\346\345\337\377\341\340\333\377\364\362\346\377\367\366\347\377" "\364\363\346\377\340\337\332\377\352\351\341\377\367\366\347\377\362" "\361\346\377\335\334\327\277\354\353\344\224\354\353\344{\371\367\350" "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\357\356\3453\356\355\345\370\357\356\345\375" "\342\340\333\212\346\344\336\206\360\357\345\373\365\363\347\377\361" "\360\346\377\340\337\332\341\354\353\344\266\360\357\345\371\356\355" "\345\311\365\363\346\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\355\354\345c\356\355\345N\0\0\0\0\0\0\0\0\355\354\344\206" "\353\352\344\274\352\352\344j\323\320\312\13\0\0\0\0\357\356\345(\361" "\360\346\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/naruto.png0000664000175000017500000000323012121600532013503 00000000000000PNG  IHDR$$bKGD pHYs  ~8IDATxڭ[l\uΙ_f;'gHhIKۈ"KTJЋR^hU JC}PD*ZA\B I6дVS0i8ر'ĎsfQ<3ޒ5{gkZkPȤSz¾ (;r@ph/pg% (oǓ(NmS9)p[U7M@{`v^̤S 4 p= ճdP&9)pj~ԍ=2KZZ32Ԓ4`//B]X{J>Xkᮭyʓ}v<P;px}%QS'{P-1mȻ0O>W`_ >i6ivA2 GPϼX V=^unFĸaɲAzn6&x'oah(mͭU7 3'b~|cԗ=ekSNtx8b]rB Kv}BF4m xjR[B OB\ꢆ@P&x>_^}XјU{"(dY>t<|7\#1-kx8NcTM"{D "44ɻ9$w/AXkz݉E go%uFJ~$7 Ŵ &SYPz/]O!scÊUGvgB̮H$iI >H14D)|,j .!SvB:dU }`f*o}j719U:n::~qk_x6)x!Ddfb:Ӕjp5 _YIENDB`loqui-0.5.5/src/icons/Makefile.am0000664000175000017500000000056112121600532013525 00000000000000IMAGES_ID = console online offline away busy command naruto speaker loqui loqui_hilighted whether_scroll notice IMAGES = $(IMAGES_ID:%=%.png) loqui.ico IMAGES_H = $(IMAGES_ID:%=%.h) noinst_HEADERS = pixbufs.h $(IMAGES_H) EXTRA_DIST = $(IMAGES) pixbufs.h: $(IMAGES_H) cat $(IMAGES_H) > $@ %.h: %.png gdk-pixbuf-csource --raw --build-list $(@:%.h=%)_pixbuf $< > $@ loqui-0.5.5/src/icons/whether_scroll.h0000664000175000017500000002060612121605257014701 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (whether_scroll_pixbuf) #endif #ifdef __GNUC__ static const guint8 whether_scroll_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 whether_scroll_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (2304) */ "\0\0\11\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\0\0\0\27\0\0\0\224\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\232" "\0\0\0'\0\0\0\6\0\0\0\1\0\0\0\224\342\342\342\377\362\362\362\377\362" "\362\362\377\362\362\362\377\362\362\362\377\363\363\363\377\363\363" "\363\377\363\363\363\377\364\364\364\377\364\364\364\377\364\364\364" "\377\365\365\365\377\365\365\365\377\365\365\365\377\366\366\366\377" "\366\366\366\377\367\367\367\377\367\367\367\377\364\364\364\377\333" "\333\333\377\0\0\0\243\0\0\0\25\0\0\0\6\0\0\0\377\360\360\360\377\340" "\340\340\377\340\340\340\377\341\341\341\377\342\342\342\377\343\343" "\343\377\344\344\344\377\345\345\345\377\346\346\346\377\347\347\347" "\377\350\350\350\377\350\350\350\377\351\351\351\377\352\352\352\377" "\353\353\353\377\354\354\354\377\355\355\355\377\356\356\356\377\357" "\357\357\377\355\355\355\377\0\0\0\377\0\0\0)\0\0\0\16\0\0\0\377\362" "\362\362\377\341\341\341\377\206\206\206\377\206\206\206\377\207\207" "\207\377\207\207\207\377\210\210\210\377\211\211\211\377\211\211\211" "\377\212\212\212\377\212\212\212\377\213\213\213\377\352\352\352\377" "\353\353\353\377\354\354\354\377\355\355\355\377\356\356\356\377\357" "\357\357\377\360\360\360\377\361\361\361\377\0\0\0\377\0\0\0""8\0\0\0" "\25\0\0\0\377\362\362\362\377\342\342\342\377\343\343\343\377\343\343" "\343\377\344\344\344\377\345\345\345\377\346\346\346\377\347\347\347" "\377\350\350\350\377\351\351\351\377\352\352\352\377\353\353\353\377" "\354\354\354\377\354\354\354\377\355\355\355\377\356\356\356\377\357" "\357\357\377\360\360\360\377\361\361\361\377\362\362\362\377\0\0\0\377" "\0\0\0=\0\0\0\27\0\0\0\377\363\363\363\377\343\343\343\377\207\207\207" "\377\210\210\210\377\210\210\210\377\211\211\211\377\211\211\211\377" "\212\212\212\377\212\212\212\377\213\213\213\377\214\214\214\377\214" "\214\214\377\215\215\215\377\215\215\215\377\215\215\215\377\216\216" "\216\377\360\360\360\377\361\361\361\377\362\362\362\377\363\363\363" "\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\363\363\363\377\344\344\344" "\377\345\345\345\377\346\346\346\377\347\347\347\377\347\347\347\377" "\350\350\350\377\351\351\351\377\352\352\352\377\353\353\353\377\354" "\354\354\377\355\355\355\377\356\356\356\377\357\357\357\377\357\357" "\357\377\360\360\360\377\361\361\361\377\362\362\362\377\363\363\363" "\377\364\364\364\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\363\363\363" "\377\345\345\345\377\211\211\211\377\211\211\211\377\212\212\212\377" "\212\212\212\377\212\212\212\377\213\213\213\377\214\214\214\377\354" "\354\354\377\355\355\355\377\356\356\356\377\357\357\357\377\360\360" "\360\377\361\361\361\377\361\361\361\377\362\362\362\377\363\363\363" "\377\364\364\364\377\365\365\365\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0" "\377\364\364\364\377\346\346\346\377\347\347\347\377\350\350\350\377" "\351\351\351\377\352\352\352\377\352\352\352\377\353\353\353\377\354" "\354\354\377\355\355\355\377\356\356\356\377\357\357\357\377\360\360" "\360\377\361\361\361\377\362\362\362\377\363\363\363\377\363\363\363" "\377\364\364\364\377\365\365\365\377\366\366\366\377\0\0\0\377\0\0\0" "=\0\0\0\27\0\0\0\377\364\364\364\377\347\347\347\377\212\212\212\377" "\212\212\212\377\213\213\213\377\214\214\214\377\214\214\214\377\214" "\214\214\377\215\215\215\377\215\215\215\377\216\216\216\377\217\217" "\217\377\217\217\217\377\362\362\362\377\363\363\363\377\364\364\364" "\377\365\365\365\377\365\365\365\377\366\366\366\377\367\367\367\377" "\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\365\365\365\377\350\350\350\377" "\351\351\351\377\352\352\352\377\353\353\353\377\354\354\354\377\355" "\355\355\377\356\356\356\377\356\356\356\377\357\357\357\377\360\360" "\360\377\361\361\361\377\362\362\362\377\363\363\363\377\364\364\364" "\377\365\365\365\377\366\366\366\377\367\367\367\377\367\367\367\377" "\370\370\370\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\365\365\365\377" "\351\351\351\377\213\213\213\377\214\214\214\377\214\214\214\377\215" "\215\215\377\215\215\215\377rrr\377\33\33\33\377\31\31\31\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377777\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\365\365\365\377" "\352\352\352\377\353\353\353\377\354\354\354\377\355\355\355\377\356" "\356\356\377\357\357\357\377\360\360\360\377\310\310\310\377;;;\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\303\303\303\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0" "\377\366\366\366\377\353\353\353\377\214\214\214\377\215\215\215\377" "\215\215\215\377\216\216\216\377\217\217\217\377\217\217\217\377\220" "\220\220\377\363\363\363\377\33\33\33\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377ppp\377\374\374\374\377\0\0\0" "\377\0\0\0=\0\0\0\27\0\0\0\377\367\367\367\377\355\355\355\377\355\355" "\355\377\356\356\356\377\357\357\357\377\360\360\360\377\361\361\361" "\377\362\362\362\377\363\363\363\377\364\364\364\377\210\210\210\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\340\340\340\377\375\375\375\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377" "\367\367\367\377\356\356\356\377\216\216\216\377\216\216\216\377\217" "\217\217\377\217\217\217\377\220\220\220\377\363\363\363\377\364\364" "\364\377\365\365\365\377\366\366\366\377\34\34\34\377\0\0\0\377\0\0\0" "\377\0\0\0\377\0\0\0\377\0\0\0\377ppp\377\375\375\375\377\376\376\376" "\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\370\370\370\377\360\360\360" "\377\361\361\361\377\362\362\362\377\362\362\362\377\363\363\363\377" "\364\364\364\377\365\365\365\377\366\366\366\377\367\367\367\377\370" "\370\370\377ooo\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\34\34\34" "\377\342\342\342\377\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0" "=\0\0\0\27\0\0\0\377\370\370\370\377\361\361\361\377\220\220\220\377" "\220\220\220\377\221\221\221\377\221\221\221\377\222\222\222\377\222" "\222\222\377\223\223\223\377\223\223\223\377\224\224\224\377\204\204" "\204\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\215\215\215\377\377" "\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0=\0\0\0\27" "\0\0\0\377\362\362\362\377\362\362\362\377\363\363\363\377\364\364\364" "\377\365\365\365\377\366\366\366\377\366\366\366\377\367\367\367\377" "\370\370\370\377\371\371\371\377\372\372\372\377\373\373\373\377ppp\377" "\0\0\0\377\0\0\0\377\35\35\35\377\377\377\377\377\377\377\377\377\377" "\377\377\377\354\354\354\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\232\311" "\311\311\377\355\355\355\377\370\370\370\377\365\365\365\377\366\366" "\366\377\367\367\367\377\370\370\370\377\370\370\370\377\371\371\371" "\377\372\372\372\377\373\373\373\377\374\374\374\377\341\341\341\377" "\0\0\0\377\0\0\0\377\216\216\216\377\377\377\377\377\377\377\377\377" "\356\356\356\377\275\275\275\377\0\0\0\324\0\0\0:\0\0\0\26\0\0\0\34\0" "\0\0\243\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\324\0\0\0Y\0" "\0\0-\0\0\0\20\0\0\0\6\0\0\0\24\0\0\0)\0\0\0""8\0\0\0<\0\0\0=\0\0\0=" "\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0\263\0\0\0\335" "\0\0\0""1\0\0\0=\0\0\0=\0\0\0=\0\0\0""9\0\0\0-\0\0\0\31\0\0\0\7\0\0\0" "\1\0\0\0\6\0\0\0\16\0\0\0\24\0\0\0\27\0\0\0\27\0\0\0\27\0\0\0\27\0\0" "\0\27\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\3\0\0\0" "\3\0\0\0\3\0\0\0\3\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\1\0\0\0\0"}; loqui-0.5.5/src/icons/console.png0000664000175000017500000000521312121600532013640 00000000000000PNG  IHDR00WbKGDtIME $ʔ5 -IDATx[l׎ \bcdJ(A"#@Q7)j!A+9QP DE5m,@`טΜK|f31>H朝swqW#0}NGKcÞ+VܹsP(@ p_ZsĉCsmZˀJׯ4 DJ:sZgTf>88|@ww۷ǁ 35ˆ{PTTDCCo@ Gcth 6!҂mX٤pI)G{?e?~ՇeYUv4C>0ݶ eY*Z?u()R9z(VK^&F"eIW Reh5kA`>N% F) Bk֠JKTT_!p+T<ԍj:q%%F)o#zh*tRtF*9 a%5J!xHf-d<]TH-뢵BJVD)8!B"4U ϩܩ ݶ(j6vچ)5ZˌhI;JJb\E) -Rp4NA)CJ ANTX!IqV0N J?NB2}T24v`YPT,Y}?Db"NR(9A xpKI(R!&??X$ @g vBDim0CybJi\?$2i$ oxϲt8rUhĉsmnu]PV9mPRRB*Lѫ B:u*{<!0 #Nt,hׯSXXx1gΜ2N>MQQ'NѣTTTd%f„ E|>e˖ m6+Z)nX\www~ZbΜ9rq-ZDoo/X?,[h4ʱc{.S l۶mkSSӏLiOt,X4lذ뭼{RR)Ν;zҥ_~y8qbͦM¦cX*9d`!P3… q2d2ɸq2O`|u<ߍ/ҕ^ͱX4p$'8F&>jʔ){zz!)))FD8&g@u"u4gikk{4쨨x~ EEEۧ]^b,Z+Ph%fw3v px^6mڴ[linoo1ǯR< ,JO!e l9Ԝ:t(X[[ϟs!hn_lz70ί_ ?D"{n/Hs>L2ȶmrss RWWGAAmsVZ8ta5C08$;vpL \)@k7o&={ׯESS/9cM/osNY`ZkۇRKk.R,_/ .`v&SJ1k, tvvR]]oΝ… Bw20!n d~c2ov&:uH$YR)PJeN虫͛7 ϟgҤIL>B!ti&֮]Kuu5}}}lܸxoSą Ֆ}ĝ xg]ڈ IENDB`loqui-0.5.5/src/icons/notice.png0000664000175000017500000000642512121600532013465 00000000000000PNG  IHDR00WbKGD pHYs  ~ IDATxYl\yY8ÝbHFђb-eVb*;EDNѧ Eї.0q5K\arJy%H$J(R Iq8raP>gܙ3|[ zzѰ.`SrǖGÇ?IJ_ ݻ%` S W\yF;`S1cǎ/r)Зv:Í" C -uC4?\vgGpi"ZF+ 7ݼ>[7nR(%:yu<:˨R(DG>RHhH|Zk"ߍs,g`-կZR Z+`4hmL}j XhPJӖa,aoBjJ1)%e%,JۖĜXH˶~˲ey,KgĊRRjZu4P CT!o?aSƘ7cE=p/j`@+{H!0FhFF!RJTH"*9">ėwyp^TB!B J)&z_T+5Ј>~}Se0FhChBF!\㷿 E<G+AX_DXg@iMA V7pU@A 6Z#Ķ@)yhRa,T '8̈́ -PH)1C%nūyhWnP~_J5#}";<=˲˲0 lHy)Vmj6#QRce0btK+E,BIISS3tWU<' E; 8gSV 6RbB_+ҀE=K<o|?L[p2S\2#GR222?V]ŗZ z e\# 3ikZO B .qml<7\(,6s_Ā6eY*L45߻a}_:(|b]tt!~Ҥe{ "Lk7>r3Rvj{ꩧ_zǏ1dCGwmV]w0_2!5aSRRelne ٿsCCCC?}FjG^?빼8{ܳ p^nR+MܪK>Wdj2Cf2fr5݉sï1f( '|rOìYGks/Ԫ^|rBX"S7)dK}}ű7>:q(Dպrj?`.^3-N̦oF֮hJ%{K! rB!_"?'-p7&3ܘ K,FT6:th !ڵkl۶}|+_OzR֚tsx,e[+[(Lgr %,Z{4Tl6-#7(g;qīH$bݺu8adLMNQՈb8M)q[OY)J䲑Գyry2twÏ088jxDЀЭ6}С((7dӦM$ < {_8WO;a/G)+dsd39 \̍,ܿ}{(x;}t9j?ȝvjt]>3gplRo^:ɓ'QJ.F.15}jLϺnMgwg͜3J**R||@(8 ˲@)+|WQjSntnb Ǿ}лwf׮]sj1/W'ͭ-F I! |ʥ*RZF\R~퍂)5' ]iΞ=kPPJ!M=g#L\RUhKHC( NJH$fNzT*nd([޹sDԧFÒdSD27sڵV)q(ksM)D(&H&%py F]Q.`^Z|H;ۉ9NTኖ'ZZ_p({fE{Q }ۥ,ت%Kw@u8c.GI7xb};vqTj* fOɹ'3@@GB!6{э5X};řv)9+Y׃H~kyo3ǖPe%![ʤn 4M)@/ pї1~*z8|ړ*HLTRoZ*.Ϗ#(є, liE'BFsTAԪML"O9tqiO{Ry1 Zb1+/fLI%TtqsD[#Fx3 dV ya^Zl=Yn[h,kgWmvN4f)'/ftI S-cFxKU+5"g;qED67>kQ>i%sJX(:[H6ta&l_(j ,'Vh̆ŭ73 2[KZEՑE%Oz.jt{ϳ+seuu)'-Z7݊~O.5ӌR"ݹj|U[Wtd自}\:W|rՆG)4E>O`ϐwvtneY^]Az)qytӱ2IS$Ir0S^,IENDB`loqui-0.5.5/src/icons/offline.png0000664000175000017500000000167512121600532013630 00000000000000PNG  IHDR$$bKGDVVV)' pHYs  d_tIME JIDATxkIƿso#:c|lq! #1"._D"dV7*ZnDqH6 #0d`M߮r۝ۮTZAz2U]NH];…$տOQxкr](QPϿ.}_BIENDB`loqui-0.5.5/src/icons/loqui_hilighted.png0000664000175000017500000000347512121600532015360 00000000000000PNG  IHDR00WbKGD pHYs  ~tIME&,IDATxY]lS~c8vpHkB fkkNJijDi7ݦjUR/&7hbjmt"H ! 1EB8WJNr;selAF{BIB`\6ue@߉2l\ *E|$EC(Nvp i)92 S+EuX.Ť5* #1ve˲e2v%34ٺ@5 @%]mXe7M";xiu ;b|d%&Na@ãRZ,\뉣ZMdBk?96vC3`E.VxntL^9ݸoH]/Wod08zFE@}ř̨56+SlϖVllȊ e`%%&^:/K<RFQ 1m1K@ݷ}dI3R<|xw[{b`-FlbjY7=O?^>p~;pfIc?}c0R`Aw'hD 1mDDė"Vo@_ MSD)#"eZ}tk/iun^CC7jڿguѿ2:^;0ZBId> !yHY9U-h0Oț5ٽU%L: pUyjl#dqU}SFyvȦyb{),Y޵F5/%!>|g$Bq/q~ _K (/@2R*6:G ]:~pbXwmv2f"c;O+ g.FՃ?0c2\2;85bTL"fY4;^|ED'v#;]yR/l/TltCw^f֕8.k1,F뽀0c; DKȧ$! .Է@ʬBՈj÷z7\MK[Vd 3 p!@s0dw˱Y6BR?gWZa MeXBs@ڢ tLG= ^Fs ~?ßÌrYjvݓ4%yb谸 K3ƟZ0AhP\86Alra(c"m4X܋wo,N^WSm;^s8&+#= 3~fP'w siF'#> ^^z̧BY8&GO|QS'L BOq>f:d&MXfN2oY5yIENDB`loqui-0.5.5/src/icons/loqui.png0000664000175000017500000000353012121600532013327 00000000000000PNG  IHDR00WbKGD pHYs  ~tIME LOIDATxYklS~\|9crqR4! h;rIBK hU+jA.ըiڟm~lVuuIam*U%UMA Bر'8vldGyy/[ve$N1đm,߉lȱC\ *EJW@ Bq FHK=ǡVb (G SE 3ˡ{JBLٲ,96<(G.X*KfHiu)&! @%N]XO_v'";xiu|g¿ǭG`X}fFz(RHP!͵To|A{TcjB}Oܨrk b'ǿM"h\("ݏ#8/v1gKJ+x콼}ku#0{*KiV.˯2t*oZXԩ%2SI hjE4i(ҧٞ6H@VF|⛛Y d@7} h7AǐgwzhpUTR"*RH &vGݹv8iuq鿳3sosϹG#,qsm;cc7yFWrQ~i[bb'ZC$z-*}YvW7KO E%ʜZ{[oZ9>Μ(&bj(ґ+RK1"Iʖ lk PL,:LGf)bb(8!s+r;CK`3Bb mN15dΐX331|!Z2]D0uY#$XƀĬ^> kJlJGTA9G+tHGAA Q͡T5\GJM 62: +>3BA|48 ҨCydΫjYJ}WbbM[j+PAk@U+?;,uہ"ra^̙ڒP{ u#/L35ĶmU A~%;u`Ȯ럫iM{%|5vΌ-Ls&F=8SO!q H/H<ײC.kr[zA3WvΌ}1ߏ2~:I֭k܃:ިJ" Y{~Ǯej&6n9 @✣~=۶Ӂ;[Zح} =/R'Lnߎ1B1cܼ_*%ޖVX)1Ҭy1 "Ƙ8((1 o8̆ CYA7 zI=w>/u 1T> $@(Pǡp޼b,4>jי] YDT% Ƽ[9BajB$A׭<UT*ZwMOT 6>|sw:mEfo VW4#"B{s .r/:Bkm7TN5W`lj1c$pƱyY##,e+wc<Χ77 ljuf<C Γ'1/llTSsOE{V'N58wNg\[tRMQeC9Fߵ[_Nyw|w7R32?:\377\220^[\377~yp\377\0\0\0\377\352\352\352\377\322\322\322" "\377\321\321\321\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\355" "\355\355\377\353\353\353\377\243\243\243\377\0\0\0\377\325\321\311\377" "\354\352\347\377\366\365\364\377\352\351\346\377\352\350\344\377\350" "\346\342\377\346\344\340\377\344\341\336\377\342\340\333\377\301\275" "\263\377\276\271\257\377\271\264\252\377\262\254\242\377\251\244\232" "\377\235\230\216\377\216\212\201\377\235\231\222\377}xo\377\0\0\0\377" "\351\351\351\377\321\321\321\377\317\317\317\377TTT\377\0\0\0\217\0\0" "\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\2\0\0\0O\365\365\365\377\354\354\354\377\353\353\353\377\243\243\243" "\377\0\0\0\377\321\314\304\377\352\347\344\377\356\355\353\377\346\344" "\341\377\345\343\337\377\342\340\333\377\341\336\333\377\337\335\330" "\377\335\333\326\377\274\267\255\377\270\263\251\377\264\257\246\377" "\256\251\237\377\244\237\225\377\231\224\212\377\215\210\177\377\233" "\230\220\377|xn\377\0\0\0\377\351\351\351\377\317\317\317\377\316\316" "\316\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\353\353\353\377" "\352\352\352\377\240\240\240\377\0\0\0\377\311\304\274\377\342\340\334" "\377\342\340\334\377\337\335\331\377\334\332\330\377\333\331\325\377" "\332\330\324\377\330\326\321\377\327\324\320\377\265\261\247\377\263" "\256\244\377\257\251\237\377\250\243\231\377\240\233\221\377\224\217" "\205\377\213\206|\377\231\225\216\377{um\377\0\0\0\377\350\350\350\377" "\316\316\316\377\314\314\314\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0" "\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365" "\365\377\353\353\353\377\351\351\351\377\240\240\240\377\0\0\0\377\303" "\276\265\377\334\331\326\377\332\327\323\377\327\324\320\377\323\321" "\315\377\322\317\313\377\315\313\307\377\317\314\307\377\314\311\305" "\377\254\250\236\377\252\244\233\377\246\240\227\377\236\232\220\377" "\230\223\211\377\216\211\200\377\203~t\377\225\221\212\377vqh\377\0\0" "\0\377\350\350\350\377\314\314\314\377\313\313\313\377TTT\377\0\0\0\217" "\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0O\365\365\365\377\352\352\352\377\351\351\351\377\240\240" "\240\377\0\0\0\377\274\270\256\377\322\320\314\377\316\313\310\377\313" "\311\305\377\310\306\301\377\304\302\276\377\302\300\273\377\301\276" "\272\377\301\276\272\377\242\235\224\377\237\233\221\377\236\231\217" "\377\225\220\207\377\220\214\202\377\206\200w\377\201}t\377\224\220\212" "\377vri\377\0\0\0\377\350\350\350\377\313\313\313\377\311\311\311\377" "TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\351\351\351\377\350\350" "\350\377\240\240\240\377\0\0\0\377\260\254\243\377\312\310\303\377\303" "\301\274\377\276\274\266\377\273\270\264\377\274\272\267\377\275\273" "\266\377\274\272\266\377\300\276\272\377\253\247\240\377\252\247\240" "\377\250\244\235\377\242\237\230\377\237\233\224\377\230\224\215\377" "\225\222\214\377\235\232\224\377sof\377\0\0\0\377\350\350\350\377\311" "\311\311\377\310\310\310\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22" "\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365" "\377\350\350\350\377\350\350\350\377\245\245\245\377\0\0\0\377\205\201" "z\377\244\240\227\377\237\232\222\377\230\224\214\377\225\221\211\377" "\220\215\205\377\217\212\202\377\215\211\201\377\216\212\201\377\216" "\212\202\377\213\210\177\377\212\206~\377\206\202y\377\201|t\377xtk\377" "vrj\377qne\377^[T\377\0\0\0\377\350\350\350\377\310\310\310\377\306\306" "\306\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\350\350\350\377" "\347\347\347\377\275\275\275\377\12\12\12\377\0\0\0\377\0\0\0\377\0\0" "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\341\341\341\377\306\306\306\377\304\304" "\304\377TTT\377\0\0\0\217\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\347\347\347\377" "\346\346\346\377\324\324\324\377\354\354\354\377\356\356\356\377\356" "\356\356\377\355\355\355\377\355\355\355\377\355\355\355\377\354\354" "\354\377\353\353\353\377\353\353\353\377\353\353\353\377\353\353\353" "\377\352\352\352\377\352\352\352\377\352\352\352\377\351\351\351\377" "\350\350\350\377\350\350\350\377\350\350\350\377\350\350\350\377\343" "\343\343\377\353\353\353\377\304\304\304\377\303\303\303\377TTT\377\0" "\0\0\217\0\0\0I\0\0\0+\0\0\0\23\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\346\346\346\377\345\345\345\377" "\343\343\343\377\342\342\342\377\341\341\341\377\340\340\340\377\337" "\337\337\377\336\336\336\377\335\335\335\377\334\334\334\377\332\332" "\332\377\330\330\330\377\327\327\327\377\326\326\326\377\325\325\325" "\377\323\323\323\377\322\322\322\377\317\317\317\377\316\316\316\377" "\314\314\314\377\313\313\313\377\337\337\337\377\343\343\343\377\306" "\306\306\377\303\303\303\377\301\301\301\377BBB\377\0\0\0\217\0\0\0~" "\0\0\0i\0\0\0Y\0\0\0O\0\0\0\31\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0" "\0\0N\365\365\365\377\330\330\330\377\344\344\344\377\343\343\343\377" "\341\341\341\377\340\340\340\377\357\357\357\377\315\315\315\377\335" "\335\335\377\357\357\357\377\313\313\313\377\330\330\330\377\357\357" "\357\377\277\277\277\377\325\325\325\377\323\323\323\377\322\322\322" "\377\321\321\321\377\316\316\316\377\314\314\314\377\313\313\313\377" "\337\337\337\377\344\3132\377\342\311:\377}}}\377\303\303\303\377\251" "\251\251\377BBB\377\236\236\236\377\236\236\236\377\236\236\236\377\236" "\236\236\377\217\217\217n\0\0\0P\0\0\0\25\0\0\0\3\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" "\0\0\0M\337\337\337w\236\236\236\377\272\272\272\377\304\304\304\377" "\340\340\340\377\337\337\337\377\315\315\315\377\252\252\252\377\334" "\334\334\377\304\304\304\377\232\232\232\377\327\327\327\377\277\277" "\277\377\220\220\220\377\323\323\323\377\322\322\322\377\321\321\321" "\377\317\317\317\377\316\316\316\377\313\313\313\377\311\311\311\377" "\310\310\310\377\200\200\200\377}}}\377\303\303\303\377\201\201\201\377" "TTT\377(((\261\0\0\0\216\0\0\0\201\0\0\0p\0\0\0c\236\236\236\377\0\0" "\0W\0\0\0T\0\0\0\30\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\31\0\0\0SpppiMMM\377TTT" "\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377T" "TT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377" "TTT\377BBB\377888\377\31\31\31\310\0\0\0\224\0\0\0\\\0\0\0U\0\0\0phh" "h[\236\236\236\377\236\236\236\377uuuQ\0\0\0W\0\0\0\13\0\0\0\4\0\0\0" "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0\35\0\0\0Y\0\0\0gBBB\377&&&\377\24\24\24\377&&&\377\24\24" "\24\377&&&\377\33\33\33\377&&&\377\33\33\33\377&&&\377&&&\377\33\33\33" "\377&&&\377&&&\377&&&\377\33\33\33\377&&&\377&&&\377&&&\377\33\33\33" "\377&&&\377\24\24\24\377\0\0\0\274\0\0\0v\0\0\0_\0\0\0N\0\0\0tddd^\236" "\236\236\377\236\236\236\377///\213\0\0\0g\0\0\0.\0\0\0\23\0\0\0\10\0" "\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\1\0\0\0\5\0\0\0\33\0\0\0]\77\77\77\377\24\24\24\377&&&\377\24" "\24\24\377&&&\377\24\24\24\377&&&\377\33\33\33\377&&&\377\33\33\33\377" "&&&\377&&&\377\33\33\33\377&&&\377&&&\377&&&\377\33\33\33\377&&&\377" "&&&\377&&&\377\33\33\33\377\13\13\13\377\0\0\0\242\0\0\0`\0\0\0P\0\0" "\0;\0\0\0""5\0\0\0^rrrS\236\236\236\377\236\236\236\377\\\\\\f\0\0\0" "i\0\0\0\33\0\0\0\14\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\3\0\0\0\40\0\0\0U\0\0\0a\0\0\0p" "\0\0\0\177\0\0\0\213\0\0\0\220\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223" "\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223" "\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\223\0\0\0\221\0\0\0\216" "\0\0\0`\0\0\0>\0\0\0(\0\0\0[~~~K\236\236\236\377\236\236\236\377...\223" "\0\0\0u\0\0\0E\0\0\0\37\0\0\0\16\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\31\0\0\0J\0\0\0L\0\0\0O\0\0\0S\0" "\0\0[\0\0\0h\0\0\0u\0\0\0\200\0\0\0\206\0\0\0\210\0\0\0\210\0\0\0\210" "\0\0\0\210\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211" "\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\211\0\0\0\210\0\0\0\210\0\0\0\206" "\0\0\0\202\0\0\0y\0\0\0k\0\0\0^\0\0\0W\0\0\0TyyyN\236\236\236\377\236" "\236\236\377VVVn\0\0\0p\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26```{\365\365\365\377\365\365\365\377" "\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365" "\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365" "\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365" "\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377" "\365\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365" "\365\365\377\365\365\365\377\365\365\365\377\365\365\365\377\365\365" "\365\377\365\365\365\377\365\365\365\377ooo\234{{{M\236\236\236\377\236" "\236\236\377:::\242\0\0\0x\0\0\0V\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0J\365\365\365\377\355\355" "\355\377\362\362\362\377\363\363\363\377\274\274\274\377\350\350\350" "\377\362\362\362\377\352\352\352\377\240\240\240\377\357\357\357\377" "\351\351\351\377\256\256\256\377\362\362\362\377\361\361\361\377\356" "\356\356\377\356\356\356\377\361\361\361\377\361\361\361\377\226\226" "\226\377\322\322\322\377\317\317\317\377\316\316\316\377\313\313\313" "\377\311\311\311\377\306\306\306\377\304\304\304\377\301\301\301\377" "\275\275\275\377\274\274\274\377\270\270\270\377\266\266\266\377BBB\377" "\0\0\0e000\212\236\236\236\377\0\0\0u\0\0\0X\0\0\0""9\0\0\0\36\0\0\0" "\15\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!___|\365\365" "\365\377\355\355\355\377\233\233\233\377\256\256\256\377\351\351\351" "\377\350\350\350\377\245\245\245\377\243\243\243\377\344\344\344\377" "\233\233\233\377\231\231\231\377\340\340\340\377\277\277\277\377\243" "\243\243\377\233\233\233\377\233\233\233\377\240\240\240\377\236\236" "\236\377\303\303\303\377\325\325\325\377\345\345\345\377\342\342\342" "\377\337\337\337\377\264\264\264\377\332\332\332\377\332\332\332\377" "jjj\377\236\236\236\377\332\332\332\377\326\326\326\377jjj\377BBB\377" "\236\236\236\377\236\236\236\377{{{\225\0\0\0v\0\0\0G\0\0\0,\0\0\0\31" "\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0K\365" "\365\365\377\355\355\355\377\354\354\354\377\353\353\353\377\306\306" "\306\377\351\351\351\377\350\350\350\377\347\347\347\377\335\335\335" "\377\344\344\344\377\342\342\342\377\330\330\330\377\337\337\337\377" "\336\336\336\377\334\334\334\377\333\333\333\377\330\330\330\377\327" "\327\327\377\325\325\325\377\323\323\323\377\321\321\321\377\251\251" "\251\377\245\245\245\377\243\243\243\377\236\236\236\377\233\233\233" "\377\231\231\231\377\226\226\226\377\275\275\275\377\216\216\216\377" "\211\211\211\377\264\264\264\377\262\262\262\377BBB\377\0\0\0\200\0\0" "\0{\0\0\0W\0\0\0""3\0\0\0#\0\0\0\22\0\0\0\6\0\0\0\2\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0!QQQr\365\365\365\377\354\354\354\377\321\321\321" "\377\301\301\301\377\351\351\351\377\335\335\335\377\353\353\353\377" "\361\361\361\377\311\311\311\377\360\360\360\377\360\360\360\377\301" "\301\301\377\361\361\361\377\356\356\356\377\245\245\245\377\361\361" "\361\377\361\361\361\377\264\264\264\377\353\353\353\377\226\226\226" "\377\321\321\321\377\317\317\317\377\314\314\314\377\311\311\311\377" "\310\310\310\377\304\304\304\377\303\303\303\377\277\277\277\377\275" "\275\275\377\272\272\272\377\327\327\327\377\327\327\327\377\200\200" "\200\377BBB\377,,,\240\0\0\0\201\0\0\0=\0\0\0+\0\0\0\31\0\0\0\13\0\0" "\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0K\365\365\365\377" "\354\354\354\377\362\362\362\377\363\363\363\377\363\363\363\377\361" "\361\361\377\266\266\266\377\272\272\272\377\270\270\270\377\344\344" "\344\377\262\262\262\377\260\260\260\377\340\340\340\377\251\251\251" "\377zzz\377\334\334\334\377\245\245\245\377\240\240\240\377\336\336\336" "\377\260\260\260\377\360\360\360\377\360\360\360\377\357\357\357\377" "\236\236\236\377\311\311\311\377\310\310\310\377\341\341\341\377\350" "\350\350\377\224\224\224\377\275\275\275\377\272\272\272\377lll\377o" "oo\377\260\260\260\377\256\256\256\377BBB\377\0\0\0\204\0\0\0U\0\0\0" "%\0\0\0\22\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34Q" "QQr\365\365\365\377\362\362\362\377\356\356\356\377\236\236\236\377\275" "\275\275\377\303\303\303\377\362\362\362\377\363\363\363\377\362\362" "\362\377\362\362\362\377\362\362\362\377\362\362\362\377\362\362\362" "\377\362\362\362\377\362\362\362\377\362\362\362\377\361\361\361\377" "\356\356\356\377zzz\377\275\275\275\377\256\256\256\377\221\221\221\377" "\251\251\251\377\313\313\313\377\311\311\311\377\342\342\342\377\346" "\346\346\377\337\337\337\377\337\337\337\377\334\334\334\377ggg\377\272" "\272\272\377\340\340\340\377\314\314\314\377TTT\377BBB\377///\245\0\0" "\0v\0\0\0%\0\0\0\21\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0J\365\365\365\377\353\353\353\377\262\262\262\377\206\206\206\377" "\306\306\306\377\350\350\350\377\350\350\350\377\270\270\270\377\206" "\206\206\377\203\203\203\377\203\203\203\377}}}\377zzz\377www\377uuu" "\377rrr\377ooo\377lll\377rrr\377\260\260\260\377\323\323\323\377\321" "\321\321\377\221\221\221\377\214\214\214\377\221\221\221\377\310\310" "\310\377\203\203\203\377rrr\377```\377]]]\377[[[\377PPP\377\266\266\266" "\377\200\200\200\377}}}\377\254\254\254\377\251\251\251\377BBB\377\0" "\0\0|\0\0\0,\0\0\0\25\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0L\365\365\365\377\352\352\352\377\351\351\351\377\351\351\351\377" "\350\350\350\377\350\350\350\377\347\347\347\377\345\345\345\377\344" "\344\344\377\343\343\343\377\342\342\342\377\340\340\340\377\337\337" "\337\377\336\336\336\377\334\334\334\377\333\333\333\377\332\332\332" "\377\327\327\327\377\326\326\326\377\325\325\325\377\322\322\322\377" "\321\321\321\377\316\316\316\377\314\314\314\377\311\311\311\377\310" "\310\310\377\304\304\304\377\303\303\303\377\277\277\277\377\275\275" "\275\377\272\272\272\377\270\270\270\377\264\264\264\377\262\262\262" "\377\256\256\256\377\254\254\254\377\247\247\247\377BBB\377\0\0\0\202" "\0\0\0""5\0\0\0\33\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0L\325\325\325N'''\377+++\377+++\377+++\377+++\377+++\377+++\377+" "++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377" "+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377" "+++\377+++\377+++\377+++\377+++\377+++\377+++\377+++\377***\377\33\33" "\33\245\0\0\0\205\0\0\0;\0\0\0\40\0\0\0\14\0\0\0\3\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0#\0\0\0R\0\0\0]\0\0\0m\0\0\0}\0\0\0\210\0\0\0\215" "\0\0\0\216\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\217\0\0\0\217\0\0\0\216\0\0\0\212\0\0\0c\0\0\0""7\0\0\0\36\0\0" "\0\14\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0" "\24\0\0\0&\0\0\0""7\0\0\0B\0\0\0G\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I" "\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0" "I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0" "\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0H\0\0\0D\0\0\0""9\0\0\0(" "\0\0\0\26\0\0\0\11\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" "\0\0\4\0\0\0\13\0\0\0\25\0\0\0\37\0\0\0&\0\0\0)\0\0\0*\0\0\0*\0\0\0*" "\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0" "*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0" "\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0)\0\0\0'\0" "\0\0\40\0\0\0\27\0\0\0\14\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\10\0\0\0\15\0\0\0\17\0\0\0\21\0\0" "\0\21\0\0\0\21\0\0\0\21\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22" "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0" "\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0" "\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\21\0\0\0\21" "\0\0\0\20\0\0\0\15\0\0\0\11\0\0\0\5\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0" "\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0" "\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0" "\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0" "\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\4\0\0\0\4\0\0\0" "\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0" "\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0" "\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0" "\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (online_pixbuf) #endif #ifdef __GNUC__ static const guint8 online_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 online_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\261\23\0t\301\200\1v" "\303\324\2x\306\377\2x\306\377\1w\305\336\0w\305\211\0w\305\32\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0n\267;\1w\306\351\6z\307\377\13}\310\377\16~\311\377\16~\311" "\377\13}\311\377\7{\307\377\2x\306\365\0w\306P\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\277.\1w\305\361\11|\310" "\377\22\200\312\377\30\204\313\377\34\206\314\377\34\206\314\377\31\204" "\314\377\23\201\312\377\13}\310\377\2x\307\371\0w\306K\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Iz\0\0u\303\277\10{\310\377\23\201" "\312\377\35\206\314\377%\213\316\377)\215\317\377*\215\317\377&\213\316" "\377\36\207\315\377\25\202\313\377\12|\310\377\1x\306\335\0w\306\7\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\274/\3x\306\376\17\177\311" "\377\33\205\314\377'\214\317\3771\221\321\3777\224\322\3778\225\322\377" "2\222\321\377)\215\317\377\35\207\314\377\21\200\312\377\4y\307\377\0" "w\305U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\302m\6z\307\377\23" "\201\312\377!\210\315\377.\220\320\377:\226\323\377D\233\325\377E\234" "\325\377<\227\323\3770\221\321\377#\212\316\377\26\202\313\377\10{\310" "\377\0u\302\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\306z\7{\310" "\377\25\202\313\377#\212\316\3771\221\321\377\77\231\324\377L\240\327" "\377N\241\327\377A\232\325\3773\222\322\377%\213\316\377\27\203\313\377" "\11|\310\377\0v\304\246\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\305" "p\6z\307\377\23\201\312\377!\211\315\377/\220\320\377;\227\323\377F\234" "\326\377G\235\326\377=\230\324\3771\221\321\377$\212\316\377\26\203\313" "\377\10{\310\377\0t\301\225\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "v\3045\3y\307\377\17\177\311\377\34\206\314\377(\214\317\3772\222\321" "\3779\225\323\377:\226\323\3774\223\322\377*\215\317\377\36\207\315\377" "\22\200\312\377\5y\307\376\0t\301^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\1w\306\306\11|\310\377\24\202\313\377\36\207\315\377&" "\213\317\377+\216\320\377,\216\320\377(\214\317\377\40\210\315\377\26" "\203\313\377\13}\310\377\1w\304\346\0w\306\13\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0w\306<\2x\306\367\13}\310\377\23\201\312\377" "\32\205\314\377\35\207\315\377\36\207\315\377\33\205\314\377\25\202\313" "\377\14}\311\377\3y\307\376\0t\300^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\306H\2x\306\366\7{\310\377\15~\311" "\377\20\177\311\377\20\177\312\377\15~\311\377\10{\310\377\2w\304\370" "\0w\306n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0w\306\"\0w\306\233\1x\306\354\3w\304\372\3w\303" "\370\2w\305\362\0v\303\250\0v\3045\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0w\306\3\0w\306$\0w\306$\0w\306\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\27{\275\6""0" "\220\320\224;\226\323\231;\226\323\231;\226\323\231;\226\323\231;\226" "\323\231;\226\323\231;\226\323\231;\226\323\231;\226\323\231\30\204\313" "5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34\204\310P" "M\240\327\377P\242\330\377Q\242\330\377Q\242\330\377Q\242\330\377Q\242" "\330\377Q\242\330\377Q\242\330\377Q\242\330\377Q\242\330\3772\221\321" "\245\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""0\220\320" "\266L\240\327\377L\240\327\377L\240\327\377L\240\327\377L\240\327\377" "L\240\327\377L\240\327\377L\240\327\377L\240\327\377M\240\327\377\77" "\230\324\367\0w\306\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14w\277" "\36;\226\323\371G\235\326\377G\235\326\377G\235\326\377G\235\326\377" "G\235\326\377H\235\326\377H\235\326\377H\235\326\377H\235\326\377H\235" "\326\377H\235\326\377\35\206\314n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0!\207\312~B\232\325\377C\232\325\377C\232\325\377C\233\325\377C\233" "\325\377C\233\325\377C\233\325\377C\233\325\377C\233\325\377C\233\325" "\377C\233\325\377C\233\325\3770\220\321\321\0w\306\1\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\16v\273\3-\216\317\337>\230\324\377>\230\324\377>\230\324\377" ">\230\324\377>\230\324\377>\230\324\377>\230\324\377>\230\324\377>\230" "\324\377\77\230\324\377\77\231\324\377\77\231\324\377:\226\323\377\15" "~\3119\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23}\304I6\224\322\3779\225\323\3779\225" "\323\3779\225\323\3779\225\323\3779\225\323\377:\226\323\377:\226\323" "\377:\226\323\377:\226\323\377:\226\323\377:\226\323\377:\226\323\377" ":\226\323\377#\211\316\235\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!\207\313\2554\223" "\322\3774\223\322\3775\223\322\3775\223\322\3775\223\322\3775\223\322" "\3775\223\322\3775\223\322\3775\223\322\3775\223\322\3775\223\322\377" "5\223\322\3775\223\322\3776\224\322\377+\216\317\363\0w\306\21\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\12t\272\30&\213\316\3670\221\321\3770\221\321\3770\221\321\3770\221" "\321\3770\221\321\3770\221\321\3770\221\321\3770\221\321\3771\221\321" "\3771\221\321\3771\221\321\3771\221\321\3771\221\321\3771\221\321\377" "0\221\321\377\22\200\312e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\177\306u+\216\320\377+\216\320\377" "+\216\320\377+\216\320\377+\216\320\377,\216\320\377,\216\320\377,\216" "\320\377,\216\320\377,\216\320\377,\216\320\377,\216\320\377,\216\320" "\377,\217\320\377,\217\320\377,\217\320\377\36\207\315\312\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33" "\204\312\331&\213\316\377&\214\316\377'\214\316\377'\214\316\377'\214" "\316\377'\214\317\377'\214\317\377'\214\317\377'\214\317\377'\214\317" "\377'\214\317\377'\214\317\377'\214\317\377(\214\317\377(\214\317\377" "(\214\317\377$\212\316\377\6z\3070\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\12x\301@\37\210\315\377\"\211\316\377\"\211" "\316\377\"\211\316\377\"\211\316\377\"\211\316\377\"\211\316\377\"\211" "\316\377\"\211\316\377\"\212\316\377#\212\316\377#\212\316\377#\212\316" "\377#\212\316\377#\212\316\377#\212\316\377#\212\316\377#\212\316\377" "\24\202\313\225\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\22\177\307\245\35\206\314\377\35\207\314\377\35\207\314\377\35" "\207\314\377\35\207\314\377\35\207\314\377\36\207\314\377\36\207\314" "\377\36\207\315\377\36\207\315\377\36\207\315\377\36\207\315\377\36\207" "\315\377\36\207\315\377\36\207\315\377\36\207\315\377\36\207\315\377" "\37\207\315\377\30\204\313\357\0w\306\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\4r\273\25\23\201\312\366\30\204\314\377\31\204\314\377" "\31\204\314\377\31\204\314\377\31\204\314\377\31\204\314\377\31\204\314" "\377\31\204\314\377\31\204\314\377\31\204\314\377\31\204\314\377\31\204" "\314\377\32\204\314\377\32\204\314\377\32\205\314\377\32\205\314\377" "\32\205\314\377\32\205\314\377\31\204\314\377\11{\307c\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10z\305q\24\202\312\377\24\202\312\377" "\24\202\312\377\24\202\312\377\24\202\312\377\24\202\312\377\24\202\312" "\377\24\202\312\377\24\202\312\377\24\202\312\377\25\202\312\377\25\202" "\313\377\25\202\313\377\25\202\313\377\25\202\313\377\25\202\313\377" "\25\202\313\377\25\202\313\377\25\202\313\377\25\202\313\377\16~\310" "\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15Hp\1\12|\307\325\17\177\311" "\377\17\177\311\377\17\177\312\377\17\177\312\377\17\177\312\377\17\177" "\312\377\20\177\312\377\20\177\312\377\20\177\312\377\20\177\312\377" "\20\200\312\377\20\200\312\377\20\200\312\377\20\200\312\377\20\200\312" "\377\20\200\312\377\20\200\312\377\21\200\312\377\21\200\312\377\21\200" "\312\377\17\177\311\375\2x\3060\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3s\2758\11" "|\310\376\12|\310\377\12|\310\377\13}\310\377\13}\310\377\13}\310\377" "\13}\310\377\13}\310\377\13}\310\377\13}\310\377\13}\310\377\13}\310" "\377\13}\310\377\13}\310\377\14}\311\377\14}\311\377\14}\311\377\14}" "\311\377\14}\311\377\14}\311\377\14}\311\377\14}\311\377\6z\307\214\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\3v\303\235\6z\307\377\6z\307\377\6z\307\377" "\6z\307\377\6z\307\377\6z\307\377\6z\310\377\6z\310\377\6z\310\377\7" "{\310\377\7{\310\377\7{\310\377\7{\310\377\7{\310\377\7{\310\377\7{\310" "\377\7{\310\377\7{\310\377\7{\310\377\7{\310\377\10{\310\377\10{\310" "\377\6z\307\351\0w\306\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\263\20\1w\305\363\1x\306\377" "\1x\306\377\1x\306\377\1x\306\377\1x\306\377\2x\306\377\2x\306\377\2" "x\306\377\2x\306\377\2x\306\377\2x\306\377\2x\306\377\2x\306\377\2x\306" "\377\2x\306\377\2x\306\377\3y\307\377\3y\307\377\3y\307\377\3y\307\377" "\3y\307\377\3y\307\377\3y\307\377\1w\306Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\306\22\0w\306" "M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w" "\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306" "M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306.\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (offline_pixbuf) #endif #ifdef __GNUC__ static const guint8 offline_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 offline_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\344vv\23\371\201\201\200" "\373\202\202\324\377\205\205\377\377\205\205\377\376\204\204\336\376" "\203\203\211\376\204\204\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\354zz;\376\204\204\351\377\207" "\207\377\377\211\211\377\377\213\213\377\377\213\213\377\377\212\212" "\377\377\207\207\377\377\205\205\365\377\204\204P\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\366\177\177.\375\203\203" "\361\377\210\210\377\377\215\215\377\377\220\220\377\377\221\221\377" "\377\221\221\377\377\220\220\377\377\215\215\377\377\211\211\377\377" "\205\205\371\377\204\204K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\235QQ\0\373\202\202\277\377\210\210\377\377\215\215\377\377\222" "\222\377\377\226\226\377\377\230\230\377\377\230\230\377\377\226\226" "\377\377\223\223\377\377\216\216\377\377\211\211\377\377\204\204\335" "\377\204\204\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\362}}/\377\205" "\205\376\377\213\213\377\377\221\221\377\377\227\227\377\377\233\233" "\377\377\237\237\377\377\237\237\377\377\234\234\377\377\230\230\377" "\377\222\222\377\377\214\214\377\377\206\206\377\376\204\204U\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372\202\202m\377\207\207\377\377\215" "\215\377\377\224\224\377\377\232\232\377\377\240\240\377\377\245\245" "\377\377\245\245\377\377\241\241\377\377\233\233\377\377\225\225\377" "\377\217\217\377\377\210\210\377\372\202\202\222\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\377\204\204z\377\207\207\377\377\216\216\377\377" "\225\225\377\377\234\234\377\377\242\242\377\377\251\251\377\377\252" "\252\377\377\243\243\377\377\235\235\377\377\226\226\377\377\217\217" "\377\377\210\210\377\374\203\203\246\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\375\203\203p\377\207\207\377\377\216\216\377\377\224\224\377" "\377\233\233\377\377\241\241\377\377\245\245\377\377\246\246\377\377" "\242\242\377\377\234\234\377\377\225\225\377\377\217\217\377\377\210" "\210\377\370\200\200\225\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\375" "\203\2035\377\205\205\377\377\213\213\377\377\222\222\377\377\227\227" "\377\377\234\234\377\377\237\237\377\377\240\240\377\377\235\235\377" "\377\230\230\377\377\223\223\377\377\215\215\377\377\206\206\376\371" "\201\201^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\204\204" "\306\377\210\210\377\377\216\216\377\377\223\223\377\377\226\226\377" "\377\231\231\377\377\231\231\377\377\227\227\377\377\223\223\377\377" "\217\217\377\377\211\211\377\375\203\203\346\377\204\204\13\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\204\204<\377\205\205\367\377" "\211\211\377\377\215\215\377\377\221\221\377\377\222\222\377\377\222" "\222\377\377\221\221\377\377\216\216\377\377\212\212\377\377\205\205" "\376\370\200\200^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\377\204\204H\377\205\205\366\377\207\207\377\377\212\212" "\377\377\214\214\377\377\214\214\377\377\212\212\377\377\210\210\377" "\374\203\203\370\376\204\204n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\204\204\"\377\204\204\233" "\377\204\204\354\374\203\203\372\373\203\203\370\375\203\203\362\374" "\202\202\250\375\203\2035\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\204" "\204\3\377\204\204$\377\204\204$\377\204\204\11\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\355" "\206\206\6\376\233\233\224\377\240\240\231\377\241\241\231\377\241\241" "\231\377\241\241\231\377\241\241\231\377\241\241\231\377\241\241\231" "\377\241\241\231\377\241\241\231\377\220\2205\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372\217\217P\377\251\251\377\377\253" "\253\377\377\253\253\377\377\253\253\377\377\253\253\377\377\253\253" "\377\377\253\253\377\377\253\253\377\377\253\253\377\377\253\253\377" "\376\234\234\245\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\376\233\233\266\377\251\251\377\377\251\251\377\377\251\251\377" "\377\251\251\377\377\251\251\377\377\251\251\377\377\251\251\377\377" "\251\251\377\377\251\251\377\377\251\251\377\376\242\242\367\377\204" "\204\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\363\203\203\36\377\240" "\240\371\377\246\246\377\377\246\246\377\377\246\246\377\377\246\246" "\377\377\247\247\377\377\247\247\377\377\247\247\377\377\247\247\377" "\377\247\247\377\377\247\247\377\377\247\247\377\377\222\222n\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\222\222~\377\244\244\377\377\244" "\244\377\377\244\244\377\377\244\244\377\377\244\244\377\377\244\244" "\377\377\244\244\377\377\244\244\377\377\244\244\377\377\244\244\377" "\377\244\244\377\377\244\244\377\377\233\233\321\377\204\204\1\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\355\201\201\3\375\231\231\337\377\242\242\377\377" "\242\242\377\377\242\242\377\377\242\242\377\377\242\242\377\377\242" "\242\377\377\242\242\377\377\242\242\377\377\242\242\377\377\242\242" "\377\377\242\242\377\377\242\242\377\377\240\240\377\377\212\2129\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\370\211\211I\377\236\236\377\377\237\237\377\377" "\240\240\377\377\240\240\377\377\240\240\377\377\240\240\377\377\240" "\240\377\377\240\240\377\377\240\240\377\377\240\240\377\377\240\240" "\377\377\240\240\377\377\240\240\377\377\240\240\377\377\225\225\235" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\375\223\223\255\377\235\235\377\377\235\235" "\377\377\236\236\377\377\236\236\377\377\236\236\377\377\236\236\377" "\377\236\236\377\377\236\236\377\377\236\236\377\377\236\236\377\377" "\236\236\377\377\236\236\377\377\236\236\377\377\236\236\377\376\230" "\230\363\377\204\204\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\355\200\200\30\376\226\226\367\377\233" "\233\377\377\233\233\377\377\233\233\377\377\233\233\377\377\233\233" "\377\377\233\233\377\377\233\233\377\377\233\233\377\377\234\234\377" "\377\234\234\377\377\234\234\377\377\234\234\377\377\234\234\377\377" "\234\234\377\377\234\234\377\377\214\214e\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372\213\213u\377\231" "\231\377\377\231\231\377\377\231\231\377\377\231\231\377\377\231\231" "\377\377\231\231\377\377\231\231\377\377\231\231\377\377\231\231\377" "\377\231\231\377\377\231\231\377\377\231\231\377\377\231\231\377\377" "\231\231\377\377\231\231\377\377\231\231\377\377\223\223\312\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\375\220\220\331\377\226\226\377\377\227\227\377\377\227\227\377\377" "\227\227\377\377\227\227\377\377\227\227\377\377\227\227\377\377\227" "\227\377\377\227\227\377\377\227\227\377\377\227\227\377\377\227\227" "\377\377\227\227\377\377\227\227\377\377\227\227\377\377\227\227\377" "\377\225\225\377\377\207\2070\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\366\204\204@\377\223\223\377\377\224\224\377\377" "\224\224\377\377\224\224\377\377\224\224\377\377\224\224\377\377\224" "\224\377\377\224\224\377\377\224\224\377\377\224\224\377\377\225\225" "\377\377\225\225\377\377\225\225\377\377\225\225\377\377\225\225\377" "\377\225\225\377\377\225\225\377\377\225\225\377\377\216\216\225\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\213\213" "\245\377\222\222\377\377\222\222\377\377\222\222\377\377\222\222\377" "\377\222\222\377\377\222\222\377\377\222\222\377\377\222\222\377\377" "\222\222\377\377\222\222\377\377\222\222\377\377\222\222\377\377\222" "\222\377\377\222\222\377\377\223\223\377\377\223\223\377\377\223\223" "\377\377\223\223\377\377\217\217\357\377\204\204\13\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\360~~\25\377\215\215\366\377\220\220\377\377" "\220\220\377\377\220\220\377\377\220\220\377\377\220\220\377\377\220" "\220\377\377\220\220\377\377\220\220\377\377\220\220\377\377\220\220" "\377\377\220\220\377\377\220\220\377\377\220\220\377\377\220\220\377" "\377\221\221\377\377\221\221\377\377\221\221\377\377\221\221\377\377" "\220\220\377\375\210\210c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\374\206\206q\377\216\216\377\377\216\216\377\377\216\216\377\377\216" "\216\377\377\216\216\377\377\216\216\377\377\216\216\377\377\216\216" "\377\377\216\216\377\377\216\216\377\377\216\216\377\377\216\216\377" "\377\216\216\377\377\216\216\377\377\216\216\377\377\216\216\377\377" "\216\216\377\377\216\216\377\377\216\216\377\377\216\216\377\376\212" "\212\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\214OO\1\376\210\210\325" "\377\213\213\377\377\213\213\377\377\213\213\377\377\213\213\377\377" "\213\213\377\377\213\213\377\377\214\214\377\377\214\214\377\377\214" "\214\377\377\214\214\377\377\214\214\377\377\214\214\377\377\214\214" "\377\377\214\214\377\377\214\214\377\377\214\214\377\377\214\214\377" "\377\214\214\377\377\214\214\377\377\214\214\377\376\213\213\375\377" "\205\2050\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\363\177\1778\377\210\210\376\377" "\211\211\377\377\211\211\377\377\211\211\377\377\211\211\377\377\211" "\211\377\377\211\211\377\377\211\211\377\377\211\211\377\377\211\211" "\377\377\211\211\377\377\211\211\377\377\211\211\377\377\211\211\377" "\377\212\212\377\377\212\212\377\377\212\212\377\377\212\212\377\377" "\212\212\377\377\212\212\377\377\212\212\377\377\212\212\377\377\207" "\207\214\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372\203\203\235\377\207\207\377" "\377\207\207\377\377\207\207\377\377\207\207\377\377\207\207\377\377" "\207\207\377\377\207\207\377\377\207\207\377\377\207\207\377\377\207" "\207\377\377\207\207\377\377\207\207\377\377\207\207\377\377\207\207" "\377\377\207\207\377\377\207\207\377\377\207\207\377\377\207\207\377" "\377\207\207\377\377\207\207\377\377\210\210\377\377\210\210\377\377" "\207\207\351\377\204\204\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\346ww\20\376\204\204\363\377\204" "\204\377\377\204\204\377\377\204\204\377\377\204\204\377\377\204\204" "\377\377\205\205\377\377\205\205\377\377\205\205\377\377\205\205\377" "\377\205\205\377\377\205\205\377\377\205\205\377\377\205\205\377\377" "\205\205\377\377\205\205\377\377\205\205\377\377\205\205\377\377\205" "\205\377\377\205\205\377\377\205\205\377\377\205\205\377\377\205\205" "\377\377\205\205\377\377\204\204Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\204\204\22\377\204\204" "M\377\204\204M\377\204\204M\377\204\204M\377\204\204M\377\204\204M\377" "\204\204M\377\204\204M\377\204\204M\377\204\204M\377\204\204M\377\204" "\204M\377\204\204M\377\204\204M\377\204\204M\377\204\204M\377\204\204" "M\377\204\204M\377\204\204M\377\204\204M\377\204\204M\377\204\204M\377" "\204\204M\377\204\204M\377\204\204.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (away_pixbuf) #endif #ifdef __GNUC__ static const guint8 away_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 away_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4l\262\23\5v\302\200\6x" "\304\324\7z\307\377\7z\307\377\6y\306\336\5y\306\211\5y\306\32\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\5p\270;\6y\307\351\13|\310\377\20\177\311\377\23\200\312\377\23" "\200\312\377\20\177\312\377\14|\310\377\7z\307\365\5y\307P\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5u\300.\6y\306" "\361\16~\311\377\27\202\313\377\35\206\314\377\40\210\315\377\40\210" "\315\377\35\206\314\377\30\203\313\377\20\177\311\377\7z\310\371\5y\307" "K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3Jz\0\5w\304\277\15" "}\311\377\30\203\313\377!\210\315\377)\214\317\377-\217\320\377.\217" "\320\377*\215\317\377#\211\316\377\32\204\314\377\17~\311\377\6z\307" "\335\5y\307\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5s\275/\10z\307" "\376\24\201\312\377\40\207\315\377+\215\320\3775\223\322\377;\226\323" "\377<\226\323\3776\223\322\377-\216\320\377\"\210\315\377\26\202\313" "\377\11{\310\377\5y\306U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5w\303" "m\13|\310\377\30\203\313\377%\212\316\3772\221\321\377>\230\324\377H" "\235\326\377I\235\326\377@\231\324\3774\222\322\377'\213\317\377\32\204" "\314\377\15}\311\377\5w\303\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\5y\307z\14}\311\377\32\204\314\377'\213\317\3775\223\322\377C\232" "\325\377P\241\330\377Q\242\330\377E\233\325\3777\224\322\377)\215\317" "\377\34\205\314\377\16~\311\377\5x\305\246\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\5x\306p\13|\310\377\30\203\313\377%\212\316\3773\222\321" "\377\77\230\324\377I\235\326\377K\236\326\377A\231\325\3775\223\322\377" "(\214\317\377\33\205\314\377\15}\311\377\5v\302\225\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\5x\3055\10{\310\377\24\201\312\377\40\210\315" "\377,\216\320\3776\223\322\377=\227\324\377>\227\324\3778\224\322\377" ".\217\320\377\"\211\316\377\27\202\313\377\12{\310\376\5v\302^\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6y\307\306\16~\311\377\31" "\204\313\377\"\211\316\377*\215\317\377/\220\321\3770\220\321\377,\216" "\320\377$\212\316\377\33\205\314\377\20\177\311\377\6y\305\346\5y\307" "\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307<\7z\307\367" "\20\177\311\377\30\203\313\377\36\207\315\377\"\210\315\377\"\211\316" "\377\37\207\315\377\32\204\314\377\21\177\312\377\10{\310\376\5v\301" "^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307" "H\7z\307\366\14}\311\377\22\200\312\377\25\201\312\377\25\201\313\377" "\22\200\312\377\15}\311\377\7y\305\370\5y\307n\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\"\5" "y\307\233\6z\307\354\10y\305\372\10y\304\370\7y\305\362\5x\304\250\5" "x\3055\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\3\5y\307$\5y\307$\5" "y\307\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33}\276\6""4\222\321\224>\230\324\231>\230" "\324\231\77\230\324\231\77\230\324\231\77\230\324\231\77\230\324\231" "\77\230\324\231\77\230\324\231\77\230\324\231\35\206\3145\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\40\205\311PP\242\330\377" "S\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244" "\331\377T\244\331\377T\244\331\377T\244\331\3776\223\321\245\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4\221\320\266O\241" "\330\377O\241\330\377P\241\330\377P\241\330\377P\241\330\377P\241\330" "\377P\241\330\377P\241\330\377P\241\330\377P\241\330\377D\232\324\367" "\211x\235%\377ww\24\377ww\23\377ww\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20y\300\36\77\230" "\324\371K\236\327\377K\236\327\377K\236\327\377K\236\327\377K\237\327" "\377L\237\327\377L\237\327\377L\237\327\377i\230\307\377\264\210\237" "\377\347|\204\377\376ww\377\377ww\377\377ww\376\377ww\342\377ww\236\377" "ww6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0%\210\313~F\234\326\377G\234\326\377G\234\326\377G\234\326\377G\234" "\326\377G\234\326\377G\234\326\377J\234\324\377\241\212\250\377\372x" "z\377\373\204\204\377\361\243\243\377\377ww\377\377ww\377\377ww\377\357" "\253\253\377\372\210\210\377\377ww\374\377ww\213\377ww\10\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23x\274\3""1\220\317\337B\232\325\377" "B\232\325\377B\232\325\377B\232\325\377B\232\325\377B\232\325\377E\231" "\323\377\276\203\230\377\377xx\377\360\247\247\377\342\335\335\377\344" "\333\333\377\377ww\377\377ww\377\377ww\377\341\341\341\377\340\336\336" "\377\356\257\257\377\376zz\377\377ww\264\377ww\10\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\27\177\305I:\225\323\377=\227\324\377=\227\324\377=" "\227\324\377=\227\324\377=\227\324\377>\227\324\377\227\211\251\377\377" "xx\377\353\272\272\377\342\342\342\377\344\344\344\377\347\337\337\377" "\377ww\377\377ww\377\377ww\377\345\345\345\377\343\343\343\377\340\340" "\340\377\350\303\303\377\376{{\377\377ww\212\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0%\211\314\2558\224\322\3778\224\322\3779\225\323\3779\225" "\323\3779\225\323\3779\225\323\377K\222\312\377\367x{\377\362\243\243" "\377\343\343\343\377\346\346\346\377\350\350\350\377\353\343\343\377" "\377ww\377\377ww\377\377ww\377\351\351\351\377\346\346\346\377\344\344" "\344\377\341\341\341\377\356\257\257\377\377ww\372\377ww,\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\17v\273\30*\215\317\3674\222\322\3774\222\322\3774\222\322\377" "4\222\322\3774\222\322\3774\222\322\377\225\205\247\377\375||\377\344" "\332\332\377\346\346\346\377\351\351\351\377\354\354\354\377\357\347" "\347\377\377ww\377\377ww\377\377ww\377\354\354\354\377\352\352\352\377" "\346\346\346\377\343\343\343\377\340\335\335\377\373\203\203\377\377" "ww\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\30\201\307u/\220\320\377/\220\320\377/\220" "\320\377/\220\320\377/\220\320\3770\220\321\3770\220\321\377\312~\216" "\377\365\234\234\377\344\344\344\377\350\350\350\377\354\354\354\377" "\357\357\357\377\362\352\352\377\377ww\377\377ww\377\377ww\377\363\322" "\322\377\361\320\320\377\356\315\315\377\353\314\314\377\341\341\341" "\377\360\247\247\377\377ww\325\377ww\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\37\206\313\331*\215" "\317\377*\215\317\377+\215\317\377+\215\317\377+\215\317\377+\215\320" "\377+\215\320\377\352y\200\377\357\262\262\377\346\346\346\377\352\352" "\352\377\356\356\356\377\361\361\361\377\366\355\355\377\377ww\377\377" "ww\377\377ww\377\377ww\377\377ww\377\377ww\377\376{{\377\342\342\342" "\377\352\274\274\377\377ww\375\377ww\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16z\302@#\211\316\377&\213" "\316\377&\213\316\377&\213\316\377&\213\316\377&\213\316\377&\213\316" "\377&\213\316\377\351y\200\377\355\274\274\377\346\346\346\377\353\353" "\353\377\357\357\357\377\363\363\363\377\370\357\357\377\377ww\377\377" "ww\377\377ww\377\377ww\377\377ww\377\377ww\377\376{{\377\343\343\343" "\377\347\306\306\377\377ww\377\377ww\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\201\310\245!\210\315\377" "!\210\315\377!\210\315\377!\210\315\377!\210\315\377!\211\315\377\"\211" "\315\377\"\211\315\377\344y\201\377\361\257\257\377\346\346\346\377\353" "\353\353\377\357\357\357\377\363\363\363\377\367\364\364\377\376\224" "\224\377\376\217\217\377\376\216\216\377\375\215\215\377\374\215\215" "\377\373\214\214\377\372\217\217\377\343\343\343\377\353\272\272\377" "\377ww\371\377ww\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\10t\274\25\30\203\313\366\35\206\314\377\35\206\314\377" "\35\206\314\377\35\206\314\377\35\206\314\377\35\206\314\377\36\206\314" "\377\36\206\314\377\263|\224\377\370\222\222\377\346\346\346\377\352" "\352\352\377\356\356\356\377\362\362\362\377\365\365\365\377\367\367" "\367\377\370\370\370\377\366\366\366\377\362\362\362\377\357\357\357" "\377\353\353\353\377\347\347\347\377\342\342\342\377\363\236\236\377" "\377ww\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\15|\306q\31\203\313\377\31\204\313\377\31\204\313\377" "\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313" "\377\31\204\313\377r\177\253\377\376zz\377\351\323\323\377\350\350\350" "\377\354\354\354\377\357\357\357\377\362\362\362\377\363\363\363\377" "\364\364\364\377\362\362\362\377\360\360\360\377\355\355\355\377\351" "\351\351\377\345\345\345\377\344\331\331\377\375~~\377\377ww\200\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17Ip\1\17" "~\310\325\24\201\312\377\24\201\312\377\24\201\313\377\24\201\313\377" "\24\201\313\377\24\201\313\377\25\201\313\377\25\201\313\377\25\201\313" "\377\35\201\310\377\340x\202\377\370\221\221\377\346\345\345\377\351" "\351\351\377\354\354\354\377\356\356\356\377\357\357\357\377\357\357" "\357\377\356\356\356\377\354\354\354\377\352\352\352\377\347\347\347" "\377\343\343\343\377\364\234\234\377\377ww\353\377ww\31\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7u\2768\16~\311\376" "\17~\311\377\17~\311\377\20\177\311\377\20\177\311\377\20\177\311\377" "\20\177\311\377\20\177\311\377\20\177\311\377\20\177\311\377\20\177\311" "\377Q}\263\377\373wx\377\364\244\244\377\346\344\344\377\350\350\350" "\377\352\352\352\377\353\353\353\377\353\353\353\377\352\352\352\377" "\351\351\351\377\346\346\346\377\344\343\343\377\357\257\257\377\377" "ww\376\377ww`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\10x\304\235\13|\310\377\13|\310\377\13|\310\377\13|" "\310\377\13|\310\377\13|\310\377\13|\310\377\13|\310\377\13|\311\377" "\14}\311\377\14}\310\377\14}\311\377iz\251\377\374wx\377\370\221\221" "\377\351\321\321\377\346\346\346\377\347\347\347\377\347\347\347\377" "\346\346\346\377\345\345\345\377\347\325\325\377\366\230\230\377\377" "ww\376\377ww~\377ww\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\5m\263\20\6y\306\363\6z\307\377\6z\307\377\6z\307\377" "\6z\307\377\6z\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307\377\7" "z\307\377\7z\307\377\7z\307\377\7z\307\377Gy\262\377\331w\203\377\377" "xx\377\371\216\216\377\362\251\251\377\357\266\266\377\362\253\253\377" "\370\222\222\377\376yy\377\344w\177\377\240x\225\211\377ww\1\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307" "\22\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5" "y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\34y\300M\356w" "|Z\377ww\236\377ww\321\377ww\326\377ww\324\377ww\244\371wy`.y\272M\5" "y\307.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (busy_pixbuf) #endif #ifdef __GNUC__ static const guint8 busy_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 busy_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4l\262\23\5v\302\200\6x" "\304\324\7z\307\377\7z\307\377\6y\306\336\5y\306\211\5y\306\32\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\5p\270;\6y\307\351\13|\310\377\20\177\311\377\23\200\312\377\23" "\200\312\377\20\177\312\377\14|\310\377\7z\307\365\5y\307P\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5u\300.\6y\306" "\361\16~\311\377\27\202\313\377\35\206\314\377\40\210\315\377\40\210" "\315\377\35\206\314\377\30\203\313\377\20\177\311\377\7z\310\371\5y\307" "K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3Jz\0\5w\304\277\15" "}\311\377\30\203\313\377!\210\315\377)\214\317\377-\217\320\377.\217" "\320\377*\215\317\377#\211\316\377\32\204\314\377\17~\311\377\6z\307" "\335\5y\307\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5s\275/\10z\307" "\376\24\201\312\377\40\207\315\377+\215\320\3775\223\322\377;\226\323" "\377<\226\323\3776\223\322\377-\216\320\377\"\210\315\377\26\202\313" "\377\11{\310\377\5y\306U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5w\303" "m\13|\310\377\30\203\313\377%\212\316\3772\221\321\377>\230\324\377H" "\235\326\377I\235\326\377@\231\324\3774\222\322\377'\213\317\377\32\204" "\314\377\15}\311\377\5w\303\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\5y\307z\14}\311\377\32\204\314\377'\213\317\3775\223\322\377C\232" "\325\377P\241\330\377Q\242\330\377E\233\325\3777\224\322\377)\215\317" "\377\34\205\314\377\16~\311\377\5x\305\246\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\5x\306p\13|\310\377\30\203\313\377%\212\316\3773\222\321" "\377\77\230\324\377I\235\326\377K\236\326\377A\231\325\3775\223\322\377" "(\214\317\377\33\205\314\377\15}\311\377\5v\302\225\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\5x\3055\10{\310\377\24\201\312\377\40\210\315" "\377,\216\320\3776\223\322\377=\227\324\377>\227\324\3778\224\322\377" ".\217\320\377\"\211\316\377\27\202\313\377\12{\310\376\5v\302^\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6y\307\306\16~\311\377\31" "\204\313\377\"\211\316\377*\215\317\377/\220\321\3770\220\321\377,\216" "\320\377$\212\316\377\33\205\314\377\20\177\311\377\6y\305\346\5y\307" "\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307<\7z\307\367" "\20\177\311\377\30\203\313\377\36\207\315\377\"\210\315\377\"\211\316" "\377\37\207\315\377\32\204\314\377\21\177\312\377\10{\310\376\5v\301" "^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307" "H\7z\307\366\14}\311\377\22\200\312\377\25\201\312\377\25\201\313\377" "\22\200\312\377\15}\311\377\7y\305\370\5y\307n\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\"\5" "y\307\233\6z\307\354\10y\305\372\10y\304\370\7y\305\362\5x\304\250\5" "x\3055\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5y\307\3\5y\307$\5y\307$\5" "y\307\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33}\276\6""4\222\321\224>\230\324\231>\230" "\324\231\77\230\324\231\77\230\324\231\77\230\324\231\77\230\324\231" "\77\230\324\231\77\230\324\231\77\230\324\231\35\206\3145\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\40\205\311PP\242\330\377" "S\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244\331\377T\244" "\331\377T\244\331\377T\244\331\377T\244\331\3776\223\321\245\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""4\221\320\266O\241" "\330\377O\241\330\377P\241\330\377P\241\330\377P\241\330\377P\241\330" "\377P\241\330\377P\241\330\377P\241\330\377P\241\330\377C\232\324\367" "\5y\307\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20y\300\36\77\230" "\324\371K\236\327\377K\236\327\377K\236\327\377K\236\327\377K\237\327" "\377L\237\327\377L\237\327\377L\237\327\377L\237\327\377L\237\327\377" "L\236\326\377Ky\255{\320DD,\320DD\33\320DD\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0%\210\313" "~F\234\326\377G\234\326\377G\234\326\377G\234\326\377G\234\326\377G\234" "\326\377G\234\326\377G\234\326\377G\234\326\377W\222\305\377\226j\202" "\377\304LQ\377\320CC\377\320CC\377\320CC\377\320DD\345\320DD\214\320" "DD\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23x" "\274\3""1\220\317\337B\232\325\377B\232\325\377B\232\325\377B\232\325" "\377B\232\325\377B\232\325\377B\232\325\377B\232\325\377t|\243\377\310" "IL\377\320AA\377\320==\377\320;;\377\320::\377\320;;\377\320>>\377\320" "AA\377\320DD\353\320DDM\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\27\177\305I:\225\323\377=\227\324\377=\227\324\377=\227\324\377" "=\227\324\377=\227\324\377>\227\324\377>\227\324\377q{\242\377\316DE" "\377\320>>\377\32088\377\32044\377\32011\377\32000\377\32011\377\320" "44\377\32099\377\320\77\77\377\320CC\371\320DDL\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0%\211\314\2558\224\322\3778\224\322\3779\225\323" "\3779\225\323\3779\225\323\3779\225\323\3779\225\323\377K\213\302\377" "\307IL\377\320\77\77\377\32077\377\32000\377\317++\377\317''\377\317" "&&\377\317''\377\317++\377\32000\377\32077\377\320\77\77\377\320DD\352" "\320DD\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17v\273\30*\215\317\3674\222\322" "\3774\222\322\3774\222\322\3774\222\322\3774\222\322\3774\222\322\377" "4\222\322\377\215f\201\377\320BB\377\32099\377\32000\377\317))\377\317" "\"\"\377\317\35\35\377\317\34\34\377\317\36\36\377\317\"\"\377\317))" "\377\32011\377\320::\377\320BB\377\320DD\203\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\30\201\307u/\220\320\377/\220\320\377/\220\320\377/\220\320\377" "/\220\320\3770\220\321\3770\220\321\3770\220\320\377\302KP\377\320>>" "\377\32055\377\317,,\377\317##\377\317\32\32\377\316\24\24\377\316\22" "\22\377\316\24\24\377\317\33\33\377\317##\377\317,,\377\32055\377\320" "\77\77\377\320DD\331\320DD\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\37\206\313\331*\215" "\317\377*\215\317\377+\215\317\377+\215\317\377+\215\317\377+\215\320" "\377+\215\320\377=\205\300\377\320DD\377\320<<\377\345\214\214\377\350" "\230\230\377\350\224\224\377\350\217\217\377\347\213\213\377\347\212" "\212\377\347\214\214\377\350\217\217\377\350\224\224\377\350\231\231" "\377\343\206\206\377\320==\377\320DD\371\320DD\23\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16z\302" "@#\211\316\377&\213\316\377&\213\316\377&\213\316\377&\213\316\377&\213" "\316\377&\213\316\377&\213\316\377D\177\266\377\320DD\377\320<<\377\367" "\337\337\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\365\323\323\377\320<<\377\320DD\376\320DD\36\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\26\201\310\245!\210\315\377!\210\315\377!\210\315\377!\210\315" "\377!\210\315\377!\211\315\377\"\211\315\377\"\211\315\3774\201\277\377" "\320DD\377\320==\377\367\337\337\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\365\323\323\377\320>>\377" "\320DD\371\320DD\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\10t\274\25\30\203\313\366\35\206\314\377\35\206" "\314\377\35\206\314\377\35\206\314\377\35\206\314\377\35\206\314\377" "\36\206\314\377\36\206\314\377\36\206\314\377\275KR\377\320@@\377\336" "tt\377\341yy\377\340tt\377\340pp\377\340ll\377\340kk\377\340ll\377\340" "pp\377\340tt\377\341zz\377\335pp\377\320@@\377\320DD\325\320DD\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\15|\306q\31\203\313\377\31\204\313\377\31\204\313\377\31\204\313\377" "\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313\377\31\204\313" "\377\31\204\313\377}a\201\377\320CC\377\320;;\377\32033\377\317,,\377" "\317&&\377\317!!\377\317\40\40\377\317\"\"\377\317&&\377\317,,\377\320" "44\377\320<<\377\320CC\377\320DD|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17Ip\1\17~\310\325\24\201\312\377" "\24\201\312\377\24\201\313\377\24\201\313\377\24\201\313\377\24\201\313" "\377\25\201\313\377\25\201\313\377\25\201\313\377\25\201\313\377'{\275" "\377\301IN\377\320AA\377\320::\377\32044\377\320..\377\317++\377\317" "**\377\317++\377\320//\377\32044\377\320::\377\320AA\377\320DD\344\320" "DD\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\7u\2768\16~\311\376\17~\311\377\17~\311\377\20\177\311\377\20" "\177\311\377\20\177\311\377\20\177\311\377\20\177\311\377\20\177\311" "\377\20\177\311\377\20\177\311\377\20\177\311\377Jm\241\377\314EG\377" "\320AA\377\320<<\377\32088\377\32055\377\32044\377\32055\377\32088\377" "\320<<\377\320BB\377\320DD\366\320DDB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10x\304\235\13|\310" "\377\13|\310\377\13|\310\377\13|\310\377\13|\310\377\13|\310\377\13|" "\310\377\13|\310\377\13|\311\377\14}\311\377\14}\310\377\14}\311\377" "\14}\310\377Fl\241\377\277IO\377\320CC\377\320AA\377\320\77\77\377\320" ">>\377\320\77\77\377\320AA\377\320CC\377\273JR\377\300HNG\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\5m\263\20\6y\306\363\6z\307\377\6z\307\377\6z\307\377\6z\307\377\6z" "\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307\377\7z\307" "\377\7z\307\377\7z\307\377\7z\307\377\27v\275\377m^\204\377\262LW\377" "\313EG\377\320DD\377\313EG\377\257MY\377i`\207\377\25w\277\377\6y\307" "Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\5y\307\22\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307" "M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y\307M\5y" "\307M\5y\307M\5y\307M\7x\306M7l\246MSd\224M4l\250M\6y\307M\5y\307M\5" "y\307M\5y\307.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (command_pixbuf) #endif #ifdef __GNUC__ static const guint8 command_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 command_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (4752) */ "\0\0\22\250" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (132) */ "\0\0\0\204" /* width (33) */ "\0\0\0!" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\377\252\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0&\372\261\20\346\367\257\21\311\356\237\1w\334\222\0#\5\3\1\2\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\377\252\0&\373\265\26\344\363\320N\377\362\322R\377\363\312C\377\362" "\271(\376\360\252\21\312\352\234\1q\11\6\2\4\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0&\373\265\26\344\363\320N\377\362\322" "R\377\362\322R\377\362\322R\377\362\322R\377\340\2626\377\276\201\13" "\251#\30\14\26\10\5\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373" "\265\26\344\363\320N\377\362\322R\377\362\322R\377\362\322R\377\362\322" "R\377\346\263;\377\276\203,\326wS(k5%\22'\13\10\4\6\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\377\252\0'\373\265\26\343\363\320N\377\362\322R\377\362\322R\377" "\362\322R\377\362\322R\377\350\265<\377\311\2147\341\233m5\225^A\40P" "#\31\14\30\7\4\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265\26\343\363\320" "N\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377\351\265<\377" "\312\2158\341\236o6\230dF\"V*\36\16\36\13\7\3\6\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252" "\0'\373\265\27\343\363\320N\377\362\322R\377\362\322R\377\362\322R\377" "\362\322R\377\351\266<\377\312\2158\341\237p6\231eG#W+\36\17\37\13\10" "\3\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265\27\343\363\320N\377\362\322R" "\377\362\322R\377\362\322R\377\362\322R\377\352\266<\377\313\2158\341" "\240p7\232fG#Y,\37\17\37\14\10\4\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265" "\27\343\363\320N\377\362\322R\377\362\322R\377\362\322R\377\362\322R" "\377\352\267<\377\313\2158\341\241q7\233gH$Z-\37\17\40\14\10\4\6\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\377\252\0'\373\265\27\343\363\320N\377\362\322R\377\362" "\322R\377\362\322R\377\362\322R\377\353\270<\377\313\2168\341\242q7\233" "hI$[.\40\20!\14\11\4\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0'\373\265\27\343\363" "\320N\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377\353\270" "<\377\314\2168\341\242r7\234iJ$\\/!\20\"\15\11\4\6\2\1\0\1\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0$\373\265\27\343\363\320N\377\362\322R\377\362\322R\377\362\322" "R\377\362\322R\377\354\271<\377\314\2168\341\243r8\236jJ%]/!\20\"\15" "\11\4\6\2\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\367\244\0>\371\273#\367\362\321P\377\362" "\322R\377\362\322R\377\362\322R\377\361\321Q\377\332\2345\373\264~2\275" "mM&a1\"\21$\15\11\4\7\2\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\10\4\6\301\201" "\5S\370\264\32\353\363\317L\377\362\322R\377\362\322R\377\362\322R\377" "\360\317O\377\330\244,\374\277\200\11\247pK\4\27\4\2\1\2\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\10\6\3\3)\35\16\33\213_\25U\365\256\23\331\364\314" "G\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377\350\277\77" "\377\336\235\20\334\315\211\1""8\6\4\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\16\12\4\6.\40\20\36uP\31O\360\246\15\302\365\310>\377\362\322R\377" "\362\322R\377\362\322R\377\362\322R\377\357\314L\377\343\252\"\373\333" "\223\3\211xP\1\11\3\2\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\10\4\5(\34\15\31" "Y>\34B\345\233\12\246\367\3045\377\362\322R\377\362\322R\377\362\322" "R\377\362\322R\377\362\322R\377\347\274;\377\337\234\16\325\314\210\1" "/\5\3\1\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\6\3\3\"\27\13\24N7\33<\341\227\10" "\242\365\310>\377\362\322R\377\362\322R\377\362\322R\377\362\322R\377" "\362\322R\377\356\312K\377\341\242\26\365\302\201\2\77\10\5\2\3\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\7\5\2\2\303\202\2""9\364\263\34\357\362\321P\377\362" "\322R\377\362\322R\377\362\322R\377\362\322R\377\362\321P\377\354\263" ",\375\274\201\33\275bD\26B\30\21\10\16\4\2\1\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252" "\0\40\372\263\23\336\363\320M\377\362\322R\377\362\322R\377\362\322R" "\377\362\322R\377\363\307B\377\343\240*\351\302\207<\307\231k5\215Z\77" "\37H\36\25\12\22\4\3\1\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0\20\375\260\15\307\363\317" "L\377\362\322R\377\362\322R\377\362\322R\377\362\321P\377\357\265.\375" "\323\2225\327\271\201>\265\230j5\213hI$U4$\22#\20\13\5\7\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0\5\376\255\7\255\364\314F\377\362\322R\377\362\322R\377\362\322" "R\377\363\310B\377\344\241*\351\306\211=\313\252w;\242\202[-sR9\34\77" "(\34\15\31\16\12\4\6\4\2\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0\1\376\254\5\225\365\310>\377\362" "\322R\377\362\322R\377\362\321P\377\360\266-\374\324\2234\326\271\201" ">\266\231k5\215jJ%Y;)\24*\31\21\10\16\10\5\2\2\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\376\253" "\3z\367\3034\376\362\322R\377\362\322R\377\364\310B\377\345\241(\347" "\306\211=\313\253x;\243\203\\-uR:\34A(\34\16\32\16\12\4\6\4\2\1\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\377\252\1[\370\277+\372\362\322R\377\362\321P\377\360\266" ",\374\322\2222\323\271\201>\267\231k5\217kK%[<*\25+\31\22\10\16\10\5" "\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0;\371\273#\366\362\322R\377\364" "\307\77\377\342\237\"\345\302\207:\305\253x;\244\203\\.wR:\34B(\34\16" "\32\17\12\5\7\4\3\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0,\372\270\35\360" "\363\317L\377\357\264%\372\306\210&\303\261|=\255\232l5\220lL&^<*\25" "-\31\21\10\17\10\5\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\252\0\37\374" "\264\25\337\365\3058\377\336\234\24\330\245r,\237\242r8\232\205].xU;" "\35E*\35\16\34\17\12\5\10\4\2\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" "\252\0\20\376\256\10\310\365\264\35\372\302\202\14\236\206],|\215c1\202" "mL&^\77,\25.\33\23\11\20\10\5\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\377\252\0\5\377\252\0\263\364\245\4\323\225d\15ZoN&btR(gT;\35C+" "\36\16\35\20\13\5\10\4\3\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\377\252\0_\364\242\0\204F0\16&T;\35EX>\36I<*\24-\34\23\11\20" "\11\6\2\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\6\4\2\2\32\22\11\16""4$\22$:)\24*'\33\15\32\20\13\5\10\4\3\1\2\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\6\4\2\2\23\15\6\10\34\24\11\17\24\16\7\12\10\6\2\3\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\6\4\2\2\7\4\2\2\3\2\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (naruto_pixbuf) #endif #ifdef __GNUC__ static const guint8 naruto_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 naruto_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\357\351\325\31\357\351\325\33\357\351\325\6\357" "\351\325\215\357\351\325\263\357\351\325*\0\0\0\0\0\0\0\0\357\351\325" "\3\357\351\325\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357" "\351\325\6\357\351\325\4\357\351\3254\357\351\325\367\357\351\325\371" "\357\351\325\252\357\351\325\377\357\351\325\377\357\351\325\270\357" "\351\325W\357\351\325\250\357\351\325\367\357\351\325\341\357\351\325" "\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\3254\357\351\325\361\357\351" "\325\347\357\351\325\315\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325|\357\351" "\325I\357\351\325\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325h\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\261\357\351\325\11\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325h\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\336\315\377\357\303\270\377\357\253\246\377\357\247\243\377" "\360\302\270\377\357\350\324\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\207\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351" "\325{\357\351\325\364\357\351\325\377\357\351\325\377\357\351\325\377" "\357\307\273\377\357ow\377\357GW\377\357CT\377\357CT\377\357CT\377\357" "DU\377\357ow\377\360\262\254\377\357\344\322\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\233\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\20\357\351\325\373\357" "\351\325\377\357\351\325\377\357\350\324\377\357\246\242\377\357FW\377" "\357CT\377\357CT\377\357CT\377\357KZ\377\357L[\377\357CT\377\357CT\377" "\357CT\377\357Xe\377\357\261\253\377\357\351\325\377\357\351\325\377" "\357\351\325\241\357\351\325\15\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\357\351\325\30\357\351\325\377\357\351\325\377\357\351" "\325\377\360\220\221\377\357CT\377\357CT\377\357S`\377\357\241\236\377" "\360\322\304\377\357\344\321\377\357\344\322\377\357\253\246\377\357" "dn\377\357CT\377\357CT\377\357EV\377\357\241\236\377\357\350\324\377" "\357\351\325\377\357\351\325\350\357\351\325Q\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\357\351\325\16\357\351\325\372\357\351\325\377\357" "\315\300\377\357EV\377\357CT\377\357is\377\357\325\306\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\347\324\377\360\274\263\377\357Yf\377\357CT\377\357DU\377\357\275" "\264\377\357\351\325\377\357\351\325\377\357\351\325\333\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\34\357\351\325q\357\351\325\372" "\357\351\325\377\357\206\211\377\357CT\377\357Q_\377\357\335\314\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\327" "\310\377\357Xe\377\357CT\377\357gq\377\357\350\324\377\357\351\325\377" "\357\351\325\227\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\32\357\351\325" "\356\357\351\325\377\357\351\325\377\357\335\314\377\357K[\377\357CT" "\377\357\222\222\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\315\300\377\360\234\232\377\360\230\227\377\360\227\227\377\360" "\265\256\377\357\350\324\377\357\351\325\377\357\253\246\377\357CT\377" "\357CT\377\360\273\262\377\357\351\325\377\357\351\325[\357\351\325\2" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\357\351\325-\357\351\325\377\357\351\325\377\357" "\351\325\377\357\232\230\377\357CT\377\357FV\377\357\326\307\377\357" "\351\325\377\357\350\324\377\357\242\236\377\357FW\377\357CT\377\357" "CT\377\357CT\377\357CT\377\357\244\240\377\357\351\325\377\357\344\321" "\377\357^j\377\357CT\377\357ow\377\357\350\324\377\357\351\325\377\357" "\351\325\272\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\1\357\351\325\276\357\351" "\325\377\357\350\324\377\357_j\377\357CT\377\357y\177\377\357\351\325" "\377\357\351\325\377\357\274\263\377\357DU\377\357CT\377\357O^\377\357" "^j\377\357Ra\377\357CT\377\357Uc\377\357\344\322\377\357\351\325\377" "\360\261\252\377\357CT\377\357bn\377\357\350\324\377\357\351\325\377" "\357\351\325\371\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325T\357\351\325" "\377\357\344\322\377\357FW\377\357CT\377\357\256\250\377\357\351\325" "\377\357\347\323\377\357do\377\357CT\377\357Xe\377\357\333\313\377\357" "\351\325\377\357\307\273\377\357CT\377\357CT\377\360\265\256\377\357" "\351\325\377\357\347\324\377\357\276\264\377\357\326\307\377\357\351" "\325\377\357\351\325\351\357\351\326}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357" "\351\325\11\357\351\325\342\357\344\322\377\357FW\377\357CT\377\357\264" "\255\377\357\351\325\377\357\314\277\377\357CT\377\357CT\377\360\267" "\257\377\357\351\325\377\357\351\325\377\357\350\324\377\357al\377\357" "CT\377\357{\200\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\352\326\243\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\357\351\325S\357\351\325\377\357\344\322\377\357FW\377\357" "CT\377\357\264\255\377\357\351\325\377\357\304\271\377\357CT\377\357" "CT\377\357\322\304\377\357\351\325\377\357\351\325\377\357\351\325\377" "\360\230\227\377\357CT\377\357N]\377\357\346\323\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\367\361" "\353\327'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\\\357\351\325\377\357" "\344\322\377\357FW\377\357CT\377\357\264\255\377\357\351\325\377\360" "\331\312\377\357CT\377\357CT\377\357\301\267\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\265\255\377\357CT\377\357FV\377\357" "\336\315\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357" "\351\325\177\357\351\325\377\357\345\322\377\357HX\377\357CT\377\357" "\252\245\377\357\351\325\377\357\340\316\377\357FV\377\357CT\377\357" "\244\240\377\357\351\325\377\357\351\325\377\357\351\325\377\360\310" "\275\377\357CT\377\357CT\377\357\323\305\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\217\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325'\357\351\325\374\357\351\325\377" "\357\351\325\377\357Yf\377\357CT\377\360\233\232\377\357\351\325\377" "\357\350\324\377\357t{\377\357CT\377\357[g\377\357\345\322\377\357\351" "\325\377\357\351\325\377\357\316\301\377\357CT\377\357CT\377\360\305" "\272\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325L\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325&\357" "\351\325\374\357\351\325\377\357\351\325\377\357nw\377\357CT\377\357" "s{\377\357\351\325\377\357\351\325\377\357\274\263\377\357CT\377\357" "CT\377\360\220\221\377\357\351\325\377\357\351\325\377\357\340\317\377" "\357CT\377\357CT\377\357\274\263\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\360\352\326\260\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\357\351\325v\357\351\325\376\357\351\325\377\360\232" "\230\377\357CT\377\357K[\377\357\341\317\377\357\351\325\377\357\350" "\324\377\357w}\377\357CT\377\360\177\204\377\357\351\325\377\357\351" "\325\377\360\340\317\377\357CT\377\357CT\377\357\274\263\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\360\353\327" "W\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\253\357\351" "\325\377\357\315\300\377\357DU\377\357CT\377\357\242\237\377\357\351" "\325\377\357\351\325\377\357\345\322\377\360\305\273\377\357\342\320" "\377\357\351\325\377\357\351\325\377\360\265\256\377\357CT\377\357CT" "\377\357\310\275\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\312\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\357\351\325\342\357\351\325\377\357\351\325\377\357ow\377\357" "CT\377\357Sa\377\357\330\310\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\344\321\377\357[g\377" "\357CT\377\357]i\377\357\347\324\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\306\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325\342\357\351\325\377\357\351\325" "\377\357\277\266\377\357CT\377\357CT\377\357S`\377\357\245\242\377\357" "\346\323\377\357\351\325\377\357\351\325\377\357\350\324\377\357\212" "\214\377\357CT\377\357CT\377\360\267\257\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\357\351\325R\357\351\325" "\344\357\351\325\377\357\350\324\377\360\235\233\377\357FV\377\357CT" "\377\357CT\377\357\\h\377\357s{\377\357s{\377\357do\377\357CT\377\357" "CT\377\360{\201\377\357\350\324\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\360\352\327.\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\335\332\322z\356\351\325\371" "\357\351\325\377\357\351\325\377\357\311\275\377\357u|\377\357DU\377" "\357CT\377\357CT\377\357CT\377\357CT\377\357CT\377\357js\377\357\342" "\320\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\361\355\337K\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\334\332\325m\357\352\330\333\357\351" "\325\377\357\351\325\377\357\351\325\377\357\350\324\377\357\276\265" "\377\357\210\213\377\357\203\207\377\357\203\207\377\357\204\207\377" "\357\255\250\377\357\345\322\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\354\350" "\327\377\361\357\345l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\355\353\342Z\365\362\344\377\352\345\324\372\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\352\331\375\355\352\336\377\337\335\326\377\364\362\346\255\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\361\357\345/\365\363" "\346\377\345\342\325\377\357\351\325\377\357\351\325\377\357\351\325" "\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\357\351\325\377\356\351\326\360\363\362\345\377\356\355" "\345\377\337\335\327\377\363\362\346\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\364\363\346\24\362\361\346\375\343\340\325\377" "\357\351\325\377\357\351\325\377\357\351\325\374\357\351\325\377\357" "\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357\351" "\325\377\357\351\325\377\357\351\325\377\357\351\325\377\355\347\325" "\376\357\355\342\375\367\365\347\377\356\355\345\377\332\330\323\321" "\365\363\347\40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\371" "\367\350\5\356\354\343\357\336\335\330\377\353\351\337\377\355\352\336" "\377\355\353\340\377\356\350\325\377\357\351\325\377\357\351\325\377" "\357\351\325\377\357\351\325\377\357\351\325\377\357\351\325\377\357" "\351\325\377\356\351\327\350\340\335\326\377\362\361\346\377\367\365" "\347\377\356\355\345\354\340\337\3316\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\351\347\337\223\337\336\332\377" "\363\361\346\377\367\365\347\377\364\362\346\377\347\344\327\375\356" "\350\324\376\357\351\325\377\356\350\325\362\356\350\326\370\350\344" "\326\377\345\343\331\345\355\352\333\311\356\355\344\375\334\333\327" "\377\362\361\346\377\364\362\346\377\353\352\344\213\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\343\341" "\331\37\337\336\331\204\354\353\344\350\366\364\347\377\365\363\346\377" "\346\345\337\377\341\337\330\344\355\353\340\355\357\355\344\377\362" "\361\346\377\343\342\334\377\346\345\336\377\366\364\347\377\362\361" "\346\377\334\333\327\377\361\360\346\377\360\356\345\377\354\353\344" "7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\353\353\344\235\362\361\346\377\365\363\346" "\377\346\345\337\377\341\340\333\377\364\362\346\377\367\366\347\377" "\364\363\346\377\340\337\332\377\352\351\341\377\367\366\347\377\362" "\361\346\377\335\334\327\277\354\353\344\224\354\353\344{\371\367\350" "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\357\356\3453\356\355\345\370\357\356\345\375" "\342\340\333\212\346\344\336\206\360\357\345\373\365\363\347\377\361" "\360\346\377\340\337\332\341\354\353\344\266\360\357\345\371\356\355" "\345\311\365\363\346\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\355\354\345c\356\355\345N\0\0\0\0\0\0\0\0\355\354\344\206" "\353\352\344\274\352\352\344j\323\320\312\13\0\0\0\0\357\356\345(\361" "\360\346\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (speaker_pixbuf) #endif #ifdef __GNUC__ static const guint8 speaker_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 speaker_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\207/\20h\207/\20\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20\307\207/\20""1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20" "\377\207/\20\373\207/\20\220\207/\20\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\207/\20\377\207/\20\377\207/\20\377\207/\20\377\207/\20" "\343\207/\20U\207/\20\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20" "\377\207/\20\377\207/\20\377\207/\20\377\207/\20\377\207/\20\266\206" "0\21$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20\377\207/\20\377\207/\20" "\377\207/\20\377\207/\20\377\2060\21\377\2050\22\365\2040\22}\2030\23" "\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(%\0\0\0" "\0\207/\20\377\207/\20\377\207/\20\377\207/\20\377\2060\21\377\2050\21" "\377\2040\22\377\2030\23\377\2020\23\377\2010\24\327\2000\24E\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0`3(#`3(\265`3(\273\0\0\0\0\207/\20\377\207/\20" "\377\2060\21\377\2050\21\377\2040\22\377\2030\22\377\2020\23\377\201" "0\24\377\2000\24\377\2000\25\377\1770\25\376}0\26\245|0\26\30\0\0\0\0" "`3(\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(\1`3(s`3(" "\365`3(\377`3(\253\0\0\0\0\2060\21\377\2050\21\377\2040\22\377\2030\22" "\377\2020\23\377\2020\23\377\2010\24\377\2000\25\377\1770\25\377~0\26" "\377}0\26\377|0\27\377{0\27\357z0\30ky1\30\3\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0`3(\6`3(\233`3(\377`3(\367`3(|`3(\7\0\0\0\0\2040" "\22\377\2030\22\377\2030\23\377\2020\23\377\2010\24\377\2000\24\377\177" "0\25\377~0\26\377}0\26\377|0\27\377{0\27\377z0\30\377y1\30\377x1\31\377" "w1\31\313v1\32""4\0\0\0\0\207/\20$\207/\20\377\207/\20\377\207/\20\377" "\207/\20\377\207/\20\377\207/\20\377\207/\20\277\0\0\0\0\0\0\0\0\0\0" "\0\0`3(\1`3(\223`3(\377`3(\350`3(4\0\0\0\0`3(\15\0\0\0\0\2030\23\377" "\2020\23\377\2010\24\377\2000\24\377\1770\25\377~0\25\377}0\26\377|0" "\27\377{0\27\377z0\30\377y1\30\377y1\31\377x1\31\377w1\32\377v1\32\377" "u1\33\374t1\34\223\2000\24""4\2060\21\377\2060\21\377\2060\21\377\206" "0\21\377\2060\21\377\2060\21\377\2060\21\277\0\0\0\0\0\0\0\0\0\0\0\0" "`3(Y`3(\377`3(\353`3($\0\0\0\0`3(.`3(\244\0\0\0\0\2010\24\377\2000\24" "\377\1770\25\377~0\25\377}0\26\377|0\26\377{0\27\377{0\30\377z0\30\377" "y1\31\377x1\31\377w1\32\377v1\32\377u1\33\377t1\33\377s1\34\377r1\34" "\377t1\33\352\2040\22\377\2040\22\377\2040\22\377\2040\22\377\2040\22" "\377\2040\22\377\2040\22\277\0\0\0\0\0\0\0\0`3(\21`3(\347`3(\374`3(>" "\0\0\0\0`3(\30`3(\347`3(\273\0\0\0\0\1770\25\377~0\25\377}0\26\377|0" "\26\377|0\27\377{0\27\377z0\30\377y1\31\377x1\31\377w1\32\377v1\32\377" "u1\33\377t1\33\377s1\34\377r1\34\377q1\35\377q1\35\377r1\34\357\2010" "\24\377\2010\24\377\2010\24\377\2010\24\377\2010\24\377\2010\24\377\201" "0\24\277\0\0\0\0\0\0\0\0`3(w`3(\377`3(\235\0\0\0\0\0\0\0\0`3(\243`3(" "\377`3(\216\0\0\0\0}0\26\377}0\26\377|0\27\377{0\27\377z0\30\377y1\31" "\377x1\31\377w1\32\377v1\32\377u1\33\377t1\33\377s1\34\377s1\34\377r" "1\35\377q1\35\377p1\36\377o1\36\377q1\35\347~0\25\377\1770\25\377\177" "0\25\377\1770\25\377\1770\25\377\1770\25\377\1770\25\277\0\0\0\0\0\0" "\0\0`3(\327`3(\375`3(+\0\0\0\0`3(\40`3(\374`3(\344`3(\16\0\0\0\0|0\27" "\377{0\27\377z0\30\377y1\30\377x1\31\377w1\32\377v1\32\377u1\33\377t" "1\33\377t1\34\377s1\34\377r1\35\377q1\35\377p1\36\377o1\36\377n1\37\377" "m1\37\377o1\36\347|0\27\377|0\27\377|0\27\377|0\27\377|0\27\377|0\27" "\377|0\27\277\0\0\0\0\0\0\0\0`3(\377`3(\331\0\0\0\0\0\0\0\0`3(j`3(\377" "`3(\214\0\0\0\0\0\0\0\0z0\30\377y1\30\377x1\31\377w1\31\377v1\32\377" "u1\33\377u1\33\377t1\34\377s1\34\377r1\35\377q1\35\377p1\36\377o1\36" "\377n1\37\377m1\37\377l2\40\377k2\40\377m2\40\347y1\30\377y1\30\377y" "1\30\377y1\30\377y1\30\377y1\30\377y1\30\277\0\0\0\0\0\0\0\0`3(\377`" "3(\236\0\0\0\0\0\0\0\0`3(\235`3(\377`3(H\0\0\0\0\0\0\0\0x1\31\377w1\31" "\377v1\32\377v1\32\377u1\33\377t1\34\377s1\34\377r1\35\377q1\35\377p" "1\36\377o1\36\377n1\37\377m1\37\377l2\40\377l2\40\377k2!\377j2!\377k" "2!\346w1\32\377w1\32\377w1\32\377w1\32\377w1\32\377w1\32\377w1\32\277" "\0\0\0\0\0\0\0\0`3(\377`3(\213\0\0\0\0\0\0\0\0`3(\243`3(\377`3(/\0\0" "\0\0\0\0\0\0w1\32\377v1\32\377u1\33\377t1\33\377s1\34\377r1\35\377q1" "\35\377p1\36\377o1\36\377n1\37\377m1\37\377m1\40\377l2\40\377k2!\377" "j2!\377i2\"\377h2#\377i2\"\333t1\33\377t1\33\377t1\33\377t1\33\377t1" "\33\377t1\33\377t1\33\277\0\0\0\0\0\0\0\0`3(\377`3(\237\0\0\0\0\0\0\0" "\0`3(\227`3(\377`3(N\0\0\0\0\0\0\0\0u1\33\377t1\33\377s1\34\377r1\35" "\377q1\35\377p1\36\377o1\36\377n1\37\377n1\37\377m1\40\377l2\40\377k" "2!\377j2!\377i2\"\377h2\"\377g2#\377f2$\377g2#\333r1\35\377r1\35\377" "r1\35\377r1\35\377r1\35\377r1\35\377r1\35\277\0\0\0\0\0\0\0\0`3(\377" "`3(\316\0\0\0\0\0\0\0\0`3(d`3(\377`3(\223\0\0\0\0\0\0\0\0s1\34\377r1" "\34\377q1\35\377p1\36\377p1\36\377o1\37\377n1\37\377m1\40\377l2\40\377" "k2!\377j2!\377i2\"\377h2\"\377g2#\377f2#\377e2$\377e2%\377f2$\333o1\36" "\377o1\36\377o1\36\377o1\36\377o1\36\377o1\36\377o1\36\277\0\0\0\0\0" "\0\0\0`3(\330`3(\375`3($\0\0\0\0`3(\27`3(\367`3(\360`3(\32\0\0\0\0q1" "\35\377q1\35\377p1\36\377o1\37\377n1\37\377m1\40\377l2\40\377k2!\377" "j2!\377i2\"\377h2\"\377g2#\377f2#\377f2$\377e2$\377d2%\377c2&\377d2%" "\333m1\40\377m1\40\377m1\40\377m1\40\377m1\40\377m1\40\377m1\40\277\0" "\0\0\0\0\0\0\0`3(\177`3(\377`3(\246\0\0\0\0\0\0\0\0`3(\213`3(\377`3(" "\240\0\0\0\0p1\36\377o1\36\377n1\37\377m1\40\377l2\40\377k2!\377j2!\377" "i2\"\377h2\"\377h2#\377g2#\377f2$\377e2$\377d2%\377c2%\377b2&\377a2'" "\377b2&\333j2!\377j2!\377j2!\377j2!\377j2!\377j2!\377j2!\277\0\0\0\0" "\0\0\0\0`3(\13`3(\346`3(\375`3(G\0\0\0\0`3(\12`3(\326`3(\273\0\0\0\0" "n1\37\377m1\37\377l2\40\377k2!\377j2!\377i2\"\377i2\"\377h2#\377g2#\377" "f2$\377e2$\377d2%\377c2%\377b2&\377a2&\377`2'\377_3'\377`3&\333h2#\377" "h2#\377h2#\377h2#\377h2#\377h2#\377h2#\277\0\0\0\0\0\0\0\0\0\0\0\0`3" "(\\`3(\376`3(\350`3(.\0\0\0\0`3(\32`3(\225\0\0\0\0l2\40\377k2\40\377" "k2!\377j2\"\377i2\"\377h2#\377g2#\377f2$\377e2$\377d2%\377c2%\377b2&" "\377a2&\377`2'\377`2'\377_3'\377_3'\377`3'\333e2$\377e2$\377e2$\377e" "2$\377e2$\377e2$\377e2$\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(\223`3" "(\377`3(\352`3(2\0\0\0\0`3(\6\0\0\0\0k2!\377j2\"\377i2\"\377h2#\377g" "2#\377f2$\377e2$\377d2%\377c2%\377b2&\377a2&\377a2'\377`2'\377_3'\377" "_3'\377_3'\377_3'\377`3'\316b2&\377b2&\377b2&\377b2&\377b2&\377b2&\377" "c2&\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(\4`3(\233`3(\377`3(\364`3(" "j`3(\2\0\0\0\0i2\"\377h2#\377g2#\377f2$\377e2$\377d2%\377c2%\377c2&\377" "b2&\377a2'\377`2'\377_3'\377_3'\377_3'\377_3'\377_3'\365_3'}`3',`2'\377" "`2'\377`2'\377`2'\377`2'\377`2'\377`2'\277\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0`3(\2`3(\201`3(\372`3(\377`3(\244\0\0\0\0g2#\377f2$\377" "e2$\377d2%\377d2%\377c2&\377b2&\377a2'\377`2'\377_3'\377_3'\377_3'\377" "_3'\377_3'\377_3'\261_3'\"\0\0\0\0_3'$_3'\377_3'\377_3'\377_3'\377_3" "'\377_3'\377_3'\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0`3(0`3(\305`3(\273\0\0\0\0e2$\377e2%\377d2%\377c2&\377b2&\377a" "2'\377`2'\377_3'\377_3'\377_3'\377_3'\377_3'\377_3'\335_3'M\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0`3(\1`3(\35\0\0\0\0d2%\377c2&\377b2&\377a2'\377`2'\377_3'\377_" "3'\377_3'\377_3'\377_3'\377_3'\367_3'\202_3'\12\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0b2&\377a2'\377`2'\377_3'\377_3'\377_3'\377" "_3'\377_3'\377_3'\377_3'\266_3'%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0`2'\377_3'\377_3'\377_3'\377_3'\377_3'\377" "_3'\377_3'\337_3'Q_3'\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\377_3'\377_3'\377_3'\377_3'\377_3'\367" "_3'\205_3'\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\377_3'\377_3'\377_3'\377_3'\270_" "3'(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\377_3'\377_3'\342_3'T_3'\1" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\371_3'\210_3'\15\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3')\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (loqui_pixbuf) #endif #ifdef __GNUC__ static const guint8 loqui_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 loqui_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T" "\177\1\20T\177\11\21V\203\20\21V\203\21\20V\203\21\17V\203\21\17U\203" "\21\17U\203\21\17T\203\21\16S\203\21\16S\203\21\16R\203\21\16R\203\21" "\15Q\203\21\15Q\203\21\15P\203\21\15P\203\21\14O\203\21\14O\203\21\14" "N\203\21\14O\204\15\13L\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\4\22]\2165\23g\234^\24j\243" "p\24l\246x\24l\246y\23k\246y\23k\246y\22j\246y\22i\246y\22i\246y\22h" "\246y\21g\246y\21g\246y\21f\246y\21f\246y\20e\246y\20d\246y\17d\246y" "\17c\246w\15[\231T\13K\177\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\5\22`\222\77\24j\243p\25u\264" "\226\27}\300\255\30\204\315\301\33\227\352\351\33\235\366\366\34\235" "\370\370\33\234\370\370\33\233\370\370\32\232\370\370\32\231\370\370" "\31\230\370\370\30\225\365\365\26\213\344\342\24}\317\305\22u\303\261" "\21s\302\260\21q\300\253\16`\244s\13K\177\5\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20S\177\2\17S" "\177\4\17R\177\5\17R\177\11\20Z\215/\24s\264\226\32\225\352\351\33\240" "\376\376\34\240\377\377\33\237\377\377\33\236\377\377\32\235\377\377" "\30\230\372\372\25\204\331\323\17e\250}\31U\2636\26L\246\11\26K\246\6" "\26K\246\6\15\3\\F\16\0__\13\0P\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\16Q\177\3\17V\210%\25}\306\267\33\233\370\370\33\237\377\377\33\236" "\377\377\32\235\377\377\31\234\377\377\26\214\347\346\17a\241k\14L\177" "\13\26L\246\1\0\0\0\0\0\0\0\0\13\0M\12\25\0\221\357\27\0\233\377\25\0" "\222\360\17\0i\210\13\0P\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16R\204\16\22" "j\251\177\31\224\356\356\32\236\377\377\32\235\377\377\31\234\377\377" "\30\231\375\375\23\200\324\313\14Q\207!\13L\177\1\0\0\0\0\0\0\0\0\0\0" "\0\0\13\0M\2\23\0\204\324k\\\277\377}p\307\377%\17\241\377\26\0\225\366" "\21\0u\255\14\0U1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15O\177\11\20`\233\\\27\217\347\346\32\235" "\377\377\31\234\377\377\31\233\377\377\27\223\365\365\21r\276\250\13" "N\203\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0k\217>+\254\377" "\376\376\377\377\363\363\371\375\232\220\323\3779%\252\377\26\0\232\376" "\21\0w\265\15\0\\Q\13\0M\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\15O\177\11\17_\233\\\27\216\347\346\31\234\377\377\31" "\233\377\377\30\232\377\377\26\221\361\361\20j\263\223\13N\203\17\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15\0[N\31\2\234\377\332\327\356" "\375\377\377\377\377\377\377\377\377\373\373\374\376\270\261\340\377" "SB\265\377\31\2\234\377\23\0\203\322\16\0_^\13\0P\16\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\15N\177\11\17_\233\\\26\214\347\346\31\233\377" "\377\30\232\377\377\30\231\377\377\25\220\361\361\20j\263\223\13M\203" "\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0P\15\26\0\224\363\223" "\210\320\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\376\376\377\377\322\317\353\376pb\301\377\36\10\236\377\25\0" "\217\352\17\0f}\13\0O\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15N\177\11\17^\233\\" "\26\214\347\346\30\232\377\377\30\231\377\377\27\230\377\377\25\217\361" "\361\17i\263\223\13M\203\17\0\0\0\0\0\0\0\0\13\0P\15\13\0P\20\13\0P\20" "\13\0P\20\22\0|\300J8\261\377\376\376\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\351\350\365\376\214\201\316\3770\33\246\377\26\0\224\363\20\0m\226" "\14\0V7\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20" "\13\0P\20\13\0P\20\13\0P\20\13\0P\17\13\0M\3\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\14M\177\11\17]\233\\\25\213\347\346\30\230\377" "\377\27\230\377\377\27\227\377\377\24\216\361\361\16h\263\223\12L\203" "\17\0\0\0\0\15\0]Y\26\0\226\367\26\0\231\374\26\0\231\374\26\0\231\374" "\26\0\231\375\33\4\235\377\344\341\363\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\370\367\374\377\252\242\333\377F5\257" "\376\26\0\231\375\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374" "\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26" "\0\231\374\26\0\230\373\20\0q\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\14M\177\11\16]\233\\\24\212\347\346\27\227\377\377\26\227" "\377\377\26\226\377\377\23\215\361\361\16h\263\223\12L\203\17\0\0\0\0" "\17\0g\202\26\0\231\374\27\1\231\375\30\2\233\376\30\2\233\376\27\1\232" "\376\27\0\233\377\234\222\324\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\375\375\376" "\377\310\302\347\377bT\273\376\33\5\234\376\30\2\233\376\30\2\233\376" "\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30" "\2\233\376\27\1\231\375\24\0\212\341\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\14L\177\11\16\\\233\\\24\211\347\346\26\226\377\377" "\26\225\377\377\25\225\377\377\23\214\361\361\16g\263\223\12K\203\17" "\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347\377\30\2" "\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\13L\177\11\16\\\233\\\24\210\347\346\26\225\377\377\25\224\377\377\25" "\224\377\377\22\213\361\361\16f\263\223\11K\203\17\0\0\0\0\17\0g\202" "\26\0\231\374aS\264\355\357\355\370\377bR\273\377`P\272\377`P\272\377" "`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377" "`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377" "`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377" "\245\234\330\377\310\302\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13K\177\11\15[\233\\\24\207\347" "\346\25\224\377\377\25\223\377\377\24\222\377\377\22\212\361\361\15e" "\263\223\11J\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\370\367" "\374\377\236\224\325\377\231\217\323\377\231\217\323\377\231\217\323" "\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377" "\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231" "\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217" "\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323" "\377\231\217\323\377\231\217\323\377\231\217\323\377\311\304\350\377" "\310\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\13K\177\11\15Z\233\\\23\206\347\346\25\223\377" "\377\24\222\377\377\24\221\377\377\22\211\361\361\15e\263\223\11I\203" "\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347\377" "\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\13J\177\11\14Z\233\\\23\205\347\346\24\222\377\377\24\221\377" "\377\23\220\377\377\21\207\361\361\14d\263\223\10I\203\17\0\0\0\0\17" "\0g\202\26\0\231\374aS\264\355\352\350\366\3777#\251\3774\40\250\377" "4\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250" "\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40" "\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\377" "\227\215\322\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\310\302\347\377\27\1\231\375\24\0\213\342" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12J\177\11\14Y\233\\" "\22\204\347\346\23\221\377\377\23\220\377\377\22\217\377\377\21\206\361" "\361\13c\263\223\10H\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355" "\370\367\374\377\236\224\325\377\231\217\323\377\231\217\323\377\231" "\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217" "\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323" "\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377" "\231\217\323\377\231\217\323\377\231\217\323\377\320\313\353\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\310\302\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12I\177\11\14X\233\\\21\203\347\346\23" "\220\377\377\22\217\377\377\22\216\377\377\20\205\361\361\13b\263\223" "\10H\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302" "\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\12I\177\11\13X\233\\\21\202\347\346\22\217\377\377\22" "\216\377\377\21\215\377\377\20\204\361\361\13a\263\223\10G\203\17\0\0" "\0\0\17\0g\202\26\0\231\374aS\264\355\307\301\347\3774\40\250\3774\40" "\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\377" "4\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250" "\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40" "\250\3774\40\250\3774\40\250\377\262\252\336\377\377\377\377\377\377" "\377\377\377\377\377\377\377\310\302\347\377\27\1\231\375\24\0\213\342" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11H\177\11\13W\233\\" "\20\202\347\346\22\216\377\377\21\215\377\377\21\214\377\377\17\203\361" "\361\13a\263\223\7F\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\365" "\364\373\377\306\300\346\377\305\277\346\377\305\277\346\377\305\277" "\346\377\305\277\346\377\305\277\346\377\305\277\346\377\305\277\346" "\377\305\277\346\377\305\277\346\377\305\277\346\377\305\277\346\377" "\305\277\346\377\305\277\346\377\305\277\346\377\305\277\346\377\305" "\277\346\377\305\277\346\377\305\277\346\377\305\277\346\377\305\277" "\346\377\357\355\370\377\377\377\377\377\377\377\377\377\377\377\377" "\377\310\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\11H\177\11\12W\233\\\20\201\347\346\21\215" "\377\377\21\214\377\377\20\213\377\377\17\202\361\361\12`\263\223\7F" "\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347" "\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\11G\177\11\12V\233\\\17\200\347\346\21\214\377\377\20\213" "\377\377\20\212\377\377\16\201\361\361\12_\263\223\7E\203\17\0\0\0\0" "\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\310\302\347\377\27\1\231\375" "\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11G\177" "\11\12U\233\\\17\177\347\346\20\213\377\377\20\212\377\377\17\211\377" "\377\15\201\361\361\11^\263\223\6E\203\17\0\0\0\0\17\0g\202\26\0\231" "\374aS\264\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\310\302\347\377\27\1\231\375\24\0\213\342\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10F\177\11\11U\233\\\16~\347" "\346\17\212\377\377\17\211\377\377\16\210\377\377\15\200\361\361\11^" "\263\223\6D\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310" "\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\10F\177\11\11T\233\\\15}\347\346\17\211\377\377\16" "\210\377\377\16\207\377\377\14\177\361\361\11]\263\223\6D\203\17\0\0" "\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\310\302\347\377\27\1\231" "\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10" "E\177\11\11T\233\\\15|\347\346\16\210\377\377\16\207\377\377\15\206\377" "\377\14~\361\361\10\\\263\223\6C\203\17\0\0\0\0\17\0g\202\26\0\231\374" "aS\264\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\310\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7E\177\11\11S\233\\\14{\347\346" "\16\207\377\377\15\206\377\377\15\205\377\377\13}\361\361\10\\\263\223" "\5C\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347" "\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\7D\177\11\10R\233\\\14z\347\346\15\206\377\377\15\205\377" "\377\14\204\377\377\13|\361\361\7[\263\223\5B\203\17\0\0\0\0\17\0g\202" "\26\0\231\374/\33\242\371bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377P\77\264\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\7D\177\11\10R\233\\\13y\347\346\15\205\377\377" "\14\204\377\377\13\203\377\377\12{\361\361\7Z\263\223\5B\203\17\0\0\0" "\0\16\0dt\26\0\231\374\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27" "\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\26\0\231\374\23\0\201\315\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7C\177\11\7Q\233\\\12x\347" "\346\14\204\377\377\13\203\377\377\13\202\377\377\11z\361\361\7Z\263" "\223\4A\203\17\0\0\0\0\13\0M\10\15\0\\S\16\0_^\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\5ii\16\5ii\16\1``\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0^]\14\0R\40\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\6C\177\11\7Q\233\\\12x\347\346\13\203\377\377\13" "\202\377\377\12\201\377\377\11y\361\361\6Y\263\223\4A\203\17\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\13""7\246\12\5G\262x\5E\260l\13""8\251\21\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6B\177\11\7P\233\\\12w\347" "\346\13\202\377\377\12\201\377\377\12\200\377\377\10x\361\361\6X\263" "\223\4@\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\1\0\77\222D\0R\300\253\0B\232" "[\0""7\177\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6A\177" "\11\6O\233\\\12v\347\346\12\201\377\377\12\200\377\377\11\177\377\377" "\10w\361\361\5W\263\223\4@\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""8\203\17\0J\254\207" "\0R\276\251\0=\2165\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\5A\177\11\6O\233\\\11u\347\346\12\200\377\377\11\177\377\377" "\11~\377\377\7v\361\361\5W\263\223\3\77\203\17\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\5\0A" "\226N\0Z\322\311\0J\254\207\0""8\202\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\11\6N\233\\\11t\347\346\11\177" "\377\377\11~\377\377\10}\377\377\6u\361\361\4V\263\223\3\77\203\17\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0;\212+\0P\272\241\0c\347\345\0D\236d\0""7\177\1\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\11\6M\233\\\10" "r\347\346\10~\377\377\10}\377\377\7|\377\377\6u\363\363\4W\266\233\3" ">\203\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0:\210\40\0L\260\216\0f\354\354\0W\313\277\0>\221=\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4B\204\15" "\5R\246w\7t\354\354\10|\377\377\7|\377\377\7{\377\377\5w\372\372\4_\312" "\274\2\77\206\34\2;\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0""7\177\13\0>\220;\0M\264\227\0d\347\346\0m\376\376\0L\261\217\0""9" "\205\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\4B\205\25\6^\301\256\7x\367\367\7{\377\377\7{\377\377\6z\377\377" "\6y\377\377\4m\350\347\3M\246y\2@\213*\2<\204\15\1:\177\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\5\0""9" "\204\31\0<\215/\0@\224J\0H\247{\0X\316\302\0j\366\366\0n\377\377\0d\351" "\350\0D\236b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\1\5@" "\177\1\4\77\177\1\4\77\177\12\4L\234_\7m\341\335\6z\375\375\7z\377\377" "\6y\377\377\6y\377\377\5x\377\377\4v\375\375\3k\350\347\3Z\304\263\2" "R\266\231\2O\260\216\1N\260\215\0N\260\215\0M\260\215\0L\260\215\0L\260" "\215\0L\260\215\0L\260\215\0L\260\215\0M\262\222\0P\273\244\0V\307\270" "\0]\327\320\0h\361\361\0n\377\377\0n\377\377\0m\376\376\0V\307\271\0" "=\2168\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5A\177\2\5D\206\34\5G\2152\5I\223" "E\5M\235c\5U\257\212\6i\330\322\6x\371\371\6y\376\376\5x\376\376\5w\376" "\376\4w\376\376\4v\376\376\3u\376\376\3t\376\376\2s\376\376\1r\376\376" "\1q\376\376\0p\376\376\0o\376\376\0n\376\376\0m\376\376\0m\376\376\0" "m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376" "\376\0m\376\376\0m\376\376\0m\376\376\0m\375\375\0K\257\212\0""8\203" "\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\5\5J\224I\6T\252\200\6X\263\223" "\5[\273\244\6`\306\267\5c\316\302\5c\317\304\4b\317\304\4a\317\304\4" "`\317\304\4_\317\304\3_\317\304\3_\317\304\2^\317\304\1]\317\304\1\\" "\317\304\0[\317\304\0[\317\304\0Z\317\304\0Y\317\304\0Y\317\304\0Y\317" "\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304" "\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0V\307\271\0A\230U\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\2\4C\207\32\4E\213.\4E\2152\4D" "\2152\3D\2152\3C\2152\3C\2152\3B\2152\2B\2152\2A\2152\2A\2152\1A\215" "2\1@\2152\1\77\2152\1\77\2152\0>\2152\0>\2152\0=\2152\0=\2152\0=\215" "2\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=" "\2152\0=\2152\0=\2152\0=\2152\0<\213-\0""9\206\24\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (loqui_hilighted_pixbuf) #endif #ifdef __GNUC__ static const guint8 loqui_hilighted_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 loqui_hilighted_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T" "\177\1\20T\177\11\21V\203\20\21V\203\21\20V\203\21\17V\203\21\17U\203" "\21\17U\203\21\17T\203\21\16S\203\21\16S\203\21\16R\203\21\16R\203\21" "\15Q\203\21\15Q\203\21\15P\203\21\15P\203\21\14O\203\21\14O\203\21\14" "N\203\21\14O\204\15\13L\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\4\22]\2165\23g\234^\24j\243" "p\24l\246x\24l\246y\23k\246y\23k\246y\22j\246y\22i\246y\22i\246y\22h" "\246y\21g\246y\21g\246y\21f\246y\21f\246y\20e\246y\20d\246y\17d\246y" "\17c\246w\15[\231T\13K\177\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\5\22`\222\77\24j\243p\25u\264" "\226\27}\300\255\30\204\315\301\33\227\352\351\33\235\366\366\34\235" "\370\370\33\234\370\370\33\233\370\370\32\232\370\370\32\231\370\370" "\31\230\370\370\30\225\365\365\26\213\344\342\24}\317\305\22u\303\261" "\21s\302\260\21q\300\253\16`\244s\13K\177\5\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20S\177\2\17S" "\177\4\17R\177\5\17R\177\11\20Z\215/\24s\264\226\32\225\352\351\33\240" "\376\376\34\240\377\377\33\237\377\377\33\236\377\377\32\235\377\377" "\30\230\372\372\25\204\331\323\17e\250}\31U\2636\26L\246\11\26K\246\6" "\26K\246\6\15\3\\F\16\0__\13\0P\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\16Q\177\3\17V\210%\25}\306\267\33\233\370\370\33\237\377\377\33\236" "\377\377\32\235\377\377\31\234\377\377\26\214\347\346\17a\241k\14L\177" "\13\26L\246\1\0\0\0\0\0\0\0\0\13\0M\12\25\0\221\357\27\0\233\377\25\0" "\222\360\17\0i\210\13\0P\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16R\204\16\22" "j\251\177\31\224\356\356\32\236\377\377\32\235\377\377\31\234\377\377" "\30\231\375\375\23\200\324\313\14Q\207!\13L\177\1\0\0\0\0\0\0\0\0\0\0" "\0\0\13\0M\2\23\0\204\324\212[\307\377\255g\323\377'\17\241\377\26\0" "\225\366\21\0u\255\14\0U1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15O\177\11\20`\233\\\27\217\347" "\346\32\235\377\377\31\234\377\377\31\233\377\377\27\223\365\365\21r" "\276\250\13N\203\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0k\217" "P/\261\377\376Z\350\377\375i\351\377\310v\334\377M*\260\377\26\0\232" "\376\21\0w\265\15\0\\Q\13\0M\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\15O\177\11\17_\233\\\27\216\347\346\31\234\377\377" "\31\233\377\377\30\232\377\377\26\221\361\361\20j\263\223\13N\203\17" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15\0[N\31\2\234\377\366t\351" "\377\377Y\350\377\377Y\350\377\376_\350\377\342|\344\377oE\275\377\31" "\2\234\377\23\0\203\322\16\0_^\13\0P\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\15N\177\11\17_\233\\\26\214\347\346\31\233\377\377\30\232" "\377\377\30\231\377\377\25\220\361\361\20j\263\223\13M\203\17\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0P\15\26\0\224\363\302s\332\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\376[\350\377\363v\350" "\377\230_\314\377\36\10\236\377\25\0\217\352\17\0f}\13\0O\22\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\15N\177\11\17^\233\\\26\214\347\346\30\232\377\377\30" "\231\377\377\27\230\377\377\25\217\361\361\17i\263\223\13M\203\17\0\0" "\0\0\0\0\0\0\13\0P\15\13\0P\20\13\0P\20\13\0P\20\22\0|\300a<\270\377" "\376[\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\373p\352\377\276o\331\377:\36\251\377\26\0\224" "\363\20\0m\226\14\0V7\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13" "\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\17\13\0M\3\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14M\177\11\17]\233\\\25\213\347" "\346\30\230\377\377\27\230\377\377\27\227\377\377\24\216\361\361\16h" "\263\223\12L\203\17\0\0\0\0\15\0]Y\26\0\226\367\26\0\231\374\26\0\231" "\374\26\0\231\374\26\0\231\375\33\4\235\377\371s\352\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\376`\350\377\326{\341\377`:\267\376\26\0\231\375" "\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26" "\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\230" "\373\20\0q\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14M\177" "\11\16]\233\\\24\212\347\346\27\227\377\377\26\227\377\377\26\226\377" "\377\23\215\361\361\16h\263\223\12L\203\17\0\0\0\0\17\0g\202\26\0\231" "\374\27\1\231\375\30\2\233\376\30\2\233\376\27\1\232\376\27\0\233\377" "\315u\336\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\376\\\350\377\355y\347\377\203U\304\376\33\5\234\376\30\2\233\376" "\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30" "\2\233\376\30\2\233\376\27\1\231\375\24\0\212\341\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14L\177\11\16\\\233\\\24\211\347\346\26" "\226\377\377\26\225\377\377\25\225\377\377\23\214\361\361\16g\263\223" "\12K\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\30\2\233" "\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13" "L\177\11\16\\\233\\\24\210\347\346\26\225\377\377\25\224\377\377\25\224" "\377\377\22\213\361\361\16f\263\223\11K\203\17\0\0\0\0\17\0g\202\26\0" "\231\374\212T\301\362\375e\351\377\223T\311\377\221R\310\377\221R\310" "\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377" "\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221" "R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310" "\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377\221R\310\377" "\330u\341\377\361s\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13K\177\11\15[\233\\\24\207\347\346" "\25\224\377\377\25\223\377\377\24\222\377\377\22\212\361\361\15e\263" "\223\11J\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\376a\351" "\377\324r\337\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377" "\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322" "p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336" "\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377" "\322p\336\377\322p\336\377\322p\336\377\360v\350\377\361s\347\377\30" "\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\13K\177\11\15Z\233\\\23\206\347\346\25\223\377\377\24\222\377\377" "\24\221\377\377\22\211\361\361\15e\263\223\11I\203\17\0\0\0\0\17\0g\202" "\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\361s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13J\177\11\14Z\233\\\23\205\347" "\346\24\222\377\377\24\221\377\377\23\220\377\377\21\207\361\361\14d" "\263\223\10I\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\374h" "\351\377P)\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377" "M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377" "M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377\313r\335" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\361s\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\12J\177\11\14Y\233\\\22\204\347\346\23\221\377\377" "\23\220\377\377\22\217\377\377\21\206\361\361\13c\263\223\10H\203\17" "\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\376a\351\377\324r\337\377" "\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322" "p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336" "\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377\322p\336\377" "\322p\336\377\322p\336\377\363u\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213" "\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12I\177\11\14X\233" "\\\21\203\347\346\23\220\377\377\22\217\377\377\22\216\377\377\20\205" "\361\361\13b\263\223\10H\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301" "\362\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361" "s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\12I\177\11\13X\233\\\21\202\347\346\22\217\377\377\22" "\216\377\377\21\215\377\377\20\204\361\361\13a\263\223\10G\203\17\0\0" "\0\0\17\0g\202\26\0\231\374\212T\301\362\357u\347\377M'\260\377M'\260" "\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260" "\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260" "\377M'\260\377M'\260\377M'\260\377M'\260\377M'\260\377\341x\344\377\377" "Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213" "\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11H\177\11\13W\233" "\\\20\202\347\346\22\216\377\377\21\215\377\377\21\214\377\377\17\203" "\361\361\13a\263\223\7F\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301" "\362\376e\351\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377" "\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360" "r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347" "\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377\360r\347\377" "\360r\347\377\375i\351\377\377Y\350\377\377Y\350\377\377Y\350\377\361" "s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\11H\177\11\12W\233\\\20\201\347\346\21\215\377\377\21" "\214\377\377\20\213\377\377\17\202\361\361\12`\263\223\7F\203\17\0\0" "\0\0\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\361s\347\377\30\2\233\376\24\0\213\342" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11G\177\11\12V\233\\" "\17\200\347\346\21\214\377\377\20\213\377\377\20\212\377\377\16\201\361" "\361\12_\263\223\7E\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347" "\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\11G\177\11\12U\233\\\17\177\347\346\20\213\377\377\20\212" "\377\377\17\211\377\377\15\201\361\361\11^\263\223\6E\203\17\0\0\0\0" "\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213\342\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10F\177\11\11U\233\\\16" "~\347\346\17\212\377\377\17\211\377\377\16\210\377\377\15\200\361\361" "\11^\263\223\6D\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347\377" "\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\10F\177\11\11T\233\\\15}\347\346\17\211\377\377\16\210\377\377" "\16\207\377\377\14\177\361\361\11]\263\223\6D\203\17\0\0\0\0\17\0g\202" "\26\0\231\374\212T\301\362\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\361s\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10E\177\11\11T\233\\\15|\347\346" "\16\210\377\377\16\207\377\377\15\206\377\377\14~\361\361\10\\\263\223" "\6C\203\17\0\0\0\0\17\0g\202\26\0\231\374\212T\301\362\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\361s\347\377\30\2\233\376" "\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7E\177" "\11\11S\233\\\14{\347\346\16\207\377\377\15\206\377\377\15\205\377\377" "\13}\361\361\10\\\263\223\5C\203\17\0\0\0\0\17\0g\202\26\0\231\374\212" "T\301\362\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377" "Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350" "\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377\377Y\350\377" "\361s\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\7D\177\11\10R\233\\\14z\347\346\15\206\377\377\15" "\205\377\377\14\204\377\377\13|\361\361\7[\263\223\5B\203\17\0\0\0\0" "\17\0g\202\26\0\231\374\77\37\247\371\223T\311\377\223T\311\377\223T" "\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311" "\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377" "\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223" "T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311\377\223T\311" "\377\223T\311\377\223T\311\377yE\300\377\27\1\231\375\24\0\213\342\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7D\177\11\10R\233\\\13" "y\347\346\15\205\377\377\14\204\377\377\13\203\377\377\12{\361\361\7" "Z\263\223\5B\203\17\0\0\0\0\16\0dt\26\0\231\374\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27" "\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\26" "\0\231\374\23\0\201\315\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\7C\177\11\7Q\233\\\12x\347\346\14\204\377\377\13\203\377\377\13\202" "\377\377\11z\361\361\7Z\263\223\4A\203\17\0\0\0\0\13\0M\10\15\0\\S\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\5ii\16\5ii\16" "\1``\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0^]\14\0R\40" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6C\177\11\7Q\233\\\12" "x\347\346\13\203\377\377\13\202\377\377\12\201\377\377\11y\361\361\6" "Y\263\223\4A\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13""7\246\12\5G\262x\5E\260" "l\13""8\251\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6" "B\177\11\7P\233\\\12w\347\346\13\202\377\377\12\201\377\377\12\200\377" "\377\10x\361\361\6X\263\223\4@\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\1\0\77" "\222D\0R\300\253\0B\232[\0""7\177\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\6A\177\11\6O\233\\\12v\347\346\12\201\377\377\12\200" "\377\377\11\177\377\377\10w\361\361\5W\263\223\4@\203\17\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0""8\203\17\0J\254\207\0R\276\251\0=\2165\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5A\177\11\6O\233\\\11u\347\346" "\12\200\377\377\11\177\377\377\11~\377\377\7v\361\361\5W\263\223\3\77" "\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0""7\177\5\0A\226N\0Z\322\311\0J\254\207\0""8\202\23\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\11" "\6N\233\\\11t\347\346\11\177\377\377\11~\377\377\10}\377\377\6u\361\361" "\4V\263\223\3\77\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\212+\0P\272\241\0c\347\345\0D\236d" "\0""7\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\5@\177\11\6M\233\\\10r\347\346\10~\377\377\10}\377\377\7|\377\377" "\6u\363\363\4W\266\233\3>\203\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\210\40\0L\260\216\0f\354\354\0W\313" "\277\0>\221=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\4B\204\15\5R\246w\7t\354\354\10|\377\377\7|\377\377\7{\377" "\377\5w\372\372\4_\312\274\2\77\206\34\2;\177\1\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0""7\177\13\0>\220;\0M\264\227\0d\347\346\0m\376" "\376\0L\261\217\0""9\205\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\4B\205\25\6^\301\256\7x\367\367\7{\377\377" "\7{\377\377\6z\377\377\6y\377\377\4m\350\347\3M\246y\2@\213*\2<\204\15" "\1:\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0""7\177\5\0""9\204\31\0<\215/\0@\224J\0H\247{\0X\316\302\0j\366" "\366\0n\377\377\0d\351\350\0D\236b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\5@\177\1\5@\177\1\4\77\177\1\4\77\177\12\4L\234_\7m\341\335" "\6z\375\375\7z\377\377\6y\377\377\6y\377\377\5x\377\377\4v\375\375\3" "k\350\347\3Z\304\263\2R\266\231\2O\260\216\1N\260\215\0N\260\215\0M\260" "\215\0L\260\215\0L\260\215\0L\260\215\0L\260\215\0L\260\215\0M\262\222" "\0P\273\244\0V\307\270\0]\327\320\0h\361\361\0n\377\377\0n\377\377\0" "m\376\376\0V\307\271\0=\2168\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5A\177\2\5D" "\206\34\5G\2152\5I\223E\5M\235c\5U\257\212\6i\330\322\6x\371\371\6y\376" "\376\5x\376\376\5w\376\376\4w\376\376\4v\376\376\3u\376\376\3t\376\376" "\2s\376\376\1r\376\376\1q\376\376\0p\376\376\0o\376\376\0n\376\376\0" "m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376" "\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\375\375" "\0K\257\212\0""8\203\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\5\5J\224I\6" "T\252\200\6X\263\223\5[\273\244\6`\306\267\5c\316\302\5c\317\304\4b\317" "\304\4a\317\304\4`\317\304\4_\317\304\3_\317\304\3_\317\304\2^\317\304" "\1]\317\304\1\\\317\304\0[\317\304\0[\317\304\0Z\317\304\0Y\317\304\0" "Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317" "\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0V\307\271" "\0A\230U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\2\4C\207\32\4E\213" ".\4E\2152\4D\2152\3D\2152\3C\2152\3C\2152\3B\2152\2B\2152\2A\2152\2A" "\2152\1A\2152\1@\2152\1\77\2152\1\77\2152\0>\2152\0>\2152\0=\2152\0=" "\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\215" "2\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0<\213-\0""9\206\24\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (whether_scroll_pixbuf) #endif #ifdef __GNUC__ static const guint8 whether_scroll_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 whether_scroll_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (2304) */ "\0\0\11\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\0\0\0\27\0\0\0\224\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\232" "\0\0\0'\0\0\0\6\0\0\0\1\0\0\0\224\342\342\342\377\362\362\362\377\362" "\362\362\377\362\362\362\377\362\362\362\377\363\363\363\377\363\363" "\363\377\363\363\363\377\364\364\364\377\364\364\364\377\364\364\364" "\377\365\365\365\377\365\365\365\377\365\365\365\377\366\366\366\377" "\366\366\366\377\367\367\367\377\367\367\367\377\364\364\364\377\333" "\333\333\377\0\0\0\243\0\0\0\25\0\0\0\6\0\0\0\377\360\360\360\377\340" "\340\340\377\340\340\340\377\341\341\341\377\342\342\342\377\343\343" "\343\377\344\344\344\377\345\345\345\377\346\346\346\377\347\347\347" "\377\350\350\350\377\350\350\350\377\351\351\351\377\352\352\352\377" "\353\353\353\377\354\354\354\377\355\355\355\377\356\356\356\377\357" "\357\357\377\355\355\355\377\0\0\0\377\0\0\0)\0\0\0\16\0\0\0\377\362" "\362\362\377\341\341\341\377\206\206\206\377\206\206\206\377\207\207" "\207\377\207\207\207\377\210\210\210\377\211\211\211\377\211\211\211" "\377\212\212\212\377\212\212\212\377\213\213\213\377\352\352\352\377" "\353\353\353\377\354\354\354\377\355\355\355\377\356\356\356\377\357" "\357\357\377\360\360\360\377\361\361\361\377\0\0\0\377\0\0\0""8\0\0\0" "\25\0\0\0\377\362\362\362\377\342\342\342\377\343\343\343\377\343\343" "\343\377\344\344\344\377\345\345\345\377\346\346\346\377\347\347\347" "\377\350\350\350\377\351\351\351\377\352\352\352\377\353\353\353\377" "\354\354\354\377\354\354\354\377\355\355\355\377\356\356\356\377\357" "\357\357\377\360\360\360\377\361\361\361\377\362\362\362\377\0\0\0\377" "\0\0\0=\0\0\0\27\0\0\0\377\363\363\363\377\343\343\343\377\207\207\207" "\377\210\210\210\377\210\210\210\377\211\211\211\377\211\211\211\377" "\212\212\212\377\212\212\212\377\213\213\213\377\214\214\214\377\214" "\214\214\377\215\215\215\377\215\215\215\377\215\215\215\377\216\216" "\216\377\360\360\360\377\361\361\361\377\362\362\362\377\363\363\363" "\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\363\363\363\377\344\344\344" "\377\345\345\345\377\346\346\346\377\347\347\347\377\347\347\347\377" "\350\350\350\377\351\351\351\377\352\352\352\377\353\353\353\377\354" "\354\354\377\355\355\355\377\356\356\356\377\357\357\357\377\357\357" "\357\377\360\360\360\377\361\361\361\377\362\362\362\377\363\363\363" "\377\364\364\364\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\363\363\363" "\377\345\345\345\377\211\211\211\377\211\211\211\377\212\212\212\377" "\212\212\212\377\212\212\212\377\213\213\213\377\214\214\214\377\354" "\354\354\377\355\355\355\377\356\356\356\377\357\357\357\377\360\360" "\360\377\361\361\361\377\361\361\361\377\362\362\362\377\363\363\363" "\377\364\364\364\377\365\365\365\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0" "\377\364\364\364\377\346\346\346\377\347\347\347\377\350\350\350\377" "\351\351\351\377\352\352\352\377\352\352\352\377\353\353\353\377\354" "\354\354\377\355\355\355\377\356\356\356\377\357\357\357\377\360\360" "\360\377\361\361\361\377\362\362\362\377\363\363\363\377\363\363\363" "\377\364\364\364\377\365\365\365\377\366\366\366\377\0\0\0\377\0\0\0" "=\0\0\0\27\0\0\0\377\364\364\364\377\347\347\347\377\212\212\212\377" "\212\212\212\377\213\213\213\377\214\214\214\377\214\214\214\377\214" "\214\214\377\215\215\215\377\215\215\215\377\216\216\216\377\217\217" "\217\377\217\217\217\377\362\362\362\377\363\363\363\377\364\364\364" "\377\365\365\365\377\365\365\365\377\366\366\366\377\367\367\367\377" "\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\365\365\365\377\350\350\350\377" "\351\351\351\377\352\352\352\377\353\353\353\377\354\354\354\377\355" "\355\355\377\356\356\356\377\356\356\356\377\357\357\357\377\360\360" "\360\377\361\361\361\377\362\362\362\377\363\363\363\377\364\364\364" "\377\365\365\365\377\366\366\366\377\367\367\367\377\367\367\367\377" "\370\370\370\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\365\365\365\377" "\351\351\351\377\213\213\213\377\214\214\214\377\214\214\214\377\215" "\215\215\377\215\215\215\377rrr\377\33\33\33\377\31\31\31\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377777\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\365\365\365\377" "\352\352\352\377\353\353\353\377\354\354\354\377\355\355\355\377\356" "\356\356\377\357\357\357\377\360\360\360\377\310\310\310\377;;;\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\303\303\303\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0" "\377\366\366\366\377\353\353\353\377\214\214\214\377\215\215\215\377" "\215\215\215\377\216\216\216\377\217\217\217\377\217\217\217\377\220" "\220\220\377\363\363\363\377\33\33\33\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377ppp\377\374\374\374\377\0\0\0" "\377\0\0\0=\0\0\0\27\0\0\0\377\367\367\367\377\355\355\355\377\355\355" "\355\377\356\356\356\377\357\357\357\377\360\360\360\377\361\361\361" "\377\362\362\362\377\363\363\363\377\364\364\364\377\210\210\210\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\340\340\340\377\375\375\375\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377" "\367\367\367\377\356\356\356\377\216\216\216\377\216\216\216\377\217" "\217\217\377\217\217\217\377\220\220\220\377\363\363\363\377\364\364" "\364\377\365\365\365\377\366\366\366\377\34\34\34\377\0\0\0\377\0\0\0" "\377\0\0\0\377\0\0\0\377\0\0\0\377ppp\377\375\375\375\377\376\376\376" "\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\377\370\370\370\377\360\360\360" "\377\361\361\361\377\362\362\362\377\362\362\362\377\363\363\363\377" "\364\364\364\377\365\365\365\377\366\366\366\377\367\367\367\377\370" "\370\370\377ooo\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\34\34\34" "\377\342\342\342\377\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0" "=\0\0\0\27\0\0\0\377\370\370\370\377\361\361\361\377\220\220\220\377" "\220\220\220\377\221\221\221\377\221\221\221\377\222\222\222\377\222" "\222\222\377\223\223\223\377\223\223\223\377\224\224\224\377\204\204" "\204\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\215\215\215\377\377" "\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\0\0\0=\0\0\0\27" "\0\0\0\377\362\362\362\377\362\362\362\377\363\363\363\377\364\364\364" "\377\365\365\365\377\366\366\366\377\366\366\366\377\367\367\367\377" "\370\370\370\377\371\371\371\377\372\372\372\377\373\373\373\377ppp\377" "\0\0\0\377\0\0\0\377\35\35\35\377\377\377\377\377\377\377\377\377\377" "\377\377\377\354\354\354\377\0\0\0\377\0\0\0=\0\0\0\27\0\0\0\232\311" "\311\311\377\355\355\355\377\370\370\370\377\365\365\365\377\366\366" "\366\377\367\367\367\377\370\370\370\377\370\370\370\377\371\371\371" "\377\372\372\372\377\373\373\373\377\374\374\374\377\341\341\341\377" "\0\0\0\377\0\0\0\377\216\216\216\377\377\377\377\377\377\377\377\377" "\356\356\356\377\275\275\275\377\0\0\0\324\0\0\0:\0\0\0\26\0\0\0\34\0" "\0\0\243\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\324\0\0\0Y\0" "\0\0-\0\0\0\20\0\0\0\6\0\0\0\24\0\0\0)\0\0\0""8\0\0\0<\0\0\0=\0\0\0=" "\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0=\0\0\0\263\0\0\0\335" "\0\0\0""1\0\0\0=\0\0\0=\0\0\0=\0\0\0""9\0\0\0-\0\0\0\31\0\0\0\7\0\0\0" "\1\0\0\0\6\0\0\0\16\0\0\0\24\0\0\0\27\0\0\0\27\0\0\0\27\0\0\0\27\0\0" "\0\27\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\3\0\0\0" "\3\0\0\0\3\0\0\0\3\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\1\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (notice_pixbuf) #endif #ifdef __GNUC__ static const guint8 notice_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 notice_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\32\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0" "\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0" "\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0\31\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\26HHHh\361\361\361\243\365\365\365\377\366\366\366\377" "\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366" "\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366" "\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366" "\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377" "\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\365" "\365\365\377\314\314\314\300\0\0\0T\0\0\0\35\0\0\0\6\0\0\0\2\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\362\362\362" "\245\365\365\365\377\362\362\362\377\361\361\361\377\361\361\361\377" "\360\360\360\377\357\357\357\377\356\356\356\377\356\356\356\377\355" "\355\355\377\354\354\354\377\353\353\353\377\353\353\353\377\352\352" "\352\377\351\351\351\377\350\350\350\377\347\347\347\377\346\346\346" "\377\345\345\345\377\344\344\344\377\343\343\343\377\342\342\342\377" "\340\340\340\377\337\337\337\377\336\336\336\377\317\317\317\377}}}\377" "\\\\\\m\0\0\0[\0\0\0\17\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\365\365\365\377\362\362\362\377\361\361" "\361\377\361\361\361\377\360\360\360\377\357\357\357\377\357\357\357" "\377\356\356\356\377\355\355\355\377\354\354\354\377\353\353\353\377" "\353\353\353\377\352\352\352\377\351\351\351\377\350\350\350\377\347" "\347\347\377\346\346\346\377\345\345\345\377\344\344\344\377\343\343" "\343\377\342\342\342\377\341\341\341\377\337\337\337\377\336\336\336" "\377\335\335\335\377\334\334\334\377\267\267\267\377jjj\377\0\0\0k\0" "\0\0\36\0\0\0\17\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\1\0\0\0M\365\365\365\377\361\361\361\377\361\361\361\377\266\266" "\266\377\256\256\256\377\245\245\245\377\245\245\245\377\245\245\245" "\377\243\243\243\377\243\243\243\377\243\243\243\377\243\243\243\377" "\240\240\240\377\240\240\240\377\240\240\240\377\240\240\240\377\240" "\240\240\377\240\240\240\377\236\236\236\377\236\236\236\377\233\233" "\233\377\233\233\233\377\271\271\271\377\313\313\313\377\334\334\334" "\377\333\333\333\377\332\332\332\377SSS\377\0\0\0z\0\0\0/\0\0\0\31\0" "\0\0\12\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0M\365" "\365\365\377\361\361\361\377\360\360\360\377\256\256\256\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\353\353\353\377\332" "\332\332\377\330\330\330\377TTT\377\0\0\0\206\0\0\0=\0\0\0\"\0\0\0\15" "\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0N\365\365\365" "\377\360\360\360\377\357\357\357\377\245\245\245\377\0\0\0\377\276\273" "\266\377\350\345\336\377\346\342\334\377\342\337\330\377\336\333\323" "\377\331\326\316\377\325\321\311\377\321\314\304\377\314\307\277\377" "\310\303\272\377\303\277\265\377\273\267\255\377\267\262\250\377\256" "\251\237\377\245\241\226\377\231\224\212\377\221\215\202\377rnf\377\0" "\0\0\377\353\353\353\377\330\330\330\377\327\327\327\377TTT\377\0\0\0" "\213\0\0\0E\0\0\0'\0\0\0\20\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\2\0\0\0O\365\365\365\377\357\357\357\377\357\357\357\377\245" "\245\245\377\0\0\0\377\350\345\336\377\304\317\325\377\377\377\377\377" "\377\377\377\377\366\367\370\377\277\307\314\377\247\262\271\377\241" "\255\263\377\233\247\256\377\310\304\272\377\303\277\265\377\275\270" "\256\377\266\261\247\377\256\251\236\377\243\236\224\377dov\377[fl\377" "\206\202x\377\0\0\0\377\353\353\353\377\327\327\327\377\326\326\326\377" "TTT\377\0\0\0\216\0\0\0H\0\0\0)\0\0\0\21\0\0\0\5\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\357\357\357\377\356\356" "\356\377\245\245\245\377\0\0\0\377\346\342\334\377\367\366\364\377\377" "\377\377\377\377\377\377\377\364\363\360\377\356\354\351\377\353\352" "\347\377\351\347\344\377\346\344\340\377\310\303\272\377\303\277\265" "\377\275\271\257\377\266\261\247\377\255\247\236\377\243\236\224\377" "cnt\377\243\225i\377\203\177u\377\0\0\0\377\353\353\353\377\326\326\326" "\377\325\325\325\377TTT\377\0\0\0\216\0\0\0I\0\0\0*\0\0\0\21\0\0\0\5" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\356" "\356\356\377\356\356\356\377\243\243\243\377\0\0\0\377\342\337\330\377" "\365\363\361\377\377\377\377\377\371\370\367\377\360\356\354\377\355" "\353\351\377\352\351\346\377\350\346\343\377\345\343\337\377\307\302" "\271\377\303\276\264\377\275\270\256\377\266\261\247\377\254\247\236" "\377\241\234\222\377\224\217\206\377\221\215\204\377\202}t\377\0\0\0" "\377\352\352\352\377\325\325\325\377\323\323\323\377TTT\377\0\0\0\217" "\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0O\365\365\365\377\356\356\356\377\355\355\355\377\243\243" "\243\377\0\0\0\377\336\333\323\377\361\360\355\377\377\377\377\377\363" "\361\360\377\356\354\351\377\354\352\347\377\352\350\344\377\347\345" "\341\377\344\342\337\377\305\301\270\377\301\275\263\377\273\266\254" "\377\266\261\250\377\252\246\233\377\236\231\220\377\252\235p\377\221" "_\\\377|vn\377\0\0\0\377\336\336\335\377\310\310\310\377\307\307\307" "\377PPP\377\1\1\1\225\2\3\2S\4\4\3""6\7\10\6\37\13\15\13\23\16\20\16" "\17\20\22\17\12\20\22\17\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377" "\356\356\356\377\354\354\354\377\243\243\243\377\0\0\0\377\331\326\316" "\377\357\355\352\377\375\374\374\377\355\353\351\377\354\352\347\377" "\352\350\345\377\350\346\342\377\346\344\337\377\344\341\335\377\303" "\277\266\377\277\273\261\377\272\265\253\377\264\257\245\377\252\244" "\233\377\236\231\217\377\200>:\377\213[X\377URK\377\11\13\11\377ded\377" "[\\Z\377Z\\Z\377*+)\377\13\15\13\324\15\17\14\270\16\20\15\254\17\21" "\16\243\17\21\16\236\20\22\17\234\20\22\17q\20\22\17\32\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0O\365\365\365\377\355\355\355\377\353\353\353\377\243\243" "\243\377\0\0\0\377\325\321\311\377\354\352\347\377\366\365\364\377\352" "\351\346\377\352\350\344\377\350\346\342\377\346\344\340\377\344\341" "\336\377\342\340\333\377\301\275\263\377\276\271\257\377\271\264\252" "\377\262\254\242\377\251\244\232\377\235\230\216\377\202~v\377~{u\377" "BD=\377,0)\377,0)\377,0)\377,0)\377+/(\377*.'\377)-&\377(,%\377(,%\377" "'+%\377'*$\377%)\"\304\34\37\32N\20\22\17\32\20\22\17\2\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365" "\365\365\377\354\354\354\377\353\353\353\377\243\243\243\377\0\0\0\377" "\321\314\304\377\352\347\344\377\356\355\353\377\346\344\341\377\345" "\343\337\377\342\340\333\377\341\336\333\377\337\335\330\377\335\333" "\326\377\274\267\255\377\270\263\251\377\264\257\246\377\256\251\237" "\377\244\237\225\377\231\224\212\377ZVQ\37700-\377`gY\377\210\224\177" "\377\210\224\177\377\210\224\177\377\210\224\177\377\205\221|\377\202" "\214y\377|\206s\377w\201n\377w\201n\377u\177m\377r|j\377[cU\353%)\"\304" "\20\22\17q\20\22\17\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\353\353\353\377\352" "\352\352\377\240\240\240\377\0\0\0\377\311\304\274\377\342\340\334\377" "\342\340\334\377\337\335\331\377\334\332\330\377\333\331\325\377\332" "\330\324\377\330\326\321\377\327\324\320\377\265\261\247\377\263\256" "\244\377\257\251\237\377\250\243\231\377\240\233\221\377\224\217\205" "\377GE\77\377\16\20\15\377q{j\377\267\310\253\377\274\315\260\377\272" "\312\256\377\261\301\246\377\253\272\240\377\247\265\233\377\241\256" "\226\377\234\250\221\377\234\250\221\377\231\246\217\377\222\237\210" "\377kud\377%)#\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377" "\353\353\353\377\351\351\351\377\240\240\240\377\0\0\0\377\303\276\265" "\377\334\331\326\377\332\327\323\377\327\324\320\377\323\321\315\377" "\322\317\313\377\315\313\307\377\317\314\307\377\314\311\305\377\254" "\250\236\377\252\244\233\377\246\240\227\377\236\232\220\377\230\223" "\211\377\216\211\200\377GF@\377\27\31\25\377t\177m\377\272\313\256\377" "\311\332\273\377\303\323\266\377\250\266\235\377\235\253\223\377\231" "\247\217\377\230\245\216\377\226\244\214\377\226\244\214\377\223\240" "\211\377\210\223~\377bj[\377#&!\377\20\22\17\234\20\22\17\16\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0" "\0O\365\365\365\377\352\352\352\377\351\351\351\377\240\240\240\377\0" "\0\0\377\274\270\256\377\322\320\314\377\316\313\310\377\313\311\305" "\377\310\306\301\377\304\302\276\377\302\300\273\377\301\276\272\377" "\301\276\272\377\242\235\224\377\237\233\221\377\236\231\217\377\225" "\220\207\377\220\214\202\377\206\200w\377HGA\377\31\34\30\377u\200n\377" "\271\311\255\377\304\325\267\377\274\314\257\377\241\257\227\377\230" "\245\216\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377\20\22\17\234\20" "\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\2\0\0\0O\365\365\365\377\351\351\351\377\350\350\350\377\240" "\240\240\377\0\0\0\377\260\254\243\377\312\310\303\377\303\301\274\377" "\276\274\266\377\273\270\264\377\274\272\267\377\275\273\266\377\274" "\272\266\377\300\276\272\377\253\247\240\377\252\247\240\377\250\244" "\235\377\242\237\230\377\237\233\224\377\230\224\215\377RQM\377\31\34" "\30\377u\200n\377\266\306\252\377\267\307\253\377\256\275\243\377\233" "\251\221\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377" "\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\350\350\350\377\350" "\350\350\377\245\245\245\377\0\0\0\377\205\201z\377\244\240\227\377\237" "\232\222\377\230\224\214\377\225\221\211\377\220\215\205\377\217\212" "\202\377\215\211\201\377\216\212\201\377\216\212\202\377\213\210\177" "\377\212\206~\377\206\202y\377\201|t\377xtk\377BA<\377\31\34\30\377u" "\200n\377\263\303\247\377\252\271\237\377\241\257\226\377\230\245\216" "\377\225\242\213\377\225\241\213\377\225\242\213\377\225\242\213\377" "\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377\20\22" "\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\350\350\350\377\347\347" "\347\377\275\275\275\377\12\12\12\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\10\11\7\377\31\34" "\30\377u\200n\377\260\300\245\377\236\254\224\377\225\242\213\377\225" "\242\213\377\225\242\213\377\224\240\212\377\225\241\213\377\225\242" "\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377" "\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\347\347\347\377\346" "\346\346\377\324\324\324\377\354\354\354\377\356\356\356\377\356\356" "\356\377\355\355\355\377\355\355\355\377\355\355\355\377\354\354\354" "\377\353\353\353\377\343\343\343\377\231\232\231\377{|z\377\305\305\305" "\377\352\352\352\377\352\352\352\377\351\351\351\377\350\350\350\377" "{|{\377\31\34\30\377u\200n\377\260\300\245\377\236\254\224\377\227\244" "\214\377\232\247\217\377\230\245\216\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY" "\377\"&\40\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\346" "\346\346\377\345\345\345\377\343\343\343\377\342\342\342\377\341\341" "\341\377\340\340\340\377\337\337\337\377\336\336\336\377\335\335\335" "\377\334\334\334\377\311\311\311\377\256\257\256\377[]Z\3779=8\377\213" "\214\212\377\273\273\273\377\314\314\314\377\317\317\317\377\316\316" "\316\377mnm\377\31\34\30\377u\200n\377\260\300\245\377\236\254\224\377" "\227\244\215\377\233\250\221\377\232\247\217\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\221\236\207\377\204\217" "{\377_gY\377\"&\40\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0N\365\365\365" "\377\330\330\330\377\344\344\344\377\343\343\343\377\341\341\341\377" "\340\340\340\377\357\357\357\377\315\315\315\377\335\335\335\377\357" "\357\357\377\313\313\313\377\217\220\217\377OPM\377RWM\377Z`S\377LOJ" "\377lml\377\271\271\271\377\316\316\316\377\314\314\314\377mnl\377\31" "\34\30\377u\200n\377\260\300\245\377\236\254\224\377\226\243\214\377" "\227\244\215\377\227\244\214\377\225\242\213\377\225\242\213\377\225" "\242\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40" "\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0M\337\337\337w\236\236\236\377" "\272\272\272\377\304\304\304\377\340\340\340\377\337\337\337\377\315" "\315\315\377\252\252\252\377\334\334\334\377\260\260\260\377uvu\377n" "rl\377AG=\377_gY\377dl\\\377,0)\377685\377\202\203\202\377\231\231\230" "\377\226\227\226\377RTR\377\31\34\30\377u\200n\377\260\300\245\377\236" "\254\224\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\222\237\211\377\217\234\206\377\212\226\201\377\204\220|\377" "~\210u\377]dV\377\"%\37\377\17\21\16\236\16\20\16\17\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\31\0\0" "\0SpppiMMM\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377=>=\377\36\37" "\35\377ZbT\377\227\245\215\377{\205s\377X`R\377(,%\377\23\25\22\377\31" "\33\30\377\33\34\32\377\33\34\32\377\25\27\24\377\31\34\30\377u\200n" "\377\260\300\245\377\236\254\224\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\216\232\204\377\204\220{\377u\177m\377" "kud\377pzi\377W_Q\377\40$\36\377\17\21\16\240\14\16\13\22\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2" "\0\0\0\35\0\0\0Y\0\0\0gBBB\377&&&\377\24\24\24\377&&&\377\23\23\23\377" "\36\37\36\377-0*\377MTH\377\201\214x\377\255\274\242\377\207\222~\377" "bj[\377>C9\377,0)\377,0)\377,0)\377,0)\377,0)\37726/\377lve\377\222\237" "\210\377\207\223~\377\202\215y\377\203\217z\377\206\222}\377\212\226" "\201\377\212\226\201\377\212\226\201\377\204\220|\377|\207t\377nwg\377" "OVJ\377\36\"\35\377\17\21\16\243\12\13\11\26\0\0\0\2\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0" "\0\33\0\0\0]\77\77\77\377\24\24\24\377&&&\377\24\24\24\377\40\40\37\377" "\20\22\20\377MTH\377\244\262\231\377\254\272\240\377\250\266\234\377" "\215\230\203\377s}k\377^eW\377SZM\377SZM\377SZM\377SZM\377TZN\377U\\" "O\377_gY\377fo_\377fn_\377gp`\377jsc\377qzi\377z\204r\377\210\224\177" "\377\227\244\215\377\244\262\231\377\237\255\225\377qzi\377EK@\377\34" "\37\32\377\17\20\16\246\10\12\10\31\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\3\0\0\0\40\0\0\0" "U\0\0\0a\0\0\0p\2\2\2\212\10\11\7\265'+%\327V_P\366}\210u\377\243\261" "\230\377\243\261\230\377\236\254\223\377\221\235\207\377\205\220|\377" "{\205s\377v\200n\377v\200n\377v\200n\377w\201o\377w\201o\377x\202p\377" "z\205r\377|\207t\377}\207t\377~\211u\377\200\213w\377\203\216z\377\207" "\222~\377\206\221}\377\204\217{\377~\211v\377nxg\377GNC\377*.(\354\25" "\30\24\262\14\16\13d\5\6\5\25\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\31\0\0\0J\0\0\0L\0\0\0O\0\0\0S\0\0\0" "\\\1\1\1m\10\11\10\222\25\27\23\336DK@\377\233\250\220\377\251\270\236" "\377\231\246\216\377\226\243\214\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\226" "\243\214\377\227\244\215\377\227\244\215\377\227\244\215\377\227\244" "\215\377\227\244\215\377\227\244\215\377\227\244\215\377\230\245\215" "\377\226\243\213\377\222\237\210\377\201\214x\377mve\377RYM\3778=4\377" "#%!\377\33\35\32\321\4\5\4\206\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26```{\365\365\365\377\365\365" "\365\377\365\365\365\377\365\365\365\377\354\354\354\377\237\240\237" "\377kni\377rzl\377\202\216z\377\234\252\222\377\237\254\224\377\227\244" "\215\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377" "\226\243\214\377\226\243\214\377\226\243\214\377\226\243\214\377\226" "\243\214\377\226\243\214\377\224\241\212\377\221\235\206\377\205\220" "|\377v\200n\377dm]\377QYL\3776;3\377.1,\377$&#\326\7\10\6\236\2\3\2a" "\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\10\0\0\0J\365\365\365\377\355\355\355\377\362\362\362\377\363\363" "\363\377\236\237\236\377\273\274\273\377jmh\377BH>\377\214\231\203\377" "\253\272\237\377\235\252\222\377\227\244\215\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\224\241\212\377" "\223\237\211\377\215\231\204\377\205\217{\377s|k\377]eV\377JPE\3776;" "3\376\"%\40\363;<:\377\6\7\5\225\0\0\0X\0\0\0""9\0\0\0\36\0\0\0\15\0" "\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!___|\365\365\365" "\377\355\355\355\377\233\233\233\377\256\256\256\377LMK\377OQM\377iq" "d\377\214\231\203\377\234\251\222\377\240\256\226\377\232\247\217\377" "\227\244\214\377\225\242\213\377\225\242\213\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\223\237\211\377\213\227\202\377~\211v\377mvf\377" "\\cV\377KQF\377380\377\"$!\377SUS\377VWV\256\2\2\2\201\0\0\0G\0\0\0," "\0\0\0\31\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0" "\0\0K\365\365\365\377\355\355\355\377\354\354\354\377\353\353\353\377" "\306\306\306\377LMK\377OQM\377pxk\377\210\224\177\377\207\222~\377\212" "\226\202\377\223\237\211\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\221\235\207\377\212\226\201\377|\207" "t\377kue\377Y`S\377FLB\377491\3777:5\377\37!\37\377\7\7\6\244\0\0\0{" "\0\0\0W\0\0\0""3\0\0\0#\0\0\0\22\0\0\0\6\0\0\0\2\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0!QQQr\365\365\365\377\354\354\354\377\321\321\321\377" "\301\301\301\377\351\351\351\377\273\273\273\377\276\276\275\377jlh\377" "480\377NUI\377jsc\377\210\224\200\377\223\237\211\377\225\242\213\377" "\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\224\241\212\377\210\224\177\377z\205r\377fp" "`\377U]P\377GMB\37726.\377\32\35\31\377BCA\377:::\377)))\246\0\0\0\201" "\0\0\0=\0\0\0+\0\0\0\31\0\0\0\13\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\10\0\0\0K\365\365\365\377\354\354\354\377\362\362\362\377" "\363\363\363\377\363\363\363\377\361\361\361\377\266\266\266\377\264" "\264\263\377yzy\377[]Z\377=@:\377HNC\377lue\377\202\215y\377\222\237" "\210\377\224\241\212\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377" "\225\241\213\377\220\234\206\377\212\226\200\377x\202p\377fo_\377S[N" "\377BH=\37715-\377/2,\377463\377\177\177~\377\256\256\256\377BBB\377" "\0\0\0\204\0\0\0U\0\0\0%\0\0\0\22\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\34QQQr\365\365\365\377\362\362\362\377\356\356\356" "\377\236\236\236\377\275\275\275\377\303\303\303\377\362\362\362\377" "\362\362\362\377\352\352\351\377\302\303\302\377MOL\377%(\"\377GNC\377" "ktd\377\217\232\205\377\224\240\212\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225" "\241\213\377\224\240\212\377\211\224\200\377{\206s\377dm]\377PWJ\377" "BG=\377/4,\377\31\34\30\377OQO\377\311\311\311\377\306\306\306\377TT" "T\377BBB\377///\245\0\0\0v\0\0\0%\0\0\0\21\0\0\0\5\0\0\0\1\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\365\365\365\377\353\353\353\377\262\262" "\262\377\206\206\206\377\306\306\306\377\350\350\350\377\350\350\350" "\377\270\270\270\377\206\206\206\377\203\203\203\377yyy\377UVU\377>A" "=\37725/\377HNC\377ktd\377\201\213x\377\222\237\211\377\222\237\210\377" "\220\235\207\377\213\227\202\377\210\224\177\377\210\224\177\377\204" "\220{\377\177\212w\377r|k\377dm]\377RYL\377@F;\377.2*\377(+'\377./,\377" "\203\203\202\377|||\377}}}\377\254\254\254\377\251\251\251\377BBB\377" "\0\0\0|\0\0\0,\0\0\0\25\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0L\365\365\365\377\352\352\352\377\351\351\351\377\351\351\351" "\377\350\350\350\377\350\350\350\377\347\347\347\377\345\345\345\377" "\344\344\344\377\343\343\343\377\342\342\342\377\340\340\340\377\250" "\251\250\377;=:\377-0*\377FKA\377ksd\377\214\230\204\377\214\230\202" "\377\210\223~\377|\207t\377v\200n\377u\177m\377oxg\377fo_\377X`S\377" "JQF\377\77D;\37726.\377!$\37\377FGE\377\235\235\235\377\264\264\264\377" "\262\262\262\377\256\256\256\377\254\254\254\377\247\247\247\377BBB\377" "\0\0\0\202\0\0\0""5\0\0\0\33\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0L\325\325\325N'''\377+++\377+++\377+++\377+++\377+++\377" "+++\377+++\377+++\377+++\377+++\377(('\377\"\"!\377\"$\"\377'*$\377H" "ND\377irb\377iqa\377`hZ\377FLA\3779>5\3779\77""5\3777<3\377380\377.2" "+\377(,%\377#'!\377\40\"\36\377\40\"\37\377###\377)))\377+++\377+++\377" "+++\377+++\377***\377\33\33\33\245\0\0\0\205\0\0\0;\0\0\0\40\0\0\0\14" "\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0R\0\0\0]\0\0\0m" "\0\0\0}\0\0\0\210\0\0\0\215\0\0\0\216\0\0\0\217\0\0\0\217\0\0\0\217\0" "\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\7\10\6\263\15\17\15\347+.'\366" "FLA\377IOD\377AG=\377\37\"\35\377\16\17\15\372\16\20\15\360\16\20\15" "\354\16\20\15\354\16\20\15\354\16\20\15\354\16\20\15\354\14\16\14\335" "\5\6\5\251\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\216\0\0\0\212\0\0\0c\0\0\0""7\0\0\0\36\0\0\0\14\0\0\0\3\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\24\0\0\0&\0\0\0""7" "\0\0\0B\0\0\0G\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0" "I\4\5\4]\10\11\10y\31\34\30\275$'!\377380\3777;3\377\34\37\33\377\15" "\17\15\333\13\14\12\222\11\12\10|\11\12\10|\11\12\10|\11\12\10|\11\12" "\10|\10\11\7s\3\4\3W\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0" "H\0\0\0D\0\0\0""9\0\0\0(\0\0\0\26\0\0\0\11\0\0\0\2\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\13\0\0\0\25\0\0\0\37\0\0\0&\0\0" "\0)\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0" "\0\0*\14\15\13w\21\22\20\307#&\40\350(,%\365\31\33\27\324\15\17\15\231" "\7\10\6D\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0" "\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0)\0\0\0'\0\0\0\40\0\0\0\27\0\0\0" "\14\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" "\0\0\4\0\0\0\10\0\0\0\15\0\0\0\17\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21" "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\10\11" "\10&\16\17\15D\25\27\24\262\25\30\24\336\22\24\21q\12\13\11/\4\5\4\31" "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0" "\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\21\0\0\0\21\0\0\0\20\0" "\0\0\15\0\0\0\11\0\0\0\5\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\5" "\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0" "\0\5\0\0\0\5\12\13\11\16\17\21\16b\17\21\16\204\16\20\15/\0\0\0\5\0\0" "\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5" "\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\4\0\0\0\4\0\0" "\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1" "\10\11\7\2\16\20\15\12\16\20\15\15\14\16\14\5\0\0\0\1\0\0\0\1\0\0\0\1" "\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0" "\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/notice.h0000664000175000017500000006636612121605257013153 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (notice_pixbuf) #endif #ifdef __GNUC__ static const guint8 notice_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 notice_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\32\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0" "\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0" "\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0\31\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\26HHHh\361\361\361\243\365\365\365\377\366\366\366\377" "\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366" "\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366" "\366\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366" "\377\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377" "\366\366\366\377\366\366\366\377\366\366\366\377\366\366\366\377\365" "\365\365\377\314\314\314\300\0\0\0T\0\0\0\35\0\0\0\6\0\0\0\2\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\362\362\362" "\245\365\365\365\377\362\362\362\377\361\361\361\377\361\361\361\377" "\360\360\360\377\357\357\357\377\356\356\356\377\356\356\356\377\355" "\355\355\377\354\354\354\377\353\353\353\377\353\353\353\377\352\352" "\352\377\351\351\351\377\350\350\350\377\347\347\347\377\346\346\346" "\377\345\345\345\377\344\344\344\377\343\343\343\377\342\342\342\377" "\340\340\340\377\337\337\337\377\336\336\336\377\317\317\317\377}}}\377" "\\\\\\m\0\0\0[\0\0\0\17\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\365\365\365\377\362\362\362\377\361\361" "\361\377\361\361\361\377\360\360\360\377\357\357\357\377\357\357\357" "\377\356\356\356\377\355\355\355\377\354\354\354\377\353\353\353\377" "\353\353\353\377\352\352\352\377\351\351\351\377\350\350\350\377\347" "\347\347\377\346\346\346\377\345\345\345\377\344\344\344\377\343\343" "\343\377\342\342\342\377\341\341\341\377\337\337\337\377\336\336\336" "\377\335\335\335\377\334\334\334\377\267\267\267\377jjj\377\0\0\0k\0" "\0\0\36\0\0\0\17\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\1\0\0\0M\365\365\365\377\361\361\361\377\361\361\361\377\266\266" "\266\377\256\256\256\377\245\245\245\377\245\245\245\377\245\245\245" "\377\243\243\243\377\243\243\243\377\243\243\243\377\243\243\243\377" "\240\240\240\377\240\240\240\377\240\240\240\377\240\240\240\377\240" "\240\240\377\240\240\240\377\236\236\236\377\236\236\236\377\233\233" "\233\377\233\233\233\377\271\271\271\377\313\313\313\377\334\334\334" "\377\333\333\333\377\332\332\332\377SSS\377\0\0\0z\0\0\0/\0\0\0\31\0" "\0\0\12\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0M\365" "\365\365\377\361\361\361\377\360\360\360\377\256\256\256\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\353\353\353\377\332" "\332\332\377\330\330\330\377TTT\377\0\0\0\206\0\0\0=\0\0\0\"\0\0\0\15" "\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0N\365\365\365" "\377\360\360\360\377\357\357\357\377\245\245\245\377\0\0\0\377\276\273" "\266\377\350\345\336\377\346\342\334\377\342\337\330\377\336\333\323" "\377\331\326\316\377\325\321\311\377\321\314\304\377\314\307\277\377" "\310\303\272\377\303\277\265\377\273\267\255\377\267\262\250\377\256" "\251\237\377\245\241\226\377\231\224\212\377\221\215\202\377rnf\377\0" "\0\0\377\353\353\353\377\330\330\330\377\327\327\327\377TTT\377\0\0\0" "\213\0\0\0E\0\0\0'\0\0\0\20\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\2\0\0\0O\365\365\365\377\357\357\357\377\357\357\357\377\245" "\245\245\377\0\0\0\377\350\345\336\377\304\317\325\377\377\377\377\377" "\377\377\377\377\366\367\370\377\277\307\314\377\247\262\271\377\241" "\255\263\377\233\247\256\377\310\304\272\377\303\277\265\377\275\270" "\256\377\266\261\247\377\256\251\236\377\243\236\224\377dov\377[fl\377" "\206\202x\377\0\0\0\377\353\353\353\377\327\327\327\377\326\326\326\377" "TTT\377\0\0\0\216\0\0\0H\0\0\0)\0\0\0\21\0\0\0\5\0\0\0\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\357\357\357\377\356\356" "\356\377\245\245\245\377\0\0\0\377\346\342\334\377\367\366\364\377\377" "\377\377\377\377\377\377\377\364\363\360\377\356\354\351\377\353\352" "\347\377\351\347\344\377\346\344\340\377\310\303\272\377\303\277\265" "\377\275\271\257\377\266\261\247\377\255\247\236\377\243\236\224\377" "cnt\377\243\225i\377\203\177u\377\0\0\0\377\353\353\353\377\326\326\326" "\377\325\325\325\377TTT\377\0\0\0\216\0\0\0I\0\0\0*\0\0\0\21\0\0\0\5" "\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\356" "\356\356\377\356\356\356\377\243\243\243\377\0\0\0\377\342\337\330\377" "\365\363\361\377\377\377\377\377\371\370\367\377\360\356\354\377\355" "\353\351\377\352\351\346\377\350\346\343\377\345\343\337\377\307\302" "\271\377\303\276\264\377\275\270\256\377\266\261\247\377\254\247\236" "\377\241\234\222\377\224\217\206\377\221\215\204\377\202}t\377\0\0\0" "\377\352\352\352\377\325\325\325\377\323\323\323\377TTT\377\0\0\0\217" "\0\0\0I\0\0\0*\0\0\0\22\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0O\365\365\365\377\356\356\356\377\355\355\355\377\243\243" "\243\377\0\0\0\377\336\333\323\377\361\360\355\377\377\377\377\377\363" "\361\360\377\356\354\351\377\354\352\347\377\352\350\344\377\347\345" "\341\377\344\342\337\377\305\301\270\377\301\275\263\377\273\266\254" "\377\266\261\250\377\252\246\233\377\236\231\220\377\252\235p\377\221" "_\\\377|vn\377\0\0\0\377\336\336\335\377\310\310\310\377\307\307\307" "\377PPP\377\1\1\1\225\2\3\2S\4\4\3""6\7\10\6\37\13\15\13\23\16\20\16" "\17\20\22\17\12\20\22\17\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377" "\356\356\356\377\354\354\354\377\243\243\243\377\0\0\0\377\331\326\316" "\377\357\355\352\377\375\374\374\377\355\353\351\377\354\352\347\377" "\352\350\345\377\350\346\342\377\346\344\337\377\344\341\335\377\303" "\277\266\377\277\273\261\377\272\265\253\377\264\257\245\377\252\244" "\233\377\236\231\217\377\200>:\377\213[X\377URK\377\11\13\11\377ded\377" "[\\Z\377Z\\Z\377*+)\377\13\15\13\324\15\17\14\270\16\20\15\254\17\21" "\16\243\17\21\16\236\20\22\17\234\20\22\17q\20\22\17\32\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\2\0\0\0O\365\365\365\377\355\355\355\377\353\353\353\377\243\243" "\243\377\0\0\0\377\325\321\311\377\354\352\347\377\366\365\364\377\352" "\351\346\377\352\350\344\377\350\346\342\377\346\344\340\377\344\341" "\336\377\342\340\333\377\301\275\263\377\276\271\257\377\271\264\252" "\377\262\254\242\377\251\244\232\377\235\230\216\377\202~v\377~{u\377" "BD=\377,0)\377,0)\377,0)\377,0)\377+/(\377*.'\377)-&\377(,%\377(,%\377" "'+%\377'*$\377%)\"\304\34\37\32N\20\22\17\32\20\22\17\2\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365" "\365\365\377\354\354\354\377\353\353\353\377\243\243\243\377\0\0\0\377" "\321\314\304\377\352\347\344\377\356\355\353\377\346\344\341\377\345" "\343\337\377\342\340\333\377\341\336\333\377\337\335\330\377\335\333" "\326\377\274\267\255\377\270\263\251\377\264\257\246\377\256\251\237" "\377\244\237\225\377\231\224\212\377ZVQ\37700-\377`gY\377\210\224\177" "\377\210\224\177\377\210\224\177\377\210\224\177\377\205\221|\377\202" "\214y\377|\206s\377w\201n\377w\201n\377u\177m\377r|j\377[cU\353%)\"\304" "\20\22\17q\20\22\17\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\353\353\353\377\352" "\352\352\377\240\240\240\377\0\0\0\377\311\304\274\377\342\340\334\377" "\342\340\334\377\337\335\331\377\334\332\330\377\333\331\325\377\332" "\330\324\377\330\326\321\377\327\324\320\377\265\261\247\377\263\256" "\244\377\257\251\237\377\250\243\231\377\240\233\221\377\224\217\205" "\377GE\77\377\16\20\15\377q{j\377\267\310\253\377\274\315\260\377\272" "\312\256\377\261\301\246\377\253\272\240\377\247\265\233\377\241\256" "\226\377\234\250\221\377\234\250\221\377\231\246\217\377\222\237\210" "\377kud\377%)#\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377" "\353\353\353\377\351\351\351\377\240\240\240\377\0\0\0\377\303\276\265" "\377\334\331\326\377\332\327\323\377\327\324\320\377\323\321\315\377" "\322\317\313\377\315\313\307\377\317\314\307\377\314\311\305\377\254" "\250\236\377\252\244\233\377\246\240\227\377\236\232\220\377\230\223" "\211\377\216\211\200\377GF@\377\27\31\25\377t\177m\377\272\313\256\377" "\311\332\273\377\303\323\266\377\250\266\235\377\235\253\223\377\231" "\247\217\377\230\245\216\377\226\244\214\377\226\244\214\377\223\240" "\211\377\210\223~\377bj[\377#&!\377\20\22\17\234\20\22\17\16\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0" "\0O\365\365\365\377\352\352\352\377\351\351\351\377\240\240\240\377\0" "\0\0\377\274\270\256\377\322\320\314\377\316\313\310\377\313\311\305" "\377\310\306\301\377\304\302\276\377\302\300\273\377\301\276\272\377" "\301\276\272\377\242\235\224\377\237\233\221\377\236\231\217\377\225" "\220\207\377\220\214\202\377\206\200w\377HGA\377\31\34\30\377u\200n\377" "\271\311\255\377\304\325\267\377\274\314\257\377\241\257\227\377\230" "\245\216\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377\20\22\17\234\20" "\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\2\0\0\0O\365\365\365\377\351\351\351\377\350\350\350\377\240" "\240\240\377\0\0\0\377\260\254\243\377\312\310\303\377\303\301\274\377" "\276\274\266\377\273\270\264\377\274\272\267\377\275\273\266\377\274" "\272\266\377\300\276\272\377\253\247\240\377\252\247\240\377\250\244" "\235\377\242\237\230\377\237\233\224\377\230\224\215\377RQM\377\31\34" "\30\377u\200n\377\266\306\252\377\267\307\253\377\256\275\243\377\233" "\251\221\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377" "\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\350\350\350\377\350" "\350\350\377\245\245\245\377\0\0\0\377\205\201z\377\244\240\227\377\237" "\232\222\377\230\224\214\377\225\221\211\377\220\215\205\377\217\212" "\202\377\215\211\201\377\216\212\201\377\216\212\202\377\213\210\177" "\377\212\206~\377\206\202y\377\201|t\377xtk\377BA<\377\31\34\30\377u" "\200n\377\263\303\247\377\252\271\237\377\241\257\226\377\230\245\216" "\377\225\242\213\377\225\241\213\377\225\242\213\377\225\242\213\377" "\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377\20\22" "\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\350\350\350\377\347\347" "\347\377\275\275\275\377\12\12\12\377\0\0\0\377\0\0\0\377\0\0\0\377\0" "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\10\11\7\377\31\34" "\30\377u\200n\377\260\300\245\377\236\254\224\377\225\242\213\377\225" "\242\213\377\225\242\213\377\224\240\212\377\225\241\213\377\225\242" "\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40\377" "\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\347\347\347\377\346" "\346\346\377\324\324\324\377\354\354\354\377\356\356\356\377\356\356" "\356\377\355\355\355\377\355\355\355\377\355\355\355\377\354\354\354" "\377\353\353\353\377\343\343\343\377\231\232\231\377{|z\377\305\305\305" "\377\352\352\352\377\352\352\352\377\351\351\351\377\350\350\350\377" "{|{\377\31\34\30\377u\200n\377\260\300\245\377\236\254\224\377\227\244" "\214\377\232\247\217\377\230\245\216\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY" "\377\"&\40\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0O\365\365\365\377\346" "\346\346\377\345\345\345\377\343\343\343\377\342\342\342\377\341\341" "\341\377\340\340\340\377\337\337\337\377\336\336\336\377\335\335\335" "\377\334\334\334\377\311\311\311\377\256\257\256\377[]Z\3779=8\377\213" "\214\212\377\273\273\273\377\314\314\314\377\317\317\317\377\316\316" "\316\377mnm\377\31\34\30\377u\200n\377\260\300\245\377\236\254\224\377" "\227\244\215\377\233\250\221\377\232\247\217\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\221\236\207\377\204\217" "{\377_gY\377\"&\40\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0N\365\365\365" "\377\330\330\330\377\344\344\344\377\343\343\343\377\341\341\341\377" "\340\340\340\377\357\357\357\377\315\315\315\377\335\335\335\377\357" "\357\357\377\313\313\313\377\217\220\217\377OPM\377RWM\377Z`S\377LOJ" "\377lml\377\271\271\271\377\316\316\316\377\314\314\314\377mnl\377\31" "\34\30\377u\200n\377\260\300\245\377\236\254\224\377\226\243\214\377" "\227\244\215\377\227\244\214\377\225\242\213\377\225\242\213\377\225" "\242\213\377\225\242\213\377\221\236\207\377\204\217{\377_gY\377\"&\40" "\377\20\22\17\234\20\22\17\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0M\337\337\337w\236\236\236\377" "\272\272\272\377\304\304\304\377\340\340\340\377\337\337\337\377\315" "\315\315\377\252\252\252\377\334\334\334\377\260\260\260\377uvu\377n" "rl\377AG=\377_gY\377dl\\\377,0)\377685\377\202\203\202\377\231\231\230" "\377\226\227\226\377RTR\377\31\34\30\377u\200n\377\260\300\245\377\236" "\254\224\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\222\237\211\377\217\234\206\377\212\226\201\377\204\220|\377" "~\210u\377]dV\377\"%\37\377\17\21\16\236\16\20\16\17\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\31\0\0" "\0SpppiMMM\377TTT\377TTT\377TTT\377TTT\377TTT\377TTT\377=>=\377\36\37" "\35\377ZbT\377\227\245\215\377{\205s\377X`R\377(,%\377\23\25\22\377\31" "\33\30\377\33\34\32\377\33\34\32\377\25\27\24\377\31\34\30\377u\200n" "\377\260\300\245\377\236\254\224\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\216\232\204\377\204\220{\377u\177m\377" "kud\377pzi\377W_Q\377\40$\36\377\17\21\16\240\14\16\13\22\0\0\0\1\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2" "\0\0\0\35\0\0\0Y\0\0\0gBBB\377&&&\377\24\24\24\377&&&\377\23\23\23\377" "\36\37\36\377-0*\377MTH\377\201\214x\377\255\274\242\377\207\222~\377" "bj[\377>C9\377,0)\377,0)\377,0)\377,0)\377,0)\37726/\377lve\377\222\237" "\210\377\207\223~\377\202\215y\377\203\217z\377\206\222}\377\212\226" "\201\377\212\226\201\377\212\226\201\377\204\220|\377|\207t\377nwg\377" "OVJ\377\36\"\35\377\17\21\16\243\12\13\11\26\0\0\0\2\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\5\0\0" "\0\33\0\0\0]\77\77\77\377\24\24\24\377&&&\377\24\24\24\377\40\40\37\377" "\20\22\20\377MTH\377\244\262\231\377\254\272\240\377\250\266\234\377" "\215\230\203\377s}k\377^eW\377SZM\377SZM\377SZM\377SZM\377TZN\377U\\" "O\377_gY\377fo_\377fn_\377gp`\377jsc\377qzi\377z\204r\377\210\224\177" "\377\227\244\215\377\244\262\231\377\237\255\225\377qzi\377EK@\377\34" "\37\32\377\17\20\16\246\10\12\10\31\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\3\0\0\0\40\0\0\0" "U\0\0\0a\0\0\0p\2\2\2\212\10\11\7\265'+%\327V_P\366}\210u\377\243\261" "\230\377\243\261\230\377\236\254\223\377\221\235\207\377\205\220|\377" "{\205s\377v\200n\377v\200n\377v\200n\377w\201o\377w\201o\377x\202p\377" "z\205r\377|\207t\377}\207t\377~\211u\377\200\213w\377\203\216z\377\207" "\222~\377\206\221}\377\204\217{\377~\211v\377nxg\377GNC\377*.(\354\25" "\30\24\262\14\16\13d\5\6\5\25\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\31\0\0\0J\0\0\0L\0\0\0O\0\0\0S\0\0\0" "\\\1\1\1m\10\11\10\222\25\27\23\336DK@\377\233\250\220\377\251\270\236" "\377\231\246\216\377\226\243\214\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\226" "\243\214\377\227\244\215\377\227\244\215\377\227\244\215\377\227\244" "\215\377\227\244\215\377\227\244\215\377\227\244\215\377\230\245\215" "\377\226\243\213\377\222\237\210\377\201\214x\377mve\377RYM\3778=4\377" "#%!\377\33\35\32\321\4\5\4\206\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26```{\365\365\365\377\365\365" "\365\377\365\365\365\377\365\365\365\377\354\354\354\377\237\240\237" "\377kni\377rzl\377\202\216z\377\234\252\222\377\237\254\224\377\227\244" "\215\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377" "\226\243\214\377\226\243\214\377\226\243\214\377\226\243\214\377\226" "\243\214\377\226\243\214\377\224\241\212\377\221\235\206\377\205\220" "|\377v\200n\377dm]\377QYL\3776;3\377.1,\377$&#\326\7\10\6\236\2\3\2a" "\0\0\0!\0\0\0\17\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\10\0\0\0J\365\365\365\377\355\355\355\377\362\362\362\377\363\363" "\363\377\236\237\236\377\273\274\273\377jmh\377BH>\377\214\231\203\377" "\253\272\237\377\235\252\222\377\227\244\215\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\224\241\212\377" "\223\237\211\377\215\231\204\377\205\217{\377s|k\377]eV\377JPE\3776;" "3\376\"%\40\363;<:\377\6\7\5\225\0\0\0X\0\0\0""9\0\0\0\36\0\0\0\15\0" "\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!___|\365\365\365" "\377\355\355\355\377\233\233\233\377\256\256\256\377LMK\377OQM\377iq" "d\377\214\231\203\377\234\251\222\377\240\256\226\377\232\247\217\377" "\227\244\214\377\225\242\213\377\225\242\213\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\223\237\211\377\213\227\202\377~\211v\377mvf\377" "\\cV\377KQF\377380\377\"$!\377SUS\377VWV\256\2\2\2\201\0\0\0G\0\0\0," "\0\0\0\31\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0" "\0\0K\365\365\365\377\355\355\355\377\354\354\354\377\353\353\353\377" "\306\306\306\377LMK\377OQM\377pxk\377\210\224\177\377\207\222~\377\212" "\226\202\377\223\237\211\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\221\235\207\377\212\226\201\377|\207" "t\377kue\377Y`S\377FLB\377491\3777:5\377\37!\37\377\7\7\6\244\0\0\0{" "\0\0\0W\0\0\0""3\0\0\0#\0\0\0\22\0\0\0\6\0\0\0\2\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0!QQQr\365\365\365\377\354\354\354\377\321\321\321\377" "\301\301\301\377\351\351\351\377\273\273\273\377\276\276\275\377jlh\377" "480\377NUI\377jsc\377\210\224\200\377\223\237\211\377\225\242\213\377" "\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225" "\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242" "\213\377\225\242\213\377\224\241\212\377\210\224\177\377z\205r\377fp" "`\377U]P\377GMB\37726.\377\32\35\31\377BCA\377:::\377)))\246\0\0\0\201" "\0\0\0=\0\0\0+\0\0\0\31\0\0\0\13\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\10\0\0\0K\365\365\365\377\354\354\354\377\362\362\362\377" "\363\363\363\377\363\363\363\377\361\361\361\377\266\266\266\377\264" "\264\263\377yzy\377[]Z\377=@:\377HNC\377lue\377\202\215y\377\222\237" "\210\377\224\241\212\377\225\242\213\377\225\242\213\377\225\242\213" "\377\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377" "\225\241\213\377\220\234\206\377\212\226\200\377x\202p\377fo_\377S[N" "\377BH=\37715-\377/2,\377463\377\177\177~\377\256\256\256\377BBB\377" "\0\0\0\204\0\0\0U\0\0\0%\0\0\0\22\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\34QQQr\365\365\365\377\362\362\362\377\356\356\356" "\377\236\236\236\377\275\275\275\377\303\303\303\377\362\362\362\377" "\362\362\362\377\352\352\351\377\302\303\302\377MOL\377%(\"\377GNC\377" "ktd\377\217\232\205\377\224\240\212\377\225\242\213\377\225\242\213\377" "\225\242\213\377\225\242\213\377\225\242\213\377\225\242\213\377\225" "\241\213\377\224\240\212\377\211\224\200\377{\206s\377dm]\377PWJ\377" "BG=\377/4,\377\31\34\30\377OQO\377\311\311\311\377\306\306\306\377TT" "T\377BBB\377///\245\0\0\0v\0\0\0%\0\0\0\21\0\0\0\5\0\0\0\1\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\365\365\365\377\353\353\353\377\262\262" "\262\377\206\206\206\377\306\306\306\377\350\350\350\377\350\350\350" "\377\270\270\270\377\206\206\206\377\203\203\203\377yyy\377UVU\377>A" "=\37725/\377HNC\377ktd\377\201\213x\377\222\237\211\377\222\237\210\377" "\220\235\207\377\213\227\202\377\210\224\177\377\210\224\177\377\204" "\220{\377\177\212w\377r|k\377dm]\377RYL\377@F;\377.2*\377(+'\377./,\377" "\203\203\202\377|||\377}}}\377\254\254\254\377\251\251\251\377BBB\377" "\0\0\0|\0\0\0,\0\0\0\25\0\0\0\7\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0L\365\365\365\377\352\352\352\377\351\351\351\377\351\351\351" "\377\350\350\350\377\350\350\350\377\347\347\347\377\345\345\345\377" "\344\344\344\377\343\343\343\377\342\342\342\377\340\340\340\377\250" "\251\250\377;=:\377-0*\377FKA\377ksd\377\214\230\204\377\214\230\202" "\377\210\223~\377|\207t\377v\200n\377u\177m\377oxg\377fo_\377X`S\377" "JQF\377\77D;\37726.\377!$\37\377FGE\377\235\235\235\377\264\264\264\377" "\262\262\262\377\256\256\256\377\254\254\254\377\247\247\247\377BBB\377" "\0\0\0\202\0\0\0""5\0\0\0\33\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0L\325\325\325N'''\377+++\377+++\377+++\377+++\377+++\377" "+++\377+++\377+++\377+++\377+++\377(('\377\"\"!\377\"$\"\377'*$\377H" "ND\377irb\377iqa\377`hZ\377FLA\3779>5\3779\77""5\3777<3\377380\377.2" "+\377(,%\377#'!\377\40\"\36\377\40\"\37\377###\377)))\377+++\377+++\377" "+++\377+++\377***\377\33\33\33\245\0\0\0\205\0\0\0;\0\0\0\40\0\0\0\14" "\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0R\0\0\0]\0\0\0m" "\0\0\0}\0\0\0\210\0\0\0\215\0\0\0\216\0\0\0\217\0\0\0\217\0\0\0\217\0" "\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\7\10\6\263\15\17\15\347+.'\366" "FLA\377IOD\377AG=\377\37\"\35\377\16\17\15\372\16\20\15\360\16\20\15" "\354\16\20\15\354\16\20\15\354\16\20\15\354\16\20\15\354\14\16\14\335" "\5\6\5\251\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217\0\0\0\217" "\0\0\0\216\0\0\0\212\0\0\0c\0\0\0""7\0\0\0\36\0\0\0\14\0\0\0\3\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\10\0\0\0\24\0\0\0&\0\0\0""7" "\0\0\0B\0\0\0G\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0" "I\4\5\4]\10\11\10y\31\34\30\275$'!\377380\3777;3\377\34\37\33\377\15" "\17\15\333\13\14\12\222\11\12\10|\11\12\10|\11\12\10|\11\12\10|\11\12" "\10|\10\11\7s\3\4\3W\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0I\0\0\0" "H\0\0\0D\0\0\0""9\0\0\0(\0\0\0\26\0\0\0\11\0\0\0\2\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\13\0\0\0\25\0\0\0\37\0\0\0&\0\0" "\0)\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0" "\0\0*\14\15\13w\21\22\20\307#&\40\350(,%\365\31\33\27\324\15\17\15\231" "\7\10\6D\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0" "\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0)\0\0\0'\0\0\0\40\0\0\0\27\0\0\0" "\14\0\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" "\0\0\4\0\0\0\10\0\0\0\15\0\0\0\17\0\0\0\21\0\0\0\21\0\0\0\21\0\0\0\21" "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\10\11" "\10&\16\17\15D\25\27\24\262\25\30\24\336\22\24\21q\12\13\11/\4\5\4\31" "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0" "\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\21\0\0\0\21\0\0\0\20\0" "\0\0\15\0\0\0\11\0\0\0\5\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\5" "\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0" "\0\5\0\0\0\5\12\13\11\16\17\21\16b\17\21\16\204\16\20\15/\0\0\0\5\0\0" "\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5" "\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\5\0\0\0\4\0\0\0\4\0\0" "\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1" "\10\11\7\2\16\20\15\12\16\20\15\15\14\16\14\5\0\0\0\1\0\0\0\1\0\0\0\1" "\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0" "\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/speaker.png0000664000175000017500000000212612121600532013630 00000000000000PNG  IHDR$$bKGD pHYs  ~tIME58&IDATx͘_TU?q۠G0]@A[rfЃ>IkD:HM03-Q ,ꥇ;QCX,A hDP’2ss̝ν뺮~͹~?9ZT|R*-K>VJšAJAT\<_@3d:͎)P Ejkhy͠Fx c#'.U!:w"r[K r>aq 21R^śevrQ 8 l@LYiYxuE05u`,@3 X"@]>h;~XTΦpcrꡖBV,y`@?Y&&zh7VM{uI`3pXir5v zB/ `e^B\g phyM0$N7Fe UOG~iu%zU\lA< t'7x&&3Va\UgE5PP&*!Oُ-~# @WEe\͔|(|*4@ IENDB`loqui-0.5.5/src/icons/loqui.ico0000664000175000017500000001627612121600532013330 0000000000000000(0`HH@CEEDDCCBBAAA@??>>===============<9@JTX[`ccba`___^]\[[ZYYYYYYYYYYYYYVAADGIMUixyxwwvutsrqponmmmmmmmmmmmmmK8@@??LmzzyyxvkZRONNMLLLLLMPV]hnnmV=B^x{{zymM@<:79<@HXjndDBRt||{w_?;7>MdmL9@Mr~}|uW>:LfW>@Nt  ~ }uV?;PcD7AOu  ~ vW?7AZJ8AOv  wW@8JR=BPw xX@7?RB7CQx y YA7 GE8 CQx z ZAM \ __________________ii`_______^R DRy { ZBdDRz | [Bg/RbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRb?PES {  } \CgSațET |  ~ \CgSațFT }  ] DgSașFU ~ ^ DgSațG U  ^ EgSașG V _ EgSașH W ` FgSațH W a FgSațI X a GgSaǨ 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4ުșI X b HgSațJ Y c HgSaՔӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏșJ Z d IgSa#7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4ҍșK Z e I gSațK [ e J gSaՔӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏӏțL \fK gSaRbP`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`؜șL \gK gSațM ]hL gԒȻTbM ]hL ] ۢ5FqN ^iM P P P P |8J΁0mV P P P P P P P P P P P M N _jM P ЈbpfO O _jN [ ౸BS_P O `rN k+>Ӑ%9w\ M RjԀQ L M \kp}%uU QV}aL LM iP SSRRZsلeULKK\ _P T`ju}̈́}usq`K T]gjllkkjiihggffeddc[ K TTVVVVUUTSSRRQ Q P P O O N O L ??`loqui-0.5.5/src/icons/loqui.h0000664000175000017500000006522012121605257013007 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (loqui_pixbuf) #endif #ifdef __GNUC__ static const guint8 loqui_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 loqui_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (9216) */ "\0\0$\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T" "\177\1\20T\177\11\21V\203\20\21V\203\21\20V\203\21\17V\203\21\17U\203" "\21\17U\203\21\17T\203\21\16S\203\21\16S\203\21\16R\203\21\16R\203\21" "\15Q\203\21\15Q\203\21\15P\203\21\15P\203\21\14O\203\21\14O\203\21\14" "N\203\21\14O\204\15\13L\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\4\22]\2165\23g\234^\24j\243" "p\24l\246x\24l\246y\23k\246y\23k\246y\22j\246y\22i\246y\22i\246y\22h" "\246y\21g\246y\21g\246y\21f\246y\21f\246y\20e\246y\20d\246y\17d\246y" "\17c\246w\15[\231T\13K\177\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20T\177\5\22`\222\77\24j\243p\25u\264" "\226\27}\300\255\30\204\315\301\33\227\352\351\33\235\366\366\34\235" "\370\370\33\234\370\370\33\233\370\370\32\232\370\370\32\231\370\370" "\31\230\370\370\30\225\365\365\26\213\344\342\24}\317\305\22u\303\261" "\21s\302\260\21q\300\253\16`\244s\13K\177\5\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20S\177\2\17S" "\177\4\17R\177\5\17R\177\11\20Z\215/\24s\264\226\32\225\352\351\33\240" "\376\376\34\240\377\377\33\237\377\377\33\236\377\377\32\235\377\377" "\30\230\372\372\25\204\331\323\17e\250}\31U\2636\26L\246\11\26K\246\6" "\26K\246\6\15\3\\F\16\0__\13\0P\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\16Q\177\3\17V\210%\25}\306\267\33\233\370\370\33\237\377\377\33\236" "\377\377\32\235\377\377\31\234\377\377\26\214\347\346\17a\241k\14L\177" "\13\26L\246\1\0\0\0\0\0\0\0\0\13\0M\12\25\0\221\357\27\0\233\377\25\0" "\222\360\17\0i\210\13\0P\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16R\204\16\22" "j\251\177\31\224\356\356\32\236\377\377\32\235\377\377\31\234\377\377" "\30\231\375\375\23\200\324\313\14Q\207!\13L\177\1\0\0\0\0\0\0\0\0\0\0" "\0\0\13\0M\2\23\0\204\324k\\\277\377}p\307\377%\17\241\377\26\0\225\366" "\21\0u\255\14\0U1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15O\177\11\20`\233\\\27\217\347\346\32\235" "\377\377\31\234\377\377\31\233\377\377\27\223\365\365\21r\276\250\13" "N\203\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0k\217>+\254\377" "\376\376\377\377\363\363\371\375\232\220\323\3779%\252\377\26\0\232\376" "\21\0w\265\15\0\\Q\13\0M\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\15O\177\11\17_\233\\\27\216\347\346\31\234\377\377\31" "\233\377\377\30\232\377\377\26\221\361\361\20j\263\223\13N\203\17\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15\0[N\31\2\234\377\332\327\356" "\375\377\377\377\377\377\377\377\377\373\373\374\376\270\261\340\377" "SB\265\377\31\2\234\377\23\0\203\322\16\0_^\13\0P\16\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\15N\177\11\17_\233\\\26\214\347\346\31\233\377" "\377\30\232\377\377\30\231\377\377\25\220\361\361\20j\263\223\13M\203" "\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0P\15\26\0\224\363\223" "\210\320\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\376\376\377\377\322\317\353\376pb\301\377\36\10\236\377\25\0" "\217\352\17\0f}\13\0O\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15N\177\11\17^\233\\" "\26\214\347\346\30\232\377\377\30\231\377\377\27\230\377\377\25\217\361" "\361\17i\263\223\13M\203\17\0\0\0\0\0\0\0\0\13\0P\15\13\0P\20\13\0P\20" "\13\0P\20\22\0|\300J8\261\377\376\376\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\351\350\365\376\214\201\316\3770\33\246\377\26\0\224\363\20\0m\226" "\14\0V7\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20\13\0P\20" "\13\0P\20\13\0P\20\13\0P\20\13\0P\17\13\0M\3\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\14M\177\11\17]\233\\\25\213\347\346\30\230\377" "\377\27\230\377\377\27\227\377\377\24\216\361\361\16h\263\223\12L\203" "\17\0\0\0\0\15\0]Y\26\0\226\367\26\0\231\374\26\0\231\374\26\0\231\374" "\26\0\231\375\33\4\235\377\344\341\363\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\370\367\374\377\252\242\333\377F5\257" "\376\26\0\231\375\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374" "\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26\0\231\374\26" "\0\231\374\26\0\230\373\20\0q\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\14M\177\11\16]\233\\\24\212\347\346\27\227\377\377\26\227" "\377\377\26\226\377\377\23\215\361\361\16h\263\223\12L\203\17\0\0\0\0" "\17\0g\202\26\0\231\374\27\1\231\375\30\2\233\376\30\2\233\376\27\1\232" "\376\27\0\233\377\234\222\324\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\375\375\376" "\377\310\302\347\377bT\273\376\33\5\234\376\30\2\233\376\30\2\233\376" "\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30\2\233\376\30" "\2\233\376\27\1\231\375\24\0\212\341\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\14L\177\11\16\\\233\\\24\211\347\346\26\226\377\377" "\26\225\377\377\25\225\377\377\23\214\361\361\16g\263\223\12K\203\17" "\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347\377\30\2" "\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\13L\177\11\16\\\233\\\24\210\347\346\26\225\377\377\25\224\377\377\25" "\224\377\377\22\213\361\361\16f\263\223\11K\203\17\0\0\0\0\17\0g\202" "\26\0\231\374aS\264\355\357\355\370\377bR\273\377`P\272\377`P\272\377" "`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377" "`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377" "`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377`P\272\377" "\245\234\330\377\310\302\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13K\177\11\15[\233\\\24\207\347" "\346\25\224\377\377\25\223\377\377\24\222\377\377\22\212\361\361\15e" "\263\223\11J\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\370\367" "\374\377\236\224\325\377\231\217\323\377\231\217\323\377\231\217\323" "\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377" "\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231" "\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217" "\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323" "\377\231\217\323\377\231\217\323\377\231\217\323\377\311\304\350\377" "\310\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\13K\177\11\15Z\233\\\23\206\347\346\25\223\377" "\377\24\222\377\377\24\221\377\377\22\211\361\361\15e\263\223\11I\203" "\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347\377" "\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\13J\177\11\14Z\233\\\23\205\347\346\24\222\377\377\24\221\377" "\377\23\220\377\377\21\207\361\361\14d\263\223\10I\203\17\0\0\0\0\17" "\0g\202\26\0\231\374aS\264\355\352\350\366\3777#\251\3774\40\250\377" "4\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250" "\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40" "\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\377" "\227\215\322\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\310\302\347\377\27\1\231\375\24\0\213\342" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12J\177\11\14Y\233\\" "\22\204\347\346\23\221\377\377\23\220\377\377\22\217\377\377\21\206\361" "\361\13c\263\223\10H\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355" "\370\367\374\377\236\224\325\377\231\217\323\377\231\217\323\377\231" "\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217" "\323\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323" "\377\231\217\323\377\231\217\323\377\231\217\323\377\231\217\323\377" "\231\217\323\377\231\217\323\377\231\217\323\377\320\313\353\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\310\302\347\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12I\177\11\14X\233\\\21\203\347\346\23" "\220\377\377\22\217\377\377\22\216\377\377\20\205\361\361\13b\263\223" "\10H\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302" "\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\12I\177\11\13X\233\\\21\202\347\346\22\217\377\377\22" "\216\377\377\21\215\377\377\20\204\361\361\13a\263\223\10G\203\17\0\0" "\0\0\17\0g\202\26\0\231\374aS\264\355\307\301\347\3774\40\250\3774\40" "\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\377" "4\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250" "\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40\250\3774\40" "\250\3774\40\250\3774\40\250\377\262\252\336\377\377\377\377\377\377" "\377\377\377\377\377\377\377\310\302\347\377\27\1\231\375\24\0\213\342" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11H\177\11\13W\233\\" "\20\202\347\346\22\216\377\377\21\215\377\377\21\214\377\377\17\203\361" "\361\13a\263\223\7F\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\365" "\364\373\377\306\300\346\377\305\277\346\377\305\277\346\377\305\277" "\346\377\305\277\346\377\305\277\346\377\305\277\346\377\305\277\346" "\377\305\277\346\377\305\277\346\377\305\277\346\377\305\277\346\377" "\305\277\346\377\305\277\346\377\305\277\346\377\305\277\346\377\305" "\277\346\377\305\277\346\377\305\277\346\377\305\277\346\377\305\277" "\346\377\357\355\370\377\377\377\377\377\377\377\377\377\377\377\377" "\377\310\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\11H\177\11\12W\233\\\20\201\347\346\21\215" "\377\377\21\214\377\377\20\213\377\377\17\202\361\361\12`\263\223\7F" "\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347" "\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\11G\177\11\12V\233\\\17\200\347\346\21\214\377\377\20\213" "\377\377\20\212\377\377\16\201\361\361\12_\263\223\7E\203\17\0\0\0\0" "\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\310\302\347\377\27\1\231\375" "\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11G\177" "\11\12U\233\\\17\177\347\346\20\213\377\377\20\212\377\377\17\211\377" "\377\15\201\361\361\11^\263\223\6E\203\17\0\0\0\0\17\0g\202\26\0\231" "\374aS\264\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\310\302\347\377\27\1\231\375\24\0\213\342\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10F\177\11\11U\233\\\16~\347" "\346\17\212\377\377\17\211\377\377\16\210\377\377\15\200\361\361\11^" "\263\223\6D\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310" "\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\10F\177\11\11T\233\\\15}\347\346\17\211\377\377\16" "\210\377\377\16\207\377\377\14\177\361\361\11]\263\223\6D\203\17\0\0" "\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\310\302\347\377\27\1\231" "\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10" "E\177\11\11T\233\\\15|\347\346\16\210\377\377\16\207\377\377\15\206\377" "\377\14~\361\361\10\\\263\223\6C\203\17\0\0\0\0\17\0g\202\26\0\231\374" "aS\264\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\310\302\347\377\30\2\233\376\24\0\213\342\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7E\177\11\11S\233\\\14{\347\346" "\16\207\377\377\15\206\377\377\15\205\377\377\13}\361\361\10\\\263\223" "\5C\203\17\0\0\0\0\17\0g\202\26\0\231\374aS\264\355\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\310\302\347" "\377\30\2\233\376\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\7D\177\11\10R\233\\\14z\347\346\15\206\377\377\15\205\377" "\377\14\204\377\377\13|\361\361\7[\263\223\5B\203\17\0\0\0\0\17\0g\202" "\26\0\231\374/\33\242\371bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273\377bR\273" "\377P\77\264\377\27\1\231\375\24\0\213\342\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\7D\177\11\10R\233\\\13y\347\346\15\205\377\377" "\14\204\377\377\13\203\377\377\12{\361\361\7Z\263\223\5B\203\17\0\0\0" "\0\16\0dt\26\0\231\374\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27" "\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231" "\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375\27\1\231\375" "\27\1\231\375\27\1\231\375\27\1\231\375\26\0\231\374\23\0\201\315\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7C\177\11\7Q\233\\\12x\347" "\346\14\204\377\377\13\203\377\377\13\202\377\377\11z\361\361\7Z\263" "\223\4A\203\17\0\0\0\0\13\0M\10\15\0\\S\16\0_^\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\5ii\16\5ii\16\1``\16\0_^\16\0_^\16\0_^\16" "\0_^\16\0_^\16\0_^\16\0_^\16\0^]\14\0R\40\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\6C\177\11\7Q\233\\\12x\347\346\13\203\377\377\13" "\202\377\377\12\201\377\377\11y\361\361\6Y\263\223\4A\203\17\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\13""7\246\12\5G\262x\5E\260l\13""8\251\21\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6B\177\11\7P\233\\\12w\347" "\346\13\202\377\377\12\201\377\377\12\200\377\377\10x\361\361\6X\263" "\223\4@\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\1\0\77\222D\0R\300\253\0B\232" "[\0""7\177\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6A\177" "\11\6O\233\\\12v\347\346\12\201\377\377\12\200\377\377\11\177\377\377" "\10w\361\361\5W\263\223\4@\203\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""8\203\17\0J\254\207" "\0R\276\251\0=\2165\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\5A\177\11\6O\233\\\11u\347\346\12\200\377\377\11\177\377\377" "\11~\377\377\7v\361\361\5W\263\223\3\77\203\17\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\5\0A" "\226N\0Z\322\311\0J\254\207\0""8\202\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\11\6N\233\\\11t\347\346\11\177" "\377\377\11~\377\377\10}\377\377\6u\361\361\4V\263\223\3\77\203\17\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0;\212+\0P\272\241\0c\347\345\0D\236d\0""7\177\1\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\11\6M\233\\\10" "r\347\346\10~\377\377\10}\377\377\7|\377\377\6u\363\363\4W\266\233\3" ">\203\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0:\210\40\0L\260\216\0f\354\354\0W\313\277\0>\221=\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4B\204\15" "\5R\246w\7t\354\354\10|\377\377\7|\377\377\7{\377\377\5w\372\372\4_\312" "\274\2\77\206\34\2;\177\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0""7\177\13\0>\220;\0M\264\227\0d\347\346\0m\376\376\0L\261\217\0""9" "\205\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\4B\205\25\6^\301\256\7x\367\367\7{\377\377\7{\377\377\6z\377\377" "\6y\377\377\4m\350\347\3M\246y\2@\213*\2<\204\15\1:\177\1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\177\5\0""9" "\204\31\0<\215/\0@\224J\0H\247{\0X\316\302\0j\366\366\0n\377\377\0d\351" "\350\0D\236b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\1\5@" "\177\1\4\77\177\1\4\77\177\12\4L\234_\7m\341\335\6z\375\375\7z\377\377" "\6y\377\377\6y\377\377\5x\377\377\4v\375\375\3k\350\347\3Z\304\263\2" "R\266\231\2O\260\216\1N\260\215\0N\260\215\0M\260\215\0L\260\215\0L\260" "\215\0L\260\215\0L\260\215\0L\260\215\0M\262\222\0P\273\244\0V\307\270" "\0]\327\320\0h\361\361\0n\377\377\0n\377\377\0m\376\376\0V\307\271\0" "=\2168\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5A\177\2\5D\206\34\5G\2152\5I\223" "E\5M\235c\5U\257\212\6i\330\322\6x\371\371\6y\376\376\5x\376\376\5w\376" "\376\4w\376\376\4v\376\376\3u\376\376\3t\376\376\2s\376\376\1r\376\376" "\1q\376\376\0p\376\376\0o\376\376\0n\376\376\0m\376\376\0m\376\376\0" "m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376\376\0m\376" "\376\0m\376\376\0m\376\376\0m\376\376\0m\375\375\0K\257\212\0""8\203" "\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\5\5J\224I\6T\252\200\6X\263\223" "\5[\273\244\6`\306\267\5c\316\302\5c\317\304\4b\317\304\4a\317\304\4" "`\317\304\4_\317\304\3_\317\304\3_\317\304\2^\317\304\1]\317\304\1\\" "\317\304\0[\317\304\0[\317\304\0Z\317\304\0Y\317\304\0Y\317\304\0Y\317" "\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304" "\0Y\317\304\0Y\317\304\0Y\317\304\0Y\317\304\0V\307\271\0A\230U\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5@\177\2\4C\207\32\4E\213.\4E\2152\4D" "\2152\3D\2152\3C\2152\3C\2152\3B\2152\2B\2152\2A\2152\2A\2152\1A\215" "2\1@\2152\1\77\2152\1\77\2152\0>\2152\0>\2152\0=\2152\0=\2152\0=\215" "2\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=\2152\0=" "\2152\0=\2152\0=\2152\0=\2152\0<\213-\0""9\206\24\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/speaker.h0000664000175000017500000002711012121605257013304 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (speaker_pixbuf) #endif #ifdef __GNUC__ static const guint8 speaker_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 speaker_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\207/\20h\207/\20\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20\307\207/\20""1\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20" "\377\207/\20\373\207/\20\220\207/\20\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\207/\20\377\207/\20\377\207/\20\377\207/\20\377\207/\20" "\343\207/\20U\207/\20\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20" "\377\207/\20\377\207/\20\377\207/\20\377\207/\20\377\207/\20\266\206" "0\21$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\207/\20\377\207/\20\377\207/\20\377\207/\20" "\377\207/\20\377\207/\20\377\2060\21\377\2050\22\365\2040\22}\2030\23" "\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(%\0\0\0" "\0\207/\20\377\207/\20\377\207/\20\377\207/\20\377\2060\21\377\2050\21" "\377\2040\22\377\2030\23\377\2020\23\377\2010\24\327\2000\24E\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0`3(#`3(\265`3(\273\0\0\0\0\207/\20\377\207/\20" "\377\2060\21\377\2050\21\377\2040\22\377\2030\22\377\2020\23\377\201" "0\24\377\2000\24\377\2000\25\377\1770\25\376}0\26\245|0\26\30\0\0\0\0" "`3(\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(\1`3(s`3(" "\365`3(\377`3(\253\0\0\0\0\2060\21\377\2050\21\377\2040\22\377\2030\22" "\377\2020\23\377\2020\23\377\2010\24\377\2000\25\377\1770\25\377~0\26" "\377}0\26\377|0\27\377{0\27\357z0\30ky1\30\3\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0`3(\6`3(\233`3(\377`3(\367`3(|`3(\7\0\0\0\0\2040" "\22\377\2030\22\377\2030\23\377\2020\23\377\2010\24\377\2000\24\377\177" "0\25\377~0\26\377}0\26\377|0\27\377{0\27\377z0\30\377y1\30\377x1\31\377" "w1\31\313v1\32""4\0\0\0\0\207/\20$\207/\20\377\207/\20\377\207/\20\377" "\207/\20\377\207/\20\377\207/\20\377\207/\20\277\0\0\0\0\0\0\0\0\0\0" "\0\0`3(\1`3(\223`3(\377`3(\350`3(4\0\0\0\0`3(\15\0\0\0\0\2030\23\377" "\2020\23\377\2010\24\377\2000\24\377\1770\25\377~0\25\377}0\26\377|0" "\27\377{0\27\377z0\30\377y1\30\377y1\31\377x1\31\377w1\32\377v1\32\377" "u1\33\374t1\34\223\2000\24""4\2060\21\377\2060\21\377\2060\21\377\206" "0\21\377\2060\21\377\2060\21\377\2060\21\277\0\0\0\0\0\0\0\0\0\0\0\0" "`3(Y`3(\377`3(\353`3($\0\0\0\0`3(.`3(\244\0\0\0\0\2010\24\377\2000\24" "\377\1770\25\377~0\25\377}0\26\377|0\26\377{0\27\377{0\30\377z0\30\377" "y1\31\377x1\31\377w1\32\377v1\32\377u1\33\377t1\33\377s1\34\377r1\34" "\377t1\33\352\2040\22\377\2040\22\377\2040\22\377\2040\22\377\2040\22" "\377\2040\22\377\2040\22\277\0\0\0\0\0\0\0\0`3(\21`3(\347`3(\374`3(>" "\0\0\0\0`3(\30`3(\347`3(\273\0\0\0\0\1770\25\377~0\25\377}0\26\377|0" "\26\377|0\27\377{0\27\377z0\30\377y1\31\377x1\31\377w1\32\377v1\32\377" "u1\33\377t1\33\377s1\34\377r1\34\377q1\35\377q1\35\377r1\34\357\2010" "\24\377\2010\24\377\2010\24\377\2010\24\377\2010\24\377\2010\24\377\201" "0\24\277\0\0\0\0\0\0\0\0`3(w`3(\377`3(\235\0\0\0\0\0\0\0\0`3(\243`3(" "\377`3(\216\0\0\0\0}0\26\377}0\26\377|0\27\377{0\27\377z0\30\377y1\31" "\377x1\31\377w1\32\377v1\32\377u1\33\377t1\33\377s1\34\377s1\34\377r" "1\35\377q1\35\377p1\36\377o1\36\377q1\35\347~0\25\377\1770\25\377\177" "0\25\377\1770\25\377\1770\25\377\1770\25\377\1770\25\277\0\0\0\0\0\0" "\0\0`3(\327`3(\375`3(+\0\0\0\0`3(\40`3(\374`3(\344`3(\16\0\0\0\0|0\27" "\377{0\27\377z0\30\377y1\30\377x1\31\377w1\32\377v1\32\377u1\33\377t" "1\33\377t1\34\377s1\34\377r1\35\377q1\35\377p1\36\377o1\36\377n1\37\377" "m1\37\377o1\36\347|0\27\377|0\27\377|0\27\377|0\27\377|0\27\377|0\27" "\377|0\27\277\0\0\0\0\0\0\0\0`3(\377`3(\331\0\0\0\0\0\0\0\0`3(j`3(\377" "`3(\214\0\0\0\0\0\0\0\0z0\30\377y1\30\377x1\31\377w1\31\377v1\32\377" "u1\33\377u1\33\377t1\34\377s1\34\377r1\35\377q1\35\377p1\36\377o1\36" "\377n1\37\377m1\37\377l2\40\377k2\40\377m2\40\347y1\30\377y1\30\377y" "1\30\377y1\30\377y1\30\377y1\30\377y1\30\277\0\0\0\0\0\0\0\0`3(\377`" "3(\236\0\0\0\0\0\0\0\0`3(\235`3(\377`3(H\0\0\0\0\0\0\0\0x1\31\377w1\31" "\377v1\32\377v1\32\377u1\33\377t1\34\377s1\34\377r1\35\377q1\35\377p" "1\36\377o1\36\377n1\37\377m1\37\377l2\40\377l2\40\377k2!\377j2!\377k" "2!\346w1\32\377w1\32\377w1\32\377w1\32\377w1\32\377w1\32\377w1\32\277" "\0\0\0\0\0\0\0\0`3(\377`3(\213\0\0\0\0\0\0\0\0`3(\243`3(\377`3(/\0\0" "\0\0\0\0\0\0w1\32\377v1\32\377u1\33\377t1\33\377s1\34\377r1\35\377q1" "\35\377p1\36\377o1\36\377n1\37\377m1\37\377m1\40\377l2\40\377k2!\377" "j2!\377i2\"\377h2#\377i2\"\333t1\33\377t1\33\377t1\33\377t1\33\377t1" "\33\377t1\33\377t1\33\277\0\0\0\0\0\0\0\0`3(\377`3(\237\0\0\0\0\0\0\0" "\0`3(\227`3(\377`3(N\0\0\0\0\0\0\0\0u1\33\377t1\33\377s1\34\377r1\35" "\377q1\35\377p1\36\377o1\36\377n1\37\377n1\37\377m1\40\377l2\40\377k" "2!\377j2!\377i2\"\377h2\"\377g2#\377f2$\377g2#\333r1\35\377r1\35\377" "r1\35\377r1\35\377r1\35\377r1\35\377r1\35\277\0\0\0\0\0\0\0\0`3(\377" "`3(\316\0\0\0\0\0\0\0\0`3(d`3(\377`3(\223\0\0\0\0\0\0\0\0s1\34\377r1" "\34\377q1\35\377p1\36\377p1\36\377o1\37\377n1\37\377m1\40\377l2\40\377" "k2!\377j2!\377i2\"\377h2\"\377g2#\377f2#\377e2$\377e2%\377f2$\333o1\36" "\377o1\36\377o1\36\377o1\36\377o1\36\377o1\36\377o1\36\277\0\0\0\0\0" "\0\0\0`3(\330`3(\375`3($\0\0\0\0`3(\27`3(\367`3(\360`3(\32\0\0\0\0q1" "\35\377q1\35\377p1\36\377o1\37\377n1\37\377m1\40\377l2\40\377k2!\377" "j2!\377i2\"\377h2\"\377g2#\377f2#\377f2$\377e2$\377d2%\377c2&\377d2%" "\333m1\40\377m1\40\377m1\40\377m1\40\377m1\40\377m1\40\377m1\40\277\0" "\0\0\0\0\0\0\0`3(\177`3(\377`3(\246\0\0\0\0\0\0\0\0`3(\213`3(\377`3(" "\240\0\0\0\0p1\36\377o1\36\377n1\37\377m1\40\377l2\40\377k2!\377j2!\377" "i2\"\377h2\"\377h2#\377g2#\377f2$\377e2$\377d2%\377c2%\377b2&\377a2'" "\377b2&\333j2!\377j2!\377j2!\377j2!\377j2!\377j2!\377j2!\277\0\0\0\0" "\0\0\0\0`3(\13`3(\346`3(\375`3(G\0\0\0\0`3(\12`3(\326`3(\273\0\0\0\0" "n1\37\377m1\37\377l2\40\377k2!\377j2!\377i2\"\377i2\"\377h2#\377g2#\377" "f2$\377e2$\377d2%\377c2%\377b2&\377a2&\377`2'\377_3'\377`3&\333h2#\377" "h2#\377h2#\377h2#\377h2#\377h2#\377h2#\277\0\0\0\0\0\0\0\0\0\0\0\0`3" "(\\`3(\376`3(\350`3(.\0\0\0\0`3(\32`3(\225\0\0\0\0l2\40\377k2\40\377" "k2!\377j2\"\377i2\"\377h2#\377g2#\377f2$\377e2$\377d2%\377c2%\377b2&" "\377a2&\377`2'\377`2'\377_3'\377_3'\377`3'\333e2$\377e2$\377e2$\377e" "2$\377e2$\377e2$\377e2$\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(\223`3" "(\377`3(\352`3(2\0\0\0\0`3(\6\0\0\0\0k2!\377j2\"\377i2\"\377h2#\377g" "2#\377f2$\377e2$\377d2%\377c2%\377b2&\377a2&\377a2'\377`2'\377_3'\377" "_3'\377_3'\377_3'\377`3'\316b2&\377b2&\377b2&\377b2&\377b2&\377b2&\377" "c2&\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`3(\4`3(\233`3(\377`3(\364`3(" "j`3(\2\0\0\0\0i2\"\377h2#\377g2#\377f2$\377e2$\377d2%\377c2%\377c2&\377" "b2&\377a2'\377`2'\377_3'\377_3'\377_3'\377_3'\377_3'\365_3'}`3',`2'\377" "`2'\377`2'\377`2'\377`2'\377`2'\377`2'\277\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0`3(\2`3(\201`3(\372`3(\377`3(\244\0\0\0\0g2#\377f2$\377" "e2$\377d2%\377d2%\377c2&\377b2&\377a2'\377`2'\377_3'\377_3'\377_3'\377" "_3'\377_3'\377_3'\261_3'\"\0\0\0\0_3'$_3'\377_3'\377_3'\377_3'\377_3" "'\377_3'\377_3'\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0`3(0`3(\305`3(\273\0\0\0\0e2$\377e2%\377d2%\377c2&\377b2&\377a" "2'\377`2'\377_3'\377_3'\377_3'\377_3'\377_3'\377_3'\335_3'M\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0`3(\1`3(\35\0\0\0\0d2%\377c2&\377b2&\377a2'\377`2'\377_3'\377_" "3'\377_3'\377_3'\377_3'\377_3'\367_3'\202_3'\12\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0b2&\377a2'\377`2'\377_3'\377_3'\377_3'\377" "_3'\377_3'\377_3'\377_3'\266_3'%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0`2'\377_3'\377_3'\377_3'\377_3'\377_3'\377" "_3'\377_3'\337_3'Q_3'\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\377_3'\377_3'\377_3'\377_3'\377_3'\367" "_3'\205_3'\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\377_3'\377_3'\377_3'\377_3'\270_" "3'(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\377_3'\377_3'\342_3'T_3'\1" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3'\371_3'\210_3'\15\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_3')\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/icons/busy.png0000664000175000017500000000274312121600532013165 00000000000000PNG  IHDR$$bKGD pHYs  d_tIME#;pIDATx_\W?;5mAAd)FcѠB/>h -M|bE-&Ҏ6TVBP-$& nb̝{pg7ql>yesa}RyDy@E'Gήg\YK_mʆgM Va dA[AٓLl@G7~x[8Ckz@A ڙv/8=;[zC52"pls(T%q𤟞d>xk 3TփǖZdzCȝ.go oS 3xkpFpF kLOޔn@k0"TLyP<`AAI(}҉,(iX -ky[(yAb(;X:-JWZY`[p1--K@ZP!Pؗ#$"Ky:/ >SO~zk*CZu< }ԓJA LhEA0m޵Zvs̺xoP%+yʂ20Wd]HStvm.kӁ<h4ڰ;P1VsoH%mA4]PFӴe8𵾁*C/z+Iu٥ϼVLy^NzK`4J}ѐ}ެW; >J,+TZ'c `#0&>@tw[v""[oZ3PGUBUSY3}c2`aM,zssuw.3y!ebj)9!QDj-̯ 'Շ*WZގn®S/qqv 廩C8Q$ $ 1SU6|Q\3?}Gi;Ά^f0~!q (*"gC+nW]l> ϕd"NU6}S`-=E%HX>?lqM@C]A˻zPd?~Yr?2暊Fj<}nO[ x-d#Ϗn晛/Lhm@ӳm7z6L.:Lx}},'w嫔IENDB`loqui-0.5.5/src/icons/online.h0000664000175000017500000003364212121605257013145 00000000000000/* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (online_pixbuf) #endif #ifdef __GNUC__ static const guint8 online_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 online_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5184) */ "\0\0\24X" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (144) */ "\0\0\0\220" /* width (36) */ "\0\0\0$" /* height (36) */ "\0\0\0$" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\261\23\0t\301\200\1v" "\303\324\2x\306\377\2x\306\377\1w\305\336\0w\305\211\0w\305\32\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0n\267;\1w\306\351\6z\307\377\13}\310\377\16~\311\377\16~\311" "\377\13}\311\377\7{\307\377\2x\306\365\0w\306P\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\277.\1w\305\361\11|\310" "\377\22\200\312\377\30\204\313\377\34\206\314\377\34\206\314\377\31\204" "\314\377\23\201\312\377\13}\310\377\2x\307\371\0w\306K\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Iz\0\0u\303\277\10{\310\377\23\201" "\312\377\35\206\314\377%\213\316\377)\215\317\377*\215\317\377&\213\316" "\377\36\207\315\377\25\202\313\377\12|\310\377\1x\306\335\0w\306\7\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\274/\3x\306\376\17\177\311" "\377\33\205\314\377'\214\317\3771\221\321\3777\224\322\3778\225\322\377" "2\222\321\377)\215\317\377\35\207\314\377\21\200\312\377\4y\307\377\0" "w\305U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0u\302m\6z\307\377\23" "\201\312\377!\210\315\377.\220\320\377:\226\323\377D\233\325\377E\234" "\325\377<\227\323\3770\221\321\377#\212\316\377\26\202\313\377\10{\310" "\377\0u\302\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\306z\7{\310" "\377\25\202\313\377#\212\316\3771\221\321\377\77\231\324\377L\240\327" "\377N\241\327\377A\232\325\3773\222\322\377%\213\316\377\27\203\313\377" "\11|\310\377\0v\304\246\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\305" "p\6z\307\377\23\201\312\377!\211\315\377/\220\320\377;\227\323\377F\234" "\326\377G\235\326\377=\230\324\3771\221\321\377$\212\316\377\26\203\313" "\377\10{\310\377\0t\301\225\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "v\3045\3y\307\377\17\177\311\377\34\206\314\377(\214\317\3772\222\321" "\3779\225\323\377:\226\323\3774\223\322\377*\215\317\377\36\207\315\377" "\22\200\312\377\5y\307\376\0t\301^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\1w\306\306\11|\310\377\24\202\313\377\36\207\315\377&" "\213\317\377+\216\320\377,\216\320\377(\214\317\377\40\210\315\377\26" "\203\313\377\13}\310\377\1w\304\346\0w\306\13\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0w\306<\2x\306\367\13}\310\377\23\201\312\377" "\32\205\314\377\35\207\315\377\36\207\315\377\33\205\314\377\25\202\313" "\377\14}\311\377\3y\307\376\0t\300^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\306H\2x\306\366\7{\310\377\15~\311" "\377\20\177\311\377\20\177\312\377\15~\311\377\10{\310\377\2w\304\370" "\0w\306n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0w\306\"\0w\306\233\1x\306\354\3w\304\372\3w\303" "\370\2w\305\362\0v\303\250\0v\3045\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0w\306\3\0w\306$\0w\306$\0w\306\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\27{\275\6""0" "\220\320\224;\226\323\231;\226\323\231;\226\323\231;\226\323\231;\226" "\323\231;\226\323\231;\226\323\231;\226\323\231;\226\323\231\30\204\313" "5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\34\204\310P" "M\240\327\377P\242\330\377Q\242\330\377Q\242\330\377Q\242\330\377Q\242" "\330\377Q\242\330\377Q\242\330\377Q\242\330\377Q\242\330\3772\221\321" "\245\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""0\220\320" "\266L\240\327\377L\240\327\377L\240\327\377L\240\327\377L\240\327\377" "L\240\327\377L\240\327\377L\240\327\377L\240\327\377M\240\327\377\77" "\230\324\367\0w\306\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14w\277" "\36;\226\323\371G\235\326\377G\235\326\377G\235\326\377G\235\326\377" "G\235\326\377H\235\326\377H\235\326\377H\235\326\377H\235\326\377H\235" "\326\377H\235\326\377\35\206\314n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0!\207\312~B\232\325\377C\232\325\377C\232\325\377C\233\325\377C\233" "\325\377C\233\325\377C\233\325\377C\233\325\377C\233\325\377C\233\325" "\377C\233\325\377C\233\325\3770\220\321\321\0w\306\1\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\16v\273\3-\216\317\337>\230\324\377>\230\324\377>\230\324\377" ">\230\324\377>\230\324\377>\230\324\377>\230\324\377>\230\324\377>\230" "\324\377\77\230\324\377\77\231\324\377\77\231\324\377:\226\323\377\15" "~\3119\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23}\304I6\224\322\3779\225\323\3779\225" "\323\3779\225\323\3779\225\323\3779\225\323\377:\226\323\377:\226\323" "\377:\226\323\377:\226\323\377:\226\323\377:\226\323\377:\226\323\377" ":\226\323\377#\211\316\235\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!\207\313\2554\223" "\322\3774\223\322\3775\223\322\3775\223\322\3775\223\322\3775\223\322" "\3775\223\322\3775\223\322\3775\223\322\3775\223\322\3775\223\322\377" "5\223\322\3775\223\322\3776\224\322\377+\216\317\363\0w\306\21\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\12t\272\30&\213\316\3670\221\321\3770\221\321\3770\221\321\3770\221" "\321\3770\221\321\3770\221\321\3770\221\321\3770\221\321\3771\221\321" "\3771\221\321\3771\221\321\3771\221\321\3771\221\321\3771\221\321\377" "0\221\321\377\22\200\312e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\177\306u+\216\320\377+\216\320\377" "+\216\320\377+\216\320\377+\216\320\377,\216\320\377,\216\320\377,\216" "\320\377,\216\320\377,\216\320\377,\216\320\377,\216\320\377,\216\320" "\377,\217\320\377,\217\320\377,\217\320\377\36\207\315\312\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33" "\204\312\331&\213\316\377&\214\316\377'\214\316\377'\214\316\377'\214" "\316\377'\214\317\377'\214\317\377'\214\317\377'\214\317\377'\214\317" "\377'\214\317\377'\214\317\377'\214\317\377(\214\317\377(\214\317\377" "(\214\317\377$\212\316\377\6z\3070\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\12x\301@\37\210\315\377\"\211\316\377\"\211" "\316\377\"\211\316\377\"\211\316\377\"\211\316\377\"\211\316\377\"\211" "\316\377\"\211\316\377\"\212\316\377#\212\316\377#\212\316\377#\212\316" "\377#\212\316\377#\212\316\377#\212\316\377#\212\316\377#\212\316\377" "\24\202\313\225\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\22\177\307\245\35\206\314\377\35\207\314\377\35\207\314\377\35" "\207\314\377\35\207\314\377\35\207\314\377\36\207\314\377\36\207\314" "\377\36\207\315\377\36\207\315\377\36\207\315\377\36\207\315\377\36\207" "\315\377\36\207\315\377\36\207\315\377\36\207\315\377\36\207\315\377" "\37\207\315\377\30\204\313\357\0w\306\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\4r\273\25\23\201\312\366\30\204\314\377\31\204\314\377" "\31\204\314\377\31\204\314\377\31\204\314\377\31\204\314\377\31\204\314" "\377\31\204\314\377\31\204\314\377\31\204\314\377\31\204\314\377\31\204" "\314\377\32\204\314\377\32\204\314\377\32\205\314\377\32\205\314\377" "\32\205\314\377\32\205\314\377\31\204\314\377\11{\307c\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10z\305q\24\202\312\377\24\202\312\377" "\24\202\312\377\24\202\312\377\24\202\312\377\24\202\312\377\24\202\312" "\377\24\202\312\377\24\202\312\377\24\202\312\377\25\202\312\377\25\202" "\313\377\25\202\313\377\25\202\313\377\25\202\313\377\25\202\313\377" "\25\202\313\377\25\202\313\377\25\202\313\377\25\202\313\377\16~\310" "\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15Hp\1\12|\307\325\17\177\311" "\377\17\177\311\377\17\177\312\377\17\177\312\377\17\177\312\377\17\177" "\312\377\20\177\312\377\20\177\312\377\20\177\312\377\20\177\312\377" "\20\200\312\377\20\200\312\377\20\200\312\377\20\200\312\377\20\200\312" "\377\20\200\312\377\20\200\312\377\21\200\312\377\21\200\312\377\21\200" "\312\377\17\177\311\375\2x\3060\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3s\2758\11" "|\310\376\12|\310\377\12|\310\377\13}\310\377\13}\310\377\13}\310\377" "\13}\310\377\13}\310\377\13}\310\377\13}\310\377\13}\310\377\13}\310" "\377\13}\310\377\13}\310\377\14}\311\377\14}\311\377\14}\311\377\14}" "\311\377\14}\311\377\14}\311\377\14}\311\377\14}\311\377\6z\307\214\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\3v\303\235\6z\307\377\6z\307\377\6z\307\377" "\6z\307\377\6z\307\377\6z\307\377\6z\310\377\6z\310\377\6z\310\377\7" "{\310\377\7{\310\377\7{\310\377\7{\310\377\7{\310\377\7{\310\377\7{\310" "\377\7{\310\377\7{\310\377\7{\310\377\7{\310\377\10{\310\377\10{\310" "\377\6z\307\351\0w\306\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\263\20\1w\305\363\1x\306\377" "\1x\306\377\1x\306\377\1x\306\377\1x\306\377\2x\306\377\2x\306\377\2" "x\306\377\2x\306\377\2x\306\377\2x\306\377\2x\306\377\2x\306\377\2x\306" "\377\2x\306\377\2x\306\377\3y\307\377\3y\307\377\3y\307\377\3y\307\377" "\3y\307\377\3y\307\377\3y\307\377\1w\306Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\306\22\0w\306" "M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w" "\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306" "M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306M\0w\306.\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; loqui-0.5.5/src/loqui-tray-icon-private.h0000664000175000017500000000262512121605257015247 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 3 "loqui-tray-icon.gob" #line 26 "loqui-tray-icon-private.h" #ifndef __LOQUI_TRAY_ICON_PRIVATE_H__ #define __LOQUI_TRAY_ICON_PRIVATE_H__ #include "loqui-tray-icon.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ struct _LoquiTrayIconPrivate { #line 55 "loqui-tray-icon.gob" GtkMenu * menu; #line 58 "loqui-tray-icon.gob" gint blink_count_remains; #line 59 "loqui-tray-icon.gob" gboolean blinking; #line 43 "loqui-tray-icon-private.h" }; #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/Makefile.am0000664000175000017500000001055512121622350012420 00000000000000if MAINTAINER_MODE Makefile.am: %: %.m4 $(top_srcdir)/loqui-am-macros.m4 m4 -I$(top_srcdir) $< > $@ endif MAINTAINER_MODE show-needless-svn-ignore: all-am @svn propget svn:ignore . | while read line; do \ [ ! -z "$$(find . -maxdepth 1 -name "$$line" -print)" ] || \ echo "$$line"; \ done add-built-sources-to-bzr-ignore: @set -e;tmpname=$$(mktemp -t bzr-ignore-temp.XXXXXX) && ( \ ((cat "$(top_srcdir)/.bzrignore"; \ echo -n "$(BUILT_SOURCES)" | tr " " "\n" | sed -e "s|^|$(subdir)/|") | \ sort | uniq > "$$tmpname") && \ if cmp -s "$(top_srcdir)/.bzrignore" "$$tmpname"; then \ rm "$$tmpname"; \ else \ mv "$$tmpname" "$(top_srcdir)/.bzrignore"; \ fi; \ ) SUBDIRS = icons embedtxt %.c %.h %-private.h: %.gob gob2 --always-private-header $< if HAVE_WINDRES LOQUI_RES = loqui.res loqui.rc: echo "LOQUI ICON icons/loqui.ico" > $@ loqui.res: loqui.rc $(WINDRES) $< -O coff -o $@ else LOQUI_RES = endif bin_PROGRAMS = loqui INCLUDES = -I$(includedir) -I$(top_srcdir)/libloqui -I$(top_builddir)/libloqui -I$(top_srcdir) -I$(top_builddir) -DG_LOG_DOMAIN=\"Loqui\" AM_CFLAGS = $(GTK_CFLAGS) $(EXTRA_WARNING_CFLAGS) -g -DDATADIR=\""$(datadir)"\" $(GNET_CFLAGS) -Wall -Wredundant-decls -Wmissing-declarations -Wmissing-prototypes loqui_SOURCES = \ gtkutils.c gtkutils.h \ main.c main.h \ loqui_app_actions.c loqui_app_actions.h \ loqui_stock.c loqui_stock.h \ loqui_app.c loqui_app.h \ loqui_app_info.c loqui_app_info.h \ loqui_channel_entry_store.c loqui_channel_entry_store.h \ loqui_channel_entry_action.c loqui_channel_entry_action.h \ loqui_channel_buffer_gtk.c loqui_channel_buffer_gtk.h \ loqui_dropdown_box.c loqui_dropdown_box.h \ loqui_account_manager_store.c loqui_account_manager_store.h \ channel_tree.c channel_tree.h \ nick_list.c nick_list.h \ about.c about.h \ account_list_dialog.c account_list_dialog.h \ loqui_statusbar.c loqui_statusbar.h \ prefs_dialog.c prefs_dialog.h \ loqui_channel_text_view.c loqui_channel_text_view.h \ command_dialog.c command_dialog.h \ remark_entry.c remark_entry.h \ loqui_channelbar.c loqui_channelbar.h \ loqui_select_dialog.c loqui_select_dialog.h \ prefs_general_upgrader.c prefs_general_upgrader.h \ loqui-general-pref-gtk.h loqui-general-pref-gtk-groups.h loqui-general-pref-gtk-default.h \ loqui-core-gtk.gob loqui-style-entry.gob loqui-account-dialog.gob loqui-protocol-selection-dialog.gob loqui-transfer-window.gob loqui-tray-icon.gob loqui-channel-entry-action-group.gob loqui-channel-entry-ui-data.gob loqui-channel-entry-action-group-ui.gob loqui-notifier-gtk.gob loqui-core-gtk.c loqui-style-entry.c loqui-account-dialog.c loqui-protocol-selection-dialog.c loqui-transfer-window.c loqui-tray-icon.c loqui-channel-entry-action-group.c loqui-channel-entry-ui-data.c loqui-channel-entry-action-group-ui.c loqui-notifier-gtk.c \ loqui-core-gtk.h loqui-style-entry.h loqui-account-dialog.h loqui-protocol-selection-dialog.h loqui-transfer-window.h loqui-tray-icon.h loqui-channel-entry-action-group.h loqui-channel-entry-ui-data.h loqui-channel-entry-action-group-ui.h loqui-notifier-gtk.h \ loqui-core-gtk-private.h loqui-style-entry-private.h loqui-account-dialog-private.h loqui-protocol-selection-dialog-private.h loqui-transfer-window-private.h loqui-tray-icon-private.h loqui-channel-entry-action-group-private.h loqui-channel-entry-ui-data-private.h loqui-channel-entry-action-group-ui-private.h loqui-notifier-gtk-private.h BUILT_SOURCES := \ loqui-core-gtk.c loqui-style-entry.c loqui-account-dialog.c loqui-protocol-selection-dialog.c loqui-transfer-window.c loqui-tray-icon.c loqui-channel-entry-action-group.c loqui-channel-entry-ui-data.c loqui-channel-entry-action-group-ui.c loqui-notifier-gtk.c \ loqui-core-gtk.h loqui-style-entry.h loqui-account-dialog.h loqui-protocol-selection-dialog.h loqui-transfer-window.h loqui-tray-icon.h loqui-channel-entry-action-group.h loqui-channel-entry-ui-data.h loqui-channel-entry-action-group-ui.h loqui-notifier-gtk.h \ loqui-core-gtk-private.h loqui-style-entry-private.h loqui-account-dialog-private.h loqui-protocol-selection-dialog-private.h loqui-transfer-window-private.h loqui-tray-icon-private.h loqui-channel-entry-action-group-private.h loqui-channel-entry-ui-data-private.h loqui-channel-entry-action-group-ui-private.h loqui-notifier-gtk-private.h loqui_LDADD = \ $(GTK_LIBS) $(GNET_LIBS) ../libloqui/libloqui.la $(LOQUI_RES) loqui-0.5.5/src/loqui_app_info.c0000664000175000017500000005674112121600532013541 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include #include "loqui_app_info.h" #include "loqui_statusbar.h" #include "loqui_channelbar.h" #include #include #include "loqui_app_actions.h" #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" enum { LAST_SIGNAL }; enum { LAST_PROP }; struct _LoquiAppInfoPrivate { gboolean is_pending_update_string; LoquiApp *app; }; static GObjectClass *parent_class = NULL; /* static guint loqui_app_info_signals[LAST_SIGNAL] = { 0 }; */ static GObject* loqui_app_info_constructor(GType type, guint n_props, GObjectConstructParam *props); static void loqui_app_info_class_init(LoquiAppInfoClass *klass); static void loqui_app_info_init(LoquiAppInfo *appinfo); static void loqui_app_info_finalize(GObject *object); static void loqui_app_info_dispose(GObject *object); static void loqui_app_info_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_app_info_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_app_info_channel_entry_notify_is_updated_cb(LoquiChannelEntry *chent, GParamSpec *pspec, LoquiAppInfo *appinfo); static void loqui_app_info_channel_notify_is_joined_cb(LoquiChannel *channel, GParamSpec *pspec, LoquiAppInfo *appinfo); static void loqui_app_info_account_notify_is_connected_cb(LoquiAccount *account, GParamSpec *pspec, LoquiAppInfo *appinfo); static void loqui_app_info_account_notify_is_pending_reconnecting_cb(LoquiAccount *account, GParamSpec *pspec, LoquiAppInfo *appinfo); GType loqui_app_info_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiAppInfoClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_app_info_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiAppInfo), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_app_info_init }; type = g_type_register_static(G_TYPE_OBJECT, "LoquiAppInfo", &our_info, 0); } return type; } static GObject* loqui_app_info_constructor(GType type, guint n_props, GObjectConstructParam *props) { GObject *object; GObjectClass *object_class = G_OBJECT_CLASS(parent_class); object = object_class->constructor(type, n_props, props); return object; } static void loqui_app_info_finalize(GObject *object) { LoquiAppInfo *appinfo; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_APP_INFO(object)); appinfo = LOQUI_APP_INFO(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(appinfo->priv); } static void loqui_app_info_dispose(GObject *object) { LoquiAppInfo *appinfo; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_APP_INFO(object)); appinfo = LOQUI_APP_INFO(object); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_account_name); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_channel_name); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_topic); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_member_number); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_op_number); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_channel_mode); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_updated_entry_number); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_updated_private_talk_number); if (appinfo->ltf_title) { loqui_title_format_free(appinfo->ltf_title); appinfo->ltf_title = NULL; } if (appinfo->ltf_statusbar) { loqui_title_format_free(appinfo->ltf_statusbar); appinfo->ltf_statusbar = NULL; } if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_app_info_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiAppInfo *appinfo; appinfo = LOQUI_APP_INFO(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_app_info_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiAppInfo *appinfo; appinfo = LOQUI_APP_INFO(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_app_info_class_init(LoquiAppInfoClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->constructor = loqui_app_info_constructor; object_class->finalize = loqui_app_info_finalize; object_class->dispose = loqui_app_info_dispose; object_class->get_property = loqui_app_info_get_property; object_class->set_property = loqui_app_info_set_property; } static void loqui_app_info_init(LoquiAppInfo *appinfo) { LoquiAppInfoPrivate *priv; priv = g_new0(LoquiAppInfoPrivate, 1); appinfo->priv = priv; } static void loqui_app_info_channel_entry_notify_is_updated_cb(LoquiChannelEntry *chent, GParamSpec *pspec, LoquiAppInfo *appinfo) { LoquiAppInfoPrivate *priv; gboolean updated; gint delta; g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); priv = appinfo->priv; updated = loqui_channel_entry_get_is_updated(chent); delta = updated ? +1 : -1; appinfo->updated_entry_number += delta; if (LOQUI_IS_CHANNEL(chent) && loqui_channel_get_is_private_talk(LOQUI_CHANNEL(chent))) appinfo->updated_private_talk_number += delta; loqui_app_info_update_updated_entry_number(appinfo); loqui_app_info_update_updated_private_talk_number(appinfo); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_channel_entry_notify_member_number_cb(LoquiChannelEntry *chent, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_info_update_member_number(appinfo, chent); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_channel_entry_notify_op_number_cb(LoquiChannelEntry *chent, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_info_update_op_number(appinfo, chent); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_channel_entry_notify_topic_cb(LoquiChannelEntry *chent, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_info_update_topic(appinfo, chent); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_user_self_notify_nick_cb(LoquiUser *user_self, GParamSpec *pspec, LoquiAppInfo *appinfo) { LoquiAccount *account; account = g_object_get_data(G_OBJECT(user_self), LOQUI_ACCOUNT_USER_SELF_ACCOUNT_KEY); g_return_if_fail(account != NULL); loqui_app_info_update_nick(appinfo, account); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_user_self_notify_away_cb(LoquiUser *user_self, GParamSpec *pspec, LoquiAppInfo *appinfo) { LoquiAccount *account; account = g_object_get_data(G_OBJECT(user_self), LOQUI_ACCOUNT_USER_SELF_ACCOUNT_KEY); g_return_if_fail(account != NULL); loqui_app_info_update_away(appinfo, account); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_account_notify_name_cb(LoquiAccount *account, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_info_update_account_name(appinfo, account); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_account_notify_is_connected_cb(LoquiAccount *account, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_actions_update_sensitivity_related_channel(appinfo->priv->app); } static void loqui_app_info_account_notify_is_pending_reconnecting_cb(LoquiAccount *account, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_actions_update_sensitivity_related_channel(appinfo->priv->app); } static void loqui_app_info_channel_notify_is_joined_cb(LoquiChannel *channel, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_actions_update_sensitivity_related_channel(appinfo->priv->app); } static void loqui_app_info_channel_notify_name_cb(LoquiChannel *channel, GParamSpec *pspec, LoquiAppInfo *appinfo) { loqui_app_info_update_channel_name(appinfo, channel); loqui_app_info_update_string_idle(appinfo); } static void loqui_app_info_channel_mode_changed_cb(LoquiModeManager *mode_manager, LoquiAppInfo *appinfo) { LoquiChannel *channel; g_return_if_fail(LOQUI_IS_MODE_MANAGER(mode_manager)); channel = LOQUI_CHANNEL(g_object_get_data(G_OBJECT(mode_manager), "channel")); loqui_app_info_update_channel_mode(appinfo, channel); loqui_app_info_update_string_idle(appinfo); } LoquiAppInfo* loqui_app_info_new(LoquiApp *app) { LoquiAppInfo *appinfo; LoquiAppInfoPrivate *priv; appinfo = g_object_new(loqui_app_info_get_type(), NULL); priv = appinfo->priv; priv->app = app; loqui_app_info_set_title_format_title(appinfo, NULL); loqui_app_info_set_title_format_statusbar(appinfo, NULL); return appinfo; } void loqui_app_info_update_account_name(LoquiAppInfo *appinfo, LoquiAccount *account) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_account_name); if (account) appinfo->cache_account_name = g_strdup(loqui_profile_account_get_name(loqui_account_get_profile(account))); loqui_statusbar_update_account_name(LOQUI_STATUSBAR(appinfo->priv->app->statusbar), account); } void loqui_app_info_update_nick(LoquiAppInfo *appinfo, LoquiAccount *account) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_nick); if (account) appinfo->cache_nick = g_strdup(loqui_user_get_nick(loqui_account_get_user_self(account))); loqui_statusbar_update_nick(LOQUI_STATUSBAR(appinfo->priv->app->statusbar), account); } void loqui_app_info_update_preset(LoquiAppInfo *appinfo, LoquiAccount *account) { loqui_statusbar_update_preset_menu(LOQUI_STATUSBAR(appinfo->priv->app->statusbar), account); } void loqui_app_info_update_away_list(LoquiAppInfo *appinfo, LoquiAccount *account) { loqui_statusbar_update_away_menu(LOQUI_STATUSBAR(appinfo->priv->app->statusbar), account); } void loqui_app_info_update_away(LoquiAppInfo *appinfo, LoquiAccount *account) { loqui_statusbar_update_away_icon(LOQUI_STATUSBAR(appinfo->priv->app->statusbar), account); } void loqui_app_info_update_channel_name(LoquiAppInfo *appinfo, LoquiChannel *channel) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_channel_name); if (channel) appinfo->cache_channel_name = g_strdup(loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(channel))); } void loqui_app_info_update_topic(LoquiAppInfo *appinfo, LoquiChannelEntry *chent) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_topic); if (chent) appinfo->cache_topic = g_strdup(loqui_channel_entry_get_topic(chent)); loqui_channelbar_update_topic(LOQUI_CHANNELBAR(appinfo->priv->app->channelbar), chent); } void loqui_app_info_update_member_number(LoquiAppInfo *appinfo, LoquiChannelEntry *chent) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_member_number); if (chent) appinfo->cache_member_number = g_strdup_printf("%d", loqui_channel_entry_get_member_number(chent)); loqui_channelbar_update_member_number(LOQUI_CHANNELBAR(appinfo->priv->app->channelbar), chent); } void loqui_app_info_update_op_number(LoquiAppInfo *appinfo, LoquiChannelEntry *chent) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_op_number); if (chent) appinfo->cache_op_number = g_strdup_printf("%d", loqui_channel_entry_get_op_number(chent)); loqui_channelbar_update_op_number(LOQUI_CHANNELBAR(appinfo->priv->app->channelbar), chent); } void loqui_app_info_update_channel_mode(LoquiAppInfo *appinfo, LoquiChannel *channel) { if (channel) g_return_if_fail(LOQUI_IS_CHANNEL(channel)); LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_channel_mode); if (channel && channel->channel_mode_manager) appinfo->cache_channel_mode = loqui_mode_manager_to_string(channel->channel_mode_manager); loqui_channelbar_update_channel_mode(LOQUI_CHANNELBAR(appinfo->priv->app->channelbar), channel); } void loqui_app_info_update_updated_entry_number(LoquiAppInfo *appinfo) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_updated_entry_number); appinfo->cache_updated_entry_number = g_strdup_printf("%d", appinfo->updated_entry_number); } void loqui_app_info_update_updated_private_talk_number(LoquiAppInfo *appinfo) { LOQUI_G_FREE_UNLESS_NULL(appinfo->cache_updated_private_talk_number); appinfo->cache_updated_private_talk_number = g_strdup_printf("%d", appinfo->updated_private_talk_number); } void loqui_app_info_update_all(LoquiAppInfo *appinfo, LoquiChannelEntry *chent) { LoquiAccount *account; LoquiChannel *channel; loqui_channel_entry_utils_separate(chent, &account, &channel); loqui_app_info_update_account_name(appinfo, account); loqui_app_info_update_nick(appinfo, account); loqui_app_info_update_preset(appinfo, account); loqui_app_info_update_away_list(appinfo, account); loqui_app_info_update_away(appinfo, account); loqui_app_info_update_channel_name(appinfo, channel); loqui_app_info_update_channel_mode(appinfo, channel); loqui_app_info_update_topic(appinfo, chent); loqui_app_info_update_member_number(appinfo, chent); loqui_app_info_update_op_number(appinfo, chent); loqui_app_info_update_updated_entry_number(appinfo); loqui_app_info_update_updated_private_talk_number(appinfo); loqui_channelbar_update_channel_entry_label(LOQUI_CHANNELBAR(appinfo->priv->app->channelbar), chent); loqui_app_info_update_string(appinfo); } static gboolean loqui_app_info_update_string_for_idle(LoquiAppInfo *appinfo) { loqui_app_info_update_string(appinfo); appinfo->priv->is_pending_update_string = FALSE; return FALSE; } void loqui_app_info_update_string_idle(LoquiAppInfo *appinfo) { if (!appinfo->priv->is_pending_update_string) { appinfo->priv->is_pending_update_string = TRUE; g_idle_add((GSourceFunc) loqui_app_info_update_string_for_idle, appinfo); } } void loqui_app_info_update_string(LoquiAppInfo *appinfo) { LoquiAppInfoPrivate *priv; gchar *buf; g_return_if_fail(appinfo != NULL); g_return_if_fail(LOQUI_IS_APP_INFO(appinfo)); priv = appinfo->priv; #define SET_VARIABLES(ltf) loqui_title_format_register_variables(ltf, \ "channel_name", appinfo->cache_channel_name, \ "account_name", appinfo->cache_account_name, \ "topic", appinfo->cache_topic, \ "channel_mode", appinfo->cache_channel_mode, \ "member_number", appinfo->cache_member_number, \ "op_number", appinfo->cache_op_number, \ "nick", appinfo->cache_nick, \ "version", VERSION, \ "updated_entry_number", appinfo->cache_updated_entry_number, \ "updated_private_talk_number", appinfo->cache_updated_private_talk_number, \ NULL) SET_VARIABLES(appinfo->ltf_title); buf = loqui_title_format_fetch(appinfo->ltf_title); gtk_window_set_title(GTK_WINDOW(priv->app), buf); g_free(buf); SET_VARIABLES(appinfo->ltf_statusbar); buf = loqui_title_format_fetch(appinfo->ltf_statusbar); loqui_statusbar_set_default(LOQUI_STATUSBAR(priv->app->statusbar), buf); g_free(buf); } void loqui_app_info_current_channel_entry_changed(LoquiAppInfo *appinfo, LoquiChannelEntry *old_chent, LoquiChannelEntry *new_chent) { LoquiAppInfoPrivate *priv; LoquiApp *app; LoquiAccount *old_account, *account; LoquiChannel *old_channel, *channel; g_return_if_fail(appinfo != NULL); g_return_if_fail(LOQUI_IS_APP_INFO(appinfo)); priv = appinfo->priv; app = priv->app; loqui_channel_entry_utils_separate(old_chent, &old_account, &old_channel); loqui_channel_entry_utils_separate(new_chent, &account, &channel); if (old_chent) { g_signal_handlers_disconnect_by_func(old_chent, loqui_app_info_channel_entry_notify_member_number_cb, appinfo); g_signal_handlers_disconnect_by_func(old_chent, loqui_app_info_channel_entry_notify_op_number_cb, appinfo); g_signal_handlers_disconnect_by_func(old_chent, loqui_app_info_channel_entry_notify_topic_cb, appinfo); } if (old_account) { g_signal_handlers_disconnect_by_func(old_account, loqui_app_info_user_self_notify_nick_cb, appinfo); g_signal_handlers_disconnect_by_func(old_account, loqui_app_info_user_self_notify_away_cb, appinfo); g_signal_handlers_disconnect_by_func(old_account, loqui_app_info_account_notify_name_cb, appinfo); g_signal_handlers_disconnect_by_func(old_account, loqui_app_info_account_notify_is_connected_cb, appinfo); g_signal_handlers_disconnect_by_func(old_account, loqui_app_info_account_notify_is_pending_reconnecting_cb, appinfo); } if (old_channel) { g_signal_handlers_disconnect_by_func(old_channel, loqui_app_info_channel_notify_is_joined_cb, appinfo); g_signal_handlers_disconnect_by_func(old_channel, loqui_app_info_channel_notify_name_cb, appinfo); if (old_channel->channel_mode_manager) { g_signal_handlers_disconnect_by_func(old_channel->channel_mode_manager, loqui_app_info_channel_mode_changed_cb, appinfo); } } /* TODO: check difference between old and new */ loqui_app_info_update_account_name(appinfo, account); loqui_app_info_update_nick(appinfo, account); loqui_app_info_update_preset(appinfo, account); loqui_app_info_update_away_list(appinfo, account); loqui_app_info_update_away(appinfo, account); loqui_app_info_update_channel_name(appinfo, channel); loqui_app_info_update_channel_mode(appinfo, channel); loqui_app_info_update_topic(appinfo, new_chent); loqui_app_info_update_member_number(appinfo, new_chent); loqui_app_info_update_op_number(appinfo, new_chent); loqui_channelbar_update_channel_entry_label(LOQUI_CHANNELBAR(appinfo->priv->app->channelbar), new_chent); if (new_chent) { g_signal_connect(G_OBJECT(new_chent), "notify::member-number", G_CALLBACK(loqui_app_info_channel_entry_notify_member_number_cb), appinfo); g_signal_connect(G_OBJECT(new_chent), "notify::op-number", G_CALLBACK(loqui_app_info_channel_entry_notify_op_number_cb), appinfo); g_signal_connect(G_OBJECT(new_chent), "notify::topic", G_CALLBACK(loqui_app_info_channel_entry_notify_topic_cb), appinfo); } if (account) { g_signal_connect(G_OBJECT(account->user_self), "notify::nick", G_CALLBACK(loqui_app_info_user_self_notify_nick_cb), appinfo); g_signal_connect(G_OBJECT(account->user_self), "notify::away", G_CALLBACK(loqui_app_info_user_self_notify_away_cb), appinfo); g_signal_connect(G_OBJECT(account->user_self), "notify::away-message", G_CALLBACK(loqui_app_info_user_self_notify_away_cb), appinfo); g_signal_connect(G_OBJECT(account), "notify::name", G_CALLBACK(loqui_app_info_account_notify_name_cb), appinfo); g_signal_connect(G_OBJECT(account), "notify::is-connected", G_CALLBACK(loqui_app_info_account_notify_is_connected_cb), appinfo); g_signal_connect(G_OBJECT(account), "notify::is-pending-reconnecting", G_CALLBACK(loqui_app_info_account_notify_is_pending_reconnecting_cb), appinfo); } if (channel) { g_signal_connect(G_OBJECT(channel), "notify::is-joined", G_CALLBACK(loqui_app_info_channel_notify_is_joined_cb), appinfo); g_signal_connect(G_OBJECT(channel), "notify::name", G_CALLBACK(loqui_app_info_channel_notify_name_cb), appinfo); if (channel->channel_mode_manager) { g_signal_connect(G_OBJECT(channel->channel_mode_manager), "changed", G_CALLBACK(loqui_app_info_channel_mode_changed_cb), appinfo); } } loqui_app_info_update_string_idle(appinfo); } void loqui_app_info_channel_entry_added(LoquiAppInfo *appinfo, LoquiChannelEntry *chent) { g_signal_connect(G_OBJECT(chent), "notify::is-updated", G_CALLBACK(loqui_app_info_channel_entry_notify_is_updated_cb), appinfo); } void loqui_app_info_channel_entry_removed(LoquiAppInfo *appinfo, LoquiChannelEntry *chent) { g_signal_handlers_disconnect_by_func(chent, loqui_app_info_channel_entry_notify_is_updated_cb, appinfo); if (loqui_channel_entry_get_is_updated(chent)) { appinfo->updated_entry_number--; loqui_app_info_update_updated_entry_number(appinfo); loqui_app_info_update_string_idle(appinfo); } } void loqui_app_info_account_added(LoquiAppInfo *appinfo, LoquiAccount *account) { } void loqui_app_info_account_removed(LoquiAppInfo *appinfo, LoquiAccount *account) { } void loqui_app_info_channel_added(LoquiAppInfo *appinfo, LoquiChannel *channel) { } void loqui_app_info_channel_removed(LoquiAppInfo *appinfo, LoquiChannel *channel) { if (loqui_channel_get_is_private_talk(channel) && loqui_channel_entry_get_is_updated(LOQUI_CHANNEL_ENTRY(channel))) { appinfo->updated_private_talk_number--; loqui_app_info_update_updated_private_talk_number(appinfo); loqui_app_info_update_string_idle(appinfo); } } void loqui_app_info_set_title_format_title(LoquiAppInfo *appinfo, LoquiTitleFormat *ltf) { gboolean is_default_title_format_title_valid; if (appinfo->ltf_title) { loqui_title_format_free(appinfo->ltf_title); } if (ltf) { appinfo->ltf_title = ltf; } else { appinfo->ltf_title = loqui_title_format_new(); is_default_title_format_title_valid = loqui_title_format_parse(appinfo->ltf_title, LOQUI_APP_INFO_DEFAULT_TITLE_FORMAT_TITLE, NULL); g_assert(is_default_title_format_title_valid); } } void loqui_app_info_set_title_format_statusbar(LoquiAppInfo *appinfo, LoquiTitleFormat *ltf) { gboolean is_default_title_format_statusbar_valid; if (appinfo->ltf_statusbar) { loqui_title_format_free(appinfo->ltf_statusbar); } if (ltf) { appinfo->ltf_statusbar = ltf; } else { appinfo->ltf_statusbar = loqui_title_format_new(); is_default_title_format_statusbar_valid = loqui_title_format_parse(appinfo->ltf_statusbar, LOQUI_APP_INFO_DEFAULT_TITLE_FORMAT_STATUSBAR, NULL); g_assert(is_default_title_format_statusbar_valid); } } void loqui_app_info_load_from_prefs_general(LoquiAppInfo *appinfo) { LoquiTitleFormat *ltf; gchar *title_format_title; gchar *title_format_statusbar; #define LOAD_TITLE_FORMAT(_pref, _name, _setter) {\ if (strlen(_pref) > 0) { \ ltf = loqui_title_format_new(); \ if (!loqui_title_format_parse(ltf, _pref, NULL)) { \ g_warning("Invalid title format: default is used for %s.", _name); \ loqui_title_format_free(ltf); \ _setter(appinfo, NULL); \ } else { \ _setter(appinfo, ltf); \ } \ } \ } title_format_title = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_TITLE_FORMAT, "TitleFormatTitle", LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_TITLE, NULL); LOAD_TITLE_FORMAT(title_format_title, "title", loqui_app_info_set_title_format_title); g_free(title_format_title); title_format_statusbar = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_TITLE_FORMAT, "TitleFormatStatusbar", LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_STATUSBAR, NULL); LOAD_TITLE_FORMAT(title_format_statusbar, "statusbar", loqui_app_info_set_title_format_statusbar); g_free(title_format_statusbar); } loqui-0.5.5/src/prefs_general_upgrader.c0000664000175000017500000002447112121600532015235 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #include "config.h" #include "prefs_general_upgrader.h" #include #include #include #include #include #include #include "loqui.h" #include "loqui-core-gtk.h" #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" typedef struct _PrefElementForUpgrade PrefElementForUpgrade; typedef enum { PREF_TYPE_FOR_UPGRADE_NONE, PREF_TYPE_FOR_UPGRADE_BOOLEAN, PREF_TYPE_FOR_UPGRADE_INT, PREF_TYPE_FOR_UPGRADE_UINT, PREF_TYPE_FOR_UPGRADE_STRING, PREF_TYPE_FOR_UPGRADE_STRING_LIST = 101 } PrefTypeForUpgrade; #define PREF_TYPE_FOR_UPGRADE_IS_LIST(type) (type >= 100) struct _PrefElementForUpgrade { gchar *name; PrefTypeForUpgrade type; gchar *group; gchar *key; }; PrefElementForUpgrade prefs_general_defs[] = { {"away_message", PREF_TYPE_FOR_UPGRADE_STRING, "Messages", "AwayMessage"}, {"auto_reconnect", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Account", "AutoReconnect"}, {"use_notification", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Notification", "UseNotification"}, {"exec_notification_by_notice", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Notification", "ExecNotificationByNotice"}, {"highlight_list", PREF_TYPE_FOR_UPGRADE_STRING_LIST, "Notification", "HighlightList"}, {"use_transparent_ignore", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Ignore", "UseTransparentIgnore"}, {"transparent_ignore_list", PREF_TYPE_FOR_UPGRADE_STRING_LIST, "Ignore", "TransparentIgnoreList"}, {"save_size", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.Size", "SaveSize"}, {"window_height", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.Size", "WindowHeight"}, {"window_width", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.Size", "WindowWidth"}, {"channel_tree_height", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.Size", "ChannelTreeHeight"}, {"channel_tree_width", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.Size", "ChannelTreeWidth"}, {"common_buffer_height", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.Size", "CommonBufferHeight"}, {"show_statusbar", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.Visibility", "ShowStatusbar"}, {"show_channelbar", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.Visibility", "ShowChannelbar"}, {"title_format_title", PREF_TYPE_FOR_UPGRADE_STRING, "Gtk.TitleFormat", "TitleFormatTitle"}, {"title_format_statusbar", PREF_TYPE_FOR_UPGRADE_STRING,"Gtk.TitleFormat" , "TitleFormatStatusbar"}, {"browser_command", PREF_TYPE_FOR_UPGRADE_STRING, "Gtk.Commands", "BrowserCommand"}, {"notification_command", PREF_TYPE_FOR_UPGRADE_STRING, "Gtk.Commands", "NotificationCommand"}, {"auto_switch_scrolling", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.General", "AutoSwitchScrolling"}, {"auto_switch_scrolling_common_buffer", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.General", "AutoSwitchScrollingCommonBuffer"}, {"parse_plum_recent", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Proxy", "ParsePlumRecent"}, {"remark_history_number", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.General", "RemarkHistoryNumber"}, {"auto_command_mode", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.General", "AutoCommandMode"}, {"command_prefix", PREF_TYPE_FOR_UPGRADE_STRING, "Gtk.General", "CommandPrefix"}, {"common_buffer_max_line_number", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.General", "CommonBufferMaxLineNumber"}, {"channel_buffer_max_line_number", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.General", "ChannelBufferMaxLineNumber"}, {"connect_startup", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.General", "ConnectStartup"}, {"time_format", PREF_TYPE_FOR_UPGRADE_STRING, "Gtk.General", "TimeFormat"}, {"save_log", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.General", "SaveLog"}, {"nick_list_sort_type", PREF_TYPE_FOR_UPGRADE_UINT, "Gtk.General", "NickListSortType"}, {"select_channel_joined", PREF_TYPE_FOR_UPGRADE_BOOLEAN, "Gtk.General", "SelectChannelJoined"}, {NULL, 0, NULL, NULL} }; #define RC_FILENAME "loquirc.xml" static gint in_prefs = 0; static PrefElementForUpgrade *current_pref_elem = NULL; static gboolean in_li = FALSE; static void prefs_general_set_string(PrefElementForUpgrade *elem, const gchar *str); static void start_element_handler (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); static void end_element_handler (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); static void text_handler (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); static GMarkupParser parser = { start_element_handler, end_element_handler, text_handler, NULL, NULL }; static void start_element_handler (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) { int i; const gchar *key = NULL; PrefElementForUpgrade *elem; if(g_ascii_strcasecmp(element_name, "prefs") == 0) { in_prefs++; return; } if(in_prefs < 1) { return; } if(g_strcasecmp(element_name, "li") == 0) { in_li = TRUE; return; } current_pref_elem = NULL; if(g_strcasecmp(element_name, "entry") != 0) { g_warning(_("Invalid element: %s"), element_name); return; } for(i = 0; attribute_names[i] != NULL; i++) { if(g_strcasecmp(attribute_names[i], "key") == 0) { key = attribute_values[i]; break; } else { g_warning(_("prefs_general: Invalid attribute for entry: %s"), attribute_names[i]); return; } } elem = NULL; for (i = 0; prefs_general_defs[i].name != NULL; i++) { if (strcmp(prefs_general_defs[i].name, key) == 0) { elem = &prefs_general_defs[i]; break; } } if(!elem) { g_warning(_("Unknown key: %s\n"), key); return; } current_pref_elem = elem; } static void end_element_handler (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { if(g_ascii_strcasecmp(element_name, "prefs") == 0) { in_prefs--; } else if(g_ascii_strcasecmp(element_name, "entry") == 0) { current_pref_elem = NULL; } else if(g_ascii_strcasecmp(element_name, "li") == 0) { in_li = FALSE; } } static void text_handler (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) { gchar **strarray_old; gchar **strarray; gsize len; int i; if(!current_pref_elem) return; if(current_pref_elem->type == PREF_TYPE_FOR_UPGRADE_STRING_LIST) { if(!in_li) return; /* inefficient but enough to upgrade */ strarray_old = loqui_pref_get_string_list(loqui_get_general_pref(), current_pref_elem->group, current_pref_elem->key, &len, NULL); if (strarray_old) { strarray = g_new0(gchar *, len + 1); for (i = 0; i < len; i++) strarray[i] = strarray_old[i]; strarray[i] = (gchar*) text; loqui_pref_set_string_list(loqui_get_general_pref(), current_pref_elem->group, current_pref_elem->key, strarray, len + 1); g_strfreev(strarray_old); } else { strarray = g_new0(gchar *, 2); strarray[0] = (gchar *) text; loqui_pref_set_string_list(loqui_get_general_pref(), current_pref_elem->group, current_pref_elem->key, strarray, 1); } } else { prefs_general_set_string(current_pref_elem, text); } } static void prefs_general_set_string(PrefElementForUpgrade *elem, const gchar *str) { gboolean boolean; switch(elem->type) { case PREF_TYPE_FOR_UPGRADE_BOOLEAN: boolean = (g_ascii_strcasecmp(str, "true") == 0); loqui_pref_set_boolean(loqui_get_general_pref(), elem->group, elem->key, boolean); break; case PREF_TYPE_FOR_UPGRADE_UINT: loqui_pref_set_integer(loqui_get_general_pref(), elem->group, elem->key, (gint) g_ascii_strtoull(str, NULL, 10)); break; case PREF_TYPE_FOR_UPGRADE_STRING: loqui_pref_set_string(loqui_get_general_pref(), elem->group, elem->key, str); break; case PREF_TYPE_FOR_UPGRADE_STRING_LIST: break; default: g_warning(_("Unsupported pref type: %s"), elem->name); break; } } void prefs_general_upgrader_upgrade(void) { gchar *contents; gchar *path; gchar *backup_path; gsize len; GError *error = NULL; GMarkupParseContext *context; g_print("Upgrading prefs_general...\n"); path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), RC_FILENAME, NULL); if(!g_file_get_contents(path, &contents, &len, &error)) { if(error->code != G_FILE_ERROR_NOENT) g_warning("%s", error->message); g_error_free(error); return; } g_free(path); error = NULL; context = g_markup_parse_context_new(&parser, 0, NULL, NULL); if(!g_markup_parse_context_parse(context, contents, len, &error)) { g_warning(_("Loquirc parse error: %s"), error->message); g_error_free(error); g_markup_parse_context_free(context); } g_markup_parse_context_free(context); backup_path = g_strconcat(path, "~", NULL); rename(path, backup_path); g_free(backup_path); g_print("Done.\n"); return; } loqui-0.5.5/src/loqui_app_actions.h0000664000175000017500000000461312121600532014242 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "loqui_app.h" #ifndef __LOQUI_APP_ACTIONS_H__ #define __LOQUI_APP_ACTIONS_H__ #define ACTION_GROUP_ACTION_SET_SENSITIVE(action_group, name, bool) { \ GtkAction *a; \ a = gtk_action_group_get_action(action_group, name); \ if (a) \ g_object_set(a, "sensitive", bool, NULL); \ } GtkActionGroup* loqui_app_actions_create_group(LoquiApp *app); void loqui_app_actions_toggle_action_set_active(LoquiApp *app, const gchar *name, gboolean is_active); void loqui_app_actions_update_sensitivity_related_channel(LoquiApp *app); #define LOQUI_ACTION_TOGGLE_SCROLL "ToggleScroll" #define LOQUI_ACTION_TOGGLE_SCROLL_COMMON_BUFFER "ToggleScrollCommonBuffer" #define LOQUI_ACTION_CONNECT_CURRENT_ACCOUNT "ConnectCurrentAccount" #define LOQUI_ACTION_CANCEL_PENDING_RECONNECTING_CURRENT_ACCOUNT "CancelPendingReconnectingCurrentAccount" #define LOQUI_ACTION_RECONNECT_CURRENT_ACCOUNT "ReconnectCurrentAccount" #define LOQUI_ACTION_DISCONNECT_CURRENT_ACCOUNT "DisconnectCurrentAccount" #define LOQUI_ACTION_TERMINATE_CURRENT_ACCOUNT "TerminateCurrentAccount" #define LOQUI_ACTION_CLOSE_CHANNEL "CloseChannel" #define LOQUI_ACTION_JOIN "Join" #define LOQUI_ACTION_JOIN_CURRENT_CHANNEL "JoinCurrentChannel" #define LOQUI_ACTION_PART "Part" #define LOQUI_ACTION_CHANGE_NICK "ChangeNick" #define LOQUI_ACTION_SET_TOPIC "SetTopic" #define LOQUI_ACTION_REFRESH "Refresh" #define LOQUI_ACTION_START_PRIVATE_TALK "StartPrivateTalk" #define LOQUI_ACTION_END_PRIVATE_TALK "EndPrivateTalk" #endif /* __LOQUI_APP_ACTIONS_H__ */ loqui-0.5.5/src/loqui_statusbar.c0000664000175000017500000004220012121600532013737 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_statusbar.h" #include #include "loqui_stock.h" #include "gtkutils.h" #include #include "main.h" #include "loqui_dropdown_box.h" #include "command_dialog.h" #include "loqui_sender.h" #include #define STRING_DISCONNECTED _("(disconnected)") #define STRING_UNSELECTED _("(unselected)") enum { LAST_SIGNAL }; struct _LoquiStatusbarPrivate { LoquiApp *app; GtkWidget *label_account; GtkWidget *image_away; GtkWidget *label_away; GtkWidget *button_away; GtkWidget *dbox_away; GtkWidget *button_nick; GtkWidget *label_nick; GtkWidget *dbox_preset; GtkWidget *progress; GtkWidget *toggle_scroll_common_buffer; GtkWidget *menu_away; GtkWidget *menu_preset; guint toggle_scroll_handler_id; }; static GtkStatusbarClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_STATUSBAR /* static guint loqui_statusbar_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_statusbar_class_init(LoquiStatusbarClass *klass); static void loqui_statusbar_init(LoquiStatusbar *statusbar); static void loqui_statusbar_finalize(GObject *object); static void loqui_statusbar_destroy(GtkObject *object); static void loqui_statusbar_set_preset_menu(LoquiStatusbar *statusbar, GList *nick_list); static void loqui_statusbar_set_away(LoquiStatusbar *statusbar, LoquiUserClass *user_class, LoquiAwayType away); static void loqui_statusbar_away_menuitem_activated_cb(GtkWidget *widget, LoquiStatusbar *statusbar); static void loqui_statusbar_set_away_menu(LoquiStatusbar *statusbar, LoquiUserClass *user_class); static void loqui_statusbar_nick_button_clicked_cb(GtkWidget *widget, LoquiStatusbar *statusbar); GType loqui_statusbar_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiStatusbarClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_statusbar_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiStatusbar), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_statusbar_init }; type = g_type_register_static(PARENT_TYPE, "LoquiStatusbar", &our_info, 0); } return type; } static void loqui_statusbar_class_init (LoquiStatusbarClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_statusbar_finalize; gtk_object_class->destroy = loqui_statusbar_destroy; } static void loqui_statusbar_init (LoquiStatusbar *statusbar) { LoquiStatusbarPrivate *priv; priv = g_new0(LoquiStatusbarPrivate, 1); statusbar->priv = priv; } static void loqui_statusbar_finalize (GObject *object) { LoquiStatusbar *statusbar; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(object)); statusbar = LOQUI_STATUSBAR(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(statusbar->priv); } static void loqui_statusbar_destroy (GtkObject *object) { LoquiStatusbar *statusbar; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(object)); statusbar = LOQUI_STATUSBAR(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void loqui_statusbar_set_away(LoquiStatusbar *statusbar, LoquiUserClass *user_class, LoquiAwayType away) { LoquiStatusbarPrivate *priv; LoquiAwayInfo *awinfo; const gchar *stock_id; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; awinfo = loqui_user_class_away_type_get_info(user_class, away); if (awinfo == NULL) return; gtk_label_set(GTK_LABEL(priv->label_away), awinfo->nick); stock_id = loqui_stock_get_id_from_basic_away_type(awinfo->basic_away_type); if (stock_id == NULL) { g_warning("Invalid BasicAwayType."); return; } gtk_image_set_from_stock(GTK_IMAGE(priv->image_away), stock_id, LOQUI_ICON_SIZE_FONT); } static void loqui_statusbar_preset_menuitem_activated_cb(GtkWidget *widget, LoquiStatusbar *statusbar) { LoquiStatusbarPrivate *priv; const gchar *nick; LoquiAccount *account; g_return_if_fail(GTK_IS_MENU_ITEM(widget)); g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; nick = g_object_get_data(G_OBJECT(widget), "nick"); account = loqui_app_get_current_account(priv->app); if (account) if (loqui_account_get_is_connected(account)) loqui_sender_nick(loqui_account_get_sender(account), nick); else gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("The account is not connected!")); else gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Not selected an account!")); } static void loqui_statusbar_away_menuitem_activated_cb(GtkWidget *widget, LoquiStatusbar *statusbar) { LoquiStatusbarPrivate *priv; LoquiAwayType away_type; LoquiAccount *account; g_return_if_fail(GTK_IS_MENU_ITEM(widget)); g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; away_type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "away-type")); account = loqui_app_get_current_account(priv->app); if (account) { if (loqui_account_get_is_connected(account)) loqui_sender_away(loqui_account_get_sender(account), away_type, NULL); else gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("The account is not connected!")); } else { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Not selected an account!")); } } static void loqui_statusbar_set_preset_menu(LoquiStatusbar *statusbar, GList *nick_list) { LoquiStatusbarPrivate *priv; GtkWidget *menuitem; GList *cur, *tmp_list = NULL; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; for (cur = GTK_MENU_SHELL(priv->menu_preset)->children; cur != NULL; cur = cur->next) { tmp_list = g_list_append(tmp_list, cur->data); } for (cur = tmp_list; cur != NULL; cur = cur->next) { gtk_container_remove(GTK_CONTAINER(priv->menu_preset), cur->data); } for (cur = nick_list; cur != NULL; cur = cur->next) { if (!cur->data) continue; menuitem = gtk_menu_item_new_with_label(cur->data); g_object_set_data_full(G_OBJECT(menuitem), "nick", g_strdup(cur->data), (GDestroyNotify) g_free); g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(loqui_statusbar_preset_menuitem_activated_cb), statusbar); gtk_widget_show(menuitem); gtk_menu_shell_append(GTK_MENU_SHELL(priv->menu_preset), menuitem); } } static void loqui_statusbar_set_away_menu(LoquiStatusbar *statusbar, LoquiUserClass *user_class) { LoquiStatusbarPrivate *priv; GtkWidget *menuitem; GtkWidget *image; GList *cur, *tmp_list = NULL; LoquiAwayType away_type; LoquiAwayInfo *awinfo; const gchar *stock_id; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; for (cur = GTK_MENU_SHELL(priv->menu_away)->children; cur != NULL; cur = cur->next) { tmp_list = g_list_append(tmp_list, cur->data); } for (cur = tmp_list; cur != NULL; cur = cur->next) { gtk_container_remove(GTK_CONTAINER(priv->menu_away), cur->data); } tmp_list = loqui_user_class_get_away_type_list(user_class); for (cur = tmp_list; cur != NULL; cur = cur->next) { away_type = GPOINTER_TO_INT(cur->data); if (away_type == LOQUI_AWAY_TYPE_UNKNOWN) { menuitem = gtk_separator_menu_item_new(); gtk_widget_show(menuitem); gtk_menu_shell_append(GTK_MENU_SHELL(priv->menu_away), menuitem); continue; } awinfo = loqui_user_class_away_type_get_info(user_class, GPOINTER_TO_INT(cur->data)); g_assert(awinfo != NULL); stock_id = loqui_stock_get_id_from_basic_away_type(awinfo->basic_away_type); g_assert(stock_id != NULL); g_assert(awinfo->nick != NULL); menuitem = gtk_image_menu_item_new_with_label(awinfo->nick); image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU); gtk_widget_show(image); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); g_object_set_data(G_OBJECT(menuitem), "away-type", GINT_TO_POINTER(awinfo->away_type)); g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(loqui_statusbar_away_menuitem_activated_cb), statusbar); if (awinfo->basic_away_type == LOQUI_BASIC_AWAY_TYPE_OFFLINE) gtk_widget_set_sensitive(menuitem, FALSE); gtk_widget_show(menuitem); gtk_menu_shell_append(GTK_MENU_SHELL(priv->menu_away), menuitem); } } static void loqui_statusbar_nick_button_clicked_cb(GtkWidget *widget, LoquiStatusbar *statusbar) { LoquiStatusbarPrivate *priv; LoquiAccount *account; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; account = loqui_app_get_current_account(priv->app); if (account) command_dialog_nick(priv->app, account); else gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Not selected an account!")); } GtkWidget* loqui_statusbar_new(LoquiApp *app, GtkToggleAction *toggle_scroll_common_buffer_action) { LoquiStatusbar *statusbar; LoquiStatusbarPrivate *priv; GtkWidget *vsep; GtkWidget *hbox_away; GtkWidget *image; gchar *text; statusbar = g_object_new(loqui_statusbar_get_type(), NULL); priv = statusbar->priv; priv->app = app; gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(statusbar), FALSE); gtk_label_set_selectable(GTK_LABEL(GTK_STATUSBAR(statusbar)->label), TRUE); vsep = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(statusbar), vsep, FALSE, FALSE, 2); priv->progress = gtk_progress_bar_new(); gtk_box_pack_start(GTK_BOX(statusbar), priv->progress, FALSE, FALSE, 0); gtk_widget_set_size_request(priv->progress, 70, -1); vsep = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(statusbar), vsep, FALSE, FALSE, 2); priv->dbox_away = loqui_dropdown_box_new(NULL); gtk_box_pack_start(GTK_BOX(statusbar), priv->dbox_away, FALSE, FALSE, 0); gtk_button_set_relief(GTK_BUTTON(LOQUI_DROPDOWN_BOX(priv->dbox_away)->drop_button), GTK_RELIEF_NONE); priv->button_away = gtk_button_new(); gtk_button_set_relief(GTK_BUTTON(priv->button_away), GTK_RELIEF_NONE); gtk_box_pack_start(GTK_BOX(priv->dbox_away), priv->button_away, FALSE, FALSE, 0); hbox_away = gtk_hbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(priv->button_away), hbox_away); priv->image_away = gtk_image_new(); gtk_box_pack_start(GTK_BOX(hbox_away), priv->image_away, FALSE, FALSE, 0); priv->label_away = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(hbox_away), priv->label_away, FALSE, FALSE, 0); vsep = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(statusbar), vsep, FALSE, FALSE, 2); priv->dbox_preset = loqui_dropdown_box_new(NULL); gtk_button_set_relief(GTK_BUTTON(LOQUI_DROPDOWN_BOX(priv->dbox_preset)->drop_button), GTK_RELIEF_NONE); gtk_box_pack_start(GTK_BOX(statusbar), priv->dbox_preset, FALSE, FALSE, 0); priv->button_nick = gtk_button_new(); g_signal_connect(G_OBJECT(priv->button_nick), "clicked", G_CALLBACK(loqui_statusbar_nick_button_clicked_cb), statusbar); gtk_button_set_relief(GTK_BUTTON(priv->button_nick), GTK_RELIEF_NONE); gtk_tooltips_set_tip(app->tooltips, priv->button_nick, _("Change nick"), NULL); gtk_box_pack_start(GTK_BOX(priv->dbox_preset), priv->button_nick, FALSE, FALSE, 0); priv->label_nick = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(priv->button_nick), priv->label_nick); vsep = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(statusbar), vsep, FALSE, FALSE, 2); priv->label_account = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(statusbar), priv->label_account, FALSE, FALSE, 0); vsep = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(statusbar), vsep, FALSE, FALSE, 2); priv->toggle_scroll_common_buffer = gtk_toggle_button_new(); gtk_action_connect_proxy(GTK_ACTION(toggle_scroll_common_buffer_action), priv->toggle_scroll_common_buffer); gtkutils_bin_remove_child_if_exist(GTK_BIN((priv->toggle_scroll_common_buffer))); image = gtk_image_new_from_stock(LOQUI_STOCK_WHETHER_SCROLL, LOQUI_ICON_SIZE_FONT); gtk_container_add(GTK_CONTAINER(priv->toggle_scroll_common_buffer), image); gtk_widget_show(image); gtk_button_set_focus_on_click(GTK_BUTTON(priv->toggle_scroll_common_buffer), FALSE); g_object_get(G_OBJECT(toggle_scroll_common_buffer_action), "tooltip", &text, NULL); gtk_tooltips_set_tip(app->tooltips, priv->toggle_scroll_common_buffer, text, NULL); gtk_box_pack_start(GTK_BOX(statusbar), priv->toggle_scroll_common_buffer, FALSE, FALSE, 0); priv->menu_preset = gtk_menu_new(); loqui_dropdown_box_set_menu(LOQUI_DROPDOWN_BOX(priv->dbox_preset), priv->menu_preset); priv->menu_away = gtk_menu_new(); loqui_dropdown_box_set_menu(LOQUI_DROPDOWN_BOX(priv->dbox_away), priv->menu_away); return GTK_WIDGET(statusbar); } void loqui_statusbar_update_account_name(LoquiStatusbar *statusbar, LoquiAccount *account) { LoquiStatusbarPrivate *priv; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; gtk_label_set(GTK_LABEL(priv->label_account), account ? loqui_profile_account_get_name(loqui_account_get_profile(account)) : STRING_UNSELECTED); } void loqui_statusbar_update_nick(LoquiStatusbar *statusbar, LoquiAccount *account) { LoquiStatusbarPrivate *priv; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; if (account == NULL) { gtk_widget_set_sensitive(priv->dbox_preset, FALSE); gtk_widget_set_sensitive(priv->dbox_away, FALSE); gtk_label_set(GTK_LABEL(priv->label_nick), STRING_UNSELECTED); } else if (!loqui_account_get_is_connected(account)) { gtk_widget_set_sensitive(priv->dbox_preset, FALSE); gtk_widget_set_sensitive(priv->dbox_away, FALSE); gtk_label_set(GTK_LABEL(priv->label_nick), STRING_DISCONNECTED); } else { gtk_widget_set_sensitive(priv->button_nick, TRUE); gtk_widget_set_sensitive(priv->dbox_preset, TRUE); gtk_widget_set_sensitive(priv->dbox_away, TRUE); gtk_label_set(GTK_LABEL(priv->label_nick), loqui_user_get_nick(loqui_account_get_user_self(account))); } } void loqui_statusbar_update_preset_menu(LoquiStatusbar *statusbar, LoquiAccount *account) { if (account) loqui_statusbar_set_preset_menu(statusbar, loqui_profile_account_get_nick_list(loqui_account_get_profile(account))); } void loqui_statusbar_update_away_menu(LoquiStatusbar *statusbar, LoquiAccount *account) { if (account) loqui_statusbar_set_away_menu(statusbar, LOQUI_USER_GET_CLASS(loqui_account_get_user_self(account))); } void loqui_statusbar_update_away_icon(LoquiStatusbar *statusbar, LoquiAccount *account) { LoquiAwayType away; if (account == NULL) { away = LOQUI_AWAY_TYPE_OFFLINE; } else { away = loqui_user_get_away(loqui_account_get_user_self(account)); } if (account) loqui_statusbar_set_away(statusbar, LOQUI_USER_GET_CLASS(loqui_account_get_user_self(account)), away); } void loqui_statusbar_update_current_account(LoquiStatusbar *statusbar, LoquiAccount *account) { LoquiStatusbarPrivate *priv; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); priv = statusbar->priv; loqui_statusbar_update_account_name(statusbar, account); loqui_statusbar_update_nick(statusbar, account); loqui_statusbar_update_preset_menu(statusbar, account); loqui_statusbar_update_away_menu(statusbar, account); loqui_statusbar_update_away_icon(statusbar, account); } void loqui_statusbar_set_default(LoquiStatusbar *statusbar, const gchar *str) { guint context_id; g_return_if_fail(statusbar != NULL); g_return_if_fail(LOQUI_IS_STATUSBAR(statusbar)); context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(statusbar), "Default"); gtk_statusbar_pop(GTK_STATUSBAR(statusbar), context_id); gtk_statusbar_push(GTK_STATUSBAR(statusbar), context_id, str); } loqui-0.5.5/src/loqui_channel_entry_action.c0000664000175000017500000002557312121600532016133 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_channel_entry_action.h" #include #include #include #include "loqui_stock.h" #include "loqui-core-gtk.h" #include "gtkutils.h" enum { LAST_SIGNAL }; enum { PROP_0, PROP_CHANNEL_ENTRY, LAST_PROP }; struct _LoquiChannelEntryActionPrivate { }; static GtkActionClass *parent_class = NULL; /* static guint loqui_channel_entry_action_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_channel_entry_action_class_init(LoquiChannelEntryActionClass *klass); static void loqui_channel_entry_action_init(LoquiChannelEntryAction *action); static void loqui_channel_entry_action_finalize(GObject *object); static void loqui_channel_entry_action_dispose(GObject *object); static void loqui_channel_entry_action_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_channel_entry_action_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_channel_entry_action_entry_notify_is_updated_cb(LoquiChannelEntry *chent, GParamSpec *psec, LoquiChannelEntryAction *action); static void loqui_channel_entry_action_entry_notify_name_cb(LoquiChannelEntry *chent, GParamSpec *psec, LoquiChannelEntryAction *action); static void loqui_channel_entry_action_set_label_color(LoquiChannelEntryAction *ce_ction); static void loqui_channel_entry_action_entry_notify_id_cb(LoquiChannelEntry *ce_action, GParamSpec *psec, LoquiChannelEntryAction *action); static void loqui_channel_entry_set_id_accel_path(LoquiChannelEntryAction *action); GType loqui_channel_entry_action_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiChannelEntryActionClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_channel_entry_action_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiChannelEntryAction), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_channel_entry_action_init }; type = g_type_register_static(GTK_TYPE_ACTION, "LoquiChannelEntryAction", &our_info, 0); } return type; } static void loqui_channel_entry_action_finalize(GObject *object) { LoquiChannelEntryAction *action; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_ACTION(object)); action = LOQUI_CHANNEL_ENTRY_ACTION(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(action->priv); } static void loqui_channel_entry_action_dispose(GObject *object) { LoquiChannelEntryAction *action; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_ACTION(object)); action = LOQUI_CHANNEL_ENTRY_ACTION(object); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(action->channel_entry); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_channel_entry_action_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiChannelEntryAction *action; action = LOQUI_CHANNEL_ENTRY_ACTION(object); switch (param_id) { case PROP_CHANNEL_ENTRY: g_value_set_object(value, loqui_channel_entry_action_get_channel_entry(action)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_entry_action_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiChannelEntryAction *action; action = LOQUI_CHANNEL_ENTRY_ACTION(object); switch (param_id) { case PROP_CHANNEL_ENTRY: loqui_channel_entry_action_set_channel_entry(action, g_value_get_object(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_entry_action_connect_proxy(GtkAction *action, GtkWidget *proxy) { LoquiChannelEntryAction *ce_action; gchar *label; g_return_if_fail(action != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_ACTION(action)); ce_action = LOQUI_CHANNEL_ENTRY_ACTION(action); if (GTK_IS_LABEL(proxy)) { g_object_get(G_OBJECT(ce_action), "label", &label, NULL); gtk_label_set(GTK_LABEL(proxy), label); } (* parent_class->connect_proxy) (action, proxy); loqui_channel_entry_action_set_label_color(ce_action); } static void loqui_channel_entry_action_set_label_color(LoquiChannelEntryAction *action) { const gchar *color; GtkWidget *label; GList *children; GtkWidget *proxy; GSList *cur; g_return_if_fail(action != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_ACTION(action)); if(!action->channel_entry) return; for (cur = gtk_action_get_proxies(GTK_ACTION(action)); cur != NULL; cur = cur->next) { proxy = cur->data; if (loqui_channel_entry_get_has_unread_keyword(action->channel_entry)) color = HIGHLIGHT_COLOR; else if (loqui_channel_entry_get_is_updated(action->channel_entry)) color = FRESH_COLOR; else if (loqui_channel_entry_get_is_updated_weak(action->channel_entry)) color = FRESH_WEAK_COLOR; else color = NONFRESH_COLOR; if (GTK_IS_LABEL(proxy)) gtkutils_set_label_color(GTK_LABEL(proxy), color); else if (GTK_IS_MENU_ITEM(proxy)) { children = gtk_container_get_children(GTK_CONTAINER(proxy)); label = children->data; if(!label || !GTK_IS_LABEL(label)) { g_warning("Child is not label!"); return; } gtkutils_set_label_color(GTK_LABEL(label), color); } } } static void loqui_channel_entry_action_class_init(LoquiChannelEntryActionClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_channel_entry_action_finalize; object_class->dispose = loqui_channel_entry_action_dispose; object_class->get_property = loqui_channel_entry_action_get_property; object_class->set_property = loqui_channel_entry_action_set_property; GTK_ACTION_CLASS(klass)->connect_proxy = loqui_channel_entry_action_connect_proxy; g_object_class_install_property(object_class, PROP_CHANNEL_ENTRY, g_param_spec_object("channel_entry", _("ChannelEntry"), _("ChannelEntry"), LOQUI_TYPE_CHANNEL_ENTRY, G_PARAM_READWRITE)); } static void loqui_channel_entry_action_init(LoquiChannelEntryAction *action) { LoquiChannelEntryActionPrivate *priv; priv = g_new0(LoquiChannelEntryActionPrivate, 1); action->priv = priv; } LoquiChannelEntryAction* loqui_channel_entry_action_new(const gchar *name) { LoquiChannelEntryAction *action; LoquiChannelEntryActionPrivate *priv; action = g_object_new(loqui_channel_entry_action_get_type(), "name", name, NULL); priv = action->priv; return action; } static void loqui_channel_entry_action_entry_notify_is_updated_cb(LoquiChannelEntry *chent, GParamSpec *psec, LoquiChannelEntryAction *action) { loqui_channel_entry_action_set_label_color(action); } static void loqui_channel_entry_action_entry_notify_name_cb(LoquiChannelEntry *chent, GParamSpec *psec, LoquiChannelEntryAction *action) { g_object_set(G_OBJECT(action), "label", loqui_channel_entry_get_name(chent), NULL); } static void loqui_channel_entry_action_entry_notify_id_cb(LoquiChannelEntry *ce_action, GParamSpec *psec, LoquiChannelEntryAction *action) { loqui_channel_entry_set_id_accel_path(action); } static void loqui_channel_entry_set_id_accel_path(LoquiChannelEntryAction *action) { gint id; gchar *path; if (action->channel_entry) id = loqui_channel_entry_get_id(action->channel_entry); else return; if (id < 0) return; path = g_strdup_printf(SHORTCUT_CHANNEL_ENTRY_ACCEL_MAP_PREFIX "%d", id); gtk_action_set_accel_path(GTK_ACTION(action), path); g_free(path); } void loqui_channel_entry_action_set_channel_entry(LoquiChannelEntryAction *action, LoquiChannelEntry *channel_entry) { g_return_if_fail(action != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY_ACTION(action)); if (channel_entry) g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(channel_entry)); g_signal_handlers_disconnect_by_func(G_OBJECT(channel_entry), loqui_channel_entry_action_entry_notify_is_updated_cb, action); g_signal_handlers_disconnect_by_func(G_OBJECT(channel_entry), loqui_channel_entry_action_entry_notify_name_cb, action); g_signal_handlers_disconnect_by_func(G_OBJECT(channel_entry), loqui_channel_entry_action_entry_notify_id_cb, action); if (channel_entry) { action->channel_entry = g_object_ref(channel_entry); g_signal_connect(G_OBJECT(channel_entry), "notify::id", G_CALLBACK(loqui_channel_entry_action_entry_notify_id_cb), action); g_signal_connect(G_OBJECT(channel_entry), "notify::is-updated", G_CALLBACK(loqui_channel_entry_action_entry_notify_is_updated_cb), action); g_signal_connect(G_OBJECT(channel_entry), "notify::is-updated-weak", G_CALLBACK(loqui_channel_entry_action_entry_notify_is_updated_cb), action); g_signal_connect(G_OBJECT(channel_entry), "notify::has-unread-keyword", G_CALLBACK(loqui_channel_entry_action_entry_notify_is_updated_cb), action); g_signal_connect(G_OBJECT(channel_entry), "notify::name", G_CALLBACK(loqui_channel_entry_action_entry_notify_name_cb), action); g_object_set(G_OBJECT(action), "label", loqui_channel_entry_get_name(channel_entry), NULL); if (LOQUI_IS_ACCOUNT(channel_entry)) g_object_set(G_OBJECT(action), "stock_id", LOQUI_STOCK_CONSOLE, NULL); loqui_channel_entry_action_set_label_color(action); loqui_channel_entry_set_id_accel_path(action); } } LoquiChannelEntry * loqui_channel_entry_action_get_channel_entry(LoquiChannelEntryAction *action) { g_return_val_if_fail(action != NULL, NULL); g_return_val_if_fail(LOQUI_IS_CHANNEL_ENTRY_ACTION(action), NULL); return action->channel_entry; } loqui-0.5.5/src/account_list_dialog.h0000664000175000017500000000504112121600532014533 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #ifndef __ACCOUNT_LIST_DIALOG_H__ #define __ACCOUNT_LIST_DIALOG_H__ #include #include G_BEGIN_DECLS #define TYPE_ACCOUNT_LIST_DIALOG (account_list_dialog_get_type ()) #define ACCOUNT_LIST_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ACCOUNT_LIST_DIALOG, AccountListDialog)) #define ACCOUNT_LIST_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ACCOUNT_LIST_DIALOG, AccountListDialogClass)) #define IS_ACCOUNT_LIST_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ACCOUNT_LIST_DIALOG)) #define IS_ACCOUNT_LIST_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ACCOUNT_LIST_DIALOG)) #define ACCOUNT_LIST_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ACCOUNT_LIST_DIALOG, AccountListDialogClass)) typedef struct _AccountListDialog AccountListDialog; typedef struct _AccountListDialogClass AccountListDialogClass; typedef struct _AccountListDialogPrivate AccountListDialogPrivate; struct _AccountListDialog { GtkDialog parent; AccountListDialogPrivate *priv; }; struct _AccountListDialogClass { GtkDialogClass parent_class; }; #define ACCOUNT_LIST_DIALOG_RESPONSE_CONNECT 1 GtkType account_list_dialog_get_type (void) G_GNUC_CONST; GtkWidget* account_list_dialog_new(LoquiAccountManager *manager, gboolean with_connect_button); void account_list_dialog_open(GtkWindow *parent, LoquiAccountManager *manager); void account_list_dialog_open_for_connect(GtkWindow *parent, LoquiAccountManager *manager); G_END_DECLS #endif /* __ACCOUNT_LIST_DIALOG_H__ */ loqui-0.5.5/src/about.h0000664000175000017500000000176612121600532011651 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #ifndef __ABOUT_H__ #define __ABOUT_H__ void about_open(void); #endif /* __ABOUT_H__ */ loqui-0.5.5/src/channel_tree.c0000664000175000017500000003266112121600532013157 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include "config.h" #include #include #include "loqui-core-gtk.h" #include "channel_tree.h" #include "gtkutils.h" #include #include "loqui_account_manager_store.h" #include "loqui_stock.h" struct _ChannelTreePrivate { LoquiApp *app; GtkMenu *popup_menu_account; GtkMenu *popup_menu_channel; GtkMenu *popup_menu_private_talk; guint selection_changed_handler_id; }; static GtkTreeViewClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_TREE_VIEW static void channel_tree_class_init(ChannelTreeClass *klass); static void channel_tree_init(ChannelTree *channel_tree); static void channel_tree_finalize(GObject *object); static void channel_tree_destroy(GtkObject *object); static void channel_tree_row_activated_cb(ChannelTree *tree, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data); static void channel_tree_row_selected_cb(GtkTreeSelection *selection, gpointer data); static gboolean channel_tree_key_press_event(GtkWidget *widget, GdkEventKey *event); static void channel_tree_cell_data_func_basic_away(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data); static gboolean channel_tree_button_press_event_cb(GtkWidget *widget, GdkEventButton *event, gpointer data); GType channel_tree_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(ChannelTreeClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) channel_tree_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(ChannelTree), 0, /* n_preallocs */ (GInstanceInitFunc) channel_tree_init }; type = g_type_register_static(PARENT_TYPE, "ChannelTree", &our_info, 0); } return type; } static void channel_tree_class_init(ChannelTreeClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = channel_tree_finalize; gtk_object_class->destroy = channel_tree_destroy; widget_class->key_press_event = channel_tree_key_press_event; } static void channel_tree_init(ChannelTree *channel_tree) { ChannelTreePrivate *priv; priv = g_new0(ChannelTreePrivate, 1); channel_tree->priv = priv; } static void channel_tree_finalize(GObject *object) { ChannelTree *channel_tree; g_return_if_fail(object != NULL); g_return_if_fail(IS_CHANNEL_TREE(object)); channel_tree = CHANNEL_TREE(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(channel_tree->priv); } static void channel_tree_destroy(GtkObject *object) { ChannelTree *channel_tree; g_return_if_fail(object != NULL); g_return_if_fail(IS_CHANNEL_TREE(object)); channel_tree = CHANNEL_TREE(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void /* double click */ channel_tree_row_activated_cb(ChannelTree *tree, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) { GtkTreeModel *model; GtkTreeIter iter; LoquiChannelEntry *chent; model = gtk_tree_view_get_model(GTK_TREE_VIEW(tree)); gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_CHANNEL_ENTRY, &chent, -1); if (chent && LOQUI_IS_ACCOUNT(chent) && !loqui_account_get_is_connected(LOQUI_ACCOUNT(chent))) { loqui_account_connect(LOQUI_ACCOUNT(chent)); } if (chent) g_object_unref(chent); gtk_widget_grab_focus(tree->priv->app->remark_entry); } static void channel_tree_row_selected_cb(GtkTreeSelection *selection, gpointer data) { ChannelTree *tree; ChannelTreePrivate *priv; GtkTreeIter iter; GtkTreeModel *model; LoquiChannelEntry *chent; g_return_if_fail(data != NULL); g_return_if_fail(IS_CHANNEL_TREE(data)); tree = CHANNEL_TREE(data); priv = tree->priv; if(!gtk_tree_selection_get_selected(selection, &model, &iter)) return; gtk_tree_model_get(model, &iter, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_CHANNEL_ENTRY, &chent, -1); loqui_app_set_current_channel_entry(priv->app, chent); g_object_unref(chent); gtk_widget_grab_focus(priv->app->remark_entry); } static gboolean channel_tree_key_press_event(GtkWidget *widget, GdkEventKey *event) { loqui_app_grab_focus_if_key_unused(CHANNEL_TREE(widget)->priv->app, "GtkTreeView", event); if (* GTK_WIDGET_CLASS(parent_class)->key_press_event) return (* GTK_WIDGET_CLASS(parent_class)->key_press_event)(widget, event); return FALSE; } static void channel_tree_cell_data_func_basic_away(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { const gchar *stock_id; ChannelTree *tree; ChannelTreePrivate *priv; GdkPixbuf *pixbuf; tree = CHANNEL_TREE(data); priv = tree->priv; gtk_tree_model_get(tree_model, iter, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY_STOCK_ID, &stock_id, -1); if (stock_id == NULL) g_object_set(G_OBJECT(cell), "pixbuf", NULL, NULL); else { pixbuf = gtk_widget_render_icon(GTK_WIDGET(tree), stock_id, LOQUI_ICON_SIZE_FONT, NULL); g_object_set(G_OBJECT(cell), "pixbuf", pixbuf, NULL); g_object_unref(pixbuf); } } static gboolean channel_tree_button_press_event_cb(GtkWidget *widget, GdkEventButton *event, gpointer data) { ChannelTree *tree; ChannelTreePrivate *priv; GtkTreePath *clicked_path; GtkTreeIter iter; GtkMenu *menu; GtkTreeModel *model; LoquiChannelEntry *chent; GtkTreeSelection *selection; tree = CHANNEL_TREE(widget); priv = tree->priv; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); model = gtk_tree_view_get_model(GTK_TREE_VIEW(tree)); if (event->type == GDK_BUTTON_PRESS && event->button == 3) { if (!gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tree), event->x, event->y, &clicked_path, NULL, NULL, NULL)) { return FALSE; } if (!gtk_tree_selection_path_is_selected(selection, clicked_path)) gtk_tree_selection_select_path(selection, clicked_path); gtk_tree_model_get_iter(model, &iter, clicked_path); gtk_tree_model_get(model, &iter, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_CHANNEL_ENTRY, &chent, -1); g_return_val_if_fail(chent != NULL, FALSE); if (LOQUI_IS_ACCOUNT(chent)) { menu = GTK_MENU(priv->popup_menu_account); } else if (LOQUI_IS_CHANNEL(chent)) { if (loqui_channel_get_is_private_talk(LOQUI_CHANNEL(chent))) menu = GTK_MENU(priv->popup_menu_private_talk); else menu = GTK_MENU(priv->popup_menu_channel); } else { g_warning("Unknown channel entry type"); return FALSE; } g_object_unref(chent); gtk_tree_path_free(clicked_path); gtk_menu_popup(menu, NULL, NULL, NULL, tree, event->button, event->time); return TRUE; } return FALSE; } GtkWidget* channel_tree_new(LoquiApp *app, GtkMenu *menu_account, GtkMenu *menu_channel, GtkMenu *menu_private_talk) { ChannelTree *tree; ChannelTreePrivate *priv; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkCellRenderer *renderer_pb; GtkTreeSelection *selection; tree = g_object_new(channel_tree_get_type(), NULL); priv = tree->priv; priv->app = app; priv->popup_menu_account = menu_account; priv->popup_menu_channel = menu_channel; priv->popup_menu_private_talk = menu_private_talk; gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes (_("E"), renderer, NULL); gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width(column, 15); gtk_tree_view_append_column(GTK_TREE_VIEW (tree), column); gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), column); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes ("#", renderer, "text", LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_POSITION, NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); renderer = gtk_cell_renderer_text_new(); g_object_set(G_OBJECT(renderer), "ypad", 0, NULL); renderer_pb = gtk_cell_renderer_pixbuf_new(); g_object_set(G_OBJECT(renderer_pb), "stock-size", GTK_ICON_SIZE_MENU, NULL); column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Name")); gtk_tree_view_column_pack_start(column, renderer_pb, FALSE); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_add_attribute(column, renderer, "text", LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_NAME); gtk_tree_view_column_add_attribute(column, renderer, "foreground", LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_COLOR); gtk_tree_view_column_set_cell_data_func(column, renderer_pb, channel_tree_cell_data_func_basic_away, tree, NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes ("Users", renderer, "text", LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_USERS, NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); column = gtk_tree_view_column_new_with_attributes ("Op", renderer, "text", LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_OP_USERS, NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); g_signal_connect(G_OBJECT(tree), "row_activated", G_CALLBACK(channel_tree_row_activated_cb), NULL); g_signal_connect(G_OBJECT(tree), "button_press_event", G_CALLBACK(channel_tree_button_press_event_cb), NULL); priv->selection_changed_handler_id = g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(channel_tree_row_selected_cb), tree); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE); return GTK_WIDGET(tree); } void channel_tree_select_channel_entry(ChannelTree *tree, LoquiChannelEntry *chent) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; GtkTreeSelection *selection; ChannelTreePrivate *priv; LoquiAccountManagerStore *store; g_return_if_fail(tree != NULL); g_return_if_fail(IS_CHANNEL_TREE(tree)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); priv = tree->priv; model = gtk_tree_view_get_model(GTK_TREE_VIEW(tree)); store = LOQUI_ACCOUNT_MANAGER_STORE(model); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); g_signal_handler_block(selection, priv->selection_changed_handler_id); loqui_account_manager_store_get_iter_by_channel_entry(store, &iter, chent); path = gtk_tree_model_get_path(model, &iter); gtk_tree_view_expand_to_path(GTK_TREE_VIEW(tree), path); gtk_tree_path_free(path); loqui_account_manager_store_get_iter_by_channel_entry(store, &iter, chent); gtk_tree_selection_select_iter(selection, &iter); path = gtk_tree_model_get_path(model, &iter); gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(tree), path, NULL, FALSE, 0, 0); gtk_tree_path_free(path); g_signal_handler_unblock(selection, priv->selection_changed_handler_id); } void channel_tree_expand_to_channel_entry(ChannelTree *tree, LoquiChannelEntry *chent) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; ChannelTreePrivate *priv; LoquiAccountManagerStore *store; g_return_if_fail(tree != NULL); g_return_if_fail(IS_CHANNEL_TREE(tree)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); priv = tree->priv; model = gtk_tree_view_get_model(GTK_TREE_VIEW(tree)); store = LOQUI_ACCOUNT_MANAGER_STORE(model); loqui_account_manager_store_get_iter_by_channel_entry(store, &iter, chent); path = gtk_tree_model_get_path(model, &iter); gtk_tree_view_expand_to_path(GTK_TREE_VIEW(tree), path); gtk_tree_path_free(path); } loqui-0.5.5/src/loqui-notifier-gtk.h0000664000175000017500000000466312121605257014300 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_NOTIFIER_GTK_H__ #define __LOQUI_NOTIFIER_GTK_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include /* * Type checking and casting macros */ #define LOQUI_TYPE_NOTIFIER_GTK (loqui_notifier_gtk_get_type()) #define LOQUI_NOTIFIER_GTK(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_notifier_gtk_get_type(), LoquiNotifierGtk) #define LOQUI_NOTIFIER_GTK_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_notifier_gtk_get_type(), LoquiNotifierGtk const) #define LOQUI_NOTIFIER_GTK_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_notifier_gtk_get_type(), LoquiNotifierGtkClass) #define LOQUI_IS_NOTIFIER_GTK(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_notifier_gtk_get_type ()) #define LOQUI_NOTIFIER_GTK_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_notifier_gtk_get_type(), LoquiNotifierGtkClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_NOTIFIER_GTK__ #define __TYPEDEF_LOQUI_NOTIFIER_GTK__ typedef struct _LoquiNotifierGtk LoquiNotifierGtk; #endif struct _LoquiNotifierGtk { LoquiNotifier __parent__; }; /* * Class definition */ typedef struct _LoquiNotifierGtkClass LoquiNotifierGtkClass; struct _LoquiNotifierGtkClass { LoquiNotifierClass __parent__; }; /* * Public methods */ GType loqui_notifier_gtk_get_type (void) G_GNUC_CONST; #line 46 "loqui-notifier-gtk.gob" LoquiNotifierGtk * loqui_notifier_gtk_new (void); #line 78 "loqui-notifier-gtk.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-account-dialog.gob0000664000175000017500000004764712121600532015107 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ %} %h{ #include #include #include %} %{ /* #include "config.h" */ #include #include "gtkutils.h" #include #include #include #include #include #include "loqui-protocol-selection-dialog.h" #include enum { CODECONV_COLUMN_TITLE, CODECONV_COLUMN_NAME, CODECONV_COLUMN_NUMBER, }; %} class Loqui:Account:Dialog from Gtk:Dialog { private LoquiProfileAccount *profile; private GtkWidget *notebook; private GtkWidget *entry_name; private GtkWidget *check_use; private GtkWidget *entry_nick; private GtkWidget *entry_username; private GtkWidget *entry_password; private GtkWidget *entry_servername; private GtkWidget *spin_port; /* for IRC */ private GtkWidget *entry_realname; private GtkWidget *entry_userinfo; private GtkWidget *entry_autojoin; private GtkWidget *entry_quit_message; private GtkWidget *radio_automatic; private GtkWidget *radio_noconv; private GtkWidget *radio_bytable; private GtkWidget *combobox_table; private GtkWidget *radio_codeset; private GtkWidget *entry_codeset; private GtkTreeModel *model_codeconv_table; private GtkWidget *textview_nicklist; private void set_codeconv_mode(self, LoquiCodeConvMode mode) { switch (mode) { case LOQUI_CODECONV_MODE_AUTOMATIC: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_automatic), TRUE); break; case LOQUI_CODECONV_MODE_NO_CONV: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_noconv), TRUE); break; case LOQUI_CODECONV_MODE_BY_TABLE: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_bytable), TRUE); break; case LOQUI_CODECONV_MODE_CODESET: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->radio_codeset), TRUE); break; } } private LoquiCodeConvMode get_codeconv_mode(self) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_automatic))) return LOQUI_CODECONV_MODE_AUTOMATIC; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_noconv))) return LOQUI_CODECONV_MODE_NO_CONV; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_bytable))) return LOQUI_CODECONV_MODE_BY_TABLE; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->radio_codeset))) return LOQUI_CODECONV_MODE_CODESET; return 0; } private void response_cb(GtkWidget *widget, gint response, gpointer data) { Self *self; self = SELF(data); switch(response) { case GTK_RESPONSE_OK: self_save(self, selfp->profile); break; default: break; } } private void radio_toggled_cb(GtkWidget *radio, Loqui:Account:Dialog *self) { self_update_codeconv_sensitivity(self); } private void save_irc(self, LoquiProfileAccountIRC *profile_irc) { g_object_set(profile_irc, "realname", gtk_entry_get_text(GTK_ENTRY(selfp->entry_realname)), "userinfo", gtk_entry_get_text(GTK_ENTRY(selfp->entry_userinfo)), "autojoin", gtk_entry_get_text(GTK_ENTRY(selfp->entry_autojoin)), "quit_message", gtk_entry_get_text(GTK_ENTRY(selfp->entry_quit_message)), NULL); } private void save_general(self, LoquiProfileAccount *profile) { GList *nick_list; GtkTreeIter iter; const gchar *codeconv_item_name; if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->combobox_table), &iter)) gtk_tree_model_get(selfp->model_codeconv_table, &iter, CODECONV_COLUMN_NAME, &codeconv_item_name, -1); else codeconv_item_name = NULL; g_object_set(profile, "use", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->check_use)), "name", gtk_entry_get_text(GTK_ENTRY(selfp->entry_name)), "nick", gtk_entry_get_text(GTK_ENTRY(selfp->entry_nick)), "username", gtk_entry_get_text(GTK_ENTRY(selfp->entry_username)), "password", gtk_entry_get_text(GTK_ENTRY(selfp->entry_password)), "servername", gtk_entry_get_text(GTK_ENTRY(selfp->entry_servername)), "port", (int) gtk_spin_button_get_value(GTK_SPIN_BUTTON(selfp->spin_port)), "codeconv_mode", self_get_codeconv_mode(self), "codeconv_item_name", codeconv_item_name, "codeset", gtk_entry_get_text(GTK_ENTRY(selfp->entry_codeset)), NULL); nick_list = NULL; gtkutils_set_string_list_from_textview(&nick_list, GTK_TEXT_VIEW(selfp->textview_nicklist)); loqui_profile_account_set_nick_list(selfp->profile, nick_list); } private void save(self, LoquiProfileAccount *profile) { self_save_general(self, profile); if (LOQUI_IS_PROFILE_ACCOUNT_IRC(profile)) { self_save_irc(self, LOQUI_PROFILE_ACCOUNT_IRC(profile)); } } private void update_codeconv_sensitivity(self) { LoquiCodeConvMode mode; mode = self_get_codeconv_mode(self); gtk_widget_set_sensitive(selfp->entry_codeset, (mode == LOQUI_CODECONV_MODE_CODESET)); gtk_widget_set_sensitive(selfp->combobox_table, (mode == LOQUI_CODECONV_MODE_BY_TABLE)); } private void load_general(self, LoquiProfileAccount *profile) { const gchar *name; LoquiCodeConvTableItem *table; gint i; GtkTreeIter iter; gtk_entry_set_text(GTK_ENTRY(selfp->entry_name), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_name(profile))); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->check_use), loqui_profile_account_get_use(profile)); gtk_entry_set_text(GTK_ENTRY(selfp->entry_nick), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_nick(profile))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_username), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_username(profile))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_password), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_password(profile))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_servername), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_servername(profile))); gtk_spin_button_set_value(GTK_SPIN_BUTTON(selfp->spin_port), loqui_profile_account_get_port(profile)); table = loqui_protocol_get_codeconv_table(loqui_profile_account_get_protocol(profile)); name = loqui_profile_account_get_codeconv_item_name(profile); gtk_list_store_clear(GTK_LIST_STORE(selfp->model_codeconv_table)); for (i = 0; table[i].name != NULL; i++) { gtk_list_store_append(GTK_LIST_STORE(selfp->model_codeconv_table), &iter); gtk_list_store_set(GTK_LIST_STORE(selfp->model_codeconv_table), &iter, CODECONV_COLUMN_TITLE, loqui_codeconv_translate(table[i].title), CODECONV_COLUMN_NAME, table[i].name, -1); if (name != NULL && strcmp(table[i].name, name) == 0) { gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->combobox_table), &iter); } } self_set_codeconv_mode(self, loqui_profile_account_get_codeconv_mode(LOQUI_PROFILE_ACCOUNT(profile))); self_update_codeconv_sensitivity(self); gtk_entry_set_text(GTK_ENTRY(selfp->entry_codeset), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_get_codeset(LOQUI_PROFILE_ACCOUNT(profile)))); gtkutils_set_textview_from_string_list(GTK_TEXT_VIEW(selfp->textview_nicklist), loqui_profile_account_get_nick_list(profile)); } private void load_irc(self, LoquiProfileAccountIRC *profile_irc) { gtk_entry_set_text(GTK_ENTRY(selfp->entry_realname), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_realname(profile_irc))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_userinfo), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_userinfo(profile_irc))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_autojoin), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_autojoin(profile_irc))); gtk_entry_set_text(GTK_ENTRY(selfp->entry_quit_message), LOQUI_UTILS_EMPTY_IF_NULL(loqui_profile_account_irc_get_quit_message(profile_irc))); } private void load(self, LoquiProfileAccount *profile) { self_load_general(self, profile); if (LOQUI_IS_PROFILE_ACCOUNT_IRC(profile)) { self_load_irc(self, LOQUI_PROFILE_ACCOUNT_IRC(profile)); } } private void append_profile_page(self) { GtkWidget *hbox, *vbox_c; GtkWidget *vbox; GtkWidget *frame; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("Profile"))); hbox = gtk_hbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); gtkutils_add_label_entry(hbox, _("Account name:"), &selfp->entry_name, NULL); selfp->check_use = gtk_check_button_new_with_label(_("Connect by default")); gtk_box_pack_start(GTK_BOX(hbox), selfp->check_use, TRUE, TRUE, 0); frame = gtk_frame_new(_("User")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); vbox_c = gtk_vbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox_c); gtkutils_add_label_entry(vbox_c, _("Nickname:"), &selfp->entry_nick, NULL); gtkutils_add_label_entry(vbox_c, _("User name:"), &selfp->entry_username, NULL); gtkutils_add_label_entry(vbox_c, _("Password:"), &selfp->entry_password, NULL); gtk_entry_set_visibility(GTK_ENTRY(selfp->entry_password), FALSE); frame = gtk_frame_new(_("Server")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); vbox_c = gtk_vbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox_c); gtkutils_add_label_entry(vbox_c, _("Hostname:"), &selfp->entry_servername, NULL); gtkutils_add_label_spin_button(vbox_c, _("Port:"), &selfp->spin_port, 1, 65535, 1); } private void append_irc_page(self) { GtkWidget *vbox; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("IRC"))); gtkutils_add_label_entry(vbox, _("Realname:"), &selfp->entry_realname, NULL); gtkutils_add_label_entry(vbox, _("User information:"), &selfp->entry_userinfo, NULL); gtkutils_add_label_entry(vbox, _("Auto join channels (ex. #a,#b,#c keyA,keyB):"), &selfp->entry_autojoin, NULL); gtkutils_add_label_entry(vbox, _("Quit message:"), &selfp->entry_quit_message, NULL); } private void append_code_page(self) { GtkWidget *vbox; GtkCellRenderer *cell; GtkWidget *frame; GSList *group_codeconv = NULL; GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *label; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("Code"))); frame = gtk_frame_new(_("Code convertion")); gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 2); vbox1 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox1); selfp->radio_automatic = gtk_radio_button_new_with_mnemonic(NULL, _("Automatic detection by locale")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_automatic, FALSE, FALSE, 0); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_automatic)); g_signal_connect(G_OBJECT(selfp->radio_automatic), "toggled", G_CALLBACK(self_radio_toggled_cb), self); selfp->radio_noconv = gtk_radio_button_new_with_mnemonic(NULL, _("No convertion")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_noconv, FALSE, FALSE, 0); gtk_radio_button_set_group(GTK_RADIO_BUTTON(selfp->radio_noconv), group_codeconv); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_noconv)); g_signal_connect(G_OBJECT(selfp->radio_noconv), "toggled", G_CALLBACK(self_radio_toggled_cb), self); selfp->radio_bytable = gtk_radio_button_new_with_mnemonic(NULL, _("Select from the table")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_bytable, FALSE, FALSE, 0); gtk_radio_button_set_group(GTK_RADIO_BUTTON(selfp->radio_bytable), group_codeconv); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_bytable)); g_signal_connect(G_OBJECT(selfp->radio_bytable), "toggled", G_CALLBACK(self_radio_toggled_cb), self); selfp->model_codeconv_table = GTK_TREE_MODEL(gtk_list_store_new(CODECONV_COLUMN_NUMBER, G_TYPE_STRING, G_TYPE_STRING)); selfp->combobox_table = gtk_combo_box_new_with_model(selfp->model_codeconv_table); gtk_box_pack_start(GTK_BOX(vbox1), selfp->combobox_table, FALSE, FALSE, 0); cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->combobox_table), cell, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->combobox_table), cell, "text", 0, NULL); selfp->radio_codeset = gtk_radio_button_new_with_mnemonic(NULL, _("Specify codeset")); gtk_box_pack_start(GTK_BOX(vbox1), selfp->radio_codeset, FALSE, FALSE, 0); gtk_radio_button_set_group(GTK_RADIO_BUTTON(selfp->radio_codeset), group_codeconv); group_codeconv = gtk_radio_button_get_group(GTK_RADIO_BUTTON(selfp->radio_codeset)); g_signal_connect(G_OBJECT(selfp->radio_codeset), "toggled", G_CALLBACK(self_radio_toggled_cb), self); hbox1 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 0); label = gtk_label_new(_("Codeset: ")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0); selfp->entry_codeset = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox1), selfp->entry_codeset, TRUE, TRUE, 0); } private void append_nick_page(self) { GtkWidget *vbox; GtkWidget *frame; vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(selfp->notebook), vbox, gtk_label_new(_("Nick"))); frame = gtkutils_create_framed_textview(&selfp->textview_nicklist, _("List of often used nick(Separate each words with linefeeds)")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); } public GtkWidget* new(LoquiProfileAccount *profile) { GtkWidget *vbox; Self *self; self = GET_NEW; selfp->profile = profile; gtk_dialog_add_buttons(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect(G_OBJECT(self), "response", G_CALLBACK(loqui_account_dialog_response_cb), self); vbox = GTK_DIALOG(self)->vbox; selfp->notebook = gtk_notebook_new(); gtk_box_pack_start(GTK_BOX(vbox), selfp->notebook, TRUE, TRUE, 0); self_append_profile_page(self); if (LOQUI_IS_PROFILE_ACCOUNT_IRC(profile)) { self_append_irc_page(self); } self_append_code_page(self); self_append_nick_page(self); self_load(self, profile); gtk_widget_show_all(GTK_WIDGET(self)); return GTK_WIDGET(self); } public void open_add_dialog(GtkWindow *parent, LoquiAccountManager *manager) { LoquiAccountDialog *dialog; LoquiProfileAccount *profile; LoquiAccount *account; gint response; LoquiProtocolSelectionDialog *protocol_dialog; LoquiProtocol *protocol; protocol = loqui_protocol_manager_get_protocol(manager->protocol_manager, "IRC"); /* FIXME */ protocol_dialog = LOQUI_PROTOCOL_SELECTION_DIALOG(loqui_protocol_selection_dialog_new(parent, manager->protocol_manager, protocol)); response = gtk_dialog_run(GTK_DIALOG(protocol_dialog)); if (response != GTK_RESPONSE_OK || (protocol = loqui_protocol_selection_dialog_get_protocol(protocol_dialog)) == NULL) { gtk_widget_destroy(GTK_WIDGET(protocol_dialog)); return; } g_object_ref(protocol); gtk_widget_destroy(GTK_WIDGET(protocol_dialog)); profile = loqui_protocol_create_profile_account(protocol); dialog = SELF(self_new(profile)); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(GTK_WIDGET(dialog)); if (response == GTK_RESPONSE_OK) { account = loqui_protocol_create_account(protocol, profile); loqui_account_manager_add_account(manager, account); g_object_unref(account); loqui_account_manager_save_accounts(manager); } g_object_unref(profile); g_object_unref(protocol); } public void open_configure_dialog(GtkWindow *parent, LoquiAccountManager *manager, LoquiAccount *account) { GtkWidget *dialog; dialog = self_new(loqui_account_get_profile(account)); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); /* FIXME: should do account_manager_update_account(manager, account); */ loqui_account_manager_save_accounts(manager); } public void open_remove_dialog(GtkWindow *parent, LoquiAccountManager *manager, LoquiAccount *account) { GtkWidget *dialog; gint response; dialog = gtk_message_dialog_new(parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, _("This account's configuration and connection will be removed.\n" "Do you really want to remove this account?")); response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); if (response == GTK_RESPONSE_YES) { loqui_account_manager_remove_account(manager, account); loqui_account_manager_save_accounts(manager); loqui_debug_puts("Removed account."); } } } loqui-0.5.5/src/loqui-style-entry.h0000664000175000017500000001313512121605257014167 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ #include #include #ifndef __LOQUI_STYLE_ENTRY_H__ #define __LOQUI_STYLE_ENTRY_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define LOQUI_TYPE_STYLE_ENTRY (loqui_style_entry_get_type()) #define LOQUI_STYLE_ENTRY(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_style_entry_get_type(), LoquiStyleEntry) #define LOQUI_STYLE_ENTRY_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_style_entry_get_type(), LoquiStyleEntry const) #define LOQUI_STYLE_ENTRY_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_style_entry_get_type(), LoquiStyleEntryClass) #define LOQUI_IS_STYLE_ENTRY(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_style_entry_get_type ()) #define LOQUI_STYLE_ENTRY_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_style_entry_get_type(), LoquiStyleEntryClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_STYLE_ENTRY__ #define __TYPEDEF_LOQUI_STYLE_ENTRY__ typedef struct _LoquiStyleEntry LoquiStyleEntry; #endif struct _LoquiStyleEntry { GObject __parent__; /*< public >*/ gboolean is_color_default; gchar * color_string; GdkColor color; gboolean is_font_default; PangoFontDescription * font_desc; gchar * string; int i; double d; }; /* * Class definition */ typedef struct _LoquiStyleEntryClass LoquiStyleEntryClass; struct _LoquiStyleEntryClass { GObjectClass __parent__; }; /* * Public methods */ GType loqui_style_entry_get_type (void) G_GNUC_CONST; #line 15 "loqui-style-entry.gob" gboolean loqui_style_entry_get_is_color_default (LoquiStyleEntry * self); #line 64 "loqui-style-entry.h" #line 15 "loqui-style-entry.gob" void loqui_style_entry_set_is_color_default (LoquiStyleEntry * self, gboolean val); #line 68 "loqui-style-entry.h" #line 32 "loqui-style-entry.gob" gboolean loqui_style_entry_get_is_font_default (LoquiStyleEntry * self); #line 71 "loqui-style-entry.h" #line 32 "loqui-style-entry.gob" void loqui_style_entry_set_is_font_default (LoquiStyleEntry * self, gboolean val); #line 75 "loqui-style-entry.h" #line 43 "loqui-style-entry.gob" gchar * loqui_style_entry_get_string (LoquiStyleEntry * self); #line 78 "loqui-style-entry.h" #line 43 "loqui-style-entry.gob" void loqui_style_entry_set_string (LoquiStyleEntry * self, gchar * val); #line 82 "loqui-style-entry.h" #line 55 "loqui-style-entry.gob" gint loqui_style_entry_get_integer (LoquiStyleEntry * self); #line 85 "loqui-style-entry.h" #line 54 "loqui-style-entry.gob" void loqui_style_entry_set_integer (LoquiStyleEntry * self, gint val); #line 89 "loqui-style-entry.h" #line 63 "loqui-style-entry.gob" gdouble loqui_style_entry_get_double (LoquiStyleEntry * self); #line 92 "loqui-style-entry.h" #line 62 "loqui-style-entry.gob" void loqui_style_entry_set_double (LoquiStyleEntry * self, gdouble val); #line 96 "loqui-style-entry.h" #line 66 "loqui-style-entry.gob" gboolean loqui_style_entry_set_color_string (LoquiStyleEntry * self, const gchar * color_string); #line 100 "loqui-style-entry.h" #line 82 "loqui-style-entry.gob" gchar * loqui_style_entry_get_color_string (LoquiStyleEntry * self); #line 103 "loqui-style-entry.h" /* * Argument wrapping macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define LOQUI_STYLE_ENTRY_PROP_IS_COLOR_DEFAULT(arg) "is_color_default", __extension__ ({gboolean z = (arg); z;}) #define LOQUI_STYLE_ENTRY_GET_PROP_IS_COLOR_DEFAULT(arg) "is_color_default", __extension__ ({gboolean *z = (arg); z;}) #define LOQUI_STYLE_ENTRY_PROP_COLOR_STRING(arg) "color_string", __extension__ ({gchar *z = (arg); z;}) #define LOQUI_STYLE_ENTRY_GET_PROP_COLOR_STRING(arg) "color_string", __extension__ ({gchar **z = (arg); z;}) #define LOQUI_STYLE_ENTRY_PROP_IS_FONT_DEFAULT(arg) "is_font_default", __extension__ ({gboolean z = (arg); z;}) #define LOQUI_STYLE_ENTRY_GET_PROP_IS_FONT_DEFAULT(arg) "is_font_default", __extension__ ({gboolean *z = (arg); z;}) #define LOQUI_STYLE_ENTRY_PROP_STRING(arg) "string", __extension__ ({gchar *z = (arg); z;}) #define LOQUI_STYLE_ENTRY_GET_PROP_STRING(arg) "string", __extension__ ({gchar **z = (arg); z;}) #define LOQUI_STYLE_ENTRY_PROP_INTEGER(arg) "integer", __extension__ ({gint z = (arg); z;}) #define LOQUI_STYLE_ENTRY_GET_PROP_INTEGER(arg) "integer", __extension__ ({gint *z = (arg); z;}) #define LOQUI_STYLE_ENTRY_PROP_DOUBLE(arg) "double", __extension__ ({gdouble z = (arg); z;}) #define LOQUI_STYLE_ENTRY_GET_PROP_DOUBLE(arg) "double", __extension__ ({gdouble *z = (arg); z;}) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define LOQUI_STYLE_ENTRY_PROP_IS_COLOR_DEFAULT(arg) "is_color_default",(gboolean )(arg) #define LOQUI_STYLE_ENTRY_GET_PROP_IS_COLOR_DEFAULT(arg) "is_color_default",(gboolean *)(arg) #define LOQUI_STYLE_ENTRY_PROP_COLOR_STRING(arg) "color_string",(gchar *)(arg) #define LOQUI_STYLE_ENTRY_GET_PROP_COLOR_STRING(arg) "color_string",(gchar **)(arg) #define LOQUI_STYLE_ENTRY_PROP_IS_FONT_DEFAULT(arg) "is_font_default",(gboolean )(arg) #define LOQUI_STYLE_ENTRY_GET_PROP_IS_FONT_DEFAULT(arg) "is_font_default",(gboolean *)(arg) #define LOQUI_STYLE_ENTRY_PROP_STRING(arg) "string",(gchar *)(arg) #define LOQUI_STYLE_ENTRY_GET_PROP_STRING(arg) "string",(gchar **)(arg) #define LOQUI_STYLE_ENTRY_PROP_INTEGER(arg) "integer",(gint )(arg) #define LOQUI_STYLE_ENTRY_GET_PROP_INTEGER(arg) "integer",(gint *)(arg) #define LOQUI_STYLE_ENTRY_PROP_DOUBLE(arg) "double",(gdouble )(arg) #define LOQUI_STYLE_ENTRY_GET_PROP_DOUBLE(arg) "double",(gdouble *)(arg) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/account_list_dialog.c0000664000175000017500000003156412121600532014537 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #include "config.h" #include "account_list_dialog.h" #include "loqui-account-dialog.h" #include #include #include struct _AccountListDialogPrivate { LoquiAccountManager *manager; GtkWidget *treeview; GtkWidget *add_button; GtkWidget *property_button; GtkWidget *remove_button; GtkListStore *list_store; }; static GtkDialogClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_DIALOG enum { COLUMN_NAME, COLUMN_ACCOUNT, COLUMN_NUMBER }; static void account_list_dialog_class_init(AccountListDialogClass *klass); static void account_list_dialog_init(AccountListDialog *account_list_dialog); static void account_list_dialog_finalize(GObject *object); static void account_list_dialog_destroy(GtkObject *object); static void account_list_dialog_construct_list(AccountListDialog *dialog); static LoquiAccount* account_list_dialog_get_selected_account(AccountListDialog *dialog); static GList * account_list_dialog_get_selected_account_list(AccountListDialog *dialog); static void account_list_dialog_add_cb(GtkWidget *widget, AccountListDialog *dialog); static void account_list_dialog_remove_cb(GtkWidget *widget, AccountListDialog *dialog); static void account_list_dialog_properties_cb(GtkWidget *widget, AccountListDialog *dialog); static void account_list_update_button_status(AccountListDialog *dialog, GtkTreeSelection *selection); GType account_list_dialog_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(AccountListDialogClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) account_list_dialog_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(AccountListDialog), 0, /* n_preallocs */ (GInstanceInitFunc) account_list_dialog_init }; type = g_type_register_static(PARENT_TYPE, "AccountListDialog", &our_info, 0); } return type; } static void account_list_dialog_class_init (AccountListDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = account_list_dialog_finalize; gtk_object_class->destroy = account_list_dialog_destroy; } static void account_list_dialog_init (AccountListDialog *account_list_dialog) { AccountListDialogPrivate *priv; priv = g_new0(AccountListDialogPrivate, 1); account_list_dialog->priv = priv; } static void account_list_dialog_finalize (GObject *object) { AccountListDialog *account_list_dialog; g_return_if_fail(object != NULL); g_return_if_fail(IS_ACCOUNT_LIST_DIALOG(object)); account_list_dialog = ACCOUNT_LIST_DIALOG(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(account_list_dialog->priv); } static void account_list_dialog_destroy (GtkObject *object) { AccountListDialog *account_list_dialog; g_return_if_fail(object != NULL); g_return_if_fail(IS_ACCOUNT_LIST_DIALOG(object)); account_list_dialog = ACCOUNT_LIST_DIALOG(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void account_list_dialog_construct_list(AccountListDialog *dialog) { AccountListDialogPrivate *priv; GList *account_list, *cur; GtkTreeIter iter; LoquiAccount *account; g_return_if_fail(dialog != NULL); g_return_if_fail(IS_ACCOUNT_LIST_DIALOG(dialog)); priv = dialog->priv; if(priv->list_store) { gtk_list_store_clear(priv->list_store); } else { priv->list_store = gtk_list_store_new(COLUMN_NUMBER, G_TYPE_STRING, LOQUI_TYPE_ACCOUNT); } account_list = loqui_account_manager_get_account_list(priv->manager); for(cur = account_list; cur != NULL; cur = cur->next) { account = LOQUI_ACCOUNT(cur->data); gtk_list_store_append(priv->list_store, &iter); gtk_list_store_set(priv->list_store, &iter, COLUMN_NAME, loqui_profile_account_get_name(loqui_account_get_profile(account)), COLUMN_ACCOUNT, account, -1); } gtk_tree_view_set_model(GTK_TREE_VIEW(priv->treeview), GTK_TREE_MODEL(priv->list_store)); } static LoquiAccount* account_list_dialog_get_selected_account(AccountListDialog *dialog) { GList *ac_list; LoquiAccount *account; g_return_val_if_fail(dialog != NULL, NULL); g_return_val_if_fail(IS_ACCOUNT_LIST_DIALOG(dialog), NULL); if ((ac_list = account_list_dialog_get_selected_account_list(dialog)) == NULL) return NULL; account = g_list_nth_data(ac_list, 0); g_list_free(ac_list); return account; } /** @return: GList of Account. do g_object_unref for each entry and g_list_free() itself. */ static GList * account_list_dialog_get_selected_account_list(AccountListDialog *dialog) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; LoquiAccount *account = NULL; GList *list, *ac_list = NULL, *cur; g_return_val_if_fail(dialog != NULL, NULL); g_return_val_if_fail(IS_ACCOUNT_LIST_DIALOG(dialog), NULL); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->priv->treeview)); if ((list = gtk_tree_selection_get_selected_rows(selection, &model)) == NULL) return NULL; for (cur = list; cur != NULL; cur = cur->next) { path = cur->data; gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(GTK_TREE_MODEL(dialog->priv->list_store), &iter, COLUMN_ACCOUNT, &account, -1); ac_list = g_list_append(ac_list, account); } g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); g_list_free(list); return ac_list; } static void account_list_dialog_add_cb(GtkWidget *widget, AccountListDialog *dialog) { g_return_if_fail(dialog != NULL); g_return_if_fail(IS_ACCOUNT_LIST_DIALOG(dialog)); loqui_account_dialog_open_add_dialog(GTK_WINDOW(dialog), dialog->priv->manager); account_list_dialog_construct_list(dialog); } static void account_list_dialog_remove_cb(GtkWidget *widget, AccountListDialog *dialog) { LoquiAccount *account; g_return_if_fail(dialog != NULL); g_return_if_fail(IS_ACCOUNT_LIST_DIALOG(dialog)); account = account_list_dialog_get_selected_account(dialog); if(!account) return; loqui_account_dialog_open_remove_dialog(GTK_WINDOW(dialog), dialog->priv->manager, account); g_object_unref(account); account_list_dialog_construct_list(dialog); } static void account_list_dialog_properties_cb(GtkWidget *widget, AccountListDialog *dialog) { LoquiAccount *account; g_return_if_fail(dialog != NULL); g_return_if_fail(IS_ACCOUNT_LIST_DIALOG(dialog)); account = account_list_dialog_get_selected_account(dialog); if(!account) return; loqui_account_dialog_open_configure_dialog(GTK_WINDOW(dialog), dialog->priv->manager, account); g_object_unref(account); account_list_dialog_construct_list(dialog); } static void account_list_update_button_status(AccountListDialog *dialog, GtkTreeSelection *selection) { gboolean account_editable; gint selected_rows; AccountListDialogPrivate *priv; g_return_if_fail(dialog != NULL); g_return_if_fail(IS_ACCOUNT_LIST_DIALOG(dialog)); priv = dialog->priv; selected_rows = gtk_tree_selection_count_selected_rows(selection); account_editable = (selected_rows == 1); gtk_widget_set_sensitive(priv->property_button, account_editable); gtk_widget_set_sensitive(priv->remove_button, account_editable); gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), ACCOUNT_LIST_DIALOG_RESPONSE_CONNECT, (selected_rows > 0)); } GtkWidget* account_list_dialog_new(LoquiAccountManager *manager, gboolean with_connect_button) { AccountListDialog *dialog; AccountListDialogPrivate *priv; GtkWidget *scrolled_win; GtkWidget *hbox; GtkWidget *vbox; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkTreeSelection *selection; dialog = g_object_new(account_list_dialog_get_type(), NULL); priv = dialog->priv; priv->manager = manager; gtk_window_set_title(GTK_WINDOW(dialog), _("Account List")); /* TODO: destroy with parent window */ gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 5); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(hbox), scrolled_win, TRUE, TRUE, 0); priv->treeview = gtk_tree_view_new(); account_list_dialog_construct_list(dialog); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->treeview)); gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); g_signal_connect_swapped(G_OBJECT(selection), "changed", G_CALLBACK(account_list_update_button_status), dialog); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Name"), renderer, "text", COLUMN_NAME, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(priv->treeview), column); gtk_widget_set_usize(priv->treeview, 200, 100); gtk_container_add(GTK_CONTAINER(scrolled_win), priv->treeview); vbox = gtk_vbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); priv->add_button = gtk_button_new_from_stock(GTK_STOCK_ADD); g_signal_connect(G_OBJECT(priv->add_button), "clicked", G_CALLBACK(account_list_dialog_add_cb), dialog); gtk_box_pack_start(GTK_BOX(vbox), priv->add_button, FALSE, FALSE, 5); priv->remove_button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); g_signal_connect(G_OBJECT(priv->remove_button), "clicked", G_CALLBACK(account_list_dialog_remove_cb), dialog); gtk_box_pack_start(GTK_BOX(vbox), priv->remove_button, FALSE, FALSE, 5); priv->property_button = gtk_button_new_from_stock(GTK_STOCK_PROPERTIES); g_signal_connect(G_OBJECT(priv->property_button), "clicked", G_CALLBACK(account_list_dialog_properties_cb), dialog); gtk_box_pack_start(GTK_BOX(vbox), priv->property_button, FALSE, FALSE, 5); if (with_connect_button) gtk_dialog_add_button(GTK_DIALOG(dialog), _("Connect"), ACCOUNT_LIST_DIALOG_RESPONSE_CONNECT); gtk_widget_show_all(GTK_WIDGET(GTK_DIALOG(dialog)->vbox)); account_list_update_button_status(dialog, selection); return GTK_WIDGET(dialog); } void account_list_dialog_open(GtkWindow *parent, LoquiAccountManager *manager) { GtkWidget *dialog; dialog = account_list_dialog_new(manager, FALSE); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } void account_list_dialog_open_for_connect(GtkWindow *parent, LoquiAccountManager *manager) { GtkWidget *dialog; GList *ac_list; GtkTreeSelection *selection; GtkTreeIter iter; GtkTreeModel *model; LoquiAccount *account; dialog = account_list_dialog_new(manager, TRUE); /* gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); */ gtk_window_present(GTK_WINDOW(dialog)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ACCOUNT_LIST_DIALOG(dialog)->priv->treeview)); model = GTK_TREE_MODEL(ACCOUNT_LIST_DIALOG(dialog)->priv->list_store); if(gtk_tree_model_get_iter_first(model, &iter)) { do { gtk_tree_model_get(model, &iter, COLUMN_ACCOUNT, &account, -1); if (loqui_profile_account_get_use(loqui_account_get_profile(account))) gtk_tree_selection_select_iter(selection, &iter); g_object_unref(account); } while (gtk_tree_model_iter_next(model, &iter)); } if (gtk_dialog_run(GTK_DIALOG(dialog)) == ACCOUNT_LIST_DIALOG_RESPONSE_CONNECT) { ac_list = account_list_dialog_get_selected_account_list(ACCOUNT_LIST_DIALOG(dialog)); g_list_foreach(ac_list, (GFunc) loqui_account_connect, NULL); g_list_foreach(ac_list, (GFunc) g_object_unref, NULL); g_list_free(ac_list); } gtk_widget_destroy(dialog); } loqui-0.5.5/src/loqui_channel_buffer_gtk.c0000664000175000017500000004166612121600532015554 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include "config.h" #include #include "loqui_channel_buffer_gtk.h" #include #include #include "gtkutils.h" #include "loqui-core-gtk.h" #include #include #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" /* enum { LAST_SIGNAL }; */ struct _LoquiChannelBufferGtkPrivate { LoquiPrefPartial *ppref_channel_buffer; gboolean is_common_buffer; }; static GtkTextBufferClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_TEXT_BUFFER static GtkTextTagTable *default_tag_table; /* static guint loqui_channel_buffer_gtk_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_channel_buffer_gtk_interface_buffer_init(LoquiChannelBufferIface *iface); static void loqui_channel_buffer_gtk_class_init(LoquiChannelBufferGtkClass *klass); static void loqui_channel_buffer_gtk_init(LoquiChannelBufferGtk *channel_buffer); static void loqui_channel_buffer_gtk_finalize(GObject *object); static void loqui_channel_buffer_gtk_append_message_text(LoquiChannelBuffer *buffer_p, LoquiMessageText *msgtext); static void loqui_channel_buffer_gtk_delete_old_lines(LoquiChannelBufferGtk *buffer); static void loqui_channel_buffer_gtk_load_styles(LoquiChannelBufferGtk *buffer); static void loqui_channel_buffer_gtk_ppref_changed_cb(LoquiPrefPartial *pref, const gchar *key, gpointer data); #define TIME_LEN 11 GType loqui_channel_buffer_gtk_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiChannelBufferGtkClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_channel_buffer_gtk_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiChannelBufferGtk), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_channel_buffer_gtk_init }; static const GInterfaceInfo ibuf_info = { (GInterfaceInitFunc) loqui_channel_buffer_gtk_interface_buffer_init, /* interface_init */ NULL, /* interface_finalize */ NULL /* interface_data */ }; type = g_type_register_static(PARENT_TYPE, "LoquiChannelBufferGtk", &our_info, 0); g_type_add_interface_static(type, LOQUI_TYPE_CHANNEL_BUFFER, &ibuf_info); } return type; } static void loqui_channel_buffer_gtk_interface_buffer_init(LoquiChannelBufferIface *iface) { iface->append_message_text = loqui_channel_buffer_gtk_append_message_text; } static void loqui_channel_buffer_gtk_init_tags(void) { GtkTextTag *tag; if(default_tag_table) return; default_tag_table = gtk_text_tag_table_new(); tag = gtk_text_tag_new("global"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("time"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("info"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("normal"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("error"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("notice"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("action"); g_object_set(tag, "style", PANGO_STYLE_ITALIC, NULL); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("link"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("hover"); g_object_set(tag, "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("transparent"); gtk_text_tag_table_add(default_tag_table, tag); tag = gtk_text_tag_new("highlight"); g_object_set(tag, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_tag_table_add(default_tag_table, tag); } static void loqui_channel_buffer_gtk_class_init(LoquiChannelBufferGtkClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_channel_buffer_gtk_finalize; if(default_tag_table == NULL) loqui_channel_buffer_gtk_init_tags(); klass->tag_table = default_tag_table; } static void loqui_channel_buffer_gtk_init(LoquiChannelBufferGtk *channel_buffer) { LoquiChannelBufferGtkPrivate *priv; priv = g_new0(LoquiChannelBufferGtkPrivate, 1); channel_buffer->priv = priv; priv->is_common_buffer = FALSE; channel_buffer->show_account_name = FALSE; channel_buffer->show_channel_name = FALSE; } static void loqui_channel_buffer_gtk_finalize(GObject *object) { LoquiChannelBufferGtk *channel_buffer; LoquiChannelBufferGtkPrivate *priv; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(object)); channel_buffer = LOQUI_CHANNEL_BUFFER_GTK(object); priv = channel_buffer->priv; g_signal_handlers_disconnect_by_func(priv->ppref_channel_buffer, loqui_channel_buffer_gtk_ppref_changed_cb, channel_buffer); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->ppref_channel_buffer); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(channel_buffer->priv); } static void loqui_channel_buffer_gtk_delete_old_lines(LoquiChannelBufferGtk *buffer) { LoquiChannelBufferGtkPrivate *priv; GtkTextIter cut_iter_start, cut_iter_end; gint line_num; gint max_line_number; g_return_if_fail(buffer != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer)); priv = buffer->priv; max_line_number = priv->is_common_buffer ? loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "CommonBufferMaxLineNumber", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_COMMON_BUFFER_MAX_LINE_NUMBER, NULL) : loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "ChannelBufferMaxLineNumber", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_CHANNEL_BUFFER_MAX_LINE_NUMBER, NULL); line_num = gtk_text_buffer_get_line_count(GTK_TEXT_BUFFER(buffer)) - 1; // except last return code if (0 < max_line_number && line_num > max_line_number) { gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(buffer), &cut_iter_start); cut_iter_end = cut_iter_start; if(gtk_text_iter_forward_lines(&cut_iter_end, line_num - max_line_number)) gtk_text_buffer_delete(GTK_TEXT_BUFFER(buffer), &cut_iter_start, &cut_iter_end); else { g_warning("Can't delete buffer."); } } } LoquiChannelBufferGtk* loqui_channel_buffer_gtk_new(LoquiPrefPartial *ppref_channel_buffer) { LoquiChannelBufferGtk *channel_buffer; LoquiChannelBufferGtkPrivate *priv; GtkTextBuffer *textbuf; GtkTextIter iter; GtkTextIter start_iter, end_iter; if(default_tag_table == NULL) loqui_channel_buffer_gtk_init_tags(); channel_buffer = g_object_new(loqui_channel_buffer_gtk_get_type(), "tag_table", default_tag_table, NULL); priv = channel_buffer->priv; gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(channel_buffer), &start_iter); gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(channel_buffer), &end_iter); gtk_text_buffer_apply_tag_by_name(GTK_TEXT_BUFFER(channel_buffer), "global", &start_iter, &end_iter); priv->ppref_channel_buffer = g_object_ref(ppref_channel_buffer); textbuf = GTK_TEXT_BUFFER(channel_buffer); gtk_text_buffer_get_start_iter(textbuf, &iter); gtk_text_buffer_create_mark(textbuf, "end", &iter, FALSE); gtk_text_buffer_create_mark(textbuf, "hover", &iter, FALSE); loqui_channel_buffer_gtk_load_styles(channel_buffer); loqui_pref_partial_connect__changed_partial(priv->ppref_channel_buffer, loqui_channel_buffer_gtk_ppref_changed_cb, channel_buffer); return channel_buffer; } static void loqui_channel_buffer_gtk_ppref_changed_cb(LoquiPrefPartial *ppref, const gchar *key, gpointer data) { LoquiChannelBufferGtk *buffer; GtkTextTag *tag; g_return_if_fail(key != NULL); buffer = LOQUI_CHANNEL_BUFFER_GTK(data); #define GET_TAG(buffer, name) gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(GTK_TEXT_BUFFER(buffer)), name) #define SET_STRING_IF_MATCHED(tag_name, tag_attribute, _key) { \ if (strcmp(key, _key) == 0) { \ tag = GET_TAG(buffer, tag_name); \ if (tag == NULL) { g_warning("null tag: %s\n", tag_name); } \ g_return_if_fail(tag != NULL); \ g_object_set(tag, tag_attribute, \ loqui_pref_partial_get_string(ppref, _key, NULL), NULL); \ return; \ } \ } SET_STRING_IF_MATCHED("time", "foreground", "TimeColor"); SET_STRING_IF_MATCHED("info", "foreground", "InfoColor"); SET_STRING_IF_MATCHED("normal", "foreground", "NormalColor"); SET_STRING_IF_MATCHED("error", "foreground", "ErrorColor"); SET_STRING_IF_MATCHED("notice", "foreground", "NoticeColor"); SET_STRING_IF_MATCHED("link", "foreground", "LinkColor"); SET_STRING_IF_MATCHED("highlight", "foreground", "HighlightColor"); SET_STRING_IF_MATCHED("global", "font", "GlobalFont"); #undef SET_STRING_IF_MATCHED #undef GET_TAG } static void loqui_channel_buffer_gtk_load_styles(LoquiChannelBufferGtk *buffer) { LoquiChannelBufferGtkPrivate *priv; PangoFontDescription *font_desc; gchar *font_name; priv = buffer->priv; font_desc = gtkutils_get_default_font_desc(); font_name = pango_font_description_to_string(font_desc); pango_font_description_free(font_desc); #define SET_STRING_DEFAULT(key, value) loqui_pref_partial_set_default_string(priv->ppref_channel_buffer, key, value) SET_STRING_DEFAULT("TimeColor", "blue"); SET_STRING_DEFAULT("InfoColor", "#079107"); SET_STRING_DEFAULT("NormalColor", "black"); SET_STRING_DEFAULT("ErrorColor", "red"); SET_STRING_DEFAULT("NoticeColor", "#555555"); SET_STRING_DEFAULT("LinkColor", "blue"); SET_STRING_DEFAULT("HighlightColor", "purple"); SET_STRING_DEFAULT("GlobalFont", font_name); #undef SET_STRING_DEFAULT loqui_pref_partial_foreach(priv->ppref_channel_buffer, loqui_channel_buffer_gtk_ppref_changed_cb, buffer); } static gchar * loqui_channel_buffer_gtk_get_time_string(LoquiChannelBufferGtk *buffer) { gchar *buf = NULL; time_t t; gchar *time_format; g_return_val_if_fail(buffer != NULL, NULL); g_return_val_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer), NULL); t = time(NULL); time_format = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "TimeFormat", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_TIME_FORMAT, NULL); if (time_format) { buf = loqui_utils_strftime_epoch(time_format, t); g_free(time_format); } if (buf == NULL) { g_warning("Failed to strftime time string"); return NULL; } return buf; } static const gchar * loqui_channel_buffer_gtk_get_tag_name(LoquiChannelBufferGtk *buffer, LoquiTextType type) { const gchar *tag_name; g_return_val_if_fail(buffer != NULL, NULL); g_return_val_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer), NULL); switch(type) { case LOQUI_TEXT_TYPE_NOTICE: tag_name = "notice"; break; case LOQUI_TEXT_TYPE_ACTION: tag_name = "action"; break; case LOQUI_TEXT_TYPE_ERROR: tag_name = "error"; break; case LOQUI_TEXT_TYPE_INFO: tag_name = "info"; break; case LOQUI_TEXT_TYPE_TIME: tag_name = "time"; break; case LOQUI_TEXT_TYPE_TRANSPARENT: tag_name = "transparent"; break; default: tag_name = "normal"; } return tag_name; } static void loqui_channel_buffer_gtk_tag_regions(LoquiChannelBufferGtk *buffer, GtkTextIter *text_start_iter_in, GtkTextTag *tag, const gchar *text, GList *region_list) { GList *cur; LoquiMessageTextRegion *region; GtkTextIter text_start_iter, region_start_iter, region_end_iter; gint start_pos, offset; text_start_iter = *text_start_iter_in; for (cur = region_list; cur != NULL; cur = cur->next) { region = LOQUI_MESSAGE_TEXT_REGION(cur->data); start_pos = loqui_message_text_region_get_start_pos(region); offset = loqui_message_text_region_get_offset(region); region_start_iter = text_start_iter; gtk_text_iter_forward_chars(®ion_start_iter, g_utf8_strlen(text, start_pos)); region_end_iter = region_start_iter; gtk_text_iter_forward_chars(®ion_end_iter, g_utf8_strlen(text + start_pos, offset)); gtk_text_buffer_apply_tag(GTK_TEXT_BUFFER(buffer), tag, ®ion_start_iter, ®ion_end_iter); } } static void loqui_channel_buffer_gtk_append_message_text(LoquiChannelBuffer *buffer_p, LoquiMessageText *msgtext) { gchar *buf; const gchar *text; LoquiTextType type; LoquiChannelBufferGtk *buffer; GtkTextIter iter, text_start_iter; const gchar *tag_name; gsize len; g_return_if_fail(buffer_p != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer_p)); g_return_if_fail(msgtext != NULL); g_return_if_fail(LOQUI_IS_MESSAGE_TEXT(msgtext)); buffer = LOQUI_CHANNEL_BUFFER_GTK(buffer_p); if (loqui_message_text_get_is_ignored(msgtext)) { return; } gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(buffer), &iter); if ((buf = loqui_channel_buffer_gtk_get_time_string(buffer)) != NULL) { gtk_text_buffer_insert_with_tags_by_name(GTK_TEXT_BUFFER(buffer), &iter, buf, -1, "time", NULL); g_free(buf); } type = loqui_message_text_get_text_type(msgtext); tag_name = loqui_channel_buffer_gtk_get_tag_name(buffer, type); if (loqui_channel_buffer_gtk_get_show_account_name(buffer) && loqui_message_text_get_account_name(msgtext)) { buf = g_strdup_printf("[%s] ", loqui_message_text_get_account_name(msgtext)); gtk_text_buffer_insert_with_tags_by_name(GTK_TEXT_BUFFER(buffer), &iter, buf, -1, tag_name, NULL); g_free(buf); } if(loqui_message_text_get_is_remark(msgtext)) { buf = loqui_message_text_get_nick_string(msgtext, loqui_channel_buffer_gtk_get_show_channel_name(buffer)); gtk_text_buffer_insert_with_tags_by_name(GTK_TEXT_BUFFER(buffer), &iter, buf, -1, tag_name, NULL); g_free(buf); } text = loqui_message_text_get_text(msgtext); len = g_utf8_strlen(text, -1); gtk_text_buffer_insert_with_tags_by_name(GTK_TEXT_BUFFER(buffer), &iter, text, -1, tag_name, NULL); text_start_iter = iter; gtk_text_iter_backward_chars(&text_start_iter, len); loqui_channel_buffer_gtk_tag_regions(buffer, &text_start_iter, gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(GTK_TEXT_BUFFER(buffer)), "link"), text, msgtext->uri_region_list); if (loqui_message_text_get_is_remark(msgtext)) { loqui_channel_buffer_gtk_tag_regions(buffer, &text_start_iter, gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(GTK_TEXT_BUFFER(buffer)), "highlight"), text, msgtext->highlight_region_list); } gtk_text_buffer_insert(GTK_TEXT_BUFFER(buffer), &iter, "\n", -1); loqui_channel_buffer_gtk_delete_old_lines(buffer); } /* FIXME: this should do with max_line_number */ void loqui_channel_buffer_gtk_set_whether_common_buffer(LoquiChannelBufferGtk *buffer, gboolean is_common_buffer) { LoquiChannelBufferGtkPrivate *priv; g_return_if_fail(buffer != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer)); priv = buffer->priv; priv->is_common_buffer = TRUE; } void loqui_channel_buffer_gtk_set_show_account_name(LoquiChannelBufferGtk *buffer, gboolean show_account_name) { g_return_if_fail(buffer != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer)); buffer->show_account_name = show_account_name; } gboolean loqui_channel_buffer_gtk_get_show_account_name(LoquiChannelBufferGtk *buffer) { g_return_val_if_fail(buffer != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer), FALSE); return buffer->show_account_name; } void loqui_channel_buffer_gtk_set_show_channel_name(LoquiChannelBufferGtk *buffer, gboolean show_channel_name) { g_return_if_fail(buffer != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer)); buffer->show_channel_name = show_channel_name; } gboolean loqui_channel_buffer_gtk_get_show_channel_name(LoquiChannelBufferGtk *buffer) { g_return_val_if_fail(buffer != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer), FALSE); return buffer->show_channel_name; } loqui-0.5.5/src/embedtxt/0000775000175000017500000000000012121622470012255 500000000000000loqui-0.5.5/src/embedtxt/loqui_transfer_window_ui.h0000664000175000017500000000060612121605257017475 00000000000000static const gchar embedtxt_loqui_transfer_window_ui[] = "\n" " \n" " \n" " \n" " \n" " \n" " \n" "\n"; loqui-0.5.5/src/embedtxt/Makefile.in0000664000175000017500000002556512121622351014255 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/embedtxt DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EMBEDTXT_ID = loqui_app_ui loqui_transfer_window_ui EMBEDTXT = $(EMBEDTXT_ID:%=%.txt) EMBEDTXT_H = $(EMBEDTXT_ID:%=%.h) noinst_HEADERS = $(EMBEDTXT_H) EXTRA_DIST = $(EMBEDTXT) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/embedtxt/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/embedtxt/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am %.h: %.txt sed -e 's/"/\\"/g; s/^/ "/g; s/$$/\\n"/g; 1 s/^/static const gchar embedtxt_$(@:%.h=%)[] = /; $$ s/$$/;/;' $< > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/src/embedtxt/Makefile.am0000664000175000017500000000046212121600532014226 00000000000000EMBEDTXT_ID = loqui_app_ui loqui_transfer_window_ui EMBEDTXT = $(EMBEDTXT_ID:%=%.txt) EMBEDTXT_H = $(EMBEDTXT_ID:%=%.h) noinst_HEADERS = $(EMBEDTXT_H) EXTRA_DIST = $(EMBEDTXT) %.h: %.txt sed -e 's/"/\\"/g; s/^/ "/g; s/$$/\\n"/g; 1 s/^/static const gchar embedtxt_$(@:%.h=%)[] = /; $$ s/$$/;/;' $< > $@ loqui-0.5.5/src/embedtxt/loqui_transfer_window_ui.txt0000664000175000017500000000041012121600532020045 00000000000000 loqui-0.5.5/src/embedtxt/loqui_app_ui.h0000664000175000017500000002203612121605257015043 00000000000000static const gchar embedtxt_loqui_app_ui[] = "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n"; loqui-0.5.5/src/embedtxt/loqui_app_ui.txt0000664000175000017500000001723012121600532015422 00000000000000 loqui-0.5.5/src/loqui-core-gtk.gob0000664000175000017500000001611112121600532013707 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ %} %h{ #include "config.h" #include #include #include #include #include #include "loqui_app.h" #define FRESH_COLOR "red" #define FRESH_WEAK_COLOR "blue" #define NONFRESH_COLOR "black" #define HIGHLIGHT_COLOR "purple" #define UNJOINED_COLOR "grey" #define SHORTCUT_CHANNEL_ENTRY_ACCEL_MAP_PREFIX "/ChannelEntry " #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" %} %{ #include #include #include #include #include "main.h" #include #include #include #define ACCEL_MAP_FILE "accelmaprc" #define STYLERC_FILE "stylerc" #define GENERAL_PREF_FILENAME "loquirc" #include "loqui_stock.h" #include "prefs_general_upgrader.h" #include "loqui-notifier-gtk.h" %} class Loqui:Core:Gtk from Loqui:Core { public LoquiPref *style_pref = { loqui_pref_new() } unrefwith g_object_unref; public LoquiProtocolManager *protocol_manager unrefwith g_object_unref; public LoquiAccountManager *account_manager unrefwith g_object_unref; public LoquiApp *app; public LoquiCoreGtk *new(void) { LoquiCoreGtk *ret = GET_NEW; return ret; } init(self) { self->protocol_manager = loqui_protocol_manager_new(); loqui_protocol_manager_register(self->protocol_manager, loqui_protocol_irc_get()); loqui_protocol_manager_register(self->protocol_manager, loqui_protocol_ipmsg_get()); /* loqui_protocol_manager_register(self->protocol_manager, loqui_protocol_msn_get()); */ self->account_manager = loqui_account_manager_new(self->protocol_manager); loqui_core_set_notifier(LOQUI_CORE(self), LOQUI_NOTIFIER(loqui_notifier_gtk_new())); } /* override (Loqui:Core) void initialize(Loqui:Core *self (check null type)) { PARENT_HANDLER(self); } */ override (Loqui:Core) gchar *get_version_info(Loqui:Core *self_core (check null type)) { /* Self *self; */ gchar *str, *libinfo; libinfo = PARENT_HANDLER(self_core); str = g_strdup_printf("Loqui version %s (%s; GTK+ %d.%d.%d)", VERSION, libinfo, gtk_major_version, gtk_minor_version, gtk_micro_version); g_free(libinfo); return str; } public void load_stylerc(self) { gchar *path; path = self_get_stylerc_path(self); if (!loqui_pref_load_from_file(self->style_pref, path, G_KEY_FILE_NONE, NULL)) { g_warning(_("Failed to load %s"), path); g_free(path); return; } g_free(path); } public void save_stylerc(self) { gchar *path; path = self_get_stylerc_path(self); if (!loqui_pref_save_to_file(self->style_pref, path, NULL)) { g_warning(_("Failed to save %s"), path); g_free(path); return; } g_free(path); } private gchar *get_stylerc_path(self) { return g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), STYLERC_FILE, NULL); } private gchar *get_general_pref_path(self) { return g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), GENERAL_PREF_FILENAME, NULL); } private void make_program_dir(self) { const gchar *dirname; gchar *log_dirname; dirname = loqui_core_get_user_dir(LOQUI_CORE(self)); if(!g_file_test(dirname, G_FILE_TEST_EXISTS)) { loqui_utils_mkdir_and_chmod(dirname); } if(!g_file_test(dirname, G_FILE_TEST_IS_DIR)) { g_error(_("Invalid \"%s\""), dirname); } log_dirname = g_build_filename(dirname, LOG_DIR, NULL); if(!g_file_test(log_dirname, G_FILE_TEST_EXISTS)) loqui_utils_mkdir_and_chmod(log_dirname); g_free(log_dirname); } public void initialize_with_args(self, int *argc, char **argv[]) { gchar *path; loqui_core_initialize(LOQUI_CORE(self)); self_make_program_dir(self); gdk_threads_init(); gtk_init(argc, argv); loqui_stock_init(); path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), "gtkrc-2.0", NULL); gtk_rc_parse(path); g_free(path); } private void load_accelmap(self) { gchar *path; path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), ACCEL_MAP_FILE, NULL); gtk_accel_map_add_filter(SHORTCUT_CHANNEL_ENTRY_ACCEL_MAP_PREFIX "*"); gtk_accel_map_load(path); g_free(path); } private void save_accelmap(self) { gchar *path; path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), ACCEL_MAP_FILE, NULL); gtk_accel_map_save(path); g_free(path); } public void load_general_pref(self) { gchar *path; path = self_get_general_pref_path(self); loqui_pref_load_from_file(loqui_core_get_general_pref(LOQUI_CORE(self)), path, 0, NULL); g_free(path); } public void save_general_pref(self) { gchar *path; path = self_get_general_pref_path(self); loqui_pref_save_to_file(loqui_core_get_general_pref(LOQUI_CORE(self)), path, NULL); g_free(path); } private gboolean check_should_upgrade(self) { gchar *old_path; gchar *new_path; gboolean b; old_path = g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), "loquirc.xml", NULL); new_path = g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), "loquirc", NULL); b = g_file_test(old_path, G_FILE_TEST_EXISTS) && !g_file_test(new_path, G_FILE_TEST_EXISTS); g_free(old_path); g_free(new_path); return b; } public void run(self) { if (self_check_should_upgrade(self)) { prefs_general_upgrader_upgrade(); } self_load_general_pref(self); loqui_pref_set_boolean(loqui_get_general_pref(), "Dummy", "DummyBoolean", TRUE); self->app = LOQUI_APP(loqui_app_new(self->account_manager)); self_load_stylerc(self); loqui_app_info_load_from_prefs_general(self->app->appinfo); loqui_app_info_update_string_idle(self->app->appinfo); self_load_accelmap(self); loqui_account_manager_load_accounts(self->account_manager); if(loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "ConnectStartup", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_CONNECT_STARTUP, NULL)) loqui_account_manager_connect_all_default(self->account_manager); gdk_threads_enter(); gtk_main(); gdk_threads_leave(); self_save_stylerc(self); self_save_accelmap(self); self_save_general_pref(self); } public Loqui:App * get_app(self) { return self->app; } } loqui-0.5.5/src/loqui-tray-icon.gob0000664000175000017500000001036112121600532014102 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ %} %h{ #include %} %h{ #ifndef __TYPEDEF_LOQUI_TRAY_ICON__ #define __TYPEDEF_LOQUI_TRAY_ICON__ typedef struct _LoquiTrayIcon LoquiTrayIcon; #endif #include "loqui_app.h" %} %{ #include "config.h" #include #include "loqui-tray-icon.h" #include "loqui_stock.h" #include "gtkutils.h" #define LOQUI_TRAY_ICON_BLINK_COUNT 20 #define LOQUI_TRAY_ICON_BLINK_INTERVAL 750 %} class Loqui:Tray:Icon from G:Object { public gboolean is_hilighted; public LoquiApp *app; private GtkMenu *menu; public GtkStatusIcon *status_icon; private gint blink_count_remains; private gboolean blinking; private gboolean button_press_event_cb(GtkStatusIcon *status_icon, GdkEventButton *event, Loqui:Tray:Icon *self (check null type)) onerror FALSE { if (event->type == GDK_BUTTON_PRESS) { switch (event->button) { case 1: if (gtkutils_widget_is_iconified(GTK_WIDGET(self->app)) || loqui_app_is_obscured(self->app)) gtk_window_present(GTK_WINDOW(self->app)); else gtk_window_iconify(GTK_WINDOW(self->app)); break; case 3: gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, gtk_status_icon_position_menu, status_icon, event ? event->button : 0, event ? event->time : gtk_get_current_event_time()); break; default: break; } } return FALSE; } private void set_icon(self, gboolean is_hilighted) { gtk_status_icon_set_from_stock(self->status_icon, is_hilighted ? LOQUI_STOCK_LOQUI_HILIGHTED : LOQUI_STOCK_LOQUI); } private gboolean blink_for_idle_cb(self) { g_timeout_add(LOQUI_TRAY_ICON_BLINK_INTERVAL, (GSourceFunc) loqui_tray_icon_blink_cb, self); return FALSE; } private gboolean blink_cb(self) { if (selfp->blink_count_remains > 0) { self_set_icon(self, (selfp->blink_count_remains % 2 != 0) ? TRUE : FALSE); selfp->blink_count_remains--; return TRUE; } else { self_set_icon(self, self->is_hilighted); selfp->blinking = FALSE; return FALSE; } } public Loqui:Tray:Icon * new(LoquiApp *app, GtkMenu *menu) { Self *self; self = GET_NEW; self->app = app; selfp->menu = menu; self->status_icon = gtk_status_icon_new_from_stock(LOQUI_STOCK_LOQUI); g_signal_connect(G_OBJECT(self->status_icon), "button_press_event", G_CALLBACK(self_button_press_event_cb), self); self_set_hilighted(self, FALSE); return self; } public void set_hilighted(self, gboolean is_hilighted) { if (self->is_hilighted == is_hilighted) return; self->is_hilighted = is_hilighted; self_set_icon(self, is_hilighted); } public void blink(self) { selfp->blink_count_remains = LOQUI_TRAY_ICON_BLINK_COUNT; if (!selfp->blinking) { selfp->blinking = TRUE; g_idle_add((GSourceFunc) self_blink_for_idle_cb, self); } } public void destroy(self) { g_object_unref(self->status_icon); } } loqui-0.5.5/src/loqui-transfer-window.gob0000664000175000017500000002725012121600532015333 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ %} %h{ #include %} %{ #include "config.h" #include "loqui-transfer-window.h" #include "loqui-transfer-window-private.h" #include #include "embedtxt/loqui_transfer_window_ui.h" static GtkActionEntry action_entries[] = { {"Start", GTK_STOCK_GO_FORWARD, N_("_Start"), NULL, NULL, NULL}, {"Cancel", GTK_STOCK_CANCEL, N_("Cancel"), NULL, NULL, NULL}, {"Close", GTK_STOCK_CLOSE, N_("Close"), NULL, NULL, NULL} }; static GtkToggleActionEntry toggle_action_entries[] = { {"ToggleInfo", GTK_STOCK_PROPERTIES, N_("_Information"), NULL, NULL, NULL, FALSE}, }; %} class Loqui:Transfer:Window from Gtk:Window { private GtkWidget *handlebox_toolbar; private GtkWidget *toolbar; private GtkWidget *toolbutton_start; private GtkWidget *toolbutton_stop; private GtkWidget *toggletb_info; private GtkWidget *treeview; private GtkWidget *button_dir; private GtkWidget *entry_filename; private GtkWidget *entry_directory; private GtkWidget *label_updown; private GtkWidget *label_status; private GtkWidget *label_path; private GtkWidget *progressbar; private GtkWidget *label_size; private GtkWidget *label_rate; private GtkWidget *textview_log; private GtkWidget *statusbar; private GtkUIManager *ui_manager unrefwith g_object_unref; private GtkActionGroup *action_group; private void add_toolbar(self, GtkWidget *vbox) { GError *error = NULL; selfp->handlebox_toolbar = gtk_handle_box_new(); gtk_box_pack_start(GTK_BOX(vbox), selfp->handlebox_toolbar, FALSE, FALSE, 0); if(!gtk_ui_manager_add_ui_from_string(selfp->ui_manager, embedtxt_loqui_transfer_window_ui, -1, &error)) g_error("Failed to load UI XML: %s", error->message); gtk_ui_manager_ensure_update(selfp->ui_manager); gtk_container_add(GTK_CONTAINER(selfp->handlebox_toolbar), gtk_ui_manager_get_widget(selfp->ui_manager, "/Toolbar")); } private void create_actions(self) { selfp->ui_manager = gtk_ui_manager_new(); selfp->action_group = gtk_action_group_new("LoquiTransferWindw"); gtk_ui_manager_set_add_tearoffs(selfp->ui_manager, TRUE); gtk_window_add_accel_group(GTK_WINDOW(self), gtk_ui_manager_get_accel_group(selfp->ui_manager)); gtk_action_group_add_actions(selfp->action_group, action_entries, G_N_ELEMENTS(action_entries), self); gtk_action_group_add_toggle_actions(selfp->action_group, toggle_action_entries, G_N_ELEMENTS(toggle_action_entries), self); gtk_ui_manager_insert_action_group(selfp->ui_manager, selfp->action_group, 0); } public GtkWidget * new(void) { Self *self; GtkWidget *vbox1; GtkWidget *vpaned1; GtkWidget *hpaned1; GtkWidget *scrolled_win; GtkWidget *treeview; GtkWidget *frame1; GtkWidget *viewport1; GtkWidget *table; GtkWidget *label; GtkWidget *button_dir; GtkWidget *hseparator1; GtkWidget *entry_filename; GtkWidget *entry_directory; GtkWidget *label_updown; GtkWidget *label_status; GtkWidget *label_path; GtkWidget *progressbar; GtkWidget *label_size; GtkWidget *label_rate; GtkWidget *textview_log; GtkWidget *statusbar; gint row; self = GET_NEW; gtk_window_set_policy(GTK_WINDOW(self), TRUE, TRUE, TRUE); gtk_window_set_title(GTK_WINDOW(self), _("Loqui - File Transfer Manager")); vbox1 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(self), vbox1); self_create_actions(self); self_add_toolbar(self, vbox1); vpaned1 = gtk_vpaned_new(); gtk_box_pack_start(GTK_BOX(vbox1), vpaned1, TRUE, TRUE, 0); hpaned1 = gtk_hpaned_new(); gtk_paned_pack1(GTK_PANED(vpaned1), hpaned1, FALSE, TRUE); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_paned_pack1(GTK_PANED(hpaned1), scrolled_win, FALSE, TRUE); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = gtk_tree_view_new(); gtk_container_add(GTK_CONTAINER(scrolled_win), treeview); frame1 = gtk_frame_new(NULL); gtk_frame_set_label(GTK_FRAME(frame1), _("Information")); gtk_paned_pack2(GTK_PANED(hpaned1), frame1, TRUE, TRUE); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(frame1), scrolled_win); viewport1 = gtk_viewport_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(scrolled_win), viewport1); table = gtk_table_new(10, 3, FALSE); gtk_container_add(GTK_CONTAINER(viewport1), table); gtk_table_set_row_spacings(GTK_TABLE(table), 2); gtk_table_set_col_spacings(GTK_TABLE(table), 2); row = 0; label = gtk_label_new(_("Filename:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); entry_filename = gtk_entry_new(); gtk_widget_show(entry_filename); gtk_table_attach(GTK_TABLE(table), entry_filename, 1, 3, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Directory:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); entry_directory = gtk_entry_new(); gtk_widget_show(entry_directory); gtk_table_attach(GTK_TABLE(table), entry_directory, 1, 2, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 2); button_dir = gtk_button_new_with_mnemonic(_("Select...")); gtk_table_attach(GTK_TABLE(table), button_dir, 2, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); row++; hseparator1 = gtk_hseparator_new(); gtk_table_attach(GTK_TABLE(table), hseparator1, 0, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_widget_set_size_request(hseparator1, -1, 5); row++; label = gtk_label_new(_("Up / Down:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_updown = gtk_label_new(_("Down")); gtk_table_attach(GTK_TABLE(table), label_updown, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Status:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_status = gtk_label_new(_("Transferring")); gtk_table_attach(GTK_TABLE(table), label_status, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Path:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_path = gtk_label_new(_("hoge.jpg")); gtk_table_attach(GTK_TABLE(table), label_path, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Progress:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); progressbar = gtk_progress_bar_new(); gtk_widget_show(progressbar); gtk_table_attach(GTK_TABLE(table), progressbar, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar), 0.5); gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), _("50%")); row++; label = gtk_label_new(_("Size:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_size = gtk_label_new(_("10,243,000 / 50,222,222")); gtk_widget_show(label_size); gtk_table_attach(GTK_TABLE(table), label_size, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL(label_size), GTK_JUSTIFY_CENTER); row++; label = gtk_label_new(_("Rate:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_rate = gtk_label_new(_("50.2 KB/s")); gtk_table_attach(GTK_TABLE(table), label_rate, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL(label_rate), GTK_JUSTIFY_CENTER); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_widget_show(scrolled_win); gtk_paned_pack2(GTK_PANED(vpaned1), scrolled_win, TRUE, TRUE); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); textview_log = gtk_text_view_new(); gtk_container_add(GTK_CONTAINER(scrolled_win), textview_log); statusbar = gtk_statusbar_new(); gtk_box_pack_start(GTK_BOX(vbox1), statusbar, FALSE, FALSE, 0); selfp->treeview = treeview; selfp->button_dir = button_dir; selfp->entry_filename = entry_filename; selfp->entry_directory = entry_directory; selfp->label_updown = label_updown; selfp->label_status = label_status; selfp->label_path = label_path; selfp->progressbar = progressbar; selfp->label_size = label_size; selfp->label_rate = label_rate; selfp->textview_log = textview_log; selfp->statusbar = statusbar; gtk_widget_set_size_request(GTK_WIDGET(self), 600, 400); gtk_widget_set_size_request(GTK_WIDGET(selfp->treeview), 300, 250); return GTK_WIDGET(self); } } loqui-0.5.5/src/loqui_channel_text_view.c0000664000175000017500000006152612121600532015451 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_channel_text_view.h" #include "gtkutils.h" #include #include #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" #define EPS 0.00000001 #define GOOGLE_URL "http://www.google.com/search?q=" /* TODO: make configurable */ enum { SIGNAL_SCROLLED_TO_END, LAST_SIGNAL }; enum { PROP_0, PROP_IS_SCROLL, PROP_AUTO_SWITCH_SCROLLING, LAST_PROP }; struct _LoquiChannelTextViewPrivate { LoquiApp *app; GdkCursor *hand_cursor; GdkCursor *normal_cursor; gboolean is_hand_cursor; }; static GtkTextViewClass *parent_class = NULL; static guint channel_text_view_signals[LAST_SIGNAL] = { 0 }; static void loqui_channel_text_view_class_init(LoquiChannelTextViewClass *klass); static void loqui_channel_text_view_init(LoquiChannelTextView *chview); static void loqui_channel_text_view_finalize(GObject *object); static void loqui_channel_text_view_dispose(GObject *object); static void loqui_channel_text_view_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_channel_text_view_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_channel_text_view_destroy(GtkObject *object); static void loqui_channel_text_view_vadj_value_changed_cb(GtkAdjustment *adj, gpointer data); static gboolean loqui_channel_text_view_key_press_event(GtkWidget *widget, GdkEventKey *event); static void loqui_channel_text_view_buffer_insert_text_cb(GtkTextBuffer *textbuf, GtkTextIter *pos, const gchar *text, gint length, gpointer data); static gboolean loqui_channel_text_view_motion_notify_event(GtkWidget *widget, GdkEventMotion *event); static gboolean loqui_channel_text_view_visibility_notify_event(GtkWidget *widget, GdkEventVisibility *event); static gboolean loqui_channel_text_view_button_release_event(GtkWidget *widget, GdkEventButton *event_button); static void loqui_channel_text_view_populate_popup(GtkTextView *textview, GtkMenu *menu); static void loqui_channel_text_view_search_keyword_cb(GtkMenuItem *item, gpointer user_data); /* utilities */ static gboolean loqui_channel_text_view_get_buffer_and_iter_at_event_xy(LoquiChannelTextView *chview, LoquiChannelBufferGtk **buffer_gtk, GtkTextIter *iter, gint event_x, gint event_y); static gboolean loqui_channel_text_view_get_uri_at_iter(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer_gtk, GtkTextIter *iter, GtkTextIter *uri_start_iter, GtkTextIter *uri_end_iter); static void loqui_channel_text_view_iter_activated(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer_gtk, GtkTextIter *iter); static void loqui_channel_text_view_update_hover(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer_gtk, GtkTextIter *iter); static void loqui_channel_text_view_update_cursor(LoquiChannelTextView *chview, gint event_x, gint event_y); static void loqui_channel_text_view_execute_browser(LoquiChannelTextView *chview, gchar *uri_str); GType loqui_channel_text_view_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiChannelTextViewClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_channel_text_view_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiChannelTextView), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_channel_text_view_init }; type = g_type_register_static(GTK_TYPE_TEXT_VIEW, "LoquiChannelTextView", &our_info, 0); } return type; } static void loqui_channel_text_view_finalize(GObject *object) { LoquiChannelTextView *view; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(object)); view = LOQUI_CHANNEL_TEXT_VIEW(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(view->priv); } static void loqui_channel_text_view_dispose(GObject *object) { LoquiChannelTextView *view; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(object)); view = LOQUI_CHANNEL_TEXT_VIEW(object); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_channel_text_view_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiChannelTextView *view; view = LOQUI_CHANNEL_TEXT_VIEW(object); switch (param_id) { case PROP_IS_SCROLL: g_value_set_boolean(value, view->is_scroll); break; case PROP_AUTO_SWITCH_SCROLLING: g_value_set_boolean(value, view->auto_switch_scrolling); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_text_view_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiChannelTextView *view; view = LOQUI_CHANNEL_TEXT_VIEW(object); switch (param_id) { case PROP_IS_SCROLL: loqui_channel_text_view_set_is_scroll(view, g_value_get_boolean(value)); break; case PROP_AUTO_SWITCH_SCROLLING: loqui_channel_text_view_set_auto_switch_scrolling(view, g_value_get_boolean(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_text_view_class_init(LoquiChannelTextViewClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); GtkTextViewClass *text_view_class = GTK_TEXT_VIEW_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_channel_text_view_finalize; object_class->dispose = loqui_channel_text_view_dispose; object_class->get_property = loqui_channel_text_view_get_property; object_class->set_property = loqui_channel_text_view_set_property; GTK_OBJECT_CLASS(klass)->destroy = loqui_channel_text_view_destroy; widget_class->key_press_event = loqui_channel_text_view_key_press_event; widget_class->motion_notify_event = loqui_channel_text_view_motion_notify_event; widget_class->visibility_notify_event = loqui_channel_text_view_visibility_notify_event; widget_class->button_release_event = loqui_channel_text_view_button_release_event; text_view_class->populate_popup = loqui_channel_text_view_populate_popup; g_object_class_install_property(object_class, PROP_IS_SCROLL, g_param_spec_boolean("is_scroll", _("IsScroll"), _("Scrolling or not"), TRUE, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_IS_SCROLL, g_param_spec_boolean("auto_switch_scrolling", _("Auto switch scrolling"), _("Switch scrolling automatically"), TRUE, G_PARAM_READWRITE)); channel_text_view_signals[SIGNAL_SCROLLED_TO_END] = g_signal_new("scrolled_to_end", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET(LoquiChannelTextViewClass, scrolled_to_end), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void loqui_channel_text_view_init(LoquiChannelTextView *chview) { LoquiChannelTextViewPrivate *priv; priv = g_new0(LoquiChannelTextViewPrivate, 1); chview->priv = priv; chview->is_scroll = TRUE; priv->is_hand_cursor = FALSE; } static void loqui_channel_text_view_destroy(GtkObject *object) { LoquiChannelTextView *view; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(object)); view = LOQUI_CHANNEL_TEXT_VIEW(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy)(object); } static gboolean loqui_channel_text_view_key_press_event(GtkWidget *widget, GdkEventKey *event) { GtkTextBuffer *buffer; GtkTextIter iter; if (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter) { buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); g_return_val_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer), FALSE); loqui_channel_text_view_iter_activated(LOQUI_CHANNEL_TEXT_VIEW(widget), LOQUI_CHANNEL_BUFFER_GTK(buffer), &iter); return FALSE; } loqui_app_grab_focus_if_key_unused(LOQUI_CHANNEL_TEXT_VIEW(widget)->priv->app, "GtkTextView", event); if (* GTK_WIDGET_CLASS(parent_class)->key_press_event) return (* GTK_WIDGET_CLASS(parent_class)->key_press_event)(widget, event); return FALSE; } static void loqui_channel_text_view_vadj_value_changed_cb(GtkAdjustment *adj, gpointer data) { LoquiChannelTextView *chview; gboolean reached_to_end; g_return_if_fail(data != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(data)); chview = LOQUI_CHANNEL_TEXT_VIEW(data); /* upper - page_size is max virtually. */ reached_to_end = (ABS(adj->upper - adj->page_size - adj->value) < EPS); if (reached_to_end) g_signal_emit(G_OBJECT(chview), channel_text_view_signals[SIGNAL_SCROLLED_TO_END], 0); if (chview->auto_switch_scrolling) { loqui_channel_text_view_set_is_scroll(chview, reached_to_end); } /* FIXME: hack for win32 */ if (!gtk_text_buffer_get_selection_bounds(gtk_text_view_get_buffer(GTK_TEXT_VIEW(chview)), NULL, NULL)) { gtk_text_view_place_cursor_onscreen(GTK_TEXT_VIEW(chview)); } } static void loqui_channel_text_view_buffer_insert_text_cb(GtkTextBuffer *textbuf, GtkTextIter *pos, const gchar *text, gint length, gpointer data) { LoquiChannelTextView *chview; LoquiChannelTextViewPrivate *priv; g_return_if_fail(data != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(data)); chview = LOQUI_CHANNEL_TEXT_VIEW(data); priv = chview->priv; loqui_channel_text_view_scroll_to_end_if_enabled(chview); } static gboolean loqui_channel_text_view_motion_notify_event(GtkWidget *widget, GdkEventMotion *event) { LoquiChannelTextView *chview; chview = LOQUI_CHANNEL_TEXT_VIEW(widget); loqui_channel_text_view_update_cursor(chview, event->x, event->y); if (GTK_WIDGET_CLASS(parent_class)->motion_notify_event) return (* GTK_WIDGET_CLASS(parent_class)->motion_notify_event) (widget, event); return FALSE; } static gboolean loqui_channel_text_view_button_release_event(GtkWidget *widget, GdkEventButton *event_button) { LoquiChannelTextView *chview; LoquiChannelTextViewPrivate *priv; GtkTextBuffer *buffer; LoquiChannelBufferGtk *buffer_gtk; GtkTextIter iter; GtkTextIter selected_start_iter, selected_end_iter; gboolean ret = FALSE; chview = LOQUI_CHANNEL_TEXT_VIEW(widget); priv = chview->priv; if (GTK_WIDGET_CLASS(parent_class)->button_release_event) ret = (* GTK_WIDGET_CLASS(parent_class)->button_release_event) (widget, event_button); if (event_button->button != 1) return ret; if (!loqui_channel_text_view_get_buffer_and_iter_at_event_xy(chview, &buffer_gtk, &iter, event_button->x, event_button->y)) return ret; buffer = GTK_TEXT_BUFFER(buffer_gtk); /* return if selected */ gtk_text_buffer_get_selection_bounds(buffer, &selected_start_iter, &selected_end_iter); if (!gtk_text_iter_equal(&selected_start_iter, &selected_end_iter)) return ret; loqui_channel_text_view_iter_activated(chview, buffer_gtk, &iter); return ret; } static gboolean loqui_channel_text_view_visibility_notify_event(GtkWidget *widget, GdkEventVisibility *event) { gint event_x, event_y; LoquiChannelTextView *chview; g_return_val_if_fail(widget != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(widget), FALSE); chview = LOQUI_CHANNEL_TEXT_VIEW(widget); gdk_window_get_pointer(widget->window, &event_x, &event_y, NULL); loqui_channel_text_view_update_cursor(chview, event_x, event_y); if (GTK_WIDGET_CLASS(parent_class)->visibility_notify_event) return (* GTK_WIDGET_CLASS(parent_class)->visibility_notify_event) (widget, event); return FALSE; } static void loqui_channel_text_view_populate_popup(GtkTextView *textview, GtkMenu *menu) { GtkWidget *menu_item; /* separator */ menu_item = gtk_menu_item_new(); gtk_menu_shell_append (GTK_MENU_SHELL(menu), menu_item); gtk_widget_show(menu_item); /* search */ menu_item = gtk_menu_item_new_with_mnemonic(_("_Search Keyword With Google")); g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(loqui_channel_text_view_search_keyword_cb), textview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); gtk_widget_set_sensitive(GTK_WIDGET(menu_item), gtk_text_buffer_get_has_selection(gtk_text_view_get_buffer(textview))); gtk_widget_show(menu_item); if (GTK_TEXT_VIEW_CLASS(parent_class)->populate_popup) (* GTK_TEXT_VIEW_CLASS(parent_class)->populate_popup) (textview, menu); } static void loqui_channel_text_view_search_keyword_cb(GtkMenuItem *item, gpointer user_data) { LoquiChannelTextView *chview; GtkTextBuffer *buf; GtkTextIter iter_start, iter_end; gchar *text, *escaped_text, *uri; chview = LOQUI_CHANNEL_TEXT_VIEW(user_data); buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(chview)); if (!gtk_text_buffer_get_selection_bounds(buf, &iter_start, &iter_end)) return; text = gtk_text_buffer_get_text(buf, &iter_start, &iter_end, FALSE); escaped_text = g_uri_escape_string(text, NULL, FALSE); uri = g_strdup_printf("%s%s", GOOGLE_URL, escaped_text); loqui_channel_text_view_execute_browser(chview, uri); g_free(uri); g_free(escaped_text); g_free(text); } static gboolean loqui_channel_text_view_get_buffer_and_iter_at_event_xy(LoquiChannelTextView *chview, LoquiChannelBufferGtk **buffer_gtk, GtkTextIter *iter, gint event_x, gint event_y) { gint x, y; GtkTextBuffer *buffer; g_return_val_if_fail(chview != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview), FALSE); g_return_val_if_fail(buffer_gtk != NULL, FALSE); g_return_val_if_fail(iter != NULL, FALSE); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(chview)); if (!LOQUI_IS_CHANNEL_BUFFER_GTK(buffer)) return FALSE; *buffer_gtk = LOQUI_CHANNEL_BUFFER_GTK(buffer); gtk_text_view_window_to_buffer_coords(GTK_TEXT_VIEW(chview), GTK_TEXT_WINDOW_WIDGET, event_x, event_y, &x, &y); gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(chview), iter, x, y); return TRUE; } static gboolean loqui_channel_text_view_get_uri_at_iter(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer_gtk, GtkTextIter *iter, GtkTextIter *uri_start_iter, GtkTextIter *uri_end_iter) { GtkTextBuffer *buffer; GtkTextTag *tag_link; gboolean in_uri; buffer = GTK_TEXT_BUFFER(buffer_gtk); tag_link = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "link"); g_return_val_if_fail(tag_link != NULL, FALSE); in_uri = gtk_text_iter_has_tag(iter, tag_link); if (!in_uri) return FALSE; if (uri_start_iter) { *uri_start_iter = *iter; if (!gtk_text_iter_begins_tag(uri_start_iter, tag_link) && !gtk_text_iter_backward_to_tag_toggle(uri_start_iter, tag_link)) { loqui_debug_puts("Can't find start."); return FALSE; } } if (uri_end_iter) { *uri_end_iter = *iter; if (!gtk_text_iter_ends_tag(uri_end_iter, tag_link) && !gtk_text_iter_forward_to_tag_toggle(uri_end_iter, tag_link)) { loqui_debug_puts("Can't find end"); return FALSE; } } return TRUE; } static void loqui_channel_text_view_execute_browser(LoquiChannelTextView *chview, gchar *uri_str) { gchar *browser_command; browser_command = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS, "BrowserCommand", LOQUI_GENERAL_PREF_GTK_DEFAULT_COMMANDS_BROWSER_COMMAND, NULL); if (browser_command) { gtkutils_exec_command_argument_with_error_dialog(browser_command, uri_str); g_free(browser_command); } else { g_warning(_("Failed to get the browser command.")); } } static void loqui_channel_text_view_iter_activated(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer_gtk, GtkTextIter *iter) { gchar *uri_str; GtkTextIter uri_start_iter, uri_end_iter; g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); g_return_if_fail(buffer_gtk != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer_gtk)); if (loqui_channel_text_view_get_uri_at_iter(chview, buffer_gtk, iter, &uri_start_iter, &uri_end_iter)) { uri_str = gtk_text_iter_get_text(&uri_start_iter, &uri_end_iter); loqui_channel_text_view_execute_browser(chview, uri_str); g_free(uri_str); } } /* iter == NULL: forced to remove hover underline */ static void loqui_channel_text_view_update_hover(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer_gtk, GtkTextIter *iter) { gboolean in_uri; GtkTextIter uri_start_iter, uri_end_iter; GtkTextIter old_uri_start_iter, old_uri_end_iter; GtkTextTag *hover_tag; GtkTextMark *hover_mark; GtkTextBuffer *buffer; GtkTextIter old_hover_iter; if (iter) in_uri = loqui_channel_text_view_get_uri_at_iter(chview, buffer_gtk, iter, &uri_start_iter, &uri_end_iter); else in_uri = FALSE; if (!buffer_gtk->hover_tag_applied && !in_uri) return; buffer = GTK_TEXT_BUFFER(buffer_gtk); hover_tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "hover"); g_return_if_fail(hover_tag != NULL); hover_mark = gtk_text_buffer_get_mark(buffer, "hover"); g_return_if_fail(hover_mark != NULL); if (buffer_gtk->hover_tag_applied) { gtk_text_buffer_get_iter_at_mark(buffer, &old_hover_iter, hover_mark); if (loqui_channel_text_view_get_uri_at_iter(chview, buffer_gtk, &old_hover_iter, &old_uri_start_iter, &old_uri_end_iter)) { gtk_text_buffer_remove_tag(buffer, hover_tag, &old_uri_start_iter, &old_uri_end_iter); } buffer_gtk->hover_tag_applied = FALSE; } if (in_uri) { gtk_text_buffer_move_mark(buffer, hover_mark, &uri_start_iter); gtk_text_buffer_apply_tag(buffer, hover_tag, &uri_start_iter, &uri_end_iter); buffer_gtk->hover_tag_applied = TRUE; } } static void loqui_channel_text_view_update_cursor(LoquiChannelTextView *chview, gint event_x, gint event_y) { LoquiChannelTextViewPrivate *priv; GtkTextIter iter; gboolean should_hand_cursor; LoquiChannelBufferGtk *buffer_gtk; GtkTextBuffer *buffer; g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); priv = chview->priv; if (!loqui_channel_text_view_get_buffer_and_iter_at_event_xy(chview, &buffer_gtk, &iter, event_x, event_y)) return; buffer = GTK_TEXT_BUFFER(buffer_gtk); should_hand_cursor = loqui_channel_text_view_get_uri_at_iter(chview, buffer_gtk, &iter, NULL, NULL); if (should_hand_cursor && !priv->is_hand_cursor) { gdk_window_set_cursor(gtk_text_view_get_window(GTK_TEXT_VIEW(chview), GTK_TEXT_WINDOW_TEXT), priv->hand_cursor); priv->is_hand_cursor = TRUE; } else if (!should_hand_cursor && priv->is_hand_cursor) { gdk_window_set_cursor(gtk_text_view_get_window(GTK_TEXT_VIEW(chview), GTK_TEXT_WINDOW_TEXT), priv->normal_cursor); priv->is_hand_cursor = FALSE; } gdk_window_get_pointer(GTK_WIDGET(chview)->window, NULL, NULL, NULL); loqui_channel_text_view_update_hover(chview, buffer_gtk, &iter); } GtkWidget * loqui_channel_text_view_new(LoquiApp *app) { LoquiChannelTextView *chview; LoquiChannelTextViewPrivate *priv; chview = g_object_new(loqui_channel_text_view_get_type(), "editable", FALSE, "wrap_mode", GTK_WRAP_CHAR, NULL); priv = chview->priv; priv->app = app; chview->scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(chview->scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_container_add(GTK_CONTAINER(chview->scrolled_window), GTK_WIDGET(chview)); g_signal_connect(G_OBJECT(GTK_TEXT_VIEW(chview)->vadjustment), "value-changed", G_CALLBACK(loqui_channel_text_view_vadj_value_changed_cb), chview); priv->hand_cursor = gdk_cursor_new(GDK_HAND2); priv->normal_cursor = gdk_cursor_new(GDK_XTERM); return GTK_WIDGET(chview); } void loqui_channel_text_view_set_channel_buffer(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer) { LoquiChannelTextViewPrivate *priv; GtkTextBuffer *old_buf; GtkStyle *style; GdkColor *transparent_color; GtkTextTag *transparent_tag; g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); g_return_if_fail(buffer != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_BUFFER_GTK(buffer)); priv = chview->priv; old_buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(chview)); if (old_buf) g_signal_handlers_disconnect_by_func(old_buf, loqui_channel_text_view_buffer_insert_text_cb, chview); style = gtk_widget_get_style(GTK_WIDGET(chview)); transparent_color = &style->base[GTK_STATE_NORMAL]; transparent_tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(GTK_TEXT_BUFFER(buffer)), "transparent"); if (transparent_tag) g_object_set(G_OBJECT(transparent_tag), "foreground-gdk", transparent_color, NULL); gtk_text_view_set_buffer(GTK_TEXT_VIEW(chview), GTK_TEXT_BUFFER(buffer)); g_signal_connect(G_OBJECT(buffer), "insert-text", G_CALLBACK(loqui_channel_text_view_buffer_insert_text_cb), chview); loqui_channel_text_view_scroll_to_end(LOQUI_CHANNEL_TEXT_VIEW(chview)); } void loqui_channel_text_view_scroll_to_end(LoquiChannelTextView *chview) { GtkTextBuffer *buffer; g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(chview)); if (buffer && LOQUI_IS_CHANNEL_BUFFER_GTK(buffer)) gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(chview), gtk_text_buffer_get_mark(buffer, "end")); g_signal_emit(G_OBJECT(chview), channel_text_view_signals[SIGNAL_SCROLLED_TO_END], 0); } void loqui_channel_text_view_scroll_to_end_if_enabled(LoquiChannelTextView *chview) { g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); if (chview->is_scroll) loqui_channel_text_view_scroll_to_end(chview); } void loqui_channel_text_view_set_is_scroll(LoquiChannelTextView *chview, gboolean is_scroll) { g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); if (chview->is_scroll == is_scroll) return; chview->is_scroll = is_scroll; loqui_channel_text_view_scroll_to_end_if_enabled(chview); g_object_notify(G_OBJECT(chview), "is_scroll"); } gboolean loqui_channel_text_view_get_is_scroll(LoquiChannelTextView *chview) { g_return_val_if_fail(chview != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview), FALSE); return chview->is_scroll; } void loqui_channel_text_view_scroll(LoquiChannelTextView *chview, GtkMovementStep step, gint count) { g_signal_emit_by_name(chview, "move_cursor", step, count, FALSE); } void loqui_channel_text_view_set_auto_switch_scrolling(LoquiChannelTextView *chview, gboolean auto_switch_scrolling) { g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); if (chview->auto_switch_scrolling == auto_switch_scrolling) return; chview->auto_switch_scrolling = auto_switch_scrolling; g_object_notify(G_OBJECT(chview), "auto_switch_scrolling"); } gboolean loqui_channel_text_view_get_auto_switch_scrolling(LoquiChannelTextView *chview) { g_return_val_if_fail(chview != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview), FALSE); return chview->auto_switch_scrolling; } loqui-0.5.5/src/loqui-core-gtk-private.h0000664000175000017500000000225412121605257015053 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 2 "loqui-core-gtk.gob" #line 26 "loqui-core-gtk-private.h" #ifndef __LOQUI_CORE_GTK_PRIVATE_H__ #define __LOQUI_CORE_GTK_PRIVATE_H__ #include "loqui-core-gtk.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-channel-entry-action-group-ui.h0000664000175000017500000000660012121605257017456 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_H__ #define __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include "loqui-channel-entry-action-group.h" #include "loqui-channel-entry-ui-data.h" /* * Type checking and casting macros */ #define LOQUI_TYPE_CHANNEL_ENTRY_ACTION_GROUP_UI (loqui_channel_entry_action_group_ui_get_type()) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_channel_entry_action_group_ui_get_type(), LoquiChannelEntryActionGroupUI) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_channel_entry_action_group_ui_get_type(), LoquiChannelEntryActionGroupUI const) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_channel_entry_action_group_ui_get_type(), LoquiChannelEntryActionGroupUIClass) #define LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP_UI(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_channel_entry_action_group_ui_get_type ()) #define LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_channel_entry_action_group_ui_get_type(), LoquiChannelEntryActionGroupUIClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI__ #define __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI__ typedef struct _LoquiChannelEntryActionGroupUI LoquiChannelEntryActionGroupUI; #endif struct _LoquiChannelEntryActionGroupUI { GObject __parent__; /*< public >*/ GtkUIManager * ui_manager; LoquiChannelEntryActionGroup * action_group; gchar * ui_base_path; GHashTable * ui_data_table; }; /* * Class definition */ typedef struct _LoquiChannelEntryActionGroupUIClass LoquiChannelEntryActionGroupUIClass; struct _LoquiChannelEntryActionGroupUIClass { GObjectClass __parent__; }; /* * Public methods */ GType loqui_channel_entry_action_group_ui_get_type (void) G_GNUC_CONST; #line 43 "loqui-channel-entry-action-group-ui.gob" LoquiChannelEntryActionGroupUI * loqui_channel_entry_action_group_ui_new (LoquiChannelEntryActionGroup * action_group, GtkUIManager * ui_manager, gchar * ui_base_path); #line 85 "loqui-channel-entry-action-group-ui.h" #line 141 "loqui-channel-entry-action-group-ui.gob" GtkWidget * loqui_channel_entry_action_group_ui_get_widget (LoquiChannelEntryActionGroupUI * self); #line 88 "loqui-channel-entry-action-group-ui.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-general-pref-gtk.h0000664000175000017500000000061412121600532015007 00000000000000#ifndef __LOQUI_GENERAL_PREF_GTK__ #define __LOQUI_GENERAL_PREF_GTK__ typedef enum { PREF_SORT_NONE, PREF_SORT_NICK, PREF_SORT_POWER_NICK, PREF_SORT_AWAY_NICK, PREF_SORT_POWER_AWAY_NICK, PREF_SORT_AWAY_POWER_NICK, PREF_SORT_TIME_NICK, PREF_SORT_TIME_AWAY_POWER_NICK, PREF_SORT_TIME_POWER_AWAY_NICK, } PrefSortType; #endif loqui-0.5.5/src/loqui-channel-entry-action-group.c0000664000175000017500000007314212121605257017043 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 2 "loqui-channel-entry-action-group.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 28 "loqui-channel-entry-action-group.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-channel-entry-action-group.h" #include "loqui-channel-entry-action-group-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 30 "loqui-channel-entry-action-group.gob" #include #include #include #include #include "loqui-core-gtk.h" #line 59 "loqui-channel-entry-action-group.c" /* self casting macros */ #define SELF(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP(x) #define SELF_CONST(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP_CONST(x) #define IS_SELF(x) LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP(x) #define TYPE_SELF LOQUI_TYPE_CHANNEL_ENTRY_ACTION_GROUP #define SELF_CLASS(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP_GET_CLASS(x) /* self typedefs */ typedef LoquiChannelEntryActionGroup Self; typedef LoquiChannelEntryActionGroupClass SelfClass; /* here are local prototypes */ #line 0 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_init (LoquiChannelEntryActionGroup * o) G_GNUC_UNUSED; #line 76 "loqui-channel-entry-action-group.c" #line 0 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_class_init (LoquiChannelEntryActionGroupClass * c) G_GNUC_UNUSED; #line 79 "loqui-channel-entry-action-group.c" #line 72 "loqui-channel-entry-action-group.gob" static void ___2_loqui_channel_entry_action_group_dispose (GObject * object) G_GNUC_UNUSED; #line 82 "loqui-channel-entry-action-group.c" static void ___real_loqui_channel_entry_action_group_add_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action); static void ___real_loqui_channel_entry_action_group_remove_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action); #line 95 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_add_channel_entry_after_cb (LoquiAccountManager * account_manager, LoquiChannelEntry * chent, Self * self) G_GNUC_UNUSED; #line 87 "loqui-channel-entry-action-group.c" #line 105 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_remove_channel_entry_cb (LoquiAccountManager * account_manager, LoquiChannelEntry * chent, Self * self) G_GNUC_UNUSED; #line 90 "loqui-channel-entry-action-group.c" #line 121 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_remove_channel_entry_after_cb (LoquiAccountManager * account_manager, LoquiChannelEntry * chent, Self * self) G_GNUC_UNUSED; #line 93 "loqui-channel-entry-action-group.c" #line 126 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_channel_entry_action_activate_cb (LoquiChannelEntryAction * action, Self * self) G_GNUC_UNUSED; #line 96 "loqui-channel-entry-action-group.c" #line 137 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_create_and_add_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * channel_entry) G_GNUC_UNUSED; #line 99 "loqui-channel-entry-action-group.c" #line 154 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_create_and_add_placeholder_action (LoquiChannelEntryActionGroup * self, LoquiAccount * account) G_GNUC_UNUSED; #line 102 "loqui-channel-entry-action-group.c" #line 202 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_update_accel_keys (LoquiChannelEntryActionGroup * self) G_GNUC_UNUSED; #line 105 "loqui-channel-entry-action-group.c" #line 213 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_set_channel_entry_accel_key (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * chent) G_GNUC_UNUSED; #line 108 "loqui-channel-entry-action-group.c" /* * Signal connection wrapper macro shortcuts */ #define self_connect__add_channel_entry_action(object,func,data) loqui_channel_entry_action_group_connect__add_channel_entry_action((object),(func),(data)) #define self_connect_after__add_channel_entry_action(object,func,data) loqui_channel_entry_action_group_connect_after__add_channel_entry_action((object),(func),(data)) #define self_connect_data__add_channel_entry_action(object,func,data,destroy_data,flags) loqui_channel_entry_action_group_connect_data__add_channel_entry_action((object),(func),(data),(destroy_data),(flags)) #define self_connect__remove_channel_entry_action(object,func,data) loqui_channel_entry_action_group_connect__remove_channel_entry_action((object),(func),(data)) #define self_connect_after__remove_channel_entry_action(object,func,data) loqui_channel_entry_action_group_connect_after__remove_channel_entry_action((object),(func),(data)) #define self_connect_data__remove_channel_entry_action(object,func,data,destroy_data,flags) loqui_channel_entry_action_group_connect_data__remove_channel_entry_action((object),(func),(data),(destroy_data),(flags)) typedef void (*___Sig1) (LoquiChannelEntryActionGroup *, GObject *, gpointer); static void ___marshal_Sig1 (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { register ___Sig1 callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 2); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (___Sig1) (marshal_data != NULL ? marshal_data : cc->callback); callback ((LoquiChannelEntryActionGroup *)data1, (GObject *) g_value_get_object (param_values + 1), data2); } enum { ADD_CHANNEL_ENTRY_ACTION_SIGNAL, REMOVE_CHANNEL_ENTRY_ACTION_SIGNAL, LAST_SIGNAL }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GtkActionGroupClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_channel_entry_action_group_new #define self_add_channel_entry_action loqui_channel_entry_action_group_add_channel_entry_action #define self_remove_channel_entry_action loqui_channel_entry_action_group_remove_channel_entry_action #define self_add_channel_entry_after_cb loqui_channel_entry_action_group_add_channel_entry_after_cb #define self_remove_channel_entry_cb loqui_channel_entry_action_group_remove_channel_entry_cb #define self_remove_channel_entry_after_cb loqui_channel_entry_action_group_remove_channel_entry_after_cb #define self_channel_entry_action_activate_cb loqui_channel_entry_action_group_channel_entry_action_activate_cb #define self_create_and_add_channel_entry_action loqui_channel_entry_action_group_create_and_add_channel_entry_action #define self_create_and_add_placeholder_action loqui_channel_entry_action_group_create_and_add_placeholder_action #define self_create_channel_entry_action_name loqui_channel_entry_action_group_create_channel_entry_action_name #define self_create_placeholder_action_name loqui_channel_entry_action_group_create_placeholder_action_name #define self_get_channel_entry_action loqui_channel_entry_action_group_get_channel_entry_action #define self_get_placeholder_action loqui_channel_entry_action_group_get_placeholder_action #define self_update_accel_keys loqui_channel_entry_action_group_update_accel_keys #define self_set_channel_entry_accel_key loqui_channel_entry_action_group_set_channel_entry_accel_key GType loqui_channel_entry_action_group_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiChannelEntryActionGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_channel_entry_action_group_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiChannelEntryActionGroup), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_channel_entry_action_group_init, NULL }; type = g_type_register_static (GTK_TYPE_ACTION_GROUP, "LoquiChannelEntryActionGroup", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiChannelEntryActionGroup *)g_object_new(loqui_channel_entry_action_group_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiChannelEntryActionGroup * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiChannelEntryActionGroup * GET_NEW_VARG (const char *first, ...) { LoquiChannelEntryActionGroup *ret; va_list ap; va_start (ap, first); ret = (LoquiChannelEntryActionGroup *)g_object_new_valist (loqui_channel_entry_action_group_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::dispose" LoquiChannelEntryActionGroup *self G_GNUC_UNUSED = LOQUI_CHANNEL_ENTRY_ACTION_GROUP (obj_self); #line 72 "loqui-channel-entry-action-group.gob" ___2_loqui_channel_entry_action_group_dispose(obj_self); #line 229 "loqui-channel-entry-action-group.c" #line 51 "loqui-channel-entry-action-group.gob" if(self->account_manager) { g_object_unref ((gpointer) self->account_manager); self->account_manager = NULL; } #line 232 "loqui-channel-entry-action-group.c" #line 52 "loqui-channel-entry-action-group.gob" if(self->_priv->app) { g_object_unref ((gpointer) self->_priv->app); self->_priv->app = NULL; } #line 235 "loqui-channel-entry-action-group.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::finalize" LoquiChannelEntryActionGroup *self G_GNUC_UNUSED = LOQUI_CHANNEL_ENTRY_ACTION_GROUP (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_channel_entry_action_group_init (LoquiChannelEntryActionGroup * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_CHANNEL_ENTRY_ACTION_GROUP,LoquiChannelEntryActionGroupPrivate); #line 40 "loqui-channel-entry-action-group.gob" o->account_manager = NULL; #line 258 "loqui-channel-entry-action-group.c" #line 40 "loqui-channel-entry-action-group.gob" o->_priv->app = NULL; #line 261 "loqui-channel-entry-action-group.c" } #undef __GOB_FUNCTION__ static void loqui_channel_entry_action_group_class_init (LoquiChannelEntryActionGroupClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiChannelEntryActionGroupPrivate)); parent_class = g_type_class_ref (GTK_TYPE_ACTION_GROUP); object_signals[ADD_CHANNEL_ENTRY_ACTION_SIGNAL] = g_signal_new ("add_channel_entry_action", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiChannelEntryActionGroupClass, add_channel_entry_action), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiChannelEntryAction * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-channel-entry-action-group.gob line 85: Type mismatch of \"add_channel_entry_action\" signal signature"); } object_signals[REMOVE_CHANNEL_ENTRY_ACTION_SIGNAL] = g_signal_new ("remove_channel_entry_action", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiChannelEntryActionGroupClass, remove_channel_entry_action), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiChannelEntryAction * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-channel-entry-action-group.gob line 90: Type mismatch of \"remove_channel_entry_action\" signal signature"); } #line 72 "loqui-channel-entry-action-group.gob" g_object_class->dispose = ___dispose; #line 85 "loqui-channel-entry-action-group.gob" c->add_channel_entry_action = ___real_loqui_channel_entry_action_group_add_channel_entry_action; #line 90 "loqui-channel-entry-action-group.gob" c->remove_channel_entry_action = ___real_loqui_channel_entry_action_group_remove_channel_entry_action; #line 305 "loqui-channel-entry-action-group.c" g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 54 "loqui-channel-entry-action-group.gob" LoquiChannelEntryActionGroup * loqui_channel_entry_action_group_new (LoquiApp * app, LoquiAccountManager * account_manager) { #line 316 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::new" { #line 55 "loqui-channel-entry-action-group.gob" Self *self; self = GET_NEW_VARG("name", "channel-entry-group", NULL); self->account_manager = g_object_ref(account_manager); selfp->app = g_object_ref(app); g_signal_connect_after(G_OBJECT(self->account_manager), "add_channel_entry_after", G_CALLBACK(self_add_channel_entry_after_cb), self); g_signal_connect(G_OBJECT(self->account_manager), "remove_channel_entry", G_CALLBACK(self_remove_channel_entry_cb), self); g_signal_connect_after(G_OBJECT(self->account_manager), "remove_channel_entry_after", G_CALLBACK(self_remove_channel_entry_after_cb), self); return self; }} #line 336 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 72 "loqui-channel-entry-action-group.gob" static void ___2_loqui_channel_entry_action_group_dispose (GObject * object G_GNUC_UNUSED) #line 342 "loqui-channel-entry-action-group.c" #define PARENT_HANDLER(___object) \ { if(G_OBJECT_CLASS(parent_class)->dispose) \ (* G_OBJECT_CLASS(parent_class)->dispose)(___object); } { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::dispose" { #line 73 "loqui-channel-entry-action-group.gob" Self *self; self = SELF(object); g_signal_handlers_disconnect_by_func(self->account_manager, self_add_channel_entry_after_cb, self); g_signal_handlers_disconnect_by_func(self->account_manager, self_remove_channel_entry_cb, self); g_signal_handlers_disconnect_by_func(self->account_manager, self_remove_channel_entry_after_cb, self); PARENT_HANDLER(object); }} #line 361 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 85 "loqui-channel-entry-action-group.gob" void loqui_channel_entry_action_group_add_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action) { #line 369 "loqui-channel-entry-action-group.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 85 "loqui-channel-entry-action-group.gob" g_return_if_fail (self != NULL); #line 85 "loqui-channel-entry-action-group.gob" g_return_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self)); #line 380 "loqui-channel-entry-action-group.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) ce_action); g_signal_emitv (___param_values, object_signals[ADD_CHANNEL_ENTRY_ACTION_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 85 "loqui-channel-entry-action-group.gob" static void ___real_loqui_channel_entry_action_group_add_channel_entry_action (LoquiChannelEntryActionGroup * self G_GNUC_UNUSED, LoquiChannelEntryAction * ce_action) { #line 402 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::add_channel_entry_action" { #line 86 "loqui-channel-entry-action-group.gob" gtk_action_group_add_action(GTK_ACTION_GROUP(self), GTK_ACTION(ce_action)); }} #line 409 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 90 "loqui-channel-entry-action-group.gob" void loqui_channel_entry_action_group_remove_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntryAction * ce_action) { #line 416 "loqui-channel-entry-action-group.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 90 "loqui-channel-entry-action-group.gob" g_return_if_fail (self != NULL); #line 90 "loqui-channel-entry-action-group.gob" g_return_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self)); #line 427 "loqui-channel-entry-action-group.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) ce_action); g_signal_emitv (___param_values, object_signals[REMOVE_CHANNEL_ENTRY_ACTION_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 90 "loqui-channel-entry-action-group.gob" static void ___real_loqui_channel_entry_action_group_remove_channel_entry_action (LoquiChannelEntryActionGroup * self G_GNUC_UNUSED, LoquiChannelEntryAction * ce_action) { #line 449 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::remove_channel_entry_action" { #line 91 "loqui-channel-entry-action-group.gob" gtk_action_group_remove_action(GTK_ACTION_GROUP(self), GTK_ACTION(ce_action)); }} #line 456 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 95 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_add_channel_entry_after_cb (LoquiAccountManager * account_manager, LoquiChannelEntry * chent, Self * self) { #line 463 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::add_channel_entry_after_cb" { #line 96 "loqui-channel-entry-action-group.gob" if (LOQUI_IS_ACCOUNT(chent)) { self_create_and_add_placeholder_action(self, LOQUI_ACCOUNT(chent)); } self_create_and_add_channel_entry_action(self, chent); self_update_accel_keys(self); }} #line 475 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 105 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_remove_channel_entry_cb (LoquiAccountManager * account_manager, LoquiChannelEntry * chent, Self * self) { #line 482 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::remove_channel_entry_cb" { #line 106 "loqui-channel-entry-action-group.gob" LoquiChannelEntryAction *ce_action; GtkAction *action; ce_action = self_get_channel_entry_action(self, chent); g_return_if_fail(ce_action != NULL); self_remove_channel_entry_action(self, ce_action); if (LOQUI_IS_ACCOUNT(chent)) { action = self_get_placeholder_action(self, LOQUI_ACCOUNT(chent)); g_return_if_fail(action != NULL); gtk_action_group_remove_action(GTK_ACTION_GROUP(self), action); } }} #line 500 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 121 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_remove_channel_entry_after_cb (LoquiAccountManager * account_manager, LoquiChannelEntry * chent, Self * self) { #line 507 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::remove_channel_entry_after_cb" { #line 122 "loqui-channel-entry-action-group.gob" self_update_accel_keys(self); }} #line 514 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 126 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_channel_entry_action_activate_cb (LoquiChannelEntryAction * action, Self * self) { #line 521 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::channel_entry_action_activate_cb" { #line 127 "loqui-channel-entry-action-group.gob" LoquiChannelEntry *chent; if (!loqui_app_has_toplevel_focus(selfp->app)) gtk_window_present(GTK_WINDOW(selfp->app)); chent = loqui_channel_entry_action_get_channel_entry(action); loqui_app_set_current_channel_entry(selfp->app, chent); }} #line 534 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 137 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_create_and_add_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * channel_entry) { #line 541 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::create_and_add_channel_entry_action" #line 137 "loqui-channel-entry-action-group.gob" g_return_if_fail (self != NULL); #line 137 "loqui-channel-entry-action-group.gob" g_return_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self)); #line 547 "loqui-channel-entry-action-group.c" { #line 138 "loqui-channel-entry-action-group.gob" LoquiChannelEntryAction *ce_action; gchar *ce_name; ce_name = self_create_channel_entry_action_name(self, channel_entry); ce_action = loqui_channel_entry_action_new(ce_name); loqui_channel_entry_action_set_channel_entry(ce_action, channel_entry); g_signal_connect(G_OBJECT(ce_action), "activate", G_CALLBACK(self_channel_entry_action_activate_cb), self); self_add_channel_entry_action(self, ce_action); g_object_unref(ce_action); g_free(ce_name); }} #line 565 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 154 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_create_and_add_placeholder_action (LoquiChannelEntryActionGroup * self, LoquiAccount * account) { #line 572 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::create_and_add_placeholder_action" #line 154 "loqui-channel-entry-action-group.gob" g_return_if_fail (self != NULL); #line 154 "loqui-channel-entry-action-group.gob" g_return_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self)); #line 578 "loqui-channel-entry-action-group.c" { #line 155 "loqui-channel-entry-action-group.gob" GtkAction *ph_action; gchar *ph_name; ph_name = self_create_placeholder_action_name(self, account); ph_action = gtk_action_new(ph_name, "", NULL, NULL); gtk_action_group_add_action(GTK_ACTION_GROUP(self), GTK_ACTION(ph_action)); g_object_unref(ph_action); g_free(ph_name); }} #line 593 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 168 "loqui-channel-entry-action-group.gob" gchar * loqui_channel_entry_action_group_create_channel_entry_action_name (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * chent) { #line 600 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::create_channel_entry_action_name" #line 168 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 168 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self), (gchar * )0); #line 606 "loqui-channel-entry-action-group.c" { #line 169 "loqui-channel-entry-action-group.gob" return g_strdup_printf("ChannelEntry-%d", loqui_channel_entry_get_id(chent)); }} #line 612 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 173 "loqui-channel-entry-action-group.gob" gchar * loqui_channel_entry_action_group_create_placeholder_action_name (LoquiChannelEntryActionGroup * self, LoquiAccount * account) { #line 619 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::create_placeholder_action_name" #line 173 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 173 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self), (gchar * )0); #line 625 "loqui-channel-entry-action-group.c" { #line 174 "loqui-channel-entry-action-group.gob" return g_strdup_printf("Account-PlaceHolder-%d", loqui_channel_entry_get_id(LOQUI_CHANNEL_ENTRY(account))); }} #line 631 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 178 "loqui-channel-entry-action-group.gob" LoquiChannelEntryAction * loqui_channel_entry_action_group_get_channel_entry_action (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * chent) { #line 638 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::get_channel_entry_action" #line 178 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (self != NULL, (LoquiChannelEntryAction * )0); #line 178 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self), (LoquiChannelEntryAction * )0); #line 644 "loqui-channel-entry-action-group.c" { #line 179 "loqui-channel-entry-action-group.gob" LoquiChannelEntryAction *ce_action; gchar *ce_name; ce_name = self_create_channel_entry_action_name(self, chent); ce_action = LOQUI_CHANNEL_ENTRY_ACTION(gtk_action_group_get_action(GTK_ACTION_GROUP(self), ce_name)); g_free(ce_name); return ce_action; }} #line 657 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 190 "loqui-channel-entry-action-group.gob" GtkAction * loqui_channel_entry_action_group_get_placeholder_action (LoquiChannelEntryActionGroup * self, LoquiAccount * account) { #line 664 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::get_placeholder_action" #line 190 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (self != NULL, (GtkAction * )0); #line 190 "loqui-channel-entry-action-group.gob" g_return_val_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self), (GtkAction * )0); #line 670 "loqui-channel-entry-action-group.c" { #line 191 "loqui-channel-entry-action-group.gob" gchar *ph_name; GtkAction *action; ph_name = self_create_placeholder_action_name(self, account); action = gtk_action_group_get_action(GTK_ACTION_GROUP(self), ph_name); g_free(ph_name); return action; }} #line 683 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 202 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_update_accel_keys (LoquiChannelEntryActionGroup * self) { #line 690 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::update_accel_keys" #line 202 "loqui-channel-entry-action-group.gob" g_return_if_fail (self != NULL); #line 202 "loqui-channel-entry-action-group.gob" g_return_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self)); #line 696 "loqui-channel-entry-action-group.c" { #line 203 "loqui-channel-entry-action-group.gob" LoquiAccountManagerIter iter; LoquiChannelEntry *chent; loqui_account_manager_iter_init(self->account_manager, &iter); loqui_account_manager_iter_set_first_channel_entry(&iter); while ((chent = loqui_account_manager_iter_channel_entry_next(&iter))) self_set_channel_entry_accel_key(self, chent); }} #line 708 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ #line 213 "loqui-channel-entry-action-group.gob" static void loqui_channel_entry_action_group_set_channel_entry_accel_key (LoquiChannelEntryActionGroup * self, LoquiChannelEntry * chent) { #line 715 "loqui-channel-entry-action-group.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group::set_channel_entry_accel_key" #line 213 "loqui-channel-entry-action-group.gob" g_return_if_fail (self != NULL); #line 213 "loqui-channel-entry-action-group.gob" g_return_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP (self)); #line 721 "loqui-channel-entry-action-group.c" { #line 214 "loqui-channel-entry-action-group.gob" guint keyval; guint modifiers; gint pos; gint id; gchar *path; id = loqui_channel_entry_get_id(chent); if (id < 0) return; pos = loqui_channel_entry_get_position(chent); if (0 <= pos && pos < 10) { keyval = GDK_0 + pos; modifiers = GDK_CONTROL_MASK; } else if (10 <= pos && pos < 20) { keyval = GDK_0 + pos - 10; modifiers = GDK_MOD1_MASK; } else { keyval = 0; modifiers = 0; } if (keyval != 0) { path = g_strdup_printf(SHORTCUT_CHANNEL_ENTRY_ACCEL_MAP_PREFIX "%d", id); gtk_accel_map_change_entry(path, keyval, modifiers, TRUE); g_free(path); } }} #line 754 "loqui-channel-entry-action-group.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/loqui_account_manager_store.h0000664000175000017500000000630112121600532016300 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_ACCOUNT_MANAGER_STORE_H__ #define __LOQUI_ACCOUNT_MANAGER_STORE_H__ #include #include G_BEGIN_DECLS #define LOQUI_TYPE_ACCOUNT_MANAGER_STORE (loqui_account_manager_store_get_type ()) #define LOQUI_ACCOUNT_MANAGER_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_ACCOUNT_MANAGER_STORE, LoquiAccountManagerStore)) #define LOQUI_ACCOUNT_MANAGER_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_ACCOUNT_MANAGER_STORE, LoquiAccountManagerStoreClass)) #define LOQUI_IS_ACCOUNT_MANAGER_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_ACCOUNT_MANAGER_STORE)) #define LOQUI_IS_ACCOUNT_MANAGER_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_ACCOUNT_MANAGER_STORE)) #define LOQUI_ACCOUNT_MANAGER_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_ACCOUNT_MANAGER_STORE, LoquiAccountManagerStoreClass)) typedef struct _LoquiAccountManagerStore LoquiAccountManagerStore; typedef struct _LoquiAccountManagerStoreClass LoquiAccountManagerStoreClass; typedef struct _LoquiAccountManagerStorePrivate LoquiAccountManagerStorePrivate; enum { LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_CHANNEL_ENTRY, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_POSITION, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_NAME, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_USERS, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_OP_USERS, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_COLOR, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY, LOQUI_ACCOUNT_MANAGER_STORE_COLUMN_BASIC_AWAY_STOCK_ID, LOQUI_ACCOUNT_MANAGER_STORE_N_COLUMNS, }; struct _LoquiAccountManagerStore { GObject parent; LoquiAccountManager *manager; GType column_types[LOQUI_ACCOUNT_MANAGER_STORE_N_COLUMNS]; gint stamp; LoquiAccountManagerStorePrivate *priv; }; struct _LoquiAccountManagerStoreClass { GObjectClass parent_class; }; GType loqui_account_manager_store_get_type(void) G_GNUC_CONST; LoquiAccountManagerStore* loqui_account_manager_store_new(LoquiAccountManager *manager); void loqui_account_manager_store_get_iter_by_channel_entry(LoquiAccountManagerStore* store, GtkTreeIter *iter, LoquiChannelEntry *chent); G_END_DECLS #endif /* __LOQUI_ACCOUNT_MANAGER_STORE_H__ */ loqui-0.5.5/src/loqui-transfer-window-private.h0000664000175000017500000000474512121605257016500 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 2 "loqui-transfer-window.gob" #line 26 "loqui-transfer-window-private.h" #ifndef __LOQUI_TRANSFER_WINDOW_PRIVATE_H__ #define __LOQUI_TRANSFER_WINDOW_PRIVATE_H__ #include "loqui-transfer-window.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ struct _LoquiTransferWindowPrivate { #line 48 "loqui-transfer-window.gob" GtkWidget * handlebox_toolbar; #line 49 "loqui-transfer-window.gob" GtkWidget * toolbar; #line 51 "loqui-transfer-window.gob" GtkWidget * toolbutton_start; #line 52 "loqui-transfer-window.gob" GtkWidget * toolbutton_stop; #line 53 "loqui-transfer-window.gob" GtkWidget * toggletb_info; #line 55 "loqui-transfer-window.gob" GtkWidget * treeview; #line 56 "loqui-transfer-window.gob" GtkWidget * button_dir; #line 57 "loqui-transfer-window.gob" GtkWidget * entry_filename; #line 58 "loqui-transfer-window.gob" GtkWidget * entry_directory; #line 59 "loqui-transfer-window.gob" GtkWidget * label_updown; #line 60 "loqui-transfer-window.gob" GtkWidget * label_status; #line 61 "loqui-transfer-window.gob" GtkWidget * label_path; #line 62 "loqui-transfer-window.gob" GtkWidget * progressbar; #line 63 "loqui-transfer-window.gob" GtkWidget * label_size; #line 64 "loqui-transfer-window.gob" GtkWidget * label_rate; #line 65 "loqui-transfer-window.gob" GtkWidget * textview_log; #line 66 "loqui-transfer-window.gob" GtkWidget * statusbar; #line 68 "loqui-transfer-window.gob" GtkUIManager * ui_manager; #line 69 "loqui-transfer-window.gob" GtkActionGroup * action_group; #line 75 "loqui-transfer-window-private.h" }; #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-protocol-selection-dialog-private.h0000664000175000017500000000311412121605257020415 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 3 "loqui-protocol-selection-dialog.gob" #line 26 "loqui-protocol-selection-dialog-private.h" #ifndef __LOQUI_PROTOCOL_SELECTION_DIALOG_PRIVATE_H__ #define __LOQUI_PROTOCOL_SELECTION_DIALOG_PRIVATE_H__ #include "loqui-protocol-selection-dialog.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ struct _LoquiProtocolSelectionDialogPrivate { #line 45 "loqui-protocol-selection-dialog.gob" LoquiProtocolManager * protocol_manager; #line 47 "loqui-protocol-selection-dialog.gob" GtkWidget * combobox; #line 48 "loqui-protocol-selection-dialog.gob" GtkListStore * store; #line 43 "loqui-protocol-selection-dialog-private.h" }; #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-channel-entry-action-group-ui-private.h0000664000175000017500000000242012121605257021122 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 2 "loqui-channel-entry-action-group-ui.gob" #line 26 "loqui-channel-entry-action-group-ui-private.h" #ifndef __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_PRIVATE_H__ #define __LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_PRIVATE_H__ #include "loqui-channel-entry-action-group-ui.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/prefs_dialog.c0000664000175000017500000006730012121600532013164 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #include "config.h" #include #include "prefs_dialog.h" #include #include "gtkutils.h" #include "loqui_app.h" #include #include #include #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" #include "loqui-core-gtk.h" struct _PrefsDialogPrivate { GtkWidget *check_save_size; GtkWidget *check_auto_switch_scrolling; GtkWidget *check_auto_switch_scrolling_common_buffer; GtkWidget *check_auto_reconnect; GtkWidget *check_connect_startup; GtkWidget *check_select_channel_joined; GtkWidget *entry_away_message; GtkWidget *entry_time_format; GtkWidget *spin_common_buffer_max_line_number; GtkWidget *spin_channel_buffer_max_line_number; GtkWidget *check_auto_command_mode; GtkWidget *entry_command_prefix; GtkWidget *check_save_log; GtkWidget *check_parse_plum_recent; GtkWidget *entry_recent_log_regexp; GtkWidget *check_treat_as_recent_log_until_first_pong_received; GtkWidget *check_use_notification; GtkWidget *check_exec_notification_by_notice; GtkWidget *textview_highlight; GtkWidget *check_use_transparent_ignore; GtkWidget *textview_transparent_ignore; GtkWidget *check_use_normal_ignore; GtkWidget *textview_normal_ignore; GtkWidget *entry_browser_command; GtkWidget *entry_notification_command; GtkWidget *textview_title_format_title; GtkWidget *textview_title_format_statusbar; LoquiApp *app; }; static GtkDialogClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_DIALOG static void prefs_dialog_class_init(PrefsDialogClass *klass); static void prefs_dialog_init(PrefsDialog *prefs_dialog); static void prefs_dialog_finalize(GObject *object); static void prefs_dialog_destroy(GtkObject *object); static void prefs_dialog_load_settings(PrefsDialog *dialog); static void prefs_dialog_save_settings(PrefsDialog *dialog); static void prefs_dialog_response_cb(GtkWidget *widget, gint response, gpointer data); GType prefs_dialog_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(PrefsDialogClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) prefs_dialog_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(PrefsDialog), 0, /* n_preallocs */ (GInstanceInitFunc) prefs_dialog_init }; type = g_type_register_static(PARENT_TYPE, "PrefsDialog", &our_info, 0); } return type; } static void prefs_dialog_class_init (PrefsDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = prefs_dialog_finalize; gtk_object_class->destroy = prefs_dialog_destroy; } static void prefs_dialog_init (PrefsDialog *prefs_dialog) { PrefsDialogPrivate *priv; priv = g_new0(PrefsDialogPrivate, 1); prefs_dialog->priv = priv; } static void prefs_dialog_finalize (GObject *object) { PrefsDialog *prefs_dialog; g_return_if_fail(object != NULL); g_return_if_fail(IS_PREFS_DIALOG(object)); prefs_dialog = PREFS_DIALOG(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(prefs_dialog->priv); } static void prefs_dialog_destroy (GtkObject *object) { PrefsDialog *prefs_dialog; g_return_if_fail(object != NULL); g_return_if_fail(IS_PREFS_DIALOG(object)); prefs_dialog = PREFS_DIALOG(object); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void prefs_dialog_load_settings(PrefsDialog *dialog) { PrefsDialogPrivate *priv; GtkTextBuffer *buffer; LoquiPref *general_pref; GList *list; gchar *buf; g_return_if_fail(dialog != NULL); g_return_if_fail(IS_PREFS_DIALOG(dialog)); priv = dialog->priv; general_pref = loqui_get_general_pref(); #define SET_CHECKBOX(_check, _group, _key, _default) { \ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(_check), \ loqui_pref_get_with_default_boolean(general_pref, _group, _key, _default, NULL)); \ } SET_CHECKBOX(priv->check_auto_switch_scrolling, LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoSwitchScrolling", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_SWITCH_SCROLLING); SET_CHECKBOX(priv->check_auto_switch_scrolling_common_buffer, LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoSwitchScrollingCommonBuffer", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_SWITCH_SCROLLING_COMMON_BUFFER); SET_CHECKBOX(priv->check_parse_plum_recent, LOQUI_GENERAL_PREF_GROUP_PROXY, "ParsePlumRecent", LOQUI_GENERAL_PREF_DEFAULT_PROXY_PARSE_PLUM_RECENT); SET_CHECKBOX(priv->check_save_size, LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "SaveSize", LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_SAVE_SIZE); SET_CHECKBOX(priv->check_treat_as_recent_log_until_first_pong_received, LOQUI_GENERAL_PREF_GROUP_PROXY, "TreatAsRecentLogUntilFirstPongReceived", LOQUI_GENERAL_PREF_DEFAULT_PROXY_TREAT_AS_RECENT_LOG_UNTIL_FIRST_PONG_RECEIVED); SET_CHECKBOX(priv->check_use_notification, LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "UseNotification", LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_USE_NOTIFICATION); SET_CHECKBOX(priv->check_exec_notification_by_notice, LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "ExecNotificationByNotice", LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_EXEC_NOTIFICATION_BY_NOTICE); SET_CHECKBOX(priv->check_use_normal_ignore, LOQUI_GENERAL_PREF_GROUP_IGNORE, "UseNormalIgnore", LOQUI_GENERAL_PREF_DEFAULT_IGNORE_USE_NORMAL_IGNORE); SET_CHECKBOX(priv->check_use_transparent_ignore, LOQUI_GENERAL_PREF_GROUP_IGNORE, "UseTransparentIgnore", LOQUI_GENERAL_PREF_DEFAULT_IGNORE_USE_TRANSPARENT_IGNORE); SET_CHECKBOX(priv->check_auto_reconnect, LOQUI_GENERAL_PREF_GROUP_ACCOUNT, "AutoReconnect", LOQUI_GENERAL_PREF_DEFAULT_ACCOUNT_AUTO_RECONNECT); SET_CHECKBOX(priv->check_connect_startup, LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "ConnectStartup", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_CONNECT_STARTUP); SET_CHECKBOX(priv->check_select_channel_joined, LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "SelectChannelJoined", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_SELECT_CHANNEL_JOINED); SET_CHECKBOX(priv->check_auto_command_mode, LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoCommandMode", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_COMMAND_MODE); SET_CHECKBOX(priv->check_save_log, LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "SaveLog", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_SAVE_LOG); #define LOAD_FROM_ARRAY_TO_TEXT_VIEW(_group, _key, _textview) { \ list = loqui_utils_string_array_to_list(loqui_pref_get_string_list(general_pref, _group, _key, NULL, NULL), TRUE); \ gtkutils_set_textview_from_string_list(GTK_TEXT_VIEW(_textview), list); \ loqui_utils_free_list_and_elements(list); \ } LOAD_FROM_ARRAY_TO_TEXT_VIEW(LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "HighlightList", priv->textview_highlight); LOAD_FROM_ARRAY_TO_TEXT_VIEW(LOQUI_GENERAL_PREF_GROUP_IGNORE, "NormalIgnoreList", priv->textview_normal_ignore); LOAD_FROM_ARRAY_TO_TEXT_VIEW(LOQUI_GENERAL_PREF_GROUP_IGNORE, "TransparentIgnoreList", priv->textview_transparent_ignore); #undef LOAD_FROM_ARRAY_TO_TEXT_VIEW buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(priv->textview_title_format_title)); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_TITLE_FORMAT, "TitleFormatTitle", LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_TITLE, NULL); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(buffer), LOQUI_UTILS_EMPTY_IF_NULL(buf), -1); g_free(buf); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_TITLE_FORMAT, "TitleFormatStatusbar", LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_STATUSBAR, NULL); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(priv->textview_title_format_statusbar)); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(buffer), LOQUI_UTILS_EMPTY_IF_NULL(buf), -1); g_free(buf); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_MESSAGES, "AwayMessage", LOQUI_GENERAL_PREF_DEFAULT_MESSAGES_AWAY_MESSAGE, NULL); gtk_entry_set_text(GTK_ENTRY(priv->entry_away_message), LOQUI_UTILS_EMPTY_IF_NULL(buf)); g_free(buf); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS, "BrowserCommand", LOQUI_GENERAL_PREF_GTK_DEFAULT_COMMANDS_BROWSER_COMMAND, NULL); gtk_entry_set_text(GTK_ENTRY(priv->entry_browser_command), LOQUI_UTILS_EMPTY_IF_NULL(buf)); g_free(buf); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS, "NotificationCommand", LOQUI_GENERAL_PREF_GTK_DEFAULT_COMMANDS_NOTIFICATION_COMMAND, NULL); gtk_entry_set_text(GTK_ENTRY(priv->entry_notification_command), LOQUI_UTILS_EMPTY_IF_NULL(buf)); g_free(buf); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "TimeFormat", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_TIME_FORMAT, NULL); gtk_entry_set_text(GTK_ENTRY(priv->entry_time_format), LOQUI_UTILS_EMPTY_IF_NULL(buf)); g_free(buf); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "CommandPrefix", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_COMMAND_PREFIX, NULL); gtk_entry_set_text(GTK_ENTRY(priv->entry_command_prefix), LOQUI_UTILS_EMPTY_IF_NULL(buf)); g_free(buf); buf = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_PROXY, "RecentLogRegexp", LOQUI_GENERAL_PREF_DEFAULT_PROXY_RECENT_LOG_REGEXP, NULL); gtk_entry_set_text(GTK_ENTRY(priv->entry_recent_log_regexp), LOQUI_UTILS_EMPTY_IF_NULL(buf)); g_free(buf); gtk_spin_button_set_value(GTK_SPIN_BUTTON(priv->spin_common_buffer_max_line_number), loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "CommonBufferMaxLineNumber", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_COMMON_BUFFER_MAX_LINE_NUMBER, NULL)); gtk_spin_button_set_value(GTK_SPIN_BUTTON(priv->spin_channel_buffer_max_line_number), loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "ChannelBufferMaxLineNumber", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_CHANNEL_BUFFER_MAX_LINE_NUMBER, NULL)); } static void prefs_dialog_save_settings(PrefsDialog *dialog) { PrefsDialogPrivate *priv; gchar *buf; LoquiTitleFormat *ltf; GList *list; gchar **strarray; gsize len; g_return_if_fail(dialog != NULL); g_return_if_fail(IS_PREFS_DIALOG(dialog)); priv = dialog->priv; loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "SaveSize", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_save_size))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_PROXY, "ParsePlumRecent", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_parse_plum_recent))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_IGNORE, "UseNormalIgnore", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_use_normal_ignore))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_IGNORE, "UseTransparentIgnore", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_use_transparent_ignore))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "UseNotification", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_use_notification))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "ExecNotificationByNotice", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_exec_notification_by_notice))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_PROXY, "TreatAsRecentLogUntilFirstPongReceived", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_treat_as_recent_log_until_first_pong_received))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_ACCOUNT, "AutoReconnect", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_auto_reconnect))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "ConnectStartup", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_connect_startup))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "SelectChannelJoined", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_select_channel_joined))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoCommandMode", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_auto_command_mode))); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "SaveLog", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_save_log))); loqui_app_set_auto_switch_scrolling_channel_buffers(priv->app, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_auto_switch_scrolling))); loqui_app_set_auto_switch_scrolling_common_buffer(priv->app, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->check_auto_switch_scrolling_common_buffer))); #define SAVE_FROM_TEXT_VIEW_TO_ARRAY(_group, _key, _textview) { \ list = NULL; \ gtkutils_set_string_list_from_textview(&list, GTK_TEXT_VIEW(_textview)); \ len = g_list_length(list); \ strarray = loqui_utils_list_to_string_array(list, TRUE); \ loqui_pref_set_string_list(loqui_get_general_pref(), _group, _key, strarray, len); \ g_strfreev(strarray); \ } SAVE_FROM_TEXT_VIEW_TO_ARRAY(LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "HighlightList", priv->textview_highlight); SAVE_FROM_TEXT_VIEW_TO_ARRAY(LOQUI_GENERAL_PREF_GROUP_IGNORE, "NormalIgnoreList", priv->textview_normal_ignore); SAVE_FROM_TEXT_VIEW_TO_ARRAY(LOQUI_GENERAL_PREF_GROUP_IGNORE, "TransparentIgnoreList", priv->textview_transparent_ignore); loqui_pref_set_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_MESSAGES, "AwayMessage", gtk_entry_get_text(GTK_ENTRY(priv->entry_away_message))); loqui_pref_set_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS, "BrowserCommand", gtk_entry_get_text(GTK_ENTRY(priv->entry_browser_command))); loqui_pref_set_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_COMMANDS, "NotificationCommand", gtk_entry_get_text(GTK_ENTRY(priv->entry_notification_command))); loqui_pref_set_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "TimeFormat", gtk_entry_get_text(GTK_ENTRY(priv->entry_time_format))); loqui_pref_set_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "CommandPrefix", gtk_entry_get_text(GTK_ENTRY(priv->entry_command_prefix))); loqui_pref_set_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_PROXY, "RecentLogRegexp", gtk_entry_get_text(GTK_ENTRY(priv->entry_recent_log_regexp))); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "CommonBufferMaxLineNumber", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->spin_common_buffer_max_line_number))); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "ChannelBufferMaxLineNumber", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(priv->spin_channel_buffer_max_line_number))); /* FIXME: use _default */ #define SET_TITLE_FORMAT(_textview, _group, _key, _default, _setter) { \ buf = gtkutils_get_text_from_textview(GTK_TEXT_VIEW(_textview)); \ if (strlen(buf) > 0) { \ ltf = loqui_title_format_new(); \ if (!loqui_title_format_parse(ltf, buf, NULL)) { \ gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Invalid title format: default is used for %s."), _key); \ loqui_title_format_free(ltf); \ _setter(priv->app->appinfo, NULL); \ } else { \ _setter(priv->app->appinfo, ltf); \ } \ } else { \ _setter(priv->app->appinfo, NULL); \ } \ loqui_pref_set_string(loqui_get_general_pref(), _group, _key, buf); \ } SET_TITLE_FORMAT(priv->textview_title_format_title, LOQUI_GENERAL_PREF_GTK_GROUP_TITLE_FORMAT, "TitleFormatTitle", LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_TITLE, loqui_app_info_set_title_format_title); SET_TITLE_FORMAT(priv->textview_title_format_statusbar, LOQUI_GENERAL_PREF_GTK_GROUP_TITLE_FORMAT, "TitleFormatStatusbar", LOQUI_GENERAL_PREF_GTK_DEFAULT_TITLE_FORMAT_TITLE_FORMAT_STATUSBAR, loqui_app_info_set_title_format_statusbar); loqui_core_gtk_save_general_pref(LOQUI_CORE_GTK(loqui_get_core())); } static void prefs_dialog_response_cb(GtkWidget *widget, gint response, gpointer data) { g_return_if_fail(IS_PREFS_DIALOG(data)); if(response == GTK_RESPONSE_OK) { prefs_dialog_save_settings(PREFS_DIALOG(data)); } } GtkWidget* prefs_dialog_new(LoquiApp *app) { PrefsDialog *dialog; PrefsDialogPrivate *priv; GtkWidget *notebook; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *frame; GtkWidget *label; GtkWidget *scrolled_win; dialog = g_object_new(prefs_dialog_get_type(), NULL); gtk_window_set_title(GTK_WINDOW(dialog), _("Common Preferences")); gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(prefs_dialog_response_cb), dialog); priv = dialog->priv; priv->app = app; notebook = gtk_notebook_new(); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), notebook, TRUE, TRUE, 5); vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(_("General"))); priv->check_save_size = gtk_check_button_new_with_label(_("Save window/widget sizes")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_save_size, FALSE, FALSE, 0); priv->check_auto_switch_scrolling = gtk_check_button_new_with_label(_("Switch whether scrolling channel buffer or not automatically")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_auto_switch_scrolling, FALSE, FALSE, 0); priv->check_auto_switch_scrolling_common_buffer = gtk_check_button_new_with_label(_("Switch whether scrolling common buffer or not automatically")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_auto_switch_scrolling_common_buffer, FALSE, FALSE, 0); priv->check_auto_reconnect = gtk_check_button_new_with_label(_("Reconnect automatically when connections are terminated.")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_auto_reconnect, FALSE, FALSE, 0); priv->check_connect_startup = gtk_check_button_new_with_label(_("Connect default accounts when the program started")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_connect_startup, FALSE, FALSE, 0); priv->check_select_channel_joined = gtk_check_button_new_with_label(_("Select a new channel automatically.")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_select_channel_joined, FALSE, FALSE, 0); gtkutils_add_label_entry(vbox, _("Away message: "), &priv->entry_away_message, ""); gtkutils_add_label_entry(vbox, _("Format of time in buffers: "), &priv->entry_time_format, ""); gtkutils_add_label_spin_button(vbox, _("Max line number of a common buffer(0: unlimited): "), &priv->spin_common_buffer_max_line_number, 0, G_MAXDOUBLE, 50); gtkutils_add_label_spin_button(vbox, _("Max line number of a channel buffer(0: unlimited): "), &priv->spin_channel_buffer_max_line_number, 0, G_MAXDOUBLE, 50); priv->check_auto_command_mode = gtk_check_button_new_with_label(_("Toggle command mode automatically")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_auto_command_mode, FALSE, FALSE, 0); gtkutils_add_label_entry(vbox, _("Prefix for commands: "), &priv->entry_command_prefix, ""); priv->check_save_log = gtk_check_button_new_with_label(_("Save logs (Experimental)")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_save_log, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(_("Proxy"))); priv->check_parse_plum_recent = gtk_check_button_new_with_label(_("Parse plum (an irc proxy) recent feature (Experimental)")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_parse_plum_recent, FALSE, FALSE, 0); gtkutils_add_label_entry(vbox, _("Regular Expression for recent logs: "), &priv->entry_recent_log_regexp, ""); priv->check_treat_as_recent_log_until_first_pong_received = gtk_check_button_new_with_label(_("Treat server messages as recent logs until received a first PONG (for some irc-proxies).")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_treat_as_recent_log_until_first_pong_received, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(_("Highlight"))); priv->check_use_notification = gtk_check_button_new_with_label(_("Use notification")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_use_notification, FALSE, FALSE, 0); priv->check_exec_notification_by_notice = gtk_check_button_new_with_label(_("Execute notification by NOTICE")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_exec_notification_by_notice, FALSE, FALSE, 0); frame = gtkutils_create_framed_textview(&priv->textview_highlight, _("Highlighting keywords(Separate each words with linefeeds)")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); label = gtk_label_new(_("Special prefixes:\n" " \"re:\": Perl Compatible Regular Expression (ex. re:foo*)\n" " \"plain:\": Plain (normal) text (ex. plain:word)")); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(_("Ignore"))); priv->check_use_normal_ignore = gtk_check_button_new_with_label(_("Use ignore (normal) feature")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_use_normal_ignore, FALSE, FALSE, 0); frame = gtkutils_create_framed_textview(&priv->textview_normal_ignore, _("Nickname list to ignore (normal) ('*' and '?' can be used)")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); priv->check_use_transparent_ignore = gtk_check_button_new_with_label(_("Use ignore (transparent) feature")); gtk_box_pack_start(GTK_BOX(vbox), priv->check_use_transparent_ignore, FALSE, FALSE, 0); frame = gtkutils_create_framed_textview(&priv->textview_transparent_ignore, _("Nickname list to ignore (transparent) ('*' and '?' can be used)")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(_("Command"))); gtkutils_add_label_entry(vbox, _("Browser: "), &priv->entry_browser_command, ""); label = gtk_label_new(_("An URL will be quoted and substituted with %s.\n" "Sample:\n" " URL: http://example.com/#id\n" " Browser: mozilla -remote openURL\\(%s,new-tab\\)\n" " -> mozilla -remote openURL\\('http://example.com/#id',new-tab\\)")); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); gtkutils_add_label_entry(vbox, _("Notification: "), &priv->entry_notification_command, ""); vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, gtk_label_new(_("Format"))); label = gtk_label_new(_("See title formatting help of the software 'foobar2000'.\nThe list of variables is at loqui_app_info.c.\nIf you version is input, it is used.")); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); frame = gtk_frame_new(_("Title format of title")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5); vbox2 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox2); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox2), scrolled_win, TRUE, TRUE, 0); priv->textview_title_format_title = gtk_text_view_new(); gtk_container_add(GTK_CONTAINER(scrolled_win), priv->textview_title_format_title); label = gtk_label_new(_("Default:")); gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); label = gtk_label_new(LOQUI_APP_INFO_DEFAULT_TITLE_FORMAT_TITLE); gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); gtk_label_set_selectable(GTK_LABEL(label), TRUE); frame = gtk_frame_new(_("Title format of statusbar")); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5); vbox2 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox2); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox2), scrolled_win, TRUE, TRUE, 0); priv->textview_title_format_statusbar = gtk_text_view_new(); gtk_container_add(GTK_CONTAINER(scrolled_win), priv->textview_title_format_statusbar); label = gtk_label_new(_("Default:")); gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); label = gtk_label_new(LOQUI_APP_INFO_DEFAULT_TITLE_FORMAT_STATUSBAR); gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); gtk_label_set_selectable(GTK_LABEL(label), TRUE); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); prefs_dialog_load_settings(dialog); gtk_widget_show_all(GTK_WIDGET(GTK_DIALOG(dialog)->vbox)); return GTK_WIDGET(dialog); } void prefs_dialog_open(LoquiApp *app) { GtkWidget *dialog; dialog = prefs_dialog_new(app); gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(app)); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } loqui-0.5.5/src/remark_entry.h0000664000175000017500000000532112121600532013230 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #ifndef __REMARK_ENTRY_H__ #define __REMARK_ENTRY_H__ #include #include "loqui_app.h" G_BEGIN_DECLS #define TYPE_REMARK_ENTRY (remark_entry_get_type ()) #define REMARK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REMARK_ENTRY, RemarkEntry)) #define REMARK_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REMARK_ENTRY, RemarkEntryClass)) #define IS_REMARK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REMARK_ENTRY)) #define IS_REMARK_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REMARK_ENTRY)) #define REMARK_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REMARK_ENTRY, RemarkEntryClass)) typedef struct _RemarkEntry RemarkEntry; typedef struct _RemarkEntryClass RemarkEntryClass; typedef struct _RemarkEntryPrivate RemarkEntryPrivate; struct _RemarkEntry { GtkHBox parent; GtkWidget *entry; RemarkEntryPrivate *priv; }; struct _RemarkEntryClass { GtkHBoxClass parent_class; void (* call_history)(RemarkEntry *entry, gint count); void (* scroll_channel_textview)(RemarkEntry *entry, gint pages); void (* scroll_common_textview)(RemarkEntry *entry, gint pages); }; GtkType remark_entry_get_type (void) G_GNUC_CONST; GtkWidget* remark_entry_new(LoquiApp *app, GtkToggleAction *toggle_command_action); G_CONST_RETURN gchar *remark_entry_get_text(RemarkEntry *entry); void remark_entry_clear_text(RemarkEntry *entry); void remark_entry_set_multiline(RemarkEntry *entry, gboolean is_multiline); gboolean remark_entry_get_multiline(RemarkEntry *entry); void remark_entry_set_command_mode(RemarkEntry *entry, gboolean command_mode); gboolean remark_entry_get_command_mode(RemarkEntry *entry); G_END_DECLS #endif /* __REMARK_ENTRY_H__ */ loqui-0.5.5/src/loqui-style-entry.c0000664000175000017500000003353112121605257014164 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-style-entry.h" #include "loqui-style-entry-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 6 "loqui-style-entry.gob" #include #include #line 31 "loqui-style-entry.c" /* self casting macros */ #define SELF(x) LOQUI_STYLE_ENTRY(x) #define SELF_CONST(x) LOQUI_STYLE_ENTRY_CONST(x) #define IS_SELF(x) LOQUI_IS_STYLE_ENTRY(x) #define TYPE_SELF LOQUI_TYPE_STYLE_ENTRY #define SELF_CLASS(x) LOQUI_STYLE_ENTRY_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_STYLE_ENTRY_GET_CLASS(x) /* self typedefs */ typedef LoquiStyleEntry Self; typedef LoquiStyleEntryClass SelfClass; /* here are local prototypes */ static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec); static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec); #line 0 "loqui-style-entry.gob" static void loqui_style_entry_init (LoquiStyleEntry * o) G_GNUC_UNUSED; #line 50 "loqui-style-entry.c" #line 0 "loqui-style-entry.gob" static void loqui_style_entry_class_init (LoquiStyleEntryClass * c) G_GNUC_UNUSED; #line 53 "loqui-style-entry.c" enum { PROP_0, PROP_IS_COLOR_DEFAULT, PROP_COLOR_STRING, PROP_IS_FONT_DEFAULT, PROP_STRING, PROP_INTEGER, PROP_DOUBLE }; /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_get_is_color_default loqui_style_entry_get_is_color_default #define self_set_is_color_default loqui_style_entry_set_is_color_default #define self_get_is_font_default loqui_style_entry_get_is_font_default #define self_set_is_font_default loqui_style_entry_set_is_font_default #define self_get_string loqui_style_entry_get_string #define self_set_string loqui_style_entry_set_string #define self_get_integer loqui_style_entry_get_integer #define self_set_integer loqui_style_entry_set_integer #define self_get_double loqui_style_entry_get_double #define self_set_double loqui_style_entry_set_double #define self_set_color_string loqui_style_entry_set_color_string #define self_get_color_string loqui_style_entry_get_color_string GType loqui_style_entry_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiStyleEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_style_entry_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiStyleEntry), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_style_entry_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiStyleEntry", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiStyleEntry *)g_object_new(loqui_style_entry_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiStyleEntry * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiStyleEntry * GET_NEW_VARG (const char *first, ...) { LoquiStyleEntry *ret; va_list ap; va_start (ap, first); ret = (LoquiStyleEntry *)g_object_new_valist (loqui_style_entry_get_type (), first, ap); va_end (ap); return ret; } static void loqui_style_entry_init (LoquiStyleEntry * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Style:Entry::init" } #undef __GOB_FUNCTION__ static void loqui_style_entry_class_init (LoquiStyleEntryClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Style:Entry::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; parent_class = g_type_class_ref (G_TYPE_OBJECT); g_object_class->get_property = ___object_get_property; g_object_class->set_property = ___object_set_property; { GParamSpec *param_spec; param_spec = g_param_spec_boolean ("is_color_default" /* name */, _("Is color default") /* nick */, _("Is color default or not") /* blurb */, TRUE /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_IS_COLOR_DEFAULT, param_spec); param_spec = g_param_spec_string ("color_string" /* name */, _("string as color") /* nick */, _("String representation of color") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_COLOR_STRING, param_spec); param_spec = g_param_spec_boolean ("is_font_default" /* name */, _("Is font default") /* nick */, _("Is font default or not") /* blurb */, TRUE /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_IS_FONT_DEFAULT, param_spec); param_spec = g_param_spec_string ("string" /* name */, "string" /* nick */, "String" /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_STRING, param_spec); param_spec = g_param_spec_int ("integer" /* name */, "integer" /* nick */, "Integer" /* blurb */, G_MININT /* minimum */, G_MAXINT /* maximum */, 0 /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_INTEGER, param_spec); param_spec = g_param_spec_double ("double" /* name */, "Double" /* nick */, "Double" /* blurb */, -G_MAXDOUBLE /* minimum */, G_MAXDOUBLE /* maximum */, 0.0 /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_DOUBLE, param_spec); } } #undef __GOB_FUNCTION__ static void ___object_set_property (GObject *object, guint property_id, const GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Style:Entry::set_property" { LoquiStyleEntry *self G_GNUC_UNUSED; self = LOQUI_STYLE_ENTRY (object); switch (property_id) { case PROP_IS_COLOR_DEFAULT: { #line 15 "loqui-style-entry.gob" self->is_color_default = g_value_get_boolean (VAL); #line 220 "loqui-style-entry.c" } break; case PROP_COLOR_STRING: { #line 26 "loqui-style-entry.gob" self_set_color_string(self, g_value_get_string(VAL)); #line 227 "loqui-style-entry.c" } break; case PROP_IS_FONT_DEFAULT: { #line 32 "loqui-style-entry.gob" self->is_font_default = g_value_get_boolean (VAL); #line 234 "loqui-style-entry.c" } break; case PROP_STRING: { #line 43 "loqui-style-entry.gob" { char *old = self->string; self->string = g_value_dup_string (VAL); g_free (old); } #line 241 "loqui-style-entry.c" } break; case PROP_INTEGER: { #line 54 "loqui-style-entry.gob" self->i = g_value_get_int(VAL); #line 248 "loqui-style-entry.c" } break; case PROP_DOUBLE: { #line 62 "loqui-style-entry.gob" self->d = g_value_get_double(VAL); #line 255 "loqui-style-entry.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ static void ___object_get_property (GObject *object, guint property_id, GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Style:Entry::get_property" { LoquiStyleEntry *self G_GNUC_UNUSED; self = LOQUI_STYLE_ENTRY (object); switch (property_id) { case PROP_IS_COLOR_DEFAULT: { #line 15 "loqui-style-entry.gob" g_value_set_boolean (VAL, self->is_color_default); #line 286 "loqui-style-entry.c" } break; case PROP_COLOR_STRING: { #line 27 "loqui-style-entry.gob" g_value_set_string(VAL, self->color_string); #line 293 "loqui-style-entry.c" } break; case PROP_IS_FONT_DEFAULT: { #line 32 "loqui-style-entry.gob" g_value_set_boolean (VAL, self->is_font_default); #line 300 "loqui-style-entry.c" } break; case PROP_STRING: { #line 43 "loqui-style-entry.gob" g_value_set_string (VAL, self->string); #line 307 "loqui-style-entry.c" } break; case PROP_INTEGER: { #line 55 "loqui-style-entry.gob" g_value_set_int(VAL, self->i); #line 314 "loqui-style-entry.c" } break; case PROP_DOUBLE: { #line 63 "loqui-style-entry.gob" g_value_set_double(VAL, self->d); #line 321 "loqui-style-entry.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ #line 15 "loqui-style-entry.gob" gboolean loqui_style_entry_get_is_color_default (LoquiStyleEntry * self) { #line 342 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::get_is_color_default" { #line 15 "loqui-style-entry.gob" gboolean val; g_object_get (G_OBJECT (self), "is_color_default", &val, NULL); return val; }} #line 348 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 15 "loqui-style-entry.gob" void loqui_style_entry_set_is_color_default (LoquiStyleEntry * self, gboolean val) { #line 355 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::set_is_color_default" { #line 15 "loqui-style-entry.gob" g_object_set (G_OBJECT (self), "is_color_default", val, NULL); }} #line 361 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 32 "loqui-style-entry.gob" gboolean loqui_style_entry_get_is_font_default (LoquiStyleEntry * self) { #line 368 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::get_is_font_default" { #line 32 "loqui-style-entry.gob" gboolean val; g_object_get (G_OBJECT (self), "is_font_default", &val, NULL); return val; }} #line 374 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 32 "loqui-style-entry.gob" void loqui_style_entry_set_is_font_default (LoquiStyleEntry * self, gboolean val) { #line 381 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::set_is_font_default" { #line 32 "loqui-style-entry.gob" g_object_set (G_OBJECT (self), "is_font_default", val, NULL); }} #line 387 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 43 "loqui-style-entry.gob" gchar * loqui_style_entry_get_string (LoquiStyleEntry * self) { #line 394 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::get_string" { #line 43 "loqui-style-entry.gob" gchar* val; g_object_get (G_OBJECT (self), "string", &val, NULL); return val; }} #line 400 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 43 "loqui-style-entry.gob" void loqui_style_entry_set_string (LoquiStyleEntry * self, gchar * val) { #line 407 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::set_string" { #line 43 "loqui-style-entry.gob" g_object_set (G_OBJECT (self), "string", val, NULL); }} #line 413 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 55 "loqui-style-entry.gob" gint loqui_style_entry_get_integer (LoquiStyleEntry * self) { #line 420 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::get_integer" { #line 50 "loqui-style-entry.gob" gint val; g_object_get (G_OBJECT (self), "integer", &val, NULL); return val; }} #line 426 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 54 "loqui-style-entry.gob" void loqui_style_entry_set_integer (LoquiStyleEntry * self, gint val) { #line 433 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::set_integer" { #line 50 "loqui-style-entry.gob" g_object_set (G_OBJECT (self), "integer", val, NULL); }} #line 439 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 63 "loqui-style-entry.gob" gdouble loqui_style_entry_get_double (LoquiStyleEntry * self) { #line 446 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::get_double" { #line 58 "loqui-style-entry.gob" gdouble val; g_object_get (G_OBJECT (self), "double", &val, NULL); return val; }} #line 452 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 62 "loqui-style-entry.gob" void loqui_style_entry_set_double (LoquiStyleEntry * self, gdouble val) { #line 459 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::set_double" { #line 58 "loqui-style-entry.gob" g_object_set (G_OBJECT (self), "double", val, NULL); }} #line 465 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 66 "loqui-style-entry.gob" gboolean loqui_style_entry_set_color_string (LoquiStyleEntry * self, const gchar * color_string) { #line 472 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::set_color_string" #line 66 "loqui-style-entry.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 66 "loqui-style-entry.gob" g_return_val_if_fail (LOQUI_IS_STYLE_ENTRY (self), (gboolean )0); #line 478 "loqui-style-entry.c" { #line 66 "loqui-style-entry.gob" LOQUI_G_FREE_UNLESS_NULL(self->color_string); if (!color_string) return FALSE; if (!gdk_color_parse(color_string, &self->color)) return FALSE; self->color_string = g_strdup(color_string); return TRUE; }} #line 493 "loqui-style-entry.c" #undef __GOB_FUNCTION__ #line 82 "loqui-style-entry.gob" gchar * loqui_style_entry_get_color_string (LoquiStyleEntry * self) { #line 500 "loqui-style-entry.c" #define __GOB_FUNCTION__ "Loqui:Style:Entry::get_color_string" #line 82 "loqui-style-entry.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 82 "loqui-style-entry.gob" g_return_val_if_fail (LOQUI_IS_STYLE_ENTRY (self), (gchar * )0); #line 506 "loqui-style-entry.c" { #line 82 "loqui-style-entry.gob" return self->color_string; }} #line 512 "loqui-style-entry.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/gtkutils.h0000664000175000017500000000646312121600532012404 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #ifndef __GTKUTILS_H__ #define __GTKUTILS_H__ #include #define GTK_EVENTS_FLUSH() \ { \ while (gtk_events_pending()) \ gtk_main_iteration(); \ } #define GTKUTILS_TREE_ITER_COMPARE(a,b) ((a.stamp == b.stamp) && \ (a.user_data == b.user_data) && \ (a.user_data2 == b.user_data2) && \ (a.user_data3 == b.user_data3)) void gtkutils_msgbox_info(GtkMessageType icon, const gchar *format, ...) G_GNUC_PRINTF(2, 3); void gtkutils_add_label_entry(GtkWidget *box, const gchar *label_text, GtkWidget **entry, const gchar *default_string); void gtkutils_add_label_spin_button(GtkWidget *box, const gchar *label_text, GtkWidget **spin, gdouble min, gdouble max, gdouble step); void gtkutils_toggle_button_with_signal_handler_blocked(GtkToggleButton *button, guint signal_handler_id, gboolean bool); gchar *gtkutils_menu_translate(const gchar *path, gpointer data); void gtkutils_exec_command_argument_with_error_dialog(const gchar *command, const gchar *argument); void gtkutils_exec_command_with_error_dialog(const gchar *command); void gtkutils_set_label_color(GtkLabel *label, const gchar *color); void gtkutils_set_textview_from_string_list(GtkTextView *textview, GList *list); void gtkutils_set_string_list_from_textview(GList **list, GtkTextView *textview); gchar* gtkutils_get_text_from_textview(GtkTextView *textview); GtkWidget *gtkutils_create_framed_textview(GtkWidget **textview_ptr, const gchar *frame_label); gboolean gtk_tree_model_find_by_column_data(GtkTreeModel * model, GtkTreeIter * iter, GtkTreeIter * start, gint col, gpointer data); void gtkutils_get_current_font_pixel_size(GtkWidget *widget, gint *width, gint *height); gboolean gtkutils_bindings_has_matched_entry(const gchar *class_name, guint modifiers, guint keyval); void gtkutils_tree_view_popup(GtkTreeView *tree, GdkEventButton *event, GtkMenu *menu); gboolean gtkutils_widget_is_iconified(GtkWidget *widget); void gtkutils_bin_remove_child_if_exist(GtkBin *bin); void gtkutils_menu_position_under_widget(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer user_data); void gtkutils_menu_position_under_or_below_widget(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer user_data); PangoFontDescription *gtkutils_get_default_font_desc(void); #endif /* __GTKUTILS_H__ */ loqui-0.5.5/src/loqui_select_dialog.h0000664000175000017500000000452412121600532014541 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_SELECT_DIALOG_H__ #define __LOQUI_SELECT_DIALOG_H__ #include #include "loqui_app.h" G_BEGIN_DECLS #define LOQUI_TYPE_SELECT_DIALOG (loqui_select_dialog_get_type ()) #define LOQUI_SELECT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_SELECT_DIALOG, LoquiSelectDialog)) #define LOQUI_SELECT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_SELECT_DIALOG, LoquiSelectDialogClass)) #define LOQUI_IS_SELECT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_SELECT_DIALOG)) #define LOQUI_IS_SELECT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_SELECT_DIALOG)) #define LOQUI_SELECT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_SELECT_DIALOG, LoquiSelectDialogClass)) typedef struct _LoquiSelectDialog LoquiSelectDialog; typedef struct _LoquiSelectDialogClass LoquiSelectDialogClass; typedef struct _LoquiSelectDialogPrivate LoquiSelectDialogPrivate; struct _LoquiSelectDialog { GtkDialog parent; LoquiSelectDialogPrivate *priv; }; struct _LoquiSelectDialogClass { GtkDialogClass parent_class; }; GType loqui_select_dialog_get_type(void) G_GNUC_CONST; GtkWidget* loqui_select_dialog_new(LoquiApp *app); void loqui_select_dialog_construct_channel_entry_list(LoquiSelectDialog *sdialog); G_END_DECLS #endif /* __LOQUI_SELECT_DIALOG_H__ */ loqui-0.5.5/src/loqui_app.c0000664000175000017500000012721612121600532012522 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include "config.h" #include #include #include #include #include #include "loqui_app.h" #include "channel_tree.h" #include "nick_list.h" #include "loqui_channelbar.h" #include "loqui_statusbar.h" #include "gtkutils.h" #include "remark_entry.h" #include "command_dialog.h" #include "loqui_profile_account.h" #include "loqui_app_actions.h" #include "main.h" #include "loqui_channel_entry.h" #include "loqui_channel_entry_action.h" #include "loqui_channel_entry_store.h" #include "loqui_channel_text_view.h" #include "loqui-core-gtk.h" #include "loqui_account_manager_store.h" #include "loqui_member_sort_funcs.h" #include "loqui_account_manager_iter.h" #include "loqui-tray-icon.h" #include "embedtxt/loqui_app_ui.h" #include "icons/pixbufs.h" #include "loqui_stock.h" #include #include #include #include #include #include #include #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" #include "loqui-channel-entry-action-group-ui.h" #define CHANNEL_ENTRY_STORE_KEY "channel-entry-store" #define CHANNEL_TEXT_VIEW_KEY "channel-text-view" #define DISCONNECT_WAIT_WHEN_QUIT 3000 struct _LoquiAppPrivate { GtkWidget *handlebox_channelbar; LoquiMessageText *last_msgtext; LoquiChannelBufferGtk *common_buffer; gboolean is_pending_set_current_channel; LoquiChannel *wait_current_channel; gboolean has_toplevel_focus; gboolean is_obscured; gint remained_account_num; LoquiPrefPartial *ppref_channel_buffer; LoquiChannelEntryActionGroupUI *buffers_ui; LoquiChannelEntryActionGroupUI *channelbar_ui; LoquiChannelEntryActionGroupUI *trayicon_ui; GCompareFunc sort_func; }; static GtkWindowClass *parent_class = NULL; #define PARENT_TYPE GTK_TYPE_WINDOW static void loqui_app_class_init(LoquiAppClass *klass); static void loqui_app_init(LoquiApp *app); static void loqui_app_finalize(GObject *object); static void loqui_app_destroy(GtkObject *object); static gboolean loqui_app_delete_event(GtkWidget *widget, GdkEventAny *event); static gboolean loqui_app_focus_in_event(GtkWidget *widget, GdkEventFocus *event); static gboolean loqui_app_focus_out_event(GtkWidget *widget, GdkEventFocus *event); static gboolean loqui_app_visibility_notify_event(GtkWidget *widget, GdkEventVisibility *event); static void loqui_app_restore_size(LoquiApp *app); static void loqui_app_save_size(LoquiApp *app); static void loqui_app_create_tray_icon(LoquiApp *app); static void loqui_app_channel_entry_added_after(LoquiApp *app, LoquiChannelEntry *chent); static void loqui_app_channel_entry_removed(LoquiApp *app, LoquiChannelEntry *chent); static void loqui_app_add_account_after_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiApp *app); static void loqui_app_remove_account_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiApp *app); static void loqui_app_add_channel_after_cb(LoquiAccount *account, LoquiChannel *channel, LoquiApp *app); static void loqui_app_remove_channel_cb(LoquiAccount *account, LoquiChannel *channel, LoquiApp *app); static void loqui_app_channel_text_view_scrolled_to_end_cb(LoquiChannelTextView *chview, LoquiChannelEntry *chent); static void loqui_app_channel_text_view_notify_is_scroll_cb(LoquiChannelTextView *chview, GParamSpec *pspec, LoquiApp *app); static void loqui_app_channel_text_view_notify_is_scroll_common_buffer_cb(LoquiChannelTextView *chview, GParamSpec *pspec, LoquiApp *app); static void loqui_app_channel_entry_append_message_text_after_cb(LoquiChannelEntry *chent, LoquiMessageText *msgtext, LoquiApp *app); static void loqui_app_append_log(LoquiApp *app, LoquiMessageText *msgtext); static gboolean loqui_app_set_current_channel_for_idle(LoquiApp *app); static void loqui_app_set_current_channel_lazy(LoquiApp *app, LoquiChannel *channel); static void loqui_app_disconnect_all_account_for_quit(LoquiApp *app); GType loqui_app_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiAppClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_app_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiApp), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_app_init }; type = g_type_register_static(PARENT_TYPE, "LoquiApp", &our_info, 0); } return type; } static void loqui_app_class_init(LoquiAppClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS(klass); GtkWidgetClass *gtk_widget_class = GTK_WIDGET_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_app_finalize; gtk_object_class->destroy = loqui_app_destroy; gtk_widget_class->delete_event = loqui_app_delete_event; gtk_widget_class->focus_in_event = loqui_app_focus_in_event; gtk_widget_class->focus_out_event = loqui_app_focus_out_event; gtk_widget_class->visibility_notify_event = loqui_app_visibility_notify_event; } static void loqui_app_init(LoquiApp *app) { LoquiAppPrivate *priv; priv = g_new0(LoquiAppPrivate, 1); app->priv = priv; gtk_widget_add_events(GTK_WIDGET(app), GDK_VISIBILITY_NOTIFY_MASK); } static void loqui_app_destroy(GtkObject *object) { LoquiApp *app; LoquiAppPrivate *priv; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_APP(object)); app = LOQUI_APP(object); priv = app->priv; LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->ppref_channel_buffer); if (GTK_OBJECT_CLASS(parent_class)->destroy) (* GTK_OBJECT_CLASS(parent_class)->destroy) (object); } static void loqui_app_finalize(GObject *object) { LoquiApp *app; LoquiAppPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (LOQUI_IS_APP(object)); app = LOQUI_APP(object); priv = app->priv; if(priv->common_buffer) { g_object_unref(priv->common_buffer); priv->common_buffer = NULL; } loqui_tray_icon_destroy(app->tray_icon); g_signal_handlers_disconnect_by_func(G_OBJECT(app->account_manager), loqui_app_add_account_after_cb, app); g_signal_handlers_disconnect_by_func(G_OBJECT(app->account_manager), loqui_app_remove_account_cb, app); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(app->channel_entry_action_group); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->buffers_ui); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->channelbar_ui); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->trayicon_ui); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(app->account_manager); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(app->priv); } static gboolean loqui_app_delete_event(GtkWidget *widget, GdkEventAny *event) { LoquiApp *app; g_return_val_if_fail(widget != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(widget), FALSE); app = LOQUI_APP(widget); if (loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "SaveSize", LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_SAVE_SIZE, NULL)) { loqui_app_save_size(LOQUI_APP(widget)); } loqui_app_disconnect_all_account_for_quit(app); if (GTK_WIDGET_CLASS(parent_class)->delete_event) return (* GTK_WIDGET_CLASS(parent_class)->delete_event) (widget, event); return TRUE; } static gboolean loqui_app_focus_in_event(GtkWidget *widget, GdkEventFocus *event) { LoquiApp *app; LoquiAppPrivate *priv; g_return_val_if_fail(widget != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(widget), FALSE); app = LOQUI_APP(widget); priv = app->priv; priv->has_toplevel_focus = TRUE; loqui_tray_icon_set_hilighted(app->tray_icon, FALSE); if (GTK_WIDGET_CLASS(parent_class)->focus_in_event) return (* GTK_WIDGET_CLASS(parent_class)->focus_in_event) (widget, event); return FALSE; } static gboolean loqui_app_focus_out_event(GtkWidget *widget, GdkEventFocus *event) { LoquiApp *app; LoquiAppPrivate *priv; g_return_val_if_fail(widget != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(widget), FALSE); app = LOQUI_APP(widget); priv = app->priv; priv->has_toplevel_focus = FALSE; if (GTK_WIDGET_CLASS(parent_class)->focus_out_event) return (* GTK_WIDGET_CLASS(parent_class)->focus_out_event) (widget, event); return FALSE; } static gboolean loqui_app_visibility_notify_event(GtkWidget *widget, GdkEventVisibility *event) { LoquiApp *app; LoquiAppPrivate *priv; g_return_val_if_fail(widget != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(widget), FALSE); app = LOQUI_APP(widget); priv = app->priv; priv->is_obscured = (event->state == GDK_VISIBILITY_FULLY_OBSCURED || event->state == GDK_VISIBILITY_PARTIAL) ? TRUE : FALSE; if (GTK_WIDGET_CLASS(parent_class)->visibility_notify_event) return (* GTK_WIDGET_CLASS(parent_class)->visibility_notify_event) (widget, event); return FALSE; } gboolean loqui_app_has_toplevel_focus(LoquiApp *app) { LoquiAppPrivate *priv; g_return_val_if_fail(app != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(app), FALSE); priv = app->priv; return priv->has_toplevel_focus; } gboolean loqui_app_is_obscured(LoquiApp *app) { LoquiAppPrivate *priv; g_return_val_if_fail(app != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(app), FALSE); priv = app->priv; return priv->is_obscured; } static void loqui_app_save_size(LoquiApp *app) { LoquiAppPrivate *priv; gint height; gint width; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; gtk_window_get_size(GTK_WINDOW(app), &width, &height); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "WindowWidth", width); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "WindowHeight", height); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "CommonBufferHeight", app->common_textview->allocation.height); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "ChannelTreeHeight", GTK_WIDGET(app->channel_tree)->allocation.height); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "ChannelTreeWidth", GTK_WIDGET(app->channel_tree)->allocation.width); } static void loqui_app_restore_size(LoquiApp *app) { LoquiAppPrivate *priv; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; gtk_window_set_default_size(GTK_WINDOW(app), loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "WindowWidth", LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_WINDOW_WIDTH, NULL), loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "WindowHeight", LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_WINDOW_HEIGHT, NULL)); gtk_widget_set_usize(app->common_textview, -1, loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "CommonBufferHeight", LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_COMMON_BUFFER_HEIGHT, NULL)); gtk_widget_set_usize(GTK_WIDGET(app->channel_tree), loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "ChannelTreeWidth", LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_CHANNEL_TREE_WIDTH, NULL), loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_SIZE, "ChannelTreeHeight", LOQUI_GENERAL_PREF_GTK_DEFAULT_SIZE_CHANNEL_TREE_HEIGHT, NULL)); } static void loqui_app_channel_text_view_scrolled_to_end_cb(LoquiChannelTextView *chview, LoquiChannelEntry *chent) { g_return_if_fail(chview != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_TEXT_VIEW(chview)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); loqui_channel_entry_set_as_read(chent); } static void loqui_app_channel_text_view_notify_is_scroll_cb(LoquiChannelTextView *chview, GParamSpec *pspec, LoquiApp *app) { loqui_app_actions_toggle_action_set_active(app, LOQUI_ACTION_TOGGLE_SCROLL, loqui_channel_text_view_get_is_scroll(chview)); } static void loqui_app_channel_text_view_notify_is_scroll_common_buffer_cb(LoquiChannelTextView *chview, GParamSpec *pspec, LoquiApp *app) { loqui_app_actions_toggle_action_set_active(app, LOQUI_ACTION_TOGGLE_SCROLL_COMMON_BUFFER, loqui_channel_text_view_get_is_scroll(chview)); } void loqui_app_grab_focus_if_key_unused(LoquiApp *app, const gchar *class_name, GdkEventKey *event) { gboolean found = FALSE; guint modifiers = event->state; switch (event->keyval) { case GDK_Shift_L: case GDK_Shift_R: case GDK_Control_L: case GDK_Control_R: case GDK_Caps_Lock: case GDK_Shift_Lock: case GDK_Meta_L: case GDK_Meta_R: case GDK_Alt_L: case GDK_Alt_R: case GDK_Super_L: case GDK_Super_R: case GDK_Hyper_L: case GDK_Hyper_R: /* FIXME: modifiers. enough? */ case GDK_ISO_Left_Tab: /* FIXME: if this doesn't exist, shift + tab does not work... */ case GDK_Tab: case GDK_Menu: /* Application key opens context menu */ found = TRUE; break; default: found = gtkutils_bindings_has_matched_entry(class_name, modifiers, event->keyval); } if (!found) { gtk_widget_grab_focus(app->remark_entry); if (event->keyval != GDK_space) { /* FIXME: entry is activated when space is pressed ... */ gtk_widget_event(REMARK_ENTRY(app->remark_entry)->entry, (GdkEvent *) event); } } } static void loqui_app_create_tray_icon(LoquiApp *app) { LoquiAppPrivate *priv; GtkWidget *menu_tray_icon; priv = app->priv; menu_tray_icon = gtk_ui_manager_get_widget(app->ui_manager, "/TrayIconPopup"); app->tray_icon = LOQUI_TRAY_ICON(loqui_tray_icon_new(LOQUI_APP(app), GTK_MENU(menu_tray_icon))); } static gboolean loqui_app_quit_idle_cb(LoquiApp *app) { gtk_widget_destroy(GTK_WIDGET(app)); gtk_main_quit(); return FALSE; } static void loqui_app_quit_idle(LoquiApp *app) { g_idle_add_full(G_PRIORITY_LOW, (GSourceFunc) loqui_app_quit_idle_cb, app, NULL); } static void loqui_app_account_notify_is_connected_cb_for_quit(LoquiAccount *account, GParamSpec *pspec, LoquiApp *app) { LoquiAppPrivate *priv; g_return_if_fail(loqui_account_get_is_connected(account) == FALSE); priv = app->priv; priv->remained_account_num--; if (priv->remained_account_num <= 0) { loqui_app_quit_idle(app); } } static gboolean loqui_app_disconnect_all_timeout_cb(LoquiApp *app) { GList *list, *cur; LoquiAccount *account; list = loqui_account_manager_get_account_list(loqui_app_get_account_manager(app)); for (cur = list; cur != NULL; cur = cur->next) { account = LOQUI_ACCOUNT(cur->data); loqui_account_terminate(account); } loqui_app_quit_idle(app); return FALSE; } static void loqui_app_disconnect_all_account_for_quit(LoquiApp *app) { GList *list, *cur; LoquiAccount *account; LoquiAppPrivate *priv; priv = app->priv; list = loqui_account_manager_get_account_list(loqui_app_get_account_manager(app)); priv->remained_account_num = 0; for (cur = list; cur != NULL; cur = cur->next) { account = LOQUI_ACCOUNT(cur->data); if (!loqui_account_get_is_connected(account)) continue; priv->remained_account_num++; g_signal_connect(G_OBJECT(account), "notify::is-connected", G_CALLBACK(loqui_app_account_notify_is_connected_cb_for_quit), app); loqui_account_disconnect(account); } g_timeout_add(DISCONNECT_WAIT_WHEN_QUIT, (GSourceFunc) loqui_app_disconnect_all_timeout_cb, app); if (app->priv->remained_account_num <= 0) { loqui_app_quit_idle(app); } } static gboolean loqui_app_transfer_window_delete_event_cb(GtkWidget *widget, GdkEventAny *event, LoquiApp *app) { g_return_val_if_fail(app != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(app), FALSE); gtk_widget_hide(GTK_WIDGET(app->transfer_window)); return TRUE; } GtkWidget* loqui_app_new(LoquiAccountManager *account_manager) { LoquiApp *app; LoquiAppPrivate *priv; GError *error = NULL; LoquiAccountManagerStore *manager_store; GtkWidget *channel_tree; GtkWidget *nick_list; GtkWidget *vbox; GtkWidget *hpaned; GtkWidget *vpaned; GtkWidget *scrolled_win; GtkWidget *menu_channelbar; GtkWidget *menu_nick_list; GdkPixbuf *loqui_icon; GtkAction *toggle_command_action; app = g_object_new(loqui_app_get_type(), NULL); priv = app->priv; g_object_ref(account_manager); app->account_manager = account_manager; app->appinfo = loqui_app_info_new(app); gtk_window_set_policy(GTK_WINDOW (app), TRUE, TRUE, TRUE); /* set icon */ if((loqui_icon = gdk_pixbuf_new_from_inline(-1, loqui_pixbuf, FALSE, NULL)) == NULL) g_error("Failed to load loqui icon."); gtk_window_set_icon(GTK_WINDOW(app), loqui_icon); g_object_unref(loqui_icon); priv->ppref_channel_buffer = loqui_pref_partial_new(); loqui_pref_partial_set_pref(priv->ppref_channel_buffer, LOQUI_CORE_GTK(loqui_get_core())->style_pref); loqui_pref_partial_set_group_name(priv->ppref_channel_buffer, "BufferText"); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(app), vbox); app->action_group = loqui_app_actions_create_group(app); toggle_command_action = gtk_action_group_get_action(app->action_group, "ToggleCommandMode"); app->channel_entry_action_group = loqui_channel_entry_action_group_new(app, loqui_app_get_account_manager(app)); app->ui_manager = gtk_ui_manager_new(); gtk_ui_manager_set_add_tearoffs(app->ui_manager, TRUE); gtk_window_add_accel_group(GTK_WINDOW(app), gtk_ui_manager_get_accel_group(app->ui_manager)); gtk_ui_manager_insert_action_group(app->ui_manager, app->action_group, 0); gtk_ui_manager_insert_action_group(app->ui_manager, GTK_ACTION_GROUP(app->channel_entry_action_group), 1); if(!gtk_ui_manager_add_ui_from_string(app->ui_manager, embedtxt_loqui_app_ui, -1, &error)) g_error("Failed to load UI XML: %s", error->message); gtk_ui_manager_ensure_update(app->ui_manager); gtk_box_pack_start(GTK_BOX(vbox), gtk_ui_manager_get_widget(app->ui_manager, "/menubar"), FALSE, FALSE, 0); app->tooltips = gtk_tooltips_new(); priv->handlebox_channelbar = gtk_handle_box_new(); gtk_box_pack_start(GTK_BOX(vbox), priv->handlebox_channelbar, FALSE, FALSE, 0); priv->buffers_ui = loqui_channel_entry_action_group_ui_new(app->channel_entry_action_group, app->ui_manager, "/menubar/Buffers"); priv->channelbar_ui = loqui_channel_entry_action_group_ui_new(app->channel_entry_action_group, app->ui_manager, "/ChannelListPopup"); priv->trayicon_ui = loqui_channel_entry_action_group_ui_new(app->channel_entry_action_group, app->ui_manager, "/TrayIconPopup/BuffersMenu"); menu_channelbar = loqui_channel_entry_action_group_ui_get_widget(priv->channelbar_ui); app->channelbar = loqui_channelbar_new(app, menu_channelbar, GTK_TOGGLE_ACTION(gtk_action_group_get_action(app->action_group, LOQUI_ACTION_TOGGLE_SCROLL))); gtk_container_add(GTK_CONTAINER(priv->handlebox_channelbar), app->channelbar); #define SET_SCROLLED_WINDOW(s, w, vpolicy, hpolicy) \ { \ s = gtk_scrolled_window_new(NULL, NULL); \ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(s), vpolicy, hpolicy); \ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(s), GTK_SHADOW_IN); \ gtk_container_add(GTK_CONTAINER(s), w); \ } hpaned = gtk_hpaned_new(); gtk_box_pack_start_defaults(GTK_BOX(vbox), hpaned); app->statusbar = loqui_statusbar_new(app, GTK_TOGGLE_ACTION(gtk_action_group_get_action(app->action_group, LOQUI_ACTION_TOGGLE_SCROLL_COMMON_BUFFER))); gtk_box_pack_start(GTK_BOX(vbox), app->statusbar, FALSE, FALSE, 1); /* left side */ vpaned = gtk_vpaned_new(); gtk_paned_pack1(GTK_PANED(hpaned), vpaned, TRUE, TRUE); vbox = gtk_vbox_new(FALSE, 0); gtk_paned_pack1(GTK_PANED(vpaned), vbox, TRUE, TRUE); app->channel_notebook = gtk_notebook_new(); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(app->channel_notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(app->channel_notebook), FALSE); gtk_box_pack_start_defaults(GTK_BOX(vbox), app->channel_notebook); app->remark_entry = remark_entry_new(app, GTK_TOGGLE_ACTION(toggle_command_action)); gtk_box_pack_end(GTK_BOX(vbox), app->remark_entry, FALSE, FALSE, 0); app->common_textview = loqui_channel_text_view_new(app); loqui_channel_text_view_set_auto_switch_scrolling(LOQUI_CHANNEL_TEXT_VIEW(app->common_textview), loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoSwitchScrollingCommonBuffer", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_SWITCH_SCROLLING_COMMON_BUFFER, NULL)); g_signal_connect(G_OBJECT(app->common_textview), "notify::is-scroll", G_CALLBACK(loqui_app_channel_text_view_notify_is_scroll_common_buffer_cb), app); gtk_paned_pack2(GTK_PANED(vpaned), LOQUI_CHANNEL_TEXT_VIEW(app->common_textview)->scrolled_window, FALSE, TRUE); /* right side */ vpaned = gtk_vpaned_new(); gtk_paned_pack2(GTK_PANED(hpaned), vpaned, FALSE, TRUE); menu_nick_list = gtk_ui_manager_get_widget(app->ui_manager, "/NickListPopup"); nick_list = nick_list_new(app, menu_nick_list); SET_SCROLLED_WINDOW(scrolled_win, nick_list, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_pack1(GTK_PANED(vpaned), scrolled_win, TRUE, TRUE); manager_store = loqui_account_manager_store_new(loqui_app_get_account_manager(app)); channel_tree = channel_tree_new(app, GTK_MENU(gtk_ui_manager_get_widget(app->ui_manager, "/AccountPopup")), GTK_MENU(gtk_ui_manager_get_widget(app->ui_manager, "/ChannelPopup")), GTK_MENU(gtk_ui_manager_get_widget(app->ui_manager, "/PrivateTalkPopup"))); gtk_tree_view_set_model(GTK_TREE_VIEW(channel_tree), GTK_TREE_MODEL(manager_store)); SET_SCROLLED_WINDOW(scrolled_win, channel_tree, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_pack2(GTK_PANED(vpaned), scrolled_win, FALSE, TRUE); app->channel_tree = CHANNEL_TREE(channel_tree); app->nick_list = NICK_LIST(nick_list); priv->common_buffer = loqui_channel_buffer_gtk_new(priv->ppref_channel_buffer); loqui_channel_buffer_gtk_set_whether_common_buffer(priv->common_buffer, TRUE); loqui_channel_buffer_gtk_set_show_channel_name(priv->common_buffer, TRUE); loqui_channel_buffer_gtk_set_show_account_name(priv->common_buffer, TRUE); loqui_channel_text_view_set_channel_buffer(LOQUI_CHANNEL_TEXT_VIEW(app->common_textview), priv->common_buffer); loqui_app_info_update_all(app->appinfo, NULL); loqui_app_restore_size(app); #undef SET_SCROLLED_WINDOW gtk_widget_show_all(GTK_WIDGET(app)); loqui_app_set_show_statusbar(app, loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_VISIBILITY, "ShowStatusbar", LOQUI_GENERAL_PREF_GTK_DEFAULT_VISIBILITY_SHOW_STATUSBAR, NULL)); loqui_app_set_show_channelbar(app, loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_VISIBILITY, "ShowChannelbar", LOQUI_GENERAL_PREF_GTK_DEFAULT_VISIBILITY_SHOW_CHANNELBAR, NULL)); loqui_app_actions_toggle_action_set_active(app, "ToggleStatusbar", loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_VISIBILITY, "ShowStatusbar", LOQUI_GENERAL_PREF_GTK_DEFAULT_VISIBILITY_SHOW_STATUSBAR, NULL)); loqui_app_actions_toggle_action_set_active(app, "ToggleChannelbar", loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_VISIBILITY, "ShowChannelbar", LOQUI_GENERAL_PREF_GTK_DEFAULT_VISIBILITY_SHOW_CHANNELBAR, NULL)); loqui_app_set_nick_list_sort_type(app, loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "NickListSortType", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_NICK_LIST_SORT_TYPE, NULL)); g_signal_connect_after(G_OBJECT(account_manager), "add-account", G_CALLBACK(loqui_app_add_account_after_cb), app); g_signal_connect(G_OBJECT(account_manager), "remove-account", G_CALLBACK(loqui_app_remove_account_cb), app); gtk_widget_grab_focus(app->remark_entry); loqui_app_create_tray_icon(app); app->transfer_window = LOQUI_TRANSFER_WINDOW(loqui_transfer_window_new()); g_signal_connect(G_OBJECT(app->transfer_window), "delete_event", G_CALLBACK(loqui_app_transfer_window_delete_event_cb), app); loqui_app_actions_update_sensitivity_related_channel(app); return GTK_WIDGET(app); } void loqui_app_set_auto_switch_scrolling_channel_buffers(LoquiApp *app, gboolean auto_switch_scrolling) { LoquiAppPrivate *priv; LoquiAccountManagerIter iter; LoquiChannelEntry *chent; LoquiChannelTextView *chview; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; loqui_account_manager_iter_init(loqui_app_get_account_manager(app), &iter); loqui_account_manager_iter_set_first_channel_entry(&iter); while ((chent = loqui_account_manager_iter_channel_entry_next(&iter))) { chview = g_object_get_data(G_OBJECT(chent), CHANNEL_TEXT_VIEW_KEY); if (chview) loqui_channel_text_view_set_auto_switch_scrolling(chview, auto_switch_scrolling); } loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoSwitchScrolling", auto_switch_scrolling); } void loqui_app_set_auto_switch_scrolling_common_buffer(LoquiApp *app, gboolean auto_switch_scrolling) { loqui_channel_text_view_set_auto_switch_scrolling(LOQUI_CHANNEL_TEXT_VIEW(app->common_textview), auto_switch_scrolling); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoSwitchScrollingCommonBuffer", auto_switch_scrolling); } void loqui_app_set_show_statusbar(LoquiApp *app, gboolean show) { LoquiAppPrivate *priv; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; if(show) gtk_widget_show(app->statusbar); else gtk_widget_hide(app->statusbar); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_VISIBILITY, "ShowStatusbar", show); } void loqui_app_set_show_channelbar(LoquiApp *app, gboolean show) { LoquiAppPrivate *priv; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; if(show) gtk_widget_show(priv->handlebox_channelbar); else gtk_widget_hide(priv->handlebox_channelbar); loqui_pref_set_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_VISIBILITY, "ShowChannelbar", show); } void loqui_app_get_current_widget_editing_status(LoquiApp *app, gboolean *cutable, gboolean *copiable, gboolean *pastable, gboolean *clearable, gboolean *findable) { LoquiAppPrivate *priv; GtkWidget *widget; GtkTextBuffer *buffer; gboolean editable, selected; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); g_return_if_fail(cutable != NULL); g_return_if_fail(copiable != NULL); g_return_if_fail(pastable != NULL); g_return_if_fail(findable != NULL); g_return_if_fail(clearable != NULL); priv = app->priv; widget = gtk_window_get_focus(GTK_WINDOW(app)); if(GTK_IS_ENTRY(widget)) { editable = TRUE; selected = gtk_editable_get_selection_bounds(GTK_EDITABLE(widget), NULL, NULL); *cutable = editable && selected; *copiable = selected; *pastable = editable; *findable = FALSE; *clearable = TRUE; } else if(GTK_IS_TEXT_VIEW(widget)) { editable = gtk_text_view_get_editable(GTK_TEXT_VIEW(widget)); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); selected = gtk_text_buffer_get_selection_bounds(buffer, NULL, NULL); *cutable = editable && selected; *copiable = selected; *pastable = editable; *findable = TRUE; *clearable = TRUE; } else { *cutable = FALSE; *copiable = FALSE; *pastable = FALSE; *findable = FALSE; *clearable = FALSE; } } LoquiAccountManager * loqui_app_get_account_manager(LoquiApp *app) { g_return_val_if_fail(app != NULL, NULL); g_return_val_if_fail(LOQUI_IS_APP(app), NULL); return app->account_manager; } GtkWidget * loqui_app_get_current_channel_text_view(LoquiApp *app) { GtkWidget *chview = NULL; if (app->current_channel_entry) chview = g_object_get_data(G_OBJECT(app->current_channel_entry), CHANNEL_TEXT_VIEW_KEY); return chview; } LoquiChannelEntry * loqui_app_get_current_channel_entry(LoquiApp *app) { return app->current_channel_entry; } void loqui_app_set_current_channel_entry(LoquiApp *app, LoquiChannelEntry *chent) { LoquiAppPrivate *priv; GtkTreeModel *model; LoquiAccount *account; LoquiChannel *channel; LoquiChannelTextView *chview; LoquiChannelEntry *old_chent; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); priv = app->priv; old_chent = app->current_channel_entry; if (old_chent) { chview = g_object_get_data(G_OBJECT(old_chent), CHANNEL_TEXT_VIEW_KEY); g_assert(chview != NULL); g_signal_handlers_disconnect_by_func(chview, loqui_app_channel_text_view_scrolled_to_end_cb, old_chent); g_signal_handlers_disconnect_by_func(chview, loqui_app_channel_text_view_notify_is_scroll_cb, app); } loqui_channel_entry_utils_separate(chent, &account, &channel); app->current_channel_entry = chent; chview = g_object_get_data(G_OBJECT(chent), CHANNEL_TEXT_VIEW_KEY); g_signal_connect(G_OBJECT(chview), "scrolled_to_end", G_CALLBACK(loqui_app_channel_text_view_scrolled_to_end_cb), chent); g_signal_connect(G_OBJECT(chview), "notify::is-scroll", G_CALLBACK(loqui_app_channel_text_view_notify_is_scroll_cb), app); gtk_notebook_set_current_page(GTK_NOTEBOOK(app->channel_notebook), gtk_notebook_page_num(GTK_NOTEBOOK(app->channel_notebook), LOQUI_CHANNEL_TEXT_VIEW(chview)->scrolled_window)); loqui_channel_text_view_scroll_to_end_if_enabled(LOQUI_CHANNEL_TEXT_VIEW(chview)); loqui_app_actions_toggle_action_set_active(app, LOQUI_ACTION_TOGGLE_SCROLL, loqui_channel_text_view_get_is_scroll(LOQUI_CHANNEL_TEXT_VIEW(chview))); model = g_object_get_data(G_OBJECT(chent), CHANNEL_ENTRY_STORE_KEY); gtk_tree_view_set_model(GTK_TREE_VIEW(app->nick_list), GTK_TREE_MODEL(model)); loqui_app_info_current_channel_entry_changed(app->appinfo, old_chent, chent); loqui_channel_entry_set_as_read(chent); channel_tree_select_channel_entry(app->channel_tree, chent); loqui_channelbar_update_channel_entry_label(LOQUI_CHANNELBAR(app->channelbar), chent); loqui_app_actions_update_sensitivity_related_channel(app); gtk_widget_grab_focus(app->remark_entry); if (loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoSwitchScrolling", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_SWITCH_SCROLLING, NULL)) loqui_app_actions_toggle_action_set_active(app, LOQUI_ACTION_TOGGLE_SCROLL, TRUE); } LoquiChannel * loqui_app_get_current_channel(LoquiApp *app) { LoquiChannel *channel; loqui_channel_entry_utils_separate(app->current_channel_entry, NULL, &channel); return channel; } LoquiAccount * loqui_app_get_current_account(LoquiApp *app) { LoquiAccount *account; loqui_channel_entry_utils_separate(app->current_channel_entry, &account, NULL); return account; } static gboolean loqui_app_set_current_channel_for_idle(LoquiApp *app) { LoquiAppPrivate *priv; priv = app->priv; loqui_app_set_current_channel_entry(app, LOQUI_CHANNEL_ENTRY(priv->wait_current_channel)); priv->wait_current_channel = NULL; priv->is_pending_set_current_channel = FALSE; return FALSE; } static void loqui_app_set_current_channel_lazy(LoquiApp *app, LoquiChannel *channel) { LoquiAppPrivate *priv; priv = app->priv; priv->wait_current_channel = channel; if (!priv->is_pending_set_current_channel) { priv->is_pending_set_current_channel = TRUE; g_idle_add((GSourceFunc) loqui_app_set_current_channel_for_idle, app); } } gboolean loqui_app_is_current_account(LoquiApp *app, LoquiAccount *account) { LoquiAppPrivate *priv; g_return_val_if_fail(app != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(app), FALSE); priv = app->priv; return (loqui_app_get_current_account(app) == account); } gboolean loqui_app_is_current_channel(LoquiApp *app, LoquiChannel *channel) { g_return_val_if_fail(app != NULL, FALSE); g_return_val_if_fail(LOQUI_IS_APP(app), FALSE); return (loqui_app_get_current_channel(app) == channel); } static void loqui_app_channel_entry_added_after(LoquiApp *app, LoquiChannelEntry *chent) { LoquiAppPrivate *priv; LoquiChannelEntryStore *store; LoquiChannelBuffer *buffer; GtkWidget *chview; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); priv = app->priv; store = loqui_channel_entry_store_new(chent); g_object_set_data(G_OBJECT(chent), CHANNEL_ENTRY_STORE_KEY, store); buffer = LOQUI_CHANNEL_BUFFER(loqui_channel_buffer_gtk_new(priv->ppref_channel_buffer)); loqui_channel_entry_set_buffer(chent, buffer); chview = loqui_channel_text_view_new(app); g_object_set_data(G_OBJECT(chent), CHANNEL_TEXT_VIEW_KEY, chview); loqui_channel_text_view_set_channel_buffer(LOQUI_CHANNEL_TEXT_VIEW(chview), LOQUI_CHANNEL_BUFFER_GTK(buffer)); loqui_channel_text_view_set_auto_switch_scrolling(LOQUI_CHANNEL_TEXT_VIEW(chview), loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "AutoSwitchScrolling", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_AUTO_SWITCH_SCROLLING, NULL)); gtk_widget_show_all(LOQUI_CHANNEL_TEXT_VIEW(chview)->scrolled_window); gtk_notebook_append_page(GTK_NOTEBOOK(app->channel_notebook), LOQUI_CHANNEL_TEXT_VIEW(chview)->scrolled_window, NULL); loqui_channel_entry_set_sort_func(LOQUI_CHANNEL_ENTRY(chent), priv->sort_func); loqui_app_info_channel_entry_added(app->appinfo, chent); g_signal_connect_after(G_OBJECT(chent), "append-message-text", G_CALLBACK(loqui_app_channel_entry_append_message_text_after_cb), app); } static void loqui_app_channel_entry_removed(LoquiApp *app, LoquiChannelEntry *chent) { LoquiChannelEntryStore *store; GtkWidget *chview; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); g_return_if_fail(chent != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_ENTRY(chent)); loqui_app_info_channel_entry_removed(app->appinfo, chent); g_signal_handlers_disconnect_by_func(chent, loqui_app_channel_entry_append_message_text_after_cb, app); chview = g_object_get_data(G_OBJECT(chent), CHANNEL_TEXT_VIEW_KEY); gtk_notebook_remove_page(GTK_NOTEBOOK(app->channel_notebook), gtk_notebook_page_num(GTK_NOTEBOOK(app->channel_notebook), LOQUI_CHANNEL_TEXT_VIEW(chview)->scrolled_window)); store = g_object_get_data(G_OBJECT(chent), CHANNEL_ENTRY_STORE_KEY); g_object_unref(store); } static void loqui_app_add_account_after_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiApp *app) { LoquiAppPrivate *priv; g_return_if_fail(manager != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT_MANAGER(manager)); g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; g_signal_connect_after(G_OBJECT(account), "add-channel", G_CALLBACK(loqui_app_add_channel_after_cb), app); g_signal_connect(G_OBJECT(account), "remove-channel", G_CALLBACK(loqui_app_remove_channel_cb), app); loqui_app_channel_entry_added_after(app, LOQUI_CHANNEL_ENTRY(account)); loqui_app_info_account_added(app->appinfo, account); } static void loqui_app_remove_account_cb(LoquiAccountManager *manager, LoquiAccount *account, LoquiApp *app) { LoquiAppPrivate *priv; g_return_if_fail(manager != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT_MANAGER(manager)); g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); priv = app->priv; loqui_app_channel_entry_removed(app, LOQUI_CHANNEL_ENTRY(account)); loqui_app_info_account_removed(app->appinfo, account); g_signal_handlers_disconnect_by_func(G_OBJECT(account), loqui_app_add_channel_after_cb, app); g_signal_handlers_disconnect_by_func(G_OBJECT(account), loqui_app_remove_channel_cb, app); } static void loqui_app_add_channel_after_cb(LoquiAccount *account, LoquiChannel *channel, LoquiApp *app) { LoquiAppPrivate *priv; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_return_if_fail(channel != NULL); g_return_if_fail(LOQUI_IS_CHANNEL(channel)); priv = app->priv; loqui_app_channel_entry_added_after(app, LOQUI_CHANNEL_ENTRY(channel)); loqui_app_info_channel_added(app->appinfo, channel); if (loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "SelectChannelJoined", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_SELECT_CHANNEL_JOINED, NULL)) loqui_app_set_current_channel_lazy(app, channel); else channel_tree_expand_to_channel_entry(app->channel_tree, LOQUI_CHANNEL_ENTRY(channel)); } static void loqui_app_remove_channel_cb(LoquiAccount *account, LoquiChannel *channel, LoquiApp *app) { LoquiAppPrivate *priv; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_return_if_fail(channel != NULL); g_return_if_fail(LOQUI_IS_CHANNEL(channel)); priv = app->priv; if (loqui_app_get_current_channel(app) == channel) { loqui_app_set_current_channel_entry(app, LOQUI_CHANNEL_ENTRY(account)); } loqui_app_channel_entry_removed(app, LOQUI_CHANNEL_ENTRY(channel)); loqui_app_info_channel_removed(app->appinfo, channel); } static void loqui_app_channel_entry_append_message_text_after_cb(LoquiChannelEntry *chent, LoquiMessageText *msgtext, LoquiApp *app) { LoquiAppPrivate *priv; GtkWidget *chview; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; if (priv->last_msgtext == msgtext) return; if (loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "SaveLog", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_SAVE_LOG, NULL)) loqui_app_append_log(app, msgtext); chview = loqui_app_get_current_channel_text_view(app); if (chview && loqui_channel_text_view_get_is_scroll(LOQUI_CHANNEL_TEXT_VIEW(chview)) && app->current_channel_entry != NULL && loqui_channel_entry_get_buffer(chent) == loqui_channel_entry_get_buffer(app->current_channel_entry)) return; loqui_channel_buffer_append_message_text(LOQUI_CHANNEL_BUFFER(priv->common_buffer), msgtext); if (priv->last_msgtext) g_object_unref(priv->last_msgtext); g_object_ref(msgtext); priv->last_msgtext = msgtext; } static void loqui_app_append_log(LoquiApp *app, LoquiMessageText *msgtext) { gchar *path; gchar *filename; gchar *buf; gchar *time_str; gchar *nick; const gchar *account_name; GIOChannel *io; time_t t; gchar *time_format; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); t = time(NULL); filename = loqui_utils_strftime_epoch("log-%Y%m%d.txt", t); path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), LOG_DIR, filename, NULL); g_free(filename); if ((io = g_io_channel_new_file(path, "a", NULL)) == NULL) { g_warning("Can't open log file(%s)", path); g_free(path); return; } time_format = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "TimeFormat", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_TIME_FORMAT, NULL); time_str = loqui_utils_strftime_epoch(time_format, t); g_free(time_format); if (loqui_message_text_get_nick(msgtext)) nick = loqui_message_text_get_nick_string(msgtext, TRUE); else nick = g_strdup(""); account_name = loqui_message_text_get_account_name(msgtext); if (account_name) buf = g_strdup_printf("%s[%s] %s\n", time_str, account_name, loqui_message_text_get_text(msgtext)); else buf = g_strdup_printf("%s%s%s\n", time_str, nick, loqui_message_text_get_text(msgtext)); g_free(time_str); g_free(nick); if (g_io_channel_write_chars(io, buf, -1, NULL, NULL) == 0) g_warning("Can't write log(%s)", path); g_free(path); g_free(buf); g_io_channel_unref(io); } void loqui_app_set_nick_list_sort_type(LoquiApp *app, PrefSortType sort_type) { LoquiAppPrivate *priv; LoquiAccountManagerIter iter; LoquiChannelEntry *chent; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); priv = app->priv; switch (sort_type) { case PREF_SORT_NONE: priv->sort_func = NULL; break; case PREF_SORT_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_nick; break; case PREF_SORT_POWER_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_power_nick; break; case PREF_SORT_AWAY_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_away_nick; break; case PREF_SORT_POWER_AWAY_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_power_away_nick; break; case PREF_SORT_AWAY_POWER_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_away_power_nick; break; case PREF_SORT_TIME_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_time_nick; break; case PREF_SORT_TIME_AWAY_POWER_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_time_away_power_nick; break; case PREF_SORT_TIME_POWER_AWAY_NICK: priv->sort_func = (GCompareFunc) loqui_member_sort_funcs_time_power_away_nick; break; default: g_print("Invalid sort type: %d", sort_type); priv->sort_func = NULL; } loqui_account_manager_iter_init(loqui_app_get_account_manager(app), &iter); loqui_account_manager_iter_set_first_channel_entry(&iter); while ((chent = loqui_account_manager_iter_channel_entry_next(&iter))) loqui_channel_entry_set_sort_func(chent, priv->sort_func); loqui_pref_set_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "NickListSortType", sort_type); } loqui-0.5.5/src/loqui_channel_entry_action.h0000664000175000017500000000533112121600532016126 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_CHANNEL_ENTRY_ACTION_H__ #define __LOQUI_CHANNEL_ENTRY_ACTION_H__ #include #include G_BEGIN_DECLS #define LOQUI_TYPE_CHANNEL_ENTRY_ACTION (loqui_channel_entry_action_get_type ()) #define LOQUI_CHANNEL_ENTRY_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_CHANNEL_ENTRY_ACTION, LoquiChannelEntryAction)) #define LOQUI_CHANNEL_ENTRY_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_CHANNEL_ENTRY_ACTION, LoquiChannelEntryActionClass)) #define LOQUI_IS_CHANNEL_ENTRY_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_CHANNEL_ENTRY_ACTION)) #define LOQUI_IS_CHANNEL_ENTRY_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_CHANNEL_ENTRY_ACTION)) #define LOQUI_CHANNEL_ENTRY_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_CHANNEL_ENTRY_ACTION, LoquiChannelEntryActionClass)) typedef struct _LoquiChannelEntryAction LoquiChannelEntryAction; typedef struct _LoquiChannelEntryActionClass LoquiChannelEntryActionClass; typedef struct _LoquiChannelEntryActionPrivate LoquiChannelEntryActionPrivate; struct _LoquiChannelEntryAction { GtkAction parent; LoquiChannelEntry *channel_entry; LoquiChannelEntryActionPrivate *priv; }; struct _LoquiChannelEntryActionClass { GtkActionClass parent_class; }; GType loqui_channel_entry_action_get_type(void) G_GNUC_CONST; LoquiChannelEntryAction* loqui_channel_entry_action_new(const gchar *name); void loqui_channel_entry_action_set_channel_entry(LoquiChannelEntryAction *action, LoquiChannelEntry *channel_entry); LoquiChannelEntry *loqui_channel_entry_action_get_channel_entry(LoquiChannelEntryAction *action); G_END_DECLS #endif /* __LOQUI_CHANNEL_ENTRY_ACTION_H__ */ loqui-0.5.5/src/loqui_app_actions.c0000664000175000017500000010721112121600532014233 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include #include #include #include "loqui_app_actions.h" #include "loqui_stock.h" #include #include "about.h" #include "remark_entry.h" #include "command_dialog.h" #include "gtkutils.h" #include "prefs_dialog.h" #include "account_list_dialog.h" #include "loqui_channel_text_view.h" #include "loqui-transfer-window.h" #include "loqui_select_dialog.h" #include "loqui_channel_entry_utils.h" #include "loqui-general-pref-gtk-groups.h" #include "loqui-general-pref-gtk-default.h" #define CTRL "" #define ALT "" #define SHIFT "" static void loqui_app_actions_about_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_common_settings_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_account_settings_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_connect_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_show_transfer_window_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_connect_current_account_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_cancel_pending_reconnecting_current_account_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_disconnect_current_account_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_reconnect_current_account_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_terminate_current_account_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_quit_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_edit_menu_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_cut_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_copy_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_paste_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_clear_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_jump_to_previous_keyword_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_jump_to_next_keyword_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_previous_unread_channel_buffer_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_next_unread_channel_buffer_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_previous_channel_buffer_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_next_channel_buffer_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_clear_all_unread_flags_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_close_channel_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_join_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_join_current_channel_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_part_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_set_topic_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_nick_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_refresh_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_start_private_talk_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_end_private_talk_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_select_buffer_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_toggle_channelbar_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_toggle_statusbar_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_toggle_command_mode_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_toggle_scroll_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_toggle_scroll_common_buffer_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_give_op_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_give_voice_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_deprive_op_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_deprive_voice_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_start_private_talk_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_whois_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_ctcp_version_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_ctcp_clientinfo_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_ctcp_userinfo_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_ctcp_ping_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_ctcp_finger_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_ctcp_time_selected_cb(GtkAction *action, LoquiApp *app); static void loqui_app_actions_nick_list_sort_radio_cb(GtkAction *action, GtkRadioAction *current_action, LoquiApp *app); static GtkActionEntry loqui_action_entries[] = { /* name, stock_id, label, accelerator, tooltip, callback */ /* see gdkkeynames.c to find key name */ {"StockFileMenu", NULL, N_("_File"), NULL, NULL}, {"StockEditMenu", NULL, N_("_Edit"), NULL, NULL, G_CALLBACK(loqui_app_actions_edit_menu_cb)}, {"StockAccountMenu", NULL, N_("_Account"), NULL, NULL}, {"StockChannelMenu", NULL, N_("_Channel"), NULL, NULL}, {"StockUserMenu", NULL, N_("_User"), NULL, NULL}, {"StockViewMenu", NULL, N_("_View"), NULL, NULL}, {"StockBuffersMenu", NULL, N_("_Buffers"), NULL, NULL}, {"StockToolsMenu", NULL, N_("_Tools"), NULL, NULL}, {"StockSettingsMenu", NULL, N_("_Settings"), NULL, NULL}, {"StockHelpMenu", NULL, N_("_Help"), NULL, NULL}, {"StockModeMenu", NULL, N_("Change user mode [Mode]"), NULL, NULL}, {"StockCTCPMenu", NULL, N_("CTCP"), NULL, NULL}, {"StockNickListSortTypeMenu", NULL, N_("Sort Type of NickList"), NULL, NULL}, {"StockChannelEntry", NULL, "", NULL, NULL}, {"StockTrayIconPopupBuffers", NULL, N_("Buffers"), NULL, NULL}, {"FakeToplevel", NULL, (""), NULL, NULL, NULL}, {"Quit", GTK_STOCK_QUIT, N_("_Quit"), CTRL"Q", NULL, G_CALLBACK(loqui_app_actions_quit_cb)}, {"Connect", NULL, N_("Open _Connection Dialog..."), NULL, NULL, G_CALLBACK(loqui_app_actions_connect_cb)}, {LOQUI_ACTION_CONNECT_CURRENT_ACCOUNT, NULL, N_("_Connect"), NULL, NULL, G_CALLBACK(loqui_app_actions_connect_current_account_cb)}, {LOQUI_ACTION_CANCEL_PENDING_RECONNECTING_CURRENT_ACCOUNT, NULL, N_("Cancel Pending Reconnecting"), NULL, NULL, G_CALLBACK(loqui_app_actions_cancel_pending_reconnecting_current_account_cb)}, {LOQUI_ACTION_RECONNECT_CURRENT_ACCOUNT, NULL, N_("_Reconnect"), NULL, NULL, G_CALLBACK(loqui_app_actions_reconnect_current_account_cb)}, {LOQUI_ACTION_DISCONNECT_CURRENT_ACCOUNT, NULL, N_("_Disconnect"), NULL, NULL, G_CALLBACK(loqui_app_actions_disconnect_current_account_cb)}, {LOQUI_ACTION_TERMINATE_CURRENT_ACCOUNT, NULL, N_("_Terminate"), NULL, NULL, G_CALLBACK(loqui_app_actions_terminate_current_account_cb)}, {"Cut", GTK_STOCK_CUT, N_("_Cut"), CTRL "X", NULL, G_CALLBACK(loqui_app_actions_cut_cb)}, {"Copy", GTK_STOCK_COPY, N_("_Copy"), CTRL "C", NULL, G_CALLBACK(loqui_app_actions_copy_cb)}, {"Paste", GTK_STOCK_PASTE, N_("_Paste"), CTRL "P", NULL, G_CALLBACK(loqui_app_actions_paste_cb)}, {"PasteWithLinefeedsCut", GTK_STOCK_PASTE, N_("_Paste with Linefeeds Cut"), NULL, NULL, NULL}, {"Clear", GTK_STOCK_CLEAR, N_("_Clear"), NULL, NULL, G_CALLBACK(loqui_app_actions_clear_cb)}, {"Find", NULL, N_("_Find..."), NULL, NULL, NULL}, {"FindAgain", NULL, N_("_Find Again"), NULL, NULL, NULL}, {"JumpToPreviousKeyword", NULL, N_("Jump to Previous Keyword"), NULL, NULL, G_CALLBACK(loqui_app_actions_jump_to_previous_keyword_cb)}, {"JumpToNextKeyword", NULL, N_("Jump to Next Keyword"), NULL, NULL, G_CALLBACK(loqui_app_actions_jump_to_next_keyword_cb)}, {LOQUI_ACTION_CLOSE_CHANNEL, NULL, N_("Close Channel"), NULL, NULL, G_CALLBACK(loqui_app_actions_close_channel_cb)}, {LOQUI_ACTION_JOIN, GTK_STOCK_ADD, N_("_Join a Channel..."), ALT "J", NULL, G_CALLBACK(loqui_app_actions_join_cb)}, {LOQUI_ACTION_JOIN_CURRENT_CHANNEL, NULL, N_("_Join Current Channel..."), NULL, NULL, G_CALLBACK(loqui_app_actions_join_current_channel_cb)}, {LOQUI_ACTION_PART, GTK_STOCK_REMOVE, N_("_Part Current Channel..."), NULL, NULL, G_CALLBACK(loqui_app_actions_part_cb)}, {LOQUI_ACTION_SET_TOPIC, NULL, N_("Set _Topic of Current Channel..."), ALT "T", NULL, G_CALLBACK(loqui_app_actions_set_topic_cb)}, {LOQUI_ACTION_CHANGE_NICK,NULL, N_("_Change Nickname..."), CTRL ALT "N", NULL, G_CALLBACK(loqui_app_actions_nick_cb)}, {LOQUI_ACTION_REFRESH,NULL, N_("_Refresh Information of Current Channel"), CTRL "R", NULL, G_CALLBACK(loqui_app_actions_refresh_cb)}, {LOQUI_ACTION_START_PRIVATE_TALK, NULL, N_("_Start Private Talk..."), NULL, NULL, G_CALLBACK(loqui_app_actions_start_private_talk_cb)}, {LOQUI_ACTION_END_PRIVATE_TALK, NULL, N_("_End Current Private Talk"), NULL, NULL, G_CALLBACK(loqui_app_actions_end_private_talk_cb)}, {"PreviousUnreadChannel", GTK_STOCK_GOTO_TOP, N_("_Previous Unread Channel Buffer"), ALT "Up", NULL, G_CALLBACK(loqui_app_actions_previous_unread_channel_buffer_cb)}, {"NextUnreadChannel", GTK_STOCK_GOTO_BOTTOM, N_("_Next Unread Channel Buffer"), ALT "Down", NULL, G_CALLBACK(loqui_app_actions_next_unread_channel_buffer_cb)}, {"PreviousChannel", GTK_STOCK_GO_UP, N_("Previous Channel Buffer"), CTRL "Up", NULL, G_CALLBACK(loqui_app_actions_previous_channel_buffer_cb)}, {"NextChannel", GTK_STOCK_GO_DOWN, N_("Next Channel Buffer"), CTRL "Down", NULL, G_CALLBACK(loqui_app_actions_next_channel_buffer_cb)}, {"SelectBuffer", GTK_STOCK_JUMP_TO, N_("Select Buffer..."), CTRL "L", NULL, G_CALLBACK(loqui_app_actions_select_buffer_cb)}, {"ClearAllUnreadFlags", GTK_STOCK_CLEAR, N_("Clear All Unread Flags of Buffers"), NULL, NULL, G_CALLBACK(loqui_app_actions_clear_all_unread_flags_cb)}, {"ShowTransferWindow", NULL, N_("File Transfer Manager"), NULL, NULL, G_CALLBACK(loqui_app_actions_show_transfer_window_cb)}, {"GeneralSettings", NULL, N_("_General Settings"), NULL, NULL, G_CALLBACK(loqui_app_actions_common_settings_cb)}, {"AccountSettings", NULL, N_("_Account Settings"), NULL, NULL, G_CALLBACK(loqui_app_actions_account_settings_cb)}, {"About", NULL, N_("_About"), NULL, NULL, G_CALLBACK(loqui_app_actions_about_cb)}, {"StartPrivateTalkSelected", NULL, N_("Start private talk"), NULL, NULL, G_CALLBACK(loqui_app_actions_start_private_talk_selected_cb)}, {"WhoisSelected", NULL, N_("Show Information [Whois]"), NULL, NULL, G_CALLBACK(loqui_app_actions_whois_selected_cb)}, {"GiveOpSelected", LOQUI_STOCK_OPERATOR, N_("Give Channel Operator Privilege (+o)"), NULL, NULL, G_CALLBACK(loqui_app_actions_give_op_selected_cb)}, {"GiveVoiceSelected", LOQUI_STOCK_SPEAK_ABILITY, N_("Give Voice Privilege (+v)"), NULL, NULL, G_CALLBACK(loqui_app_actions_give_voice_selected_cb)}, {"DepriveOpSelected", NULL, N_("Deprive Channel Operator Privilege (-o)"), NULL, NULL, G_CALLBACK(loqui_app_actions_deprive_op_selected_cb)}, {"DepriveVoiceSelected", NULL, N_("Deprive Voice Privilege (-v)"), NULL, NULL, G_CALLBACK(loqui_app_actions_deprive_voice_selected_cb)}, {"CTCPVersionSelected", NULL, N_("_Version"), NULL, NULL, G_CALLBACK(loqui_app_actions_ctcp_version_selected_cb)}, {"CTCPClientinfoSelected", NULL, N_("_Clientinfo"), NULL, NULL, G_CALLBACK(loqui_app_actions_ctcp_clientinfo_selected_cb)}, {"CTCPUserinfoSelected", NULL, N_("User_info"), NULL, NULL, G_CALLBACK(loqui_app_actions_ctcp_userinfo_selected_cb)}, {"CTCPPingSelected", NULL, N_("_Ping"), NULL, NULL, G_CALLBACK(loqui_app_actions_ctcp_ping_selected_cb)}, {"CTCPTimeSelected", NULL, N_("_Time"), NULL, NULL, G_CALLBACK(loqui_app_actions_ctcp_time_selected_cb)}, {"CTCPFingerSelected", NULL, N_("_Finger"), NULL, NULL, G_CALLBACK(loqui_app_actions_ctcp_finger_selected_cb)}, }; static GtkToggleActionEntry loqui_toggle_action_entries[] = { {"ToggleCommandMode", LOQUI_STOCK_COMMAND, N_("_Toggle Command Mode"),CTRL"slash", N_("Interpret and send the message as command if toggled"), G_CALLBACK(loqui_app_actions_toggle_command_mode_cb), FALSE}, {"ToggleChannelbar", NULL, N_("_Channelbar"), NULL, NULL, G_CALLBACK(loqui_app_actions_toggle_channelbar_cb), TRUE}, {"ToggleStatusbar", NULL, N_("_Statusbar"), NULL, NULL, G_CALLBACK(loqui_app_actions_toggle_statusbar_cb), TRUE}, {LOQUI_ACTION_TOGGLE_SCROLL, NULL, N_("_Scroll channel buffer"), NULL, N_("Whether scrolling the channel buffer to the end when new message arrived."),G_CALLBACK(loqui_app_actions_toggle_scroll_cb) , TRUE}, {LOQUI_ACTION_TOGGLE_SCROLL_COMMON_BUFFER, NULL, N_("_Scroll common buffer"), NULL, N_("Whether scrolling the common buffer to the end when new message arrived."),G_CALLBACK(loqui_app_actions_toggle_scroll_common_buffer_cb) , TRUE}, }; static GtkRadioActionEntry loqui_nick_list_sort_radio_action_entries[] = { {"RadioNickListSortNone", NULL, "None", NULL, NULL, PREF_SORT_NONE}, {"RadioNickListSortNick", NULL, "Nick", NULL, NULL, PREF_SORT_NICK}, {"RadioNickListSortPowerNick", NULL, "Power > Nick", NULL, NULL, PREF_SORT_POWER_NICK}, {"RadioNickListSortAwayNick", NULL, "Away > Nick", NULL, NULL, PREF_SORT_AWAY_NICK}, {"RadioNickListSortPowerAwayNick", NULL, "Power > Away > Nick", NULL, NULL, PREF_SORT_POWER_AWAY_NICK}, {"RadioNickListSortAwayPowerNick", NULL, "Away > Power > Nick", NULL, NULL, PREF_SORT_AWAY_POWER_NICK}, {"RadioNickListSortTimeNick", NULL, "Time > Nick", NULL, NULL, PREF_SORT_TIME_NICK}, {"RadioNickListSortTimeAwayPowerNick", NULL, "Time > Away > Power > Nick", NULL, NULL, PREF_SORT_TIME_AWAY_POWER_NICK}, {"RadioNickListSortTimePowerAwayNick", NULL, "Time > Power > Away > Nick", NULL, NULL, PREF_SORT_TIME_POWER_AWAY_NICK}, }; GtkActionGroup * loqui_app_actions_create_group(LoquiApp *app) { GtkActionGroup *action_group; action_group = gtk_action_group_new("LoquiApp"); gtk_action_group_set_translate_func(action_group, gtkutils_menu_translate, NULL, NULL); gtk_action_group_add_actions(action_group, loqui_action_entries, G_N_ELEMENTS(loqui_action_entries), app); gtk_action_group_add_toggle_actions(action_group, loqui_toggle_action_entries, G_N_ELEMENTS(loqui_toggle_action_entries), app); gtk_action_group_add_radio_actions(action_group, loqui_nick_list_sort_radio_action_entries, G_N_ELEMENTS(loqui_nick_list_sort_radio_action_entries), loqui_pref_get_with_default_integer(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "NickListSortType", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_NICK_LIST_SORT_TYPE, NULL), G_CALLBACK(loqui_app_actions_nick_list_sort_radio_cb), app); ACTION_GROUP_ACTION_SET_SENSITIVE(action_group, "PasteWithLinefeedsCut", FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(action_group, "Find", FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(action_group, "FindAgain", FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(action_group, "ShowTransferWindow", FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(action_group, "SelectBuffer", FALSE); return action_group; } void loqui_app_actions_toggle_action_set_active(LoquiApp *app, const gchar *name, gboolean is_active) { GtkToggleAction *toggle_action; toggle_action = GTK_TOGGLE_ACTION(gtk_action_group_get_action(app->action_group, name)); gtk_toggle_action_set_active(toggle_action, is_active); } void loqui_app_actions_update_sensitivity_related_channel(LoquiApp *app) { LoquiChannelEntry *chent; LoquiAccount *account; LoquiChannel *channel; gboolean is_connected, is_joined, is_private_talk, is_account; chent = loqui_app_get_current_channel_entry(app); if (chent == NULL) { ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_JOIN, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_JOIN_CURRENT_CHANNEL, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_PART, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CLOSE_CHANNEL, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_SET_TOPIC, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CHANGE_NICK, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_REFRESH, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_START_PRIVATE_TALK, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CONNECT_CURRENT_ACCOUNT, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CANCEL_PENDING_RECONNECTING_CURRENT_ACCOUNT, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_RECONNECT_CURRENT_ACCOUNT, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_DISCONNECT_CURRENT_ACCOUNT, FALSE); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_TERMINATE_CURRENT_ACCOUNT, FALSE); return; } account = loqui_app_get_current_account(app); is_connected = (account != NULL && loqui_account_get_is_connected(account)); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_JOIN, is_connected); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CHANGE_NICK, is_connected); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_START_PRIVATE_TALK, is_connected); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CONNECT_CURRENT_ACCOUNT, !is_connected); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_RECONNECT_CURRENT_ACCOUNT, is_connected); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_DISCONNECT_CURRENT_ACCOUNT, is_connected); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_TERMINATE_CURRENT_ACCOUNT, is_connected); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CANCEL_PENDING_RECONNECTING_CURRENT_ACCOUNT, loqui_account_get_is_pending_reconnecting(account)); channel = loqui_app_get_current_channel(app); is_joined = (channel != NULL && !loqui_channel_get_is_private_talk(channel) && loqui_channel_get_is_joined(channel)); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_SET_TOPIC, is_joined); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_PART, is_joined); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_REFRESH, is_joined); is_private_talk = (channel != NULL && loqui_channel_get_is_private_talk(channel)); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_END_PRIVATE_TALK, is_private_talk); is_account = LOQUI_IS_ACCOUNT(chent); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_CLOSE_CHANNEL, !is_joined && !is_account); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, LOQUI_ACTION_JOIN_CURRENT_CHANNEL, !is_joined && !is_account); } /* callbacks */ static void loqui_app_actions_edit_menu_cb(GtkAction *action, LoquiApp *app) { gboolean cutable, copiable, pastable, clearable, findable; loqui_app_get_current_widget_editing_status(app, &cutable, &copiable, &pastable, &clearable, &findable); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, "Cut", cutable); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, "Paste", pastable); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, "Copy", copiable); ACTION_GROUP_ACTION_SET_SENSITIVE(app->action_group, "Clear", clearable); } static void loqui_app_actions_about_cb(GtkAction *action, LoquiApp *app) { about_open(); } static void loqui_app_actions_common_settings_cb(GtkAction *action, LoquiApp *app) { prefs_dialog_open(app); } static void loqui_app_actions_account_settings_cb(GtkAction *action, LoquiApp *app) { account_list_dialog_open(GTK_WINDOW(app), loqui_app_get_account_manager(app)); } static void loqui_app_actions_quit_cb(GtkAction *action, LoquiApp *app) { gtk_main_quit(); } static void loqui_app_actions_connect_cb(GtkAction *action, LoquiApp *app) { account_list_dialog_open_for_connect(GTK_WINDOW(app), loqui_app_get_account_manager(app)); } static void loqui_app_actions_show_transfer_window_cb(GtkAction *action, LoquiApp *app) { g_return_if_fail(app->transfer_window); gtk_widget_show_all(GTK_WIDGET(app->transfer_window)); } static void loqui_app_actions_connect_current_account_cb(GtkAction *action, LoquiApp *app) { LoquiAccount *account; account = loqui_app_get_current_account(app); if (account) loqui_account_connect(account); } static void loqui_app_actions_cancel_pending_reconnecting_current_account_cb(GtkAction *action, LoquiApp *app) { LoquiAccount *account; account = loqui_app_get_current_account(app); if (account && loqui_account_get_is_pending_reconnecting(account)) { loqui_account_cancel_pending_reconnecting(account); } } static void loqui_app_actions_reconnect_current_account_cb(GtkAction *action, LoquiApp *app) { LoquiAccount *account; account = loqui_app_get_current_account(app); if (account) { loqui_account_force_reconnect(account); } } static void loqui_app_actions_disconnect_current_account_cb(GtkAction *action, LoquiApp *app) { LoquiAccount *account; account = loqui_app_get_current_account(app); if (account) loqui_account_disconnect(account); } static void loqui_app_actions_terminate_current_account_cb(GtkAction *action, LoquiApp *app) { LoquiAccount *account; account = loqui_app_get_current_account(app); if (account) loqui_account_terminate(account); } static void loqui_app_actions_cut_cb(GtkAction *action, LoquiApp *app) { GtkWidget *widget; GtkTextBuffer *buffer; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); widget = gtk_window_get_focus(GTK_WINDOW(app)); if(GTK_IS_ENTRY(widget)) { gtk_editable_cut_clipboard(GTK_EDITABLE(widget)); } else if(GTK_IS_TEXT_VIEW(widget)) { buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_cut_clipboard(buffer, gtk_clipboard_get(GDK_NONE), FALSE); } } static void loqui_app_actions_copy_cb(GtkAction *action, LoquiApp *app) { GtkWidget *widget; GtkTextBuffer *buffer; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); widget = gtk_window_get_focus(GTK_WINDOW(app)); if(GTK_IS_ENTRY(widget)) { gtk_editable_copy_clipboard(GTK_EDITABLE(widget)); } else if(GTK_IS_TEXT_VIEW(widget)) { buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_copy_clipboard(buffer, gtk_clipboard_get(GDK_NONE)); } } static void loqui_app_actions_paste_cb(GtkAction *action, LoquiApp *app) { GtkWidget *widget; GtkTextBuffer *buffer; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); widget = gtk_window_get_focus(GTK_WINDOW(app)); if(GTK_IS_ENTRY(widget)) { gtk_editable_paste_clipboard(GTK_EDITABLE(widget)); } else if(GTK_IS_TEXT_VIEW(widget)) { buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_paste_clipboard(buffer, gtk_clipboard_get(GDK_NONE), NULL, FALSE); } } static void loqui_app_actions_clear_cb(GtkAction *action, LoquiApp *app) { GtkWidget *widget; GtkTextBuffer *buffer; GtkTextIter start, end; g_return_if_fail(app != NULL); g_return_if_fail(LOQUI_IS_APP(app)); widget = gtk_window_get_focus(GTK_WINDOW(app)); if(GTK_IS_ENTRY(widget)) { gtk_editable_delete_text(GTK_EDITABLE(widget), 0, -1); } else if(GTK_IS_TEXT_VIEW(widget)) { buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_get_start_iter(buffer, &start); gtk_text_buffer_get_end_iter(buffer, &end); gtk_text_buffer_delete(buffer, &start, &end); } } static void loqui_app_actions_jump_to_previous_keyword_cb(GtkAction *action, LoquiApp *app) { LoquiChannelTextView *chview; GtkTextBuffer *buffer; GtkTextIter iter; GtkTextTag *tag; chview = LOQUI_CHANNEL_TEXT_VIEW(loqui_app_get_current_channel_text_view(app)); if (!chview) return; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(chview)); if (!buffer) { g_warning("the LoquiChannelTextView doesn't have text buffer"); return; } gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); gtk_text_buffer_place_cursor(buffer, &iter); tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "highlight"); g_return_if_fail(tag != NULL); /* if iter is in highlight tag, exit it at first */ if (gtk_text_iter_has_tag(&iter, tag) && !gtk_text_iter_begins_tag(&iter, tag)) gtk_text_iter_backward_to_tag_toggle(&iter, tag); /* find the end of a tagged text */ if (!gtk_text_iter_backward_to_tag_toggle(&iter, tag)) return; /* find the beginning of the tagged text */ gtk_text_iter_backward_to_tag_toggle(&iter, tag); gtk_text_buffer_place_cursor(buffer, &iter); gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(chview), &iter, 0.25, FALSE, 0.0, 0.0); } static void loqui_app_actions_jump_to_next_keyword_cb(GtkAction *action, LoquiApp *app) { LoquiChannelTextView *chview; GtkTextBuffer *buffer; GtkTextIter iter; GtkTextTag *tag; chview = LOQUI_CHANNEL_TEXT_VIEW(loqui_app_get_current_channel_text_view(app)); if (!chview) return; buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(chview)); if (!buffer) { g_warning("the LoquiChannelTextView doesn't have text buffer"); return; } gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); gtk_text_buffer_place_cursor(buffer, &iter); tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "highlight"); g_return_if_fail(tag != NULL); /* if iter is in highlight tag, exit it at first */ if (gtk_text_iter_has_tag(&iter, tag) && !gtk_text_iter_ends_tag(&iter, tag)) gtk_text_iter_forward_to_tag_toggle(&iter, tag); /* find the beginning of a tagged text */ if (!gtk_text_iter_forward_to_tag_toggle(&iter, tag)) return; gtk_text_buffer_place_cursor(buffer, &iter); gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(chview), &iter, 0.25, FALSE, 0.0, 0.0); } static void loqui_app_actions_toggle_channelbar_cb(GtkAction *action, LoquiApp *app) { loqui_app_set_show_channelbar(app, gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); } static void loqui_app_actions_toggle_statusbar_cb(GtkAction *action, LoquiApp *app) { loqui_app_set_show_statusbar(app, gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); } static void loqui_app_actions_toggle_scroll_cb(GtkAction *action, LoquiApp *app) { gboolean is_active; GtkWidget *view; view = loqui_app_get_current_channel_text_view(app); if (view) { is_active = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action)); loqui_channel_text_view_set_is_scroll(LOQUI_CHANNEL_TEXT_VIEW(view), is_active); } } static void loqui_app_actions_toggle_scroll_common_buffer_cb(GtkAction *action, LoquiApp *app) { gboolean is_active; GtkWidget *view; view = app->common_textview; is_active = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action)); loqui_channel_text_view_set_is_scroll(LOQUI_CHANNEL_TEXT_VIEW(view), is_active); } static void loqui_app_actions_toggle_command_mode_cb(GtkAction *action, LoquiApp *app) { remark_entry_set_command_mode(REMARK_ENTRY(app->remark_entry), gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))); } static void loqui_app_actions_previous_unread_channel_buffer_cb(GtkAction *action, LoquiApp *app) { LoquiChannelEntry *chent; chent = loqui_account_manager_get_previous_channel_entry(loqui_app_get_account_manager(app), loqui_app_get_current_channel_entry(app), TRUE); if (chent) loqui_app_set_current_channel_entry(app, chent); } static void loqui_app_actions_next_unread_channel_buffer_cb(GtkAction *action, LoquiApp *app) { LoquiChannelEntry *chent; chent = loqui_account_manager_get_next_channel_entry(loqui_app_get_account_manager(app), loqui_app_get_current_channel_entry(app), TRUE); if (chent) loqui_app_set_current_channel_entry(app, chent); } static void loqui_app_actions_previous_channel_buffer_cb(GtkAction *action, LoquiApp *app) { LoquiChannelEntry *chent; chent = loqui_account_manager_get_previous_channel_entry(loqui_app_get_account_manager(app), loqui_app_get_current_channel_entry(app), FALSE); if (chent) loqui_app_set_current_channel_entry(app, chent); } static void loqui_app_actions_next_channel_buffer_cb(GtkAction *action, LoquiApp *app) { LoquiChannelEntry *chent; chent = loqui_account_manager_get_next_channel_entry(loqui_app_get_account_manager(app), loqui_app_get_current_channel_entry(app), FALSE); if (chent) loqui_app_set_current_channel_entry(app, chent); } static void loqui_app_actions_select_buffer_cb(GtkAction *action, LoquiApp *app) { GtkWidget *sdialog; sdialog = loqui_select_dialog_new(app); loqui_select_dialog_construct_channel_entry_list(LOQUI_SELECT_DIALOG(sdialog)); gtk_widget_show_all(sdialog); switch (gtk_dialog_run(GTK_DIALOG(sdialog))) { case GTK_RESPONSE_OK: break; case GTK_RESPONSE_CANCEL: default: break; } gtk_widget_destroy(sdialog); } static void loqui_app_actions_clear_all_unread_flags_cb(GtkAction *action, LoquiApp *app) { LoquiChannelEntry *chent; LoquiAccountManagerIter iter; loqui_account_manager_iter_init(loqui_app_get_account_manager(app), &iter); loqui_account_manager_iter_set_first_channel_entry(&iter); while ((chent = loqui_account_manager_iter_channel_entry_next(&iter)) != NULL) loqui_channel_entry_set_as_read(chent); } static void loqui_app_actions_close_channel_cb(GtkAction *action, LoquiApp *app) { LoquiChannel *channel; LoquiAccount *account; channel = loqui_app_get_current_channel(app); if (!channel) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("A channel is not selected.")); return; } account = loqui_channel_get_account(channel); if (!loqui_channel_get_is_private_talk(channel) && loqui_channel_get_is_joined(channel)) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("The channel has not be parted yet.")); return; } loqui_account_remove_channel(loqui_channel_get_account(channel), channel); } static void loqui_app_actions_join_current_channel_cb(GtkAction *action, LoquiApp *app) { LoquiChannel *channel; LoquiAccount *account; channel = loqui_app_get_current_channel(app); if (!channel) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("A channel is not selected.")); return; } account = loqui_channel_get_account(channel); if (loqui_channel_get_is_joined(channel)) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("You have already joined in the channel.")); return; } loqui_sender_join(loqui_account_get_sender(account), channel); } static void loqui_app_actions_join_cb(GtkAction *action, LoquiApp *app) { command_dialog_join(app, loqui_app_get_current_account(app)); } static void loqui_app_actions_part_cb(GtkAction *action, LoquiApp *app) { command_dialog_part(app, loqui_app_get_current_account(app), loqui_app_get_current_channel(app)); } static void loqui_app_actions_set_topic_cb(GtkAction *action, LoquiApp *app) { command_dialog_topic(app, loqui_app_get_current_account(app), loqui_app_get_current_channel(app)); } static void loqui_app_actions_nick_cb(GtkAction *action, LoquiApp *app) { command_dialog_nick(app, loqui_app_get_current_account(app)); } static void loqui_app_actions_refresh_cb(GtkAction *action, LoquiApp *app) { LoquiChannel *channel; channel = loqui_app_get_current_channel(app); if (channel) { if (!loqui_account_get_is_connected(channel->account)) { gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("The account is not connected")); return; } loqui_sender_refresh(loqui_account_get_sender(channel->account), channel); } else gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Not selected a channel!")); } static void loqui_app_actions_start_private_talk_cb(GtkAction *action, LoquiApp *app) { command_dialog_private_talk(app, loqui_app_get_current_account(app)); } static void loqui_app_actions_end_private_talk_cb(GtkAction *action, LoquiApp *app) { LoquiChannel *channel; channel = loqui_app_get_current_channel(app); if (!channel) gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Channel is not selected")); if (!loqui_channel_get_is_private_talk(channel)) gtkutils_msgbox_info(GTK_MESSAGE_ERROR, _("Current channel is not private talk")); loqui_sender_end_private_talk(loqui_account_get_sender(loqui_channel_get_account(channel)), channel); } static void loqui_app_actions_give_op_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_change_mode_selected(app->nick_list, TRUE, IRC_CHANNEL_MODE_OPERATOR); } static void loqui_app_actions_give_voice_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_change_mode_selected(app->nick_list, TRUE, IRC_CHANNEL_MODE_VOICE); } static void loqui_app_actions_deprive_op_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_change_mode_selected(app->nick_list, FALSE, IRC_CHANNEL_MODE_OPERATOR); } static void loqui_app_actions_deprive_voice_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_change_mode_selected(app->nick_list, FALSE, IRC_CHANNEL_MODE_VOICE); } static void loqui_app_actions_start_private_talk_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_start_private_talk_selected(app->nick_list); } static void loqui_app_actions_whois_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_whois_selected(app->nick_list); } static void loqui_app_actions_ctcp_version_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_ctcp_selected(app->nick_list, IRCCTCPVersion); } static void loqui_app_actions_ctcp_clientinfo_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_ctcp_selected(app->nick_list, IRCCTCPClientInfo); } static void loqui_app_actions_ctcp_userinfo_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_ctcp_selected(app->nick_list, IRCCTCPUserInfo); } static void loqui_app_actions_ctcp_ping_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_ctcp_selected(app->nick_list, IRCCTCPPing); } static void loqui_app_actions_ctcp_finger_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_ctcp_selected(app->nick_list, IRCCTCPFinger); } static void loqui_app_actions_ctcp_time_selected_cb(GtkAction *action, LoquiApp *app) { nick_list_ctcp_selected(app->nick_list, IRCCTCPTime); } static void loqui_app_actions_nick_list_sort_radio_cb(GtkAction *action, GtkRadioAction *current_action, LoquiApp *app) { gint value; value = gtk_radio_action_get_current_value(GTK_RADIO_ACTION(current_action)); loqui_app_set_nick_list_sort_type(app, value); } loqui-0.5.5/src/loqui-channel-entry-action-group-ui.c0000664000175000017500000003703612121605257017460 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 2 "loqui-channel-entry-action-group-ui.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 28 "loqui-channel-entry-action-group-ui.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-channel-entry-action-group-ui.h" #include "loqui-channel-entry-action-group-ui-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 29 "loqui-channel-entry-action-group-ui.gob" #include #include #include #line 56 "loqui-channel-entry-action-group-ui.c" /* self casting macros */ #define SELF(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI(x) #define SELF_CONST(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_CONST(x) #define IS_SELF(x) LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP_UI(x) #define TYPE_SELF LOQUI_TYPE_CHANNEL_ENTRY_ACTION_GROUP_UI #define SELF_CLASS(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI_GET_CLASS(x) /* self typedefs */ typedef LoquiChannelEntryActionGroupUI Self; typedef LoquiChannelEntryActionGroupUIClass SelfClass; /* here are local prototypes */ #line 0 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_init (LoquiChannelEntryActionGroupUI * o) G_GNUC_UNUSED; #line 73 "loqui-channel-entry-action-group-ui.c" #line 0 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_class_init (LoquiChannelEntryActionGroupUIClass * c) G_GNUC_UNUSED; #line 76 "loqui-channel-entry-action-group-ui.c" #line 61 "loqui-channel-entry-action-group-ui.gob" static void ___2_loqui_channel_entry_action_group_ui_dispose (GObject * object) G_GNUC_UNUSED; #line 79 "loqui-channel-entry-action-group-ui.c" #line 73 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_add_channel_entry_action_in_placeholder (LoquiChannelEntryActionGroupUI * self, LoquiChannelEntryUIData * ui_data, LoquiChannelEntryAction * ce_action) G_GNUC_UNUSED; #line 82 "loqui-channel-entry-action-group-ui.c" #line 92 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_add_channel_entry_action_after_cb (LoquiChannelEntryActionGroup * action_group, LoquiChannelEntryAction * ce_action, Self * self) G_GNUC_UNUSED; #line 85 "loqui-channel-entry-action-group-ui.c" #line 113 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_remove_channel_entry_action_cb (LoquiChannelEntryActionGroup * action_group, LoquiChannelEntryAction * ce_action, Self * self) G_GNUC_UNUSED; #line 88 "loqui-channel-entry-action-group-ui.c" #line 130 "loqui-channel-entry-action-group-ui.gob" static gchar * loqui_channel_entry_action_group_ui_create_path_placeholder (LoquiChannelEntryActionGroupUI * self, LoquiAccount * account) G_GNUC_UNUSED; #line 91 "loqui-channel-entry-action-group-ui.c" /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_channel_entry_action_group_ui_new #define self_add_channel_entry_action_in_placeholder loqui_channel_entry_action_group_ui_add_channel_entry_action_in_placeholder #define self_add_channel_entry_action_after_cb loqui_channel_entry_action_group_ui_add_channel_entry_action_after_cb #define self_remove_channel_entry_action_cb loqui_channel_entry_action_group_ui_remove_channel_entry_action_cb #define self_create_path_placeholder loqui_channel_entry_action_group_ui_create_path_placeholder #define self_get_widget loqui_channel_entry_action_group_ui_get_widget GType loqui_channel_entry_action_group_ui_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiChannelEntryActionGroupUIClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_channel_entry_action_group_ui_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiChannelEntryActionGroupUI), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_channel_entry_action_group_ui_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiChannelEntryActionGroupUI", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiChannelEntryActionGroupUI *)g_object_new(loqui_channel_entry_action_group_ui_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiChannelEntryActionGroupUI * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiChannelEntryActionGroupUI * GET_NEW_VARG (const char *first, ...) { LoquiChannelEntryActionGroupUI *ret; va_list ap; va_start (ap, first); ret = (LoquiChannelEntryActionGroupUI *)g_object_new_valist (loqui_channel_entry_action_group_ui_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::dispose" LoquiChannelEntryActionGroupUI *self G_GNUC_UNUSED = LOQUI_CHANNEL_ENTRY_ACTION_GROUP_UI (obj_self); #line 61 "loqui-channel-entry-action-group-ui.gob" ___2_loqui_channel_entry_action_group_ui_dispose(obj_self); #line 153 "loqui-channel-entry-action-group-ui.c" #line 38 "loqui-channel-entry-action-group-ui.gob" if(self->ui_manager) { g_object_unref ((gpointer) self->ui_manager); self->ui_manager = NULL; } #line 156 "loqui-channel-entry-action-group-ui.c" #line 39 "loqui-channel-entry-action-group-ui.gob" if(self->action_group) { g_object_unref ((gpointer) self->action_group); self->action_group = NULL; } #line 159 "loqui-channel-entry-action-group-ui.c" #line 40 "loqui-channel-entry-action-group-ui.gob" if(self->ui_base_path) { g_free ((gpointer) self->ui_base_path); self->ui_base_path = NULL; } #line 162 "loqui-channel-entry-action-group-ui.c" #line 41 "loqui-channel-entry-action-group-ui.gob" if(self->ui_data_table) { g_hash_table_destroy ((gpointer) self->ui_data_table); self->ui_data_table = NULL; } #line 165 "loqui-channel-entry-action-group-ui.c" } #undef __GOB_FUNCTION__ static void loqui_channel_entry_action_group_ui_init (LoquiChannelEntryActionGroupUI * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::init" #line 29 "loqui-channel-entry-action-group-ui.gob" o->ui_manager = NULL; #line 175 "loqui-channel-entry-action-group-ui.c" #line 29 "loqui-channel-entry-action-group-ui.gob" o->action_group = NULL; #line 178 "loqui-channel-entry-action-group-ui.c" #line 29 "loqui-channel-entry-action-group-ui.gob" o->ui_base_path = NULL; #line 181 "loqui-channel-entry-action-group-ui.c" #line 41 "loqui-channel-entry-action-group-ui.gob" o->ui_data_table = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_object_unref); #line 184 "loqui-channel-entry-action-group-ui.c" } #undef __GOB_FUNCTION__ static void loqui_channel_entry_action_group_ui_class_init (LoquiChannelEntryActionGroupUIClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; parent_class = g_type_class_ref (G_TYPE_OBJECT); #line 61 "loqui-channel-entry-action-group-ui.gob" g_object_class->dispose = ___dispose; #line 197 "loqui-channel-entry-action-group-ui.c" } #undef __GOB_FUNCTION__ #line 43 "loqui-channel-entry-action-group-ui.gob" LoquiChannelEntryActionGroupUI * loqui_channel_entry_action_group_ui_new (LoquiChannelEntryActionGroup * action_group, GtkUIManager * ui_manager, gchar * ui_base_path) { #line 207 "loqui-channel-entry-action-group-ui.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::new" { #line 44 "loqui-channel-entry-action-group-ui.gob" Self *self; self = GET_NEW; self->action_group = g_object_ref(action_group); self->ui_manager = g_object_ref(ui_manager); self->ui_base_path = g_strdup(ui_base_path); g_signal_connect_after(G_OBJECT(self->action_group), "add_channel_entry_action", G_CALLBACK(self_add_channel_entry_action_after_cb), self); g_signal_connect(G_OBJECT(self->action_group), "remove_channel_entry_action", G_CALLBACK(self_remove_channel_entry_action_cb), self); return self; }} #line 227 "loqui-channel-entry-action-group-ui.c" #undef __GOB_FUNCTION__ #line 61 "loqui-channel-entry-action-group-ui.gob" static void ___2_loqui_channel_entry_action_group_ui_dispose (GObject * object G_GNUC_UNUSED) #line 233 "loqui-channel-entry-action-group-ui.c" #define PARENT_HANDLER(___object) \ { if(G_OBJECT_CLASS(parent_class)->dispose) \ (* G_OBJECT_CLASS(parent_class)->dispose)(___object); } { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::dispose" { #line 62 "loqui-channel-entry-action-group-ui.gob" Self *self; self = SELF(object); g_signal_handlers_disconnect_by_func(self->action_group, self_add_channel_entry_action_after_cb, self); g_signal_handlers_disconnect_by_func(self->action_group, self_remove_channel_entry_action_cb, self); PARENT_HANDLER(object); }} #line 251 "loqui-channel-entry-action-group-ui.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 73 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_add_channel_entry_action_in_placeholder (LoquiChannelEntryActionGroupUI * self, LoquiChannelEntryUIData * ui_data, LoquiChannelEntryAction * ce_action) { #line 259 "loqui-channel-entry-action-group-ui.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::add_channel_entry_action_in_placeholder" #line 73 "loqui-channel-entry-action-group-ui.gob" g_return_if_fail (self != NULL); #line 73 "loqui-channel-entry-action-group-ui.gob" g_return_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP_UI (self)); #line 265 "loqui-channel-entry-action-group-ui.c" { #line 74 "loqui-channel-entry-action-group-ui.gob" gchar *path; const gchar *name; LoquiAccount *account; LoquiChannelEntry *chent; chent = loqui_channel_entry_action_get_channel_entry(ce_action); /* get parent or itself */ loqui_channel_entry_utils_separate(chent, &account, NULL); name = gtk_action_get_name(GTK_ACTION(ce_action)); ui_data->channel_entry_merge_id = gtk_ui_manager_new_merge_id(self->ui_manager); path = self_create_path_placeholder(self, account); gtk_ui_manager_add_ui(self->ui_manager, ui_data->channel_entry_merge_id, path, name, name, GTK_UI_MANAGER_MENUITEM, FALSE); g_free(path); }} #line 285 "loqui-channel-entry-action-group-ui.c" #undef __GOB_FUNCTION__ #line 92 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_add_channel_entry_action_after_cb (LoquiChannelEntryActionGroup * action_group, LoquiChannelEntryAction * ce_action, Self * self) { #line 292 "loqui-channel-entry-action-group-ui.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::add_channel_entry_action_after_cb" { #line 93 "loqui-channel-entry-action-group-ui.gob" LoquiChannelEntryUIData *ui_data; LoquiChannelEntry *chent; gchar *name; ui_data = loqui_channel_entry_ui_data_new(); chent = loqui_channel_entry_action_get_channel_entry(ce_action); g_hash_table_insert(self->ui_data_table, GINT_TO_POINTER(loqui_channel_entry_get_id(chent)), ui_data); if (LOQUI_IS_ACCOUNT(chent)) { ui_data->placeholder_merge_id = gtk_ui_manager_new_merge_id(self->ui_manager); name = loqui_channel_entry_action_group_create_placeholder_action_name(self->action_group, LOQUI_ACCOUNT(chent)); gtk_ui_manager_add_ui(self->ui_manager, ui_data->placeholder_merge_id, self->ui_base_path, name, name, GTK_UI_MANAGER_PLACEHOLDER, FALSE); g_free(name); } self_add_channel_entry_action_in_placeholder(self, ui_data, ce_action); }} #line 315 "loqui-channel-entry-action-group-ui.c" #undef __GOB_FUNCTION__ #line 113 "loqui-channel-entry-action-group-ui.gob" static void loqui_channel_entry_action_group_ui_remove_channel_entry_action_cb (LoquiChannelEntryActionGroup * action_group, LoquiChannelEntryAction * ce_action, Self * self) { #line 322 "loqui-channel-entry-action-group-ui.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::remove_channel_entry_action_cb" { #line 114 "loqui-channel-entry-action-group-ui.gob" LoquiChannelEntryUIData *ui_data; LoquiChannelEntry *chent; chent = loqui_channel_entry_action_get_channel_entry(ce_action); ui_data = g_hash_table_lookup(self->ui_data_table, GINT_TO_POINTER(loqui_channel_entry_get_id(chent))); g_return_if_fail(ui_data != NULL); gtk_ui_manager_remove_ui(self->ui_manager, ui_data->channel_entry_merge_id); if (ui_data->placeholder_merge_id > 0) { gtk_ui_manager_remove_ui(self->ui_manager, ui_data->placeholder_merge_id); } g_hash_table_remove(self->ui_data_table, GINT_TO_POINTER(loqui_channel_entry_get_id(chent))); }} #line 341 "loqui-channel-entry-action-group-ui.c" #undef __GOB_FUNCTION__ #line 130 "loqui-channel-entry-action-group-ui.gob" static gchar * loqui_channel_entry_action_group_ui_create_path_placeholder (LoquiChannelEntryActionGroupUI * self, LoquiAccount * account) { #line 348 "loqui-channel-entry-action-group-ui.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::create_path_placeholder" #line 130 "loqui-channel-entry-action-group-ui.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 130 "loqui-channel-entry-action-group-ui.gob" g_return_val_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP_UI (self), (gchar * )0); #line 354 "loqui-channel-entry-action-group-ui.c" { #line 131 "loqui-channel-entry-action-group-ui.gob" gchar *name, *buf; name = loqui_channel_entry_action_group_create_placeholder_action_name(self->action_group, account); buf = g_strconcat(self->ui_base_path, "/", name, NULL); g_free(name); return buf; }} #line 366 "loqui-channel-entry-action-group-ui.c" #undef __GOB_FUNCTION__ #line 141 "loqui-channel-entry-action-group-ui.gob" GtkWidget * loqui_channel_entry_action_group_ui_get_widget (LoquiChannelEntryActionGroupUI * self) { #line 373 "loqui-channel-entry-action-group-ui.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:Action:Group:UI::get_widget" #line 141 "loqui-channel-entry-action-group-ui.gob" g_return_val_if_fail (self != NULL, (GtkWidget * )0); #line 141 "loqui-channel-entry-action-group-ui.gob" g_return_val_if_fail (LOQUI_IS_CHANNEL_ENTRY_ACTION_GROUP_UI (self), (GtkWidget * )0); #line 379 "loqui-channel-entry-action-group-ui.c" { #line 142 "loqui-channel-entry-action-group-ui.gob" return gtk_ui_manager_get_widget(self->ui_manager, self->ui_base_path); }} #line 385 "loqui-channel-entry-action-group-ui.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/loqui-protocol-selection-dialog.h0000664000175000017500000000642512121605257016755 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_PROTOCOL_SELECTION_DIALOG_H__ #define __LOQUI_PROTOCOL_SELECTION_DIALOG_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include /* * Type checking and casting macros */ #define LOQUI_TYPE_PROTOCOL_SELECTION_DIALOG (loqui_protocol_selection_dialog_get_type()) #define LOQUI_PROTOCOL_SELECTION_DIALOG(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_protocol_selection_dialog_get_type(), LoquiProtocolSelectionDialog) #define LOQUI_PROTOCOL_SELECTION_DIALOG_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_protocol_selection_dialog_get_type(), LoquiProtocolSelectionDialog const) #define LOQUI_PROTOCOL_SELECTION_DIALOG_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_protocol_selection_dialog_get_type(), LoquiProtocolSelectionDialogClass) #define LOQUI_IS_PROTOCOL_SELECTION_DIALOG(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_protocol_selection_dialog_get_type ()) #define LOQUI_PROTOCOL_SELECTION_DIALOG_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_protocol_selection_dialog_get_type(), LoquiProtocolSelectionDialogClass) /* Private structure type */ typedef struct _LoquiProtocolSelectionDialogPrivate LoquiProtocolSelectionDialogPrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_PROTOCOL_SELECTION_DIALOG__ #define __TYPEDEF_LOQUI_PROTOCOL_SELECTION_DIALOG__ typedef struct _LoquiProtocolSelectionDialog LoquiProtocolSelectionDialog; #endif struct _LoquiProtocolSelectionDialog { GtkMessageDialog __parent__; /*< private >*/ LoquiProtocolSelectionDialogPrivate *_priv; }; /* * Class definition */ typedef struct _LoquiProtocolSelectionDialogClass LoquiProtocolSelectionDialogClass; struct _LoquiProtocolSelectionDialogClass { GtkMessageDialogClass __parent__; }; /* * Public methods */ GType loqui_protocol_selection_dialog_get_type (void) G_GNUC_CONST; #line 92 "loqui-protocol-selection-dialog.gob" LoquiProtocol * loqui_protocol_selection_dialog_get_protocol (LoquiProtocolSelectionDialog * self); #line 83 "loqui-protocol-selection-dialog.h" #line 106 "loqui-protocol-selection-dialog.gob" GtkWidget * loqui_protocol_selection_dialog_new (GtkWindow * parent, LoquiProtocolManager * protocol_manager, LoquiProtocol * default_protocol); #line 88 "loqui-protocol-selection-dialog.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-channel-entry-ui-data.c0000664000175000017500000001152612121605257015756 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 2 "loqui-channel-entry-ui-data.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 28 "loqui-channel-entry-ui-data.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-channel-entry-ui-data.h" #include "loqui-channel-entry-ui-data-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 27 "loqui-channel-entry-ui-data.gob" #include #include #line 55 "loqui-channel-entry-ui-data.c" /* self casting macros */ #define SELF(x) LOQUI_CHANNEL_ENTRY_UI_DATA(x) #define SELF_CONST(x) LOQUI_CHANNEL_ENTRY_UI_DATA_CONST(x) #define IS_SELF(x) LOQUI_IS_CHANNEL_ENTRY_UI_DATA(x) #define TYPE_SELF LOQUI_TYPE_CHANNEL_ENTRY_UI_DATA #define SELF_CLASS(x) LOQUI_CHANNEL_ENTRY_UI_DATA_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_CHANNEL_ENTRY_UI_DATA_GET_CLASS(x) /* self typedefs */ typedef LoquiChannelEntryUIData Self; typedef LoquiChannelEntryUIDataClass SelfClass; /* here are local prototypes */ #line 0 "loqui-channel-entry-ui-data.gob" static void loqui_channel_entry_ui_data_init (LoquiChannelEntryUIData * o) G_GNUC_UNUSED; #line 72 "loqui-channel-entry-ui-data.c" #line 0 "loqui-channel-entry-ui-data.gob" static void loqui_channel_entry_ui_data_class_init (LoquiChannelEntryUIDataClass * c) G_GNUC_UNUSED; #line 75 "loqui-channel-entry-ui-data.c" /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_channel_entry_ui_data_new GType loqui_channel_entry_ui_data_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiChannelEntryUIDataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_channel_entry_ui_data_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiChannelEntryUIData), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_channel_entry_ui_data_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiChannelEntryUIData", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiChannelEntryUIData *)g_object_new(loqui_channel_entry_ui_data_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiChannelEntryUIData * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiChannelEntryUIData * GET_NEW_VARG (const char *first, ...) { LoquiChannelEntryUIData *ret; va_list ap; va_start (ap, first); ret = (LoquiChannelEntryUIData *)g_object_new_valist (loqui_channel_entry_ui_data_get_type (), first, ap); va_end (ap); return ret; } static void loqui_channel_entry_ui_data_init (LoquiChannelEntryUIData * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:UI:Data::init" #line 27 "loqui-channel-entry-ui-data.gob" o->channel_entry_merge_id = 0; #line 130 "loqui-channel-entry-ui-data.c" #line 27 "loqui-channel-entry-ui-data.gob" o->placeholder_merge_id = 0; #line 133 "loqui-channel-entry-ui-data.c" } #undef __GOB_FUNCTION__ static void loqui_channel_entry_ui_data_class_init (LoquiChannelEntryUIDataClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Channel:Entry:UI:Data::class_init" parent_class = g_type_class_ref (G_TYPE_OBJECT); } #undef __GOB_FUNCTION__ #line 38 "loqui-channel-entry-ui-data.gob" LoquiChannelEntryUIData * loqui_channel_entry_ui_data_new (void) { #line 152 "loqui-channel-entry-ui-data.c" #define __GOB_FUNCTION__ "Loqui:Channel:Entry:UI:Data::new" { #line 39 "loqui-channel-entry-ui-data.gob" Self *self; self = GET_NEW; return self; }} #line 162 "loqui-channel-entry-ui-data.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/loqui_channel_text_view.h0000664000175000017500000000650312121600532015450 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- Chat client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #ifndef __LOQUI_CHANNEL_TEXT_VIEW_H__ #define __LOQUI_CHANNEL_TEXT_VIEW_H__ #include #include "loqui_channel_buffer_gtk.h" G_BEGIN_DECLS #define LOQUI_TYPE_CHANNEL_TEXT_VIEW (loqui_channel_text_view_get_type ()) #define LOQUI_CHANNEL_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_CHANNEL_TEXT_VIEW, LoquiChannelTextView)) #define LOQUI_CHANNEL_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_CHANNEL_TEXT_VIEW, LoquiChannelTextViewClass)) #define LOQUI_IS_CHANNEL_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_CHANNEL_TEXT_VIEW)) #define LOQUI_IS_CHANNEL_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_CHANNEL_TEXT_VIEW)) #define LOQUI_CHANNEL_TEXT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_CHANNEL_TEXT_VIEW, LoquiChannelTextViewClass)) typedef struct _LoquiChannelTextView LoquiChannelTextView; typedef struct _LoquiChannelTextViewClass LoquiChannelTextViewClass; typedef struct _LoquiChannelTextViewPrivate LoquiChannelTextViewPrivate; #include "loqui_app.h" #include "loqui_channel_buffer_gtk.h" struct _LoquiChannelTextView { GtkTextView parent; GtkWidget *scrolled_window; gboolean is_scroll; gboolean auto_switch_scrolling; LoquiChannelTextViewPrivate *priv; }; struct _LoquiChannelTextViewClass { GtkTextViewClass parent_class; void (* scrolled_to_end) (LoquiChannelTextView *chview); }; GType loqui_channel_text_view_get_type(void) G_GNUC_CONST; GtkWidget* loqui_channel_text_view_new(LoquiApp *app); void loqui_channel_text_view_set_channel_buffer(LoquiChannelTextView *chview, LoquiChannelBufferGtk *buffer); void loqui_channel_text_view_set_is_scroll(LoquiChannelTextView *textview, gboolean is_scroll); gboolean loqui_channel_text_view_get_is_scroll(LoquiChannelTextView *textview); void loqui_channel_text_view_scroll_to_end(LoquiChannelTextView *chview); void loqui_channel_text_view_scroll_to_end_if_enabled(LoquiChannelTextView *chview); void loqui_channel_text_view_set_auto_switch_scrolling(LoquiChannelTextView *textview, gboolean auto_switch_scrolling); gboolean loqui_channel_text_view_get_auto_switch_scrolling(LoquiChannelTextView *textview); void loqui_channel_text_view_scroll(LoquiChannelTextView *chview, GtkMovementStep step, gint count); G_END_DECLS #endif /* __LOQUI_CHANNEL_TEXT_VIEW_H__ */ loqui-0.5.5/src/loqui-protocol-selection-dialog.gob0000664000175000017500000000711112121600532017255 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ %} %h{ #include #include %} %{ #include #include enum { COLUMN_NAME, COLUMN_PROTOCOL, COLUMN_NUMBER, }; %} class Loqui:Protocol:Selection:Dialog from Gtk:Message:Dialog { private LoquiProtocolManager *protocol_manager = NULL unrefwith g_object_unref; private GtkWidget *combobox; private GtkListStore *store unrefwith g_object_unref; private void add_widgets(self) { GtkCellRenderer *renderer; GtkWidget *vbox; vbox = GTK_DIALOG(self)->vbox; renderer = gtk_cell_renderer_text_new(); selfp->combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(selfp->store)); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->combobox), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->combobox), renderer, "text", COLUMN_NAME, NULL); gtk_box_pack_start(GTK_BOX(vbox), selfp->combobox, TRUE, TRUE, 5); gtk_widget_show_all(GTK_WIDGET(self)); } private void load_protocols(self, LoquiProtocol *default_protocol) { GList *list, *cur; GtkTreeIter iter; LoquiProtocol *protocol; list = loqui_protocol_manager_get_protocol_list(selfp->protocol_manager); for (cur = list; cur != NULL; cur = cur->next) { protocol = LOQUI_PROTOCOL(cur->data); gtk_list_store_append(selfp->store, &iter); gtk_list_store_set(selfp->store, &iter, COLUMN_NAME, loqui_protocol_get_identifier(protocol), COLUMN_PROTOCOL, protocol, -1); if (protocol == default_protocol) { gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->combobox), &iter); } } g_list_free(list); } public LoquiProtocol * get_protocol(self) { GtkTreeIter iter; LoquiProtocol *protocol; if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->combobox), &iter)) return NULL; gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROTOCOL, &protocol, -1); return protocol; } public GtkWidget* new(GtkWindow *parent, LoquiProtocolManager *protocol_manager, LoquiProtocol *default_protocol) { Self *self = GET_NEW_VARG("message_type", GTK_MESSAGE_QUESTION, "buttons", GTK_BUTTONS_OK_CANCEL, "title", _("Protocol Selection"), NULL); selfp->protocol_manager = g_object_ref(protocol_manager); selfp->store = gtk_list_store_new(COLUMN_NUMBER, G_TYPE_STRING, LOQUI_TYPE_PROTOCOL); if (parent != NULL) gtk_window_set_transient_for(GTK_WINDOW(self), parent); gtk_window_set_destroy_with_parent(GTK_WINDOW(self), TRUE); gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(self), _("Choose a protocol.")); self_add_widgets(self); self_load_protocols(self, default_protocol); return GTK_WIDGET(self); } } loqui-0.5.5/src/loqui-account-dialog-private.h0000664000175000017500000000515112121605257016230 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 2 "loqui-account-dialog.gob" #line 26 "loqui-account-dialog-private.h" #ifndef __LOQUI_ACCOUNT_DIALOG_PRIVATE_H__ #define __LOQUI_ACCOUNT_DIALOG_PRIVATE_H__ #include "loqui-account-dialog.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ struct _LoquiAccountDialogPrivate { #line 52 "loqui-account-dialog.gob" LoquiProfileAccount * profile; #line 54 "loqui-account-dialog.gob" GtkWidget * notebook; #line 56 "loqui-account-dialog.gob" GtkWidget * entry_name; #line 57 "loqui-account-dialog.gob" GtkWidget * check_use; #line 59 "loqui-account-dialog.gob" GtkWidget * entry_nick; #line 60 "loqui-account-dialog.gob" GtkWidget * entry_username; #line 61 "loqui-account-dialog.gob" GtkWidget * entry_password; #line 62 "loqui-account-dialog.gob" GtkWidget * entry_servername; #line 63 "loqui-account-dialog.gob" GtkWidget * spin_port; #line 66 "loqui-account-dialog.gob" GtkWidget * entry_realname; #line 67 "loqui-account-dialog.gob" GtkWidget * entry_userinfo; #line 68 "loqui-account-dialog.gob" GtkWidget * entry_autojoin; #line 69 "loqui-account-dialog.gob" GtkWidget * entry_quit_message; #line 71 "loqui-account-dialog.gob" GtkWidget * radio_automatic; #line 72 "loqui-account-dialog.gob" GtkWidget * radio_noconv; #line 73 "loqui-account-dialog.gob" GtkWidget * radio_bytable; #line 74 "loqui-account-dialog.gob" GtkWidget * combobox_table; #line 75 "loqui-account-dialog.gob" GtkWidget * radio_codeset; #line 76 "loqui-account-dialog.gob" GtkWidget * entry_codeset; #line 77 "loqui-account-dialog.gob" GtkTreeModel * model_codeconv_table; #line 79 "loqui-account-dialog.gob" GtkWidget * textview_nicklist; #line 79 "loqui-account-dialog-private.h" }; #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-channel-entry-action-group.gob0000664000175000017500000001655412121600532017363 00000000000000requires 2.0.0 %alltop{ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ %} %h{ #include #include #include "loqui_channel_entry_action.h" %} %{ #include #include #include #include #include "loqui-core-gtk.h" %} %h{ #ifndef __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP__ #define __TYPEDEF_LOQUI_CHANNEL_ENTRY_ACTION_GROUP__ typedef struct _LoquiChannelEntryActionGroup LoquiChannelEntryActionGroup; #endif #include "loqui_app.h" %} class Loqui:Channel:Entry:Action:Group from Gtk:Action:Group { public Loqui:Account:Manager *account_manager = NULL unrefwith g_object_unref; private Loqui:App *app = NULL unrefwith g_object_unref; public Loqui:Channel:Entry:Action:Group * new(Loqui:App *app, Loqui:Account:Manager *account_manager) { Self *self; self = GET_NEW_VARG("name", "channel-entry-group", NULL); self->account_manager = g_object_ref(account_manager); selfp->app = g_object_ref(app); g_signal_connect_after(G_OBJECT(self->account_manager), "add_channel_entry_after", G_CALLBACK(self_add_channel_entry_after_cb), self); g_signal_connect(G_OBJECT(self->account_manager), "remove_channel_entry", G_CALLBACK(self_remove_channel_entry_cb), self); g_signal_connect_after(G_OBJECT(self->account_manager), "remove_channel_entry_after", G_CALLBACK(self_remove_channel_entry_after_cb), self); return self; } override (G:Object) void dispose(G:Object *object) { Self *self; self = SELF(object); g_signal_handlers_disconnect_by_func(self->account_manager, self_add_channel_entry_after_cb, self); g_signal_handlers_disconnect_by_func(self->account_manager, self_remove_channel_entry_cb, self); g_signal_handlers_disconnect_by_func(self->account_manager, self_remove_channel_entry_after_cb, self); PARENT_HANDLER(object); } signal last NONE (OBJECT) void add_channel_entry_action(self, Loqui:Channel:Entry:Action *ce_action) { gtk_action_group_add_action(GTK_ACTION_GROUP(self), GTK_ACTION(ce_action)); } signal last NONE (OBJECT) void remove_channel_entry_action(self, Loqui:Channel:Entry:Action *ce_action) { gtk_action_group_remove_action(GTK_ACTION_GROUP(self), GTK_ACTION(ce_action)); } private void add_channel_entry_after_cb(Loqui:Account:Manager *account_manager, Loqui:Channel:Entry *chent, Self *self) { if (LOQUI_IS_ACCOUNT(chent)) { self_create_and_add_placeholder_action(self, LOQUI_ACCOUNT(chent)); } self_create_and_add_channel_entry_action(self, chent); self_update_accel_keys(self); } private void remove_channel_entry_cb(Loqui:Account:Manager *account_manager, Loqui:Channel:Entry *chent, Self *self) { LoquiChannelEntryAction *ce_action; GtkAction *action; ce_action = self_get_channel_entry_action(self, chent); g_return_if_fail(ce_action != NULL); self_remove_channel_entry_action(self, ce_action); if (LOQUI_IS_ACCOUNT(chent)) { action = self_get_placeholder_action(self, LOQUI_ACCOUNT(chent)); g_return_if_fail(action != NULL); gtk_action_group_remove_action(GTK_ACTION_GROUP(self), action); } } private void remove_channel_entry_after_cb(Loqui:Account:Manager *account_manager, Loqui:Channel:Entry *chent, Self *self) { self_update_accel_keys(self); } private void channel_entry_action_activate_cb(Loqui:Channel:Entry:Action *action, Self *self) { LoquiChannelEntry *chent; if (!loqui_app_has_toplevel_focus(selfp->app)) gtk_window_present(GTK_WINDOW(selfp->app)); chent = loqui_channel_entry_action_get_channel_entry(action); loqui_app_set_current_channel_entry(selfp->app, chent); } private void create_and_add_channel_entry_action(self, LoquiChannelEntry *channel_entry) { LoquiChannelEntryAction *ce_action; gchar *ce_name; ce_name = self_create_channel_entry_action_name(self, channel_entry); ce_action = loqui_channel_entry_action_new(ce_name); loqui_channel_entry_action_set_channel_entry(ce_action, channel_entry); g_signal_connect(G_OBJECT(ce_action), "activate", G_CALLBACK(self_channel_entry_action_activate_cb), self); self_add_channel_entry_action(self, ce_action); g_object_unref(ce_action); g_free(ce_name); } private void create_and_add_placeholder_action(self, LoquiAccount *account) { GtkAction *ph_action; gchar *ph_name; ph_name = self_create_placeholder_action_name(self, account); ph_action = gtk_action_new(ph_name, "", NULL, NULL); gtk_action_group_add_action(GTK_ACTION_GROUP(self), GTK_ACTION(ph_action)); g_object_unref(ph_action); g_free(ph_name); } public gchar * create_channel_entry_action_name(self, LoquiChannelEntry *chent) { return g_strdup_printf("ChannelEntry-%d", loqui_channel_entry_get_id(chent)); } public gchar * create_placeholder_action_name(self, LoquiAccount *account) { return g_strdup_printf("Account-PlaceHolder-%d", loqui_channel_entry_get_id(LOQUI_CHANNEL_ENTRY(account))); } public Loqui:Channel:Entry:Action * get_channel_entry_action(self, LoquiChannelEntry *chent) { LoquiChannelEntryAction *ce_action; gchar *ce_name; ce_name = self_create_channel_entry_action_name(self, chent); ce_action = LOQUI_CHANNEL_ENTRY_ACTION(gtk_action_group_get_action(GTK_ACTION_GROUP(self), ce_name)); g_free(ce_name); return ce_action; } public Gtk:Action * get_placeholder_action(self, LoquiAccount *account) { gchar *ph_name; GtkAction *action; ph_name = self_create_placeholder_action_name(self, account); action = gtk_action_group_get_action(GTK_ACTION_GROUP(self), ph_name); g_free(ph_name); return action; } private void update_accel_keys(self) { LoquiAccountManagerIter iter; LoquiChannelEntry *chent; loqui_account_manager_iter_init(self->account_manager, &iter); loqui_account_manager_iter_set_first_channel_entry(&iter); while ((chent = loqui_account_manager_iter_channel_entry_next(&iter))) self_set_channel_entry_accel_key(self, chent); } private void set_channel_entry_accel_key(self, LoquiChannelEntry *chent) { guint keyval; guint modifiers; gint pos; gint id; gchar *path; id = loqui_channel_entry_get_id(chent); if (id < 0) return; pos = loqui_channel_entry_get_position(chent); if (0 <= pos && pos < 10) { keyval = GDK_0 + pos; modifiers = GDK_CONTROL_MASK; } else if (10 <= pos && pos < 20) { keyval = GDK_0 + pos - 10; modifiers = GDK_MOD1_MASK; } else { keyval = 0; modifiers = 0; } if (keyval != 0) { path = g_strdup_printf(SHORTCUT_CHANNEL_ENTRY_ACCEL_MAP_PREFIX "%d", id); gtk_accel_map_change_entry(path, keyval, modifiers, TRUE); g_free(path); } } } loqui-0.5.5/src/prefs_dialog.h0000664000175000017500000000415512121600532013170 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #ifndef __PREFS_DIALOG_H__ #define __PREFS_DIALOG_H__ #include G_BEGIN_DECLS #define TYPE_PREFS_DIALOG (prefs_dialog_get_type ()) #define PREFS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREFS_DIALOG, PrefsDialog)) #define PREFS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREFS_DIALOG, PrefsDialogClass)) #define IS_PREFS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREFS_DIALOG)) #define IS_PREFS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREFS_DIALOG)) #define PREFS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREFS_DIALOG, PrefsDialogClass)) typedef struct _PrefsDialog PrefsDialog; typedef struct _PrefsDialogClass PrefsDialogClass; typedef struct _PrefsDialogPrivate PrefsDialogPrivate; #include "loqui_app.h" struct _PrefsDialog { GtkDialog parent; PrefsDialogPrivate *priv; }; struct _PrefsDialogClass { GtkDialogClass parent_class; }; GtkType prefs_dialog_get_type (void) G_GNUC_CONST; GtkWidget* prefs_dialog_new(LoquiApp *app); void prefs_dialog_open(LoquiApp *app); G_END_DECLS #endif /* __PREFS_DIALOG_H__ */ loqui-0.5.5/src/about.c0000664000175000017500000000244712121600532011641 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2005 Yoichi Imai * * 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. */ #include "config.h" #include "about.h" #include "gtkutils.h" #include #include void about_open(void) { gtkutils_msgbox_info(GTK_MESSAGE_INFO, "%s\n" "IRC Client for Gtk2\n" "Copyright (C) 2002-2013, Yoichi Imai \n" "http://launchpad.net/loqui/", loqui_core_get_version_info(loqui_get_core())); } loqui-0.5.5/src/command_dialog.h0000664000175000017500000000263712121600532013472 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #ifndef __COMMAND_DIALOG_H__ #define __COMMAND_DIALOG_H__ #include #include "loqui_app.h" void command_dialog_join(LoquiApp *app, LoquiAccount *account); void command_dialog_part(LoquiApp *app, LoquiAccount *account, LoquiChannel *channel); void command_dialog_topic(LoquiApp *app, LoquiAccount *account, LoquiChannel *channel); void command_dialog_nick(LoquiApp *app, LoquiAccount *account); void command_dialog_private_talk(LoquiApp *app, LoquiAccount *account); #endif /* __COMMAND_DIALOG_H__ */ loqui-0.5.5/src/loqui-channel-entry-ui-data-private.h0000664000175000017500000000235012121605257017426 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2005 Yoichi Imai * * 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. */ #line 2 "loqui-channel-entry-ui-data.gob" #line 26 "loqui-channel-entry-ui-data-private.h" #ifndef __LOQUI_CHANNEL_ENTRY_UI_DATA_PRIVATE_H__ #define __LOQUI_CHANNEL_ENTRY_UI_DATA_PRIVATE_H__ #include "loqui-channel-entry-ui-data.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/prefs_general_upgrader.h0000664000175000017500000000207012121600532015231 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2003 Yoichi Imai * * 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. */ #ifndef __PREFS_GENERAL_UPGRADER_H__ #define __PREFS_GENERAL_UPGRADER_H__ void prefs_general_upgrader_upgrade(void); #endif /* __PREFS_GENERAL_UPGRADER_H__ */ loqui-0.5.5/src/loqui-core-gtk.c0000664000175000017500000004402112121605257013374 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 2 "loqui-core-gtk.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 28 "loqui-core-gtk.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include "loqui-core-gtk.h" #include "loqui-core-gtk-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 46 "loqui-core-gtk.gob" #include #include #include #include #include "main.h" #include #include #include #define ACCEL_MAP_FILE "accelmaprc" #define STYLERC_FILE "stylerc" #define GENERAL_PREF_FILENAME "loquirc" #include "loqui_stock.h" #include "prefs_general_upgrader.h" #include "loqui-notifier-gtk.h" #line 69 "loqui-core-gtk.c" /* self casting macros */ #define SELF(x) LOQUI_CORE_GTK(x) #define SELF_CONST(x) LOQUI_CORE_GTK_CONST(x) #define IS_SELF(x) LOQUI_IS_CORE_GTK(x) #define TYPE_SELF LOQUI_TYPE_CORE_GTK #define SELF_CLASS(x) LOQUI_CORE_GTK_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_CORE_GTK_GET_CLASS(x) /* self typedefs */ typedef LoquiCoreGtk Self; typedef LoquiCoreGtkClass SelfClass; /* here are local prototypes */ #line 0 "loqui-core-gtk.gob" static void loqui_core_gtk_class_init (LoquiCoreGtkClass * c) G_GNUC_UNUSED; #line 86 "loqui-core-gtk.c" #line 84 "loqui-core-gtk.gob" static void loqui_core_gtk_init (LoquiCoreGtk * self) G_GNUC_UNUSED; #line 89 "loqui-core-gtk.c" #line 100 "loqui-core-gtk.gob" static gchar * ___3_loqui_core_gtk_get_version_info (LoquiCore * self_core) G_GNUC_UNUSED; #line 92 "loqui-core-gtk.c" #line 135 "loqui-core-gtk.gob" static gchar * loqui_core_gtk_get_stylerc_path (LoquiCoreGtk * self) G_GNUC_UNUSED; #line 95 "loqui-core-gtk.c" #line 139 "loqui-core-gtk.gob" static gchar * loqui_core_gtk_get_general_pref_path (LoquiCoreGtk * self) G_GNUC_UNUSED; #line 98 "loqui-core-gtk.c" #line 144 "loqui-core-gtk.gob" static void loqui_core_gtk_make_program_dir (LoquiCoreGtk * self) G_GNUC_UNUSED; #line 101 "loqui-core-gtk.c" #line 181 "loqui-core-gtk.gob" static void loqui_core_gtk_load_accelmap (LoquiCoreGtk * self) G_GNUC_UNUSED; #line 104 "loqui-core-gtk.c" #line 192 "loqui-core-gtk.gob" static void loqui_core_gtk_save_accelmap (LoquiCoreGtk * self) G_GNUC_UNUSED; #line 107 "loqui-core-gtk.c" #line 216 "loqui-core-gtk.gob" static gboolean loqui_core_gtk_check_should_upgrade (LoquiCoreGtk * self) G_GNUC_UNUSED; #line 110 "loqui-core-gtk.c" /* pointer to the class of our parent */ static LoquiCoreClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_core_gtk_new #define self_load_stylerc loqui_core_gtk_load_stylerc #define self_save_stylerc loqui_core_gtk_save_stylerc #define self_get_stylerc_path loqui_core_gtk_get_stylerc_path #define self_get_general_pref_path loqui_core_gtk_get_general_pref_path #define self_make_program_dir loqui_core_gtk_make_program_dir #define self_initialize_with_args loqui_core_gtk_initialize_with_args #define self_load_accelmap loqui_core_gtk_load_accelmap #define self_save_accelmap loqui_core_gtk_save_accelmap #define self_load_general_pref loqui_core_gtk_load_general_pref #define self_save_general_pref loqui_core_gtk_save_general_pref #define self_check_should_upgrade loqui_core_gtk_check_should_upgrade #define self_run loqui_core_gtk_run #define self_get_app loqui_core_gtk_get_app GType loqui_core_gtk_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiCoreGtkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_core_gtk_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiCoreGtk), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_core_gtk_init, NULL }; type = g_type_register_static (LOQUI_TYPE_CORE, "LoquiCoreGtk", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiCoreGtk *)g_object_new(loqui_core_gtk_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiCoreGtk * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiCoreGtk * GET_NEW_VARG (const char *first, ...) { LoquiCoreGtk *ret; va_list ap; va_start (ap, first); ret = (LoquiCoreGtk *)g_object_new_valist (loqui_core_gtk_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Core:Gtk::dispose" LoquiCoreGtk *self G_GNUC_UNUSED = LOQUI_CORE_GTK (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #line 71 "loqui-core-gtk.gob" if(self->style_pref) { g_object_unref ((gpointer) self->style_pref); self->style_pref = NULL; } #line 182 "loqui-core-gtk.c" #line 73 "loqui-core-gtk.gob" if(self->protocol_manager) { g_object_unref ((gpointer) self->protocol_manager); self->protocol_manager = NULL; } #line 185 "loqui-core-gtk.c" #line 75 "loqui-core-gtk.gob" if(self->account_manager) { g_object_unref ((gpointer) self->account_manager); self->account_manager = NULL; } #line 188 "loqui-core-gtk.c" } #undef __GOB_FUNCTION__ static void loqui_core_gtk_class_init (LoquiCoreGtkClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Core:Gtk::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; LoquiCoreClass *loqui_core_class = (LoquiCoreClass *)c; parent_class = g_type_class_ref (LOQUI_TYPE_CORE); #line 100 "loqui-core-gtk.gob" loqui_core_class->get_version_info = ___3_loqui_core_gtk_get_version_info; #line 203 "loqui-core-gtk.c" g_object_class->dispose = ___dispose; } #undef __GOB_FUNCTION__ #line 84 "loqui-core-gtk.gob" static void loqui_core_gtk_init (LoquiCoreGtk * self G_GNUC_UNUSED) { #line 211 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::init" #line 70 "loqui-core-gtk.gob" self->style_pref = loqui_pref_new() ; #line 215 "loqui-core-gtk.c" { #line 84 "loqui-core-gtk.gob" self->protocol_manager = loqui_protocol_manager_new(); loqui_protocol_manager_register(self->protocol_manager, loqui_protocol_irc_get()); loqui_protocol_manager_register(self->protocol_manager, loqui_protocol_ipmsg_get()); /* loqui_protocol_manager_register(self->protocol_manager, loqui_protocol_msn_get()); */ self->account_manager = loqui_account_manager_new(self->protocol_manager); loqui_core_set_notifier(LOQUI_CORE(self), LOQUI_NOTIFIER(loqui_notifier_gtk_new())); #line 228 "loqui-core-gtk.c" } } #undef __GOB_FUNCTION__ #line 79 "loqui-core-gtk.gob" LoquiCoreGtk * loqui_core_gtk_new (void) { #line 238 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::new" { #line 79 "loqui-core-gtk.gob" LoquiCoreGtk *ret = GET_NEW; return ret; }} #line 246 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 100 "loqui-core-gtk.gob" static gchar * ___3_loqui_core_gtk_get_version_info (LoquiCore * self_core G_GNUC_UNUSED) #line 253 "loqui-core-gtk.c" #define PARENT_HANDLER(___self_core) \ ((LOQUI_CORE_CLASS(parent_class)->get_version_info)? \ (* LOQUI_CORE_CLASS(parent_class)->get_version_info)(___self_core): \ ((gchar * )0)) { #define __GOB_FUNCTION__ "Loqui:Core:Gtk::get_version_info" #line 100 "loqui-core-gtk.gob" g_return_val_if_fail (self_core != NULL, (gchar * )0); #line 100 "loqui-core-gtk.gob" g_return_val_if_fail (LOQUI_IS_CORE (self_core), (gchar * )0); #line 264 "loqui-core-gtk.c" { #line 100 "loqui-core-gtk.gob" /* Self *self; */ gchar *str, *libinfo; libinfo = PARENT_HANDLER(self_core); str = g_strdup_printf("Loqui version %s (%s; GTK+ %d.%d.%d)", VERSION, libinfo, gtk_major_version, gtk_minor_version, gtk_micro_version); g_free(libinfo); return str; }} #line 278 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 112 "loqui-core-gtk.gob" void loqui_core_gtk_load_stylerc (LoquiCoreGtk * self) { #line 286 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::load_stylerc" #line 112 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 112 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 292 "loqui-core-gtk.c" { #line 112 "loqui-core-gtk.gob" gchar *path; path = self_get_stylerc_path(self); if (!loqui_pref_load_from_file(self->style_pref, path, G_KEY_FILE_NONE, NULL)) { g_warning(_("Failed to load %s"), path); g_free(path); return; } g_free(path); }} #line 306 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 123 "loqui-core-gtk.gob" void loqui_core_gtk_save_stylerc (LoquiCoreGtk * self) { #line 313 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::save_stylerc" #line 123 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 123 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 319 "loqui-core-gtk.c" { #line 123 "loqui-core-gtk.gob" gchar *path; path = self_get_stylerc_path(self); if (!loqui_pref_save_to_file(self->style_pref, path, NULL)) { g_warning(_("Failed to save %s"), path); g_free(path); return; } g_free(path); }} #line 333 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 135 "loqui-core-gtk.gob" static gchar * loqui_core_gtk_get_stylerc_path (LoquiCoreGtk * self) { #line 340 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::get_stylerc_path" #line 135 "loqui-core-gtk.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 135 "loqui-core-gtk.gob" g_return_val_if_fail (LOQUI_IS_CORE_GTK (self), (gchar * )0); #line 346 "loqui-core-gtk.c" { #line 135 "loqui-core-gtk.gob" return g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), STYLERC_FILE, NULL); }} #line 353 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 139 "loqui-core-gtk.gob" static gchar * loqui_core_gtk_get_general_pref_path (LoquiCoreGtk * self) { #line 360 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::get_general_pref_path" #line 139 "loqui-core-gtk.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 139 "loqui-core-gtk.gob" g_return_val_if_fail (LOQUI_IS_CORE_GTK (self), (gchar * )0); #line 366 "loqui-core-gtk.c" { #line 139 "loqui-core-gtk.gob" return g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), GENERAL_PREF_FILENAME, NULL); }} #line 373 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 144 "loqui-core-gtk.gob" static void loqui_core_gtk_make_program_dir (LoquiCoreGtk * self) { #line 380 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::make_program_dir" #line 144 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 144 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 386 "loqui-core-gtk.c" { #line 144 "loqui-core-gtk.gob" const gchar *dirname; gchar *log_dirname; dirname = loqui_core_get_user_dir(LOQUI_CORE(self)); if(!g_file_test(dirname, G_FILE_TEST_EXISTS)) { loqui_utils_mkdir_and_chmod(dirname); } if(!g_file_test(dirname, G_FILE_TEST_IS_DIR)) { g_error(_("Invalid \"%s\""), dirname); } log_dirname = g_build_filename(dirname, LOG_DIR, NULL); if(!g_file_test(log_dirname, G_FILE_TEST_EXISTS)) loqui_utils_mkdir_and_chmod(log_dirname); g_free(log_dirname); }} #line 408 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 164 "loqui-core-gtk.gob" void loqui_core_gtk_initialize_with_args (LoquiCoreGtk * self, int * argc, char ** argv[]) { #line 415 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::initialize_with_args" #line 164 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 164 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 421 "loqui-core-gtk.c" { #line 164 "loqui-core-gtk.gob" gchar *path; loqui_core_initialize(LOQUI_CORE(self)); self_make_program_dir(self); gdk_threads_init(); gtk_init(argc, argv); loqui_stock_init(); path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), "gtkrc-2.0", NULL); gtk_rc_parse(path); g_free(path); }} #line 440 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 181 "loqui-core-gtk.gob" static void loqui_core_gtk_load_accelmap (LoquiCoreGtk * self) { #line 447 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::load_accelmap" #line 181 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 181 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 453 "loqui-core-gtk.c" { #line 181 "loqui-core-gtk.gob" gchar *path; path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), ACCEL_MAP_FILE, NULL); gtk_accel_map_add_filter(SHORTCUT_CHANNEL_ENTRY_ACCEL_MAP_PREFIX "*"); gtk_accel_map_load(path); g_free(path); }} #line 466 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 192 "loqui-core-gtk.gob" static void loqui_core_gtk_save_accelmap (LoquiCoreGtk * self) { #line 473 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::save_accelmap" #line 192 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 192 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 479 "loqui-core-gtk.c" { #line 192 "loqui-core-gtk.gob" gchar *path; path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), ACCEL_MAP_FILE, NULL); gtk_accel_map_save(path); g_free(path); }} #line 489 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 200 "loqui-core-gtk.gob" void loqui_core_gtk_load_general_pref (LoquiCoreGtk * self) { #line 496 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::load_general_pref" #line 200 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 200 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 502 "loqui-core-gtk.c" { #line 200 "loqui-core-gtk.gob" gchar *path; path = self_get_general_pref_path(self); loqui_pref_load_from_file(loqui_core_get_general_pref(LOQUI_CORE(self)), path, 0, NULL); g_free(path); }} #line 512 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 208 "loqui-core-gtk.gob" void loqui_core_gtk_save_general_pref (LoquiCoreGtk * self) { #line 519 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::save_general_pref" #line 208 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 208 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 525 "loqui-core-gtk.c" { #line 208 "loqui-core-gtk.gob" gchar *path; path = self_get_general_pref_path(self); loqui_pref_save_to_file(loqui_core_get_general_pref(LOQUI_CORE(self)), path, NULL); g_free(path); }} #line 535 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 216 "loqui-core-gtk.gob" static gboolean loqui_core_gtk_check_should_upgrade (LoquiCoreGtk * self) { #line 542 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::check_should_upgrade" #line 216 "loqui-core-gtk.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 216 "loqui-core-gtk.gob" g_return_val_if_fail (LOQUI_IS_CORE_GTK (self), (gboolean )0); #line 548 "loqui-core-gtk.c" { #line 216 "loqui-core-gtk.gob" gchar *old_path; gchar *new_path; gboolean b; old_path = g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), "loquirc.xml", NULL); new_path = g_build_filename(loqui_core_get_user_dir(LOQUI_CORE(self)), "loquirc", NULL); b = g_file_test(old_path, G_FILE_TEST_EXISTS) && !g_file_test(new_path, G_FILE_TEST_EXISTS); g_free(old_path); g_free(new_path); return b; }} #line 565 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 231 "loqui-core-gtk.gob" void loqui_core_gtk_run (LoquiCoreGtk * self) { #line 572 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::run" #line 231 "loqui-core-gtk.gob" g_return_if_fail (self != NULL); #line 231 "loqui-core-gtk.gob" g_return_if_fail (LOQUI_IS_CORE_GTK (self)); #line 578 "loqui-core-gtk.c" { #line 231 "loqui-core-gtk.gob" if (self_check_should_upgrade(self)) { prefs_general_upgrader_upgrade(); } self_load_general_pref(self); loqui_pref_set_boolean(loqui_get_general_pref(), "Dummy", "DummyBoolean", TRUE); self->app = LOQUI_APP(loqui_app_new(self->account_manager)); self_load_stylerc(self); loqui_app_info_load_from_prefs_general(self->app->appinfo); loqui_app_info_update_string_idle(self->app->appinfo); self_load_accelmap(self); loqui_account_manager_load_accounts(self->account_manager); if(loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GTK_GROUP_GENERAL, "ConnectStartup", LOQUI_GENERAL_PREF_GTK_DEFAULT_GENERAL_CONNECT_STARTUP, NULL)) loqui_account_manager_connect_all_default(self->account_manager); gdk_threads_enter(); gtk_main(); gdk_threads_leave(); self_save_stylerc(self); self_save_accelmap(self); self_save_general_pref(self); }} #line 611 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ #line 262 "loqui-core-gtk.gob" LoquiApp * loqui_core_gtk_get_app (LoquiCoreGtk * self) { #line 618 "loqui-core-gtk.c" #define __GOB_FUNCTION__ "Loqui:Core:Gtk::get_app" #line 262 "loqui-core-gtk.gob" g_return_val_if_fail (self != NULL, (LoquiApp * )0); #line 262 "loqui-core-gtk.gob" g_return_val_if_fail (LOQUI_IS_CORE_GTK (self), (LoquiApp * )0); #line 624 "loqui-core-gtk.c" { #line 263 "loqui-core-gtk.gob" return self->app; }} #line 630 "loqui-core-gtk.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/loqui_channel_buffer_gtk.h0000664000175000017500000000630212121600532015545 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #ifndef __LOQUI_CHANNEL_BUFFER_GTK_H__ #define __LOQUI_CHANNEL_BUFFER_GTK_H__ #include #include #include "loqui-pref-partial.h" G_BEGIN_DECLS #define LOQUI_TYPE_CHANNEL_BUFFER_GTK (loqui_channel_buffer_gtk_get_type ()) #define LOQUI_CHANNEL_BUFFER_GTK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_CHANNEL_BUFFER_GTK, LoquiChannelBufferGtk)) #define LOQUI_CHANNEL_BUFFER_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_CHANNEL_BUFFER_GTK, LoquiChannelBufferGtkClass)) #define LOQUI_IS_CHANNEL_BUFFER_GTK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_CHANNEL_BUFFER_GTK)) #define LOQUI_IS_CHANNEL_BUFFER_GTK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_CHANNEL_BUFFER_GTK)) #define LOQUI_CHANNEL_BUFFER_GTK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_CHANNEL_BUFFER_GTK, LoquiChannelBufferGtkClass)) typedef struct _LoquiChannelBufferGtk LoquiChannelBufferGtk; typedef struct _LoquiChannelBufferGtkClass LoquiChannelBufferGtkClass; typedef struct _LoquiChannelBufferGtkPrivate LoquiChannelBufferGtkPrivate; struct _LoquiChannelBufferGtk { GtkTextBuffer buffer; gboolean show_account_name; gboolean show_channel_name; gboolean hover_tag_applied; LoquiChannelBufferGtkPrivate *priv; }; struct _LoquiChannelBufferGtkClass { GtkTextBufferClass parent_class; GtkTextTagTable *tag_table; }; GtkType loqui_channel_buffer_gtk_get_type(void) G_GNUC_CONST; LoquiChannelBufferGtk* loqui_channel_buffer_gtk_new(LoquiPrefPartial *ppref_channel_buffer); void loqui_channel_buffer_gtk_set_max_line_number(LoquiChannelBufferGtk *buffer, guint max_line_number); void loqui_channel_buffer_gtk_set_whether_common_buffer(LoquiChannelBufferGtk *buffer, gboolean is_common_buffer); void loqui_channel_buffer_gtk_set_show_account_name(LoquiChannelBufferGtk *buffer, gboolean show_account_name); gboolean loqui_channel_buffer_gtk_get_show_account_name(LoquiChannelBufferGtk *buffer); void loqui_channel_buffer_gtk_set_show_channel_name(LoquiChannelBufferGtk *buffer, gboolean show_channel_name); gboolean loqui_channel_buffer_gtk_get_show_channel_name(LoquiChannelBufferGtk *buffer); G_END_DECLS #endif /* __LOQUI_CHANNEL_BUFFER_GTK_H__ */ loqui-0.5.5/src/loqui_stock.c0000664000175000017500000000601012121600532013051 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui -- IRC client for Gtk2 * Copyright (C) 2004 Yoichi Imai * * 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. */ #include "config.h" #include "loqui_stock.h" #include #include "gtkutils.h" #include "icons/pixbufs.h" struct icon_pair { const gchar *id; const guint8 *inline_pixbuf; }; static struct icon_pair icon_list[] = { { LOQUI_STOCK_CONSOLE, console_pixbuf }, { LOQUI_STOCK_ONLINE, online_pixbuf }, { LOQUI_STOCK_OFFLINE, offline_pixbuf }, { LOQUI_STOCK_AWAY, away_pixbuf }, { LOQUI_STOCK_BUSY, busy_pixbuf }, { LOQUI_STOCK_COMMAND, command_pixbuf }, { LOQUI_STOCK_OPERATOR, naruto_pixbuf }, { LOQUI_STOCK_SPEAK_ABILITY, speaker_pixbuf }, { LOQUI_STOCK_WHETHER_SCROLL, whether_scroll_pixbuf }, { LOQUI_STOCK_NOTICE, notice_pixbuf }, { LOQUI_STOCK_LOQUI, loqui_pixbuf }, { LOQUI_STOCK_LOQUI_HILIGHTED, loqui_hilighted_pixbuf }, { NULL, NULL } }; int LOQUI_ICON_SIZE_FONT = GTK_ICON_SIZE_INVALID; static void make_icons(void); static void make_icons(void) { GdkPixbuf *pixbuf; GtkIconSet *icon_set; GtkIconFactory *icon_factory; int i, height; GtkWidget *widget; /* dummy widget */ widget = gtk_label_new(""); gtkutils_get_current_font_pixel_size(widget, NULL, &height); gtk_widget_destroy(widget); LOQUI_ICON_SIZE_FONT = gtk_icon_size_register("loqui-font", height, height); icon_factory = gtk_icon_factory_new(); gtk_icon_factory_add_default(icon_factory); for(i = 0; icon_list[i].id != NULL; i++) { pixbuf = gdk_pixbuf_new_from_inline(-1, icon_list[i].inline_pixbuf, FALSE, NULL); if(pixbuf == NULL) continue; icon_set = gtk_icon_set_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); gtk_icon_factory_add(icon_factory, icon_list[i].id, icon_set); } g_object_unref(icon_factory); } void loqui_stock_init(void) { make_icons(); } G_CONST_RETURN gchar* loqui_stock_get_id_from_basic_away_type(LoquiBasicAwayType basic_away) { switch (basic_away) { case LOQUI_BASIC_AWAY_TYPE_AWAY: return LOQUI_STOCK_AWAY; case LOQUI_BASIC_AWAY_TYPE_BUSY: return LOQUI_STOCK_BUSY; case LOQUI_BASIC_AWAY_TYPE_ONLINE: return LOQUI_STOCK_ONLINE; case LOQUI_BASIC_AWAY_TYPE_OFFLINE: return LOQUI_STOCK_OFFLINE; default: break; } return NULL; } loqui-0.5.5/src/loqui-tray-icon.h0000664000175000017500000000607212121605257013577 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #include #include #ifndef __LOQUI_TRAY_ICON_H__ #define __LOQUI_TRAY_ICON_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #ifndef __TYPEDEF_LOQUI_TRAY_ICON__ #define __TYPEDEF_LOQUI_TRAY_ICON__ typedef struct _LoquiTrayIcon LoquiTrayIcon; #endif #include "loqui_app.h" /* * Type checking and casting macros */ #define LOQUI_TYPE_TRAY_ICON (loqui_tray_icon_get_type()) #define LOQUI_TRAY_ICON(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_tray_icon_get_type(), LoquiTrayIcon) #define LOQUI_TRAY_ICON_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_tray_icon_get_type(), LoquiTrayIcon const) #define LOQUI_TRAY_ICON_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_tray_icon_get_type(), LoquiTrayIconClass) #define LOQUI_IS_TRAY_ICON(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_tray_icon_get_type ()) #define LOQUI_TRAY_ICON_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_tray_icon_get_type(), LoquiTrayIconClass) /* Private structure type */ typedef struct _LoquiTrayIconPrivate LoquiTrayIconPrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_TRAY_ICON__ #define __TYPEDEF_LOQUI_TRAY_ICON__ typedef struct _LoquiTrayIcon LoquiTrayIcon; #endif struct _LoquiTrayIcon { GObject __parent__; /*< public >*/ gboolean is_hilighted; LoquiApp * app; GtkStatusIcon * status_icon; /*< private >*/ LoquiTrayIconPrivate *_priv; }; /* * Class definition */ typedef struct _LoquiTrayIconClass LoquiTrayIconClass; struct _LoquiTrayIconClass { GObjectClass __parent__; }; /* * Public methods */ GType loqui_tray_icon_get_type (void) G_GNUC_CONST; #line 110 "loqui-tray-icon.gob" LoquiTrayIcon * loqui_tray_icon_new (LoquiApp * app, GtkMenu * menu); #line 95 "loqui-tray-icon.h" #line 127 "loqui-tray-icon.gob" void loqui_tray_icon_set_hilighted (LoquiTrayIcon * self, gboolean is_hilighted); #line 99 "loqui-tray-icon.h" #line 136 "loqui-tray-icon.gob" void loqui_tray_icon_blink (LoquiTrayIcon * self); #line 102 "loqui-tray-icon.h" #line 146 "loqui-tray-icon.gob" void loqui_tray_icon_destroy (LoquiTrayIcon * self); #line 105 "loqui-tray-icon.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/src/loqui-transfer-window.c0000664000175000017500000004116212121605257015015 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 2 "loqui-transfer-window.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 28 "loqui-transfer-window.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 27 "loqui-transfer-window.gob" #include "config.h" #include "loqui-transfer-window.h" #include "loqui-transfer-window-private.h" #include #include "embedtxt/loqui_transfer_window_ui.h" static GtkActionEntry action_entries[] = { {"Start", GTK_STOCK_GO_FORWARD, N_("_Start"), NULL, NULL, NULL}, {"Cancel", GTK_STOCK_CANCEL, N_("Cancel"), NULL, NULL, NULL}, {"Close", GTK_STOCK_CLOSE, N_("Close"), NULL, NULL, NULL} }; static GtkToggleActionEntry toggle_action_entries[] = { {"ToggleInfo", GTK_STOCK_PROPERTIES, N_("_Information"), NULL, NULL, NULL, FALSE}, }; #line 65 "loqui-transfer-window.c" /* self casting macros */ #define SELF(x) LOQUI_TRANSFER_WINDOW(x) #define SELF_CONST(x) LOQUI_TRANSFER_WINDOW_CONST(x) #define IS_SELF(x) LOQUI_IS_TRANSFER_WINDOW(x) #define TYPE_SELF LOQUI_TYPE_TRANSFER_WINDOW #define SELF_CLASS(x) LOQUI_TRANSFER_WINDOW_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_TRANSFER_WINDOW_GET_CLASS(x) /* self typedefs */ typedef LoquiTransferWindow Self; typedef LoquiTransferWindowClass SelfClass; /* here are local prototypes */ #line 0 "loqui-transfer-window.gob" static void loqui_transfer_window_init (LoquiTransferWindow * o) G_GNUC_UNUSED; #line 82 "loqui-transfer-window.c" #line 0 "loqui-transfer-window.gob" static void loqui_transfer_window_class_init (LoquiTransferWindowClass * c) G_GNUC_UNUSED; #line 85 "loqui-transfer-window.c" #line 71 "loqui-transfer-window.gob" static void loqui_transfer_window_add_toolbar (LoquiTransferWindow * self, GtkWidget * vbox) G_GNUC_UNUSED; #line 88 "loqui-transfer-window.c" #line 85 "loqui-transfer-window.gob" static void loqui_transfer_window_create_actions (LoquiTransferWindow * self) G_GNUC_UNUSED; #line 91 "loqui-transfer-window.c" /* pointer to the class of our parent */ static GtkWindowClass *parent_class = NULL; /* Short form macros */ #define self_add_toolbar loqui_transfer_window_add_toolbar #define self_create_actions loqui_transfer_window_create_actions #define self_new loqui_transfer_window_new GType loqui_transfer_window_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiTransferWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_transfer_window_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiTransferWindow), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_transfer_window_init, NULL }; type = g_type_register_static (GTK_TYPE_WINDOW, "LoquiTransferWindow", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiTransferWindow *)g_object_new(loqui_transfer_window_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiTransferWindow * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiTransferWindow * GET_NEW_VARG (const char *first, ...) { LoquiTransferWindow *ret; va_list ap; va_start (ap, first); ret = (LoquiTransferWindow *)g_object_new_valist (loqui_transfer_window_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Transfer:Window::dispose" LoquiTransferWindow *self G_GNUC_UNUSED = LOQUI_TRANSFER_WINDOW (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #line 68 "loqui-transfer-window.gob" if(self->_priv->ui_manager) { g_object_unref ((gpointer) self->_priv->ui_manager); self->_priv->ui_manager = NULL; } #line 152 "loqui-transfer-window.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Transfer:Window::finalize" LoquiTransferWindow *self G_GNUC_UNUSED = LOQUI_TRANSFER_WINDOW (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_transfer_window_init (LoquiTransferWindow * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Transfer:Window::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_TRANSFER_WINDOW,LoquiTransferWindowPrivate); } #undef __GOB_FUNCTION__ static void loqui_transfer_window_class_init (LoquiTransferWindowClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Transfer:Window::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiTransferWindowPrivate)); parent_class = g_type_class_ref (GTK_TYPE_WINDOW); g_object_class->dispose = ___dispose; g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 71 "loqui-transfer-window.gob" static void loqui_transfer_window_add_toolbar (LoquiTransferWindow * self, GtkWidget * vbox) { #line 196 "loqui-transfer-window.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Window::add_toolbar" #line 71 "loqui-transfer-window.gob" g_return_if_fail (self != NULL); #line 71 "loqui-transfer-window.gob" g_return_if_fail (LOQUI_IS_TRANSFER_WINDOW (self)); #line 202 "loqui-transfer-window.c" { #line 72 "loqui-transfer-window.gob" GError *error = NULL; selfp->handlebox_toolbar = gtk_handle_box_new(); gtk_box_pack_start(GTK_BOX(vbox), selfp->handlebox_toolbar, FALSE, FALSE, 0); if(!gtk_ui_manager_add_ui_from_string(selfp->ui_manager, embedtxt_loqui_transfer_window_ui, -1, &error)) g_error("Failed to load UI XML: %s", error->message); gtk_ui_manager_ensure_update(selfp->ui_manager); gtk_container_add(GTK_CONTAINER(selfp->handlebox_toolbar), gtk_ui_manager_get_widget(selfp->ui_manager, "/Toolbar")); }} #line 217 "loqui-transfer-window.c" #undef __GOB_FUNCTION__ #line 85 "loqui-transfer-window.gob" static void loqui_transfer_window_create_actions (LoquiTransferWindow * self) { #line 224 "loqui-transfer-window.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Window::create_actions" #line 85 "loqui-transfer-window.gob" g_return_if_fail (self != NULL); #line 85 "loqui-transfer-window.gob" g_return_if_fail (LOQUI_IS_TRANSFER_WINDOW (self)); #line 230 "loqui-transfer-window.c" { #line 86 "loqui-transfer-window.gob" selfp->ui_manager = gtk_ui_manager_new(); selfp->action_group = gtk_action_group_new("LoquiTransferWindw"); gtk_ui_manager_set_add_tearoffs(selfp->ui_manager, TRUE); gtk_window_add_accel_group(GTK_WINDOW(self), gtk_ui_manager_get_accel_group(selfp->ui_manager)); gtk_action_group_add_actions(selfp->action_group, action_entries, G_N_ELEMENTS(action_entries), self); gtk_action_group_add_toggle_actions(selfp->action_group, toggle_action_entries, G_N_ELEMENTS(toggle_action_entries), self); gtk_ui_manager_insert_action_group(selfp->ui_manager, selfp->action_group, 0); }} #line 253 "loqui-transfer-window.c" #undef __GOB_FUNCTION__ #line 107 "loqui-transfer-window.gob" GtkWidget * loqui_transfer_window_new (void) { #line 260 "loqui-transfer-window.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Window::new" { #line 108 "loqui-transfer-window.gob" Self *self; GtkWidget *vbox1; GtkWidget *vpaned1; GtkWidget *hpaned1; GtkWidget *scrolled_win; GtkWidget *treeview; GtkWidget *frame1; GtkWidget *viewport1; GtkWidget *table; GtkWidget *label; GtkWidget *button_dir; GtkWidget *hseparator1; GtkWidget *entry_filename; GtkWidget *entry_directory; GtkWidget *label_updown; GtkWidget *label_status; GtkWidget *label_path; GtkWidget *progressbar; GtkWidget *label_size; GtkWidget *label_rate; GtkWidget *textview_log; GtkWidget *statusbar; gint row; self = GET_NEW; gtk_window_set_policy(GTK_WINDOW(self), TRUE, TRUE, TRUE); gtk_window_set_title(GTK_WINDOW(self), _("Loqui - File Transfer Manager")); vbox1 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(self), vbox1); self_create_actions(self); self_add_toolbar(self, vbox1); vpaned1 = gtk_vpaned_new(); gtk_box_pack_start(GTK_BOX(vbox1), vpaned1, TRUE, TRUE, 0); hpaned1 = gtk_hpaned_new(); gtk_paned_pack1(GTK_PANED(vpaned1), hpaned1, FALSE, TRUE); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_paned_pack1(GTK_PANED(hpaned1), scrolled_win, FALSE, TRUE); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); treeview = gtk_tree_view_new(); gtk_container_add(GTK_CONTAINER(scrolled_win), treeview); frame1 = gtk_frame_new(NULL); gtk_frame_set_label(GTK_FRAME(frame1), _("Information")); gtk_paned_pack2(GTK_PANED(hpaned1), frame1, TRUE, TRUE); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(frame1), scrolled_win); viewport1 = gtk_viewport_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(scrolled_win), viewport1); table = gtk_table_new(10, 3, FALSE); gtk_container_add(GTK_CONTAINER(viewport1), table); gtk_table_set_row_spacings(GTK_TABLE(table), 2); gtk_table_set_col_spacings(GTK_TABLE(table), 2); row = 0; label = gtk_label_new(_("Filename:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); entry_filename = gtk_entry_new(); gtk_widget_show(entry_filename); gtk_table_attach(GTK_TABLE(table), entry_filename, 1, 3, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Directory:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); entry_directory = gtk_entry_new(); gtk_widget_show(entry_directory); gtk_table_attach(GTK_TABLE(table), entry_directory, 1, 2, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 2); button_dir = gtk_button_new_with_mnemonic(_("Select...")); gtk_table_attach(GTK_TABLE(table), button_dir, 2, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); row++; hseparator1 = gtk_hseparator_new(); gtk_table_attach(GTK_TABLE(table), hseparator1, 0, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_widget_set_size_request(hseparator1, -1, 5); row++; label = gtk_label_new(_("Up / Down:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_updown = gtk_label_new(_("Down")); gtk_table_attach(GTK_TABLE(table), label_updown, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Status:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_status = gtk_label_new(_("Transferring")); gtk_table_attach(GTK_TABLE(table), label_status, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Path:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_path = gtk_label_new(_("hoge.jpg")); gtk_table_attach(GTK_TABLE(table), label_path, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); row++; label = gtk_label_new(_("Progress:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); progressbar = gtk_progress_bar_new(); gtk_widget_show(progressbar); gtk_table_attach(GTK_TABLE(table), progressbar, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progressbar), 0.5); gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progressbar), _("50%")); row++; label = gtk_label_new(_("Size:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_size = gtk_label_new(_("10,243,000 / 50,222,222")); gtk_widget_show(label_size); gtk_table_attach(GTK_TABLE(table), label_size, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL(label_size), GTK_JUSTIFY_CENTER); row++; label = gtk_label_new(_("Rate:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); label_rate = gtk_label_new(_("50.2 KB/s")); gtk_table_attach(GTK_TABLE(table), label_rate, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL(label_rate), GTK_JUSTIFY_CENTER); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_widget_show(scrolled_win); gtk_paned_pack2(GTK_PANED(vpaned1), scrolled_win, TRUE, TRUE); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); textview_log = gtk_text_view_new(); gtk_container_add(GTK_CONTAINER(scrolled_win), textview_log); statusbar = gtk_statusbar_new(); gtk_box_pack_start(GTK_BOX(vbox1), statusbar, FALSE, FALSE, 0); selfp->treeview = treeview; selfp->button_dir = button_dir; selfp->entry_filename = entry_filename; selfp->entry_directory = entry_directory; selfp->label_updown = label_updown; selfp->label_status = label_status; selfp->label_path = label_path; selfp->progressbar = progressbar; selfp->label_size = label_size; selfp->label_rate = label_rate; selfp->textview_log = textview_log; selfp->statusbar = statusbar; gtk_widget_set_size_request(GTK_WIDGET(self), 600, 400); gtk_widget_set_size_request(GTK_WIDGET(selfp->treeview), 300, 250); return GTK_WIDGET(self); }} #line 465 "loqui-transfer-window.c" #undef __GOB_FUNCTION__ loqui-0.5.5/src/loqui-tray-icon.c0000664000175000017500000002626412121605257013577 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-tray-icon.gob" /* * Loqui -- Chat/IM client for Gtk2 * Copyright (C) 2002-2003 Yoichi Imai * * 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. */ #line 28 "loqui-tray-icon.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-tray-icon-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 38 "loqui-tray-icon.gob" #include "config.h" #include #include "loqui-tray-icon.h" #include "loqui_stock.h" #include "gtkutils.h" #define LOQUI_TRAY_ICON_BLINK_COUNT 20 #define LOQUI_TRAY_ICON_BLINK_INTERVAL 750 #line 59 "loqui-tray-icon.c" /* self casting macros */ #define SELF(x) LOQUI_TRAY_ICON(x) #define SELF_CONST(x) LOQUI_TRAY_ICON_CONST(x) #define IS_SELF(x) LOQUI_IS_TRAY_ICON(x) #define TYPE_SELF LOQUI_TYPE_TRAY_ICON #define SELF_CLASS(x) LOQUI_TRAY_ICON_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_TRAY_ICON_GET_CLASS(x) /* self typedefs */ typedef LoquiTrayIcon Self; typedef LoquiTrayIconClass SelfClass; /* here are local prototypes */ #line 0 "loqui-tray-icon.gob" static void loqui_tray_icon_init (LoquiTrayIcon * o) G_GNUC_UNUSED; #line 76 "loqui-tray-icon.c" #line 0 "loqui-tray-icon.gob" static void loqui_tray_icon_class_init (LoquiTrayIconClass * c) G_GNUC_UNUSED; #line 79 "loqui-tray-icon.c" #line 61 "loqui-tray-icon.gob" static gboolean loqui_tray_icon_button_press_event_cb (GtkStatusIcon * status_icon, GdkEventButton * event, LoquiTrayIcon * self) G_GNUC_UNUSED; #line 82 "loqui-tray-icon.c" #line 85 "loqui-tray-icon.gob" static void loqui_tray_icon_set_icon (LoquiTrayIcon * self, gboolean is_hilighted) G_GNUC_UNUSED; #line 85 "loqui-tray-icon.c" #line 90 "loqui-tray-icon.gob" static gboolean loqui_tray_icon_blink_for_idle_cb (LoquiTrayIcon * self) G_GNUC_UNUSED; #line 88 "loqui-tray-icon.c" #line 97 "loqui-tray-icon.gob" static gboolean loqui_tray_icon_blink_cb (LoquiTrayIcon * self) G_GNUC_UNUSED; #line 91 "loqui-tray-icon.c" /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_button_press_event_cb loqui_tray_icon_button_press_event_cb #define self_set_icon loqui_tray_icon_set_icon #define self_blink_for_idle_cb loqui_tray_icon_blink_for_idle_cb #define self_blink_cb loqui_tray_icon_blink_cb #define self_new loqui_tray_icon_new #define self_set_hilighted loqui_tray_icon_set_hilighted #define self_blink loqui_tray_icon_blink #define self_destroy loqui_tray_icon_destroy GType loqui_tray_icon_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiTrayIconClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_tray_icon_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiTrayIcon), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_tray_icon_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiTrayIcon", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiTrayIcon *)g_object_new(loqui_tray_icon_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiTrayIcon * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiTrayIcon * GET_NEW_VARG (const char *first, ...) { LoquiTrayIcon *ret; va_list ap; va_start (ap, first); ret = (LoquiTrayIcon *)g_object_new_valist (loqui_tray_icon_get_type (), first, ap); va_end (ap); return ret; } static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Tray:Icon::finalize" LoquiTrayIcon *self G_GNUC_UNUSED = LOQUI_TRAY_ICON (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_tray_icon_init (LoquiTrayIcon * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Tray:Icon::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_TRAY_ICON,LoquiTrayIconPrivate); } #undef __GOB_FUNCTION__ static void loqui_tray_icon_class_init (LoquiTrayIconClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Tray:Icon::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiTrayIconPrivate)); parent_class = g_type_class_ref (G_TYPE_OBJECT); g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 61 "loqui-tray-icon.gob" static gboolean loqui_tray_icon_button_press_event_cb (GtkStatusIcon * status_icon, GdkEventButton * event, LoquiTrayIcon * self) { #line 186 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::button_press_event_cb" #line 61 "loqui-tray-icon.gob" g_return_val_if_fail (self != NULL, (gboolean )FALSE); #line 61 "loqui-tray-icon.gob" g_return_val_if_fail (LOQUI_IS_TRAY_ICON (self), (gboolean )FALSE); #line 192 "loqui-tray-icon.c" { #line 62 "loqui-tray-icon.gob" if (event->type == GDK_BUTTON_PRESS) { switch (event->button) { case 1: if (gtkutils_widget_is_iconified(GTK_WIDGET(self->app)) || loqui_app_is_obscured(self->app)) gtk_window_present(GTK_WINDOW(self->app)); else gtk_window_iconify(GTK_WINDOW(self->app)); break; case 3: gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, gtk_status_icon_position_menu, status_icon, event ? event->button : 0, event ? event->time : gtk_get_current_event_time()); break; default: break; } } return FALSE; }} #line 217 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ #line 85 "loqui-tray-icon.gob" static void loqui_tray_icon_set_icon (LoquiTrayIcon * self, gboolean is_hilighted) { #line 224 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::set_icon" #line 85 "loqui-tray-icon.gob" g_return_if_fail (self != NULL); #line 85 "loqui-tray-icon.gob" g_return_if_fail (LOQUI_IS_TRAY_ICON (self)); #line 230 "loqui-tray-icon.c" { #line 86 "loqui-tray-icon.gob" gtk_status_icon_set_from_stock(self->status_icon, is_hilighted ? LOQUI_STOCK_LOQUI_HILIGHTED : LOQUI_STOCK_LOQUI); }} #line 236 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ #line 90 "loqui-tray-icon.gob" static gboolean loqui_tray_icon_blink_for_idle_cb (LoquiTrayIcon * self) { #line 243 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::blink_for_idle_cb" #line 90 "loqui-tray-icon.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 90 "loqui-tray-icon.gob" g_return_val_if_fail (LOQUI_IS_TRAY_ICON (self), (gboolean )0); #line 249 "loqui-tray-icon.c" { #line 91 "loqui-tray-icon.gob" g_timeout_add(LOQUI_TRAY_ICON_BLINK_INTERVAL, (GSourceFunc) loqui_tray_icon_blink_cb, self); return FALSE; }} #line 257 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ #line 97 "loqui-tray-icon.gob" static gboolean loqui_tray_icon_blink_cb (LoquiTrayIcon * self) { #line 264 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::blink_cb" #line 97 "loqui-tray-icon.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 97 "loqui-tray-icon.gob" g_return_val_if_fail (LOQUI_IS_TRAY_ICON (self), (gboolean )0); #line 270 "loqui-tray-icon.c" { #line 98 "loqui-tray-icon.gob" if (selfp->blink_count_remains > 0) { self_set_icon(self, (selfp->blink_count_remains % 2 != 0) ? TRUE : FALSE); selfp->blink_count_remains--; return TRUE; } else { self_set_icon(self, self->is_hilighted); selfp->blinking = FALSE; return FALSE; } }} #line 284 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ #line 110 "loqui-tray-icon.gob" LoquiTrayIcon * loqui_tray_icon_new (LoquiApp * app, GtkMenu * menu) { #line 291 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::new" { #line 111 "loqui-tray-icon.gob" Self *self; self = GET_NEW; self->app = app; selfp->menu = menu; self->status_icon = gtk_status_icon_new_from_stock(LOQUI_STOCK_LOQUI); g_signal_connect(G_OBJECT(self->status_icon), "button_press_event", G_CALLBACK(self_button_press_event_cb), self); self_set_hilighted(self, FALSE); return self; }} #line 310 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ #line 127 "loqui-tray-icon.gob" void loqui_tray_icon_set_hilighted (LoquiTrayIcon * self, gboolean is_hilighted) { #line 317 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::set_hilighted" #line 127 "loqui-tray-icon.gob" g_return_if_fail (self != NULL); #line 127 "loqui-tray-icon.gob" g_return_if_fail (LOQUI_IS_TRAY_ICON (self)); #line 323 "loqui-tray-icon.c" { #line 128 "loqui-tray-icon.gob" if (self->is_hilighted == is_hilighted) return; self->is_hilighted = is_hilighted; self_set_icon(self, is_hilighted); }} #line 333 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ #line 136 "loqui-tray-icon.gob" void loqui_tray_icon_blink (LoquiTrayIcon * self) { #line 340 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::blink" #line 136 "loqui-tray-icon.gob" g_return_if_fail (self != NULL); #line 136 "loqui-tray-icon.gob" g_return_if_fail (LOQUI_IS_TRAY_ICON (self)); #line 346 "loqui-tray-icon.c" { #line 137 "loqui-tray-icon.gob" selfp->blink_count_remains = LOQUI_TRAY_ICON_BLINK_COUNT; if (!selfp->blinking) { selfp->blinking = TRUE; g_idle_add((GSourceFunc) self_blink_for_idle_cb, self); } }} #line 357 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ #line 146 "loqui-tray-icon.gob" void loqui_tray_icon_destroy (LoquiTrayIcon * self) { #line 364 "loqui-tray-icon.c" #define __GOB_FUNCTION__ "Loqui:Tray:Icon::destroy" #line 146 "loqui-tray-icon.gob" g_return_if_fail (self != NULL); #line 146 "loqui-tray-icon.gob" g_return_if_fail (LOQUI_IS_TRAY_ICON (self)); #line 370 "loqui-tray-icon.c" { #line 147 "loqui-tray-icon.gob" g_object_unref(self->status_icon); }} #line 376 "loqui-tray-icon.c" #undef __GOB_FUNCTION__ loqui-0.5.5/loqui.spec0000664000175000017500000000255012121622355011603 00000000000000%define ver 0.5.5 %define rel 1 Summary: IRC/Chat client for Gtk2 Name: loqui Version: %{ver} Release: %{rel} Group: Applications/Internet Source0: http://launchpad.net/loqui/src/%{name}-%{ver}.tar.gz License: GPL Packager: Yoichi Imai Requires: gtk2 >= 2.4.0, glib2 >= 2.22.0 BuildRequires: gtk2-devel >= 2.4.0, glib2-devel >= 2.22.0 BuildRequires: gob2 URL: http://launchpad.net/loqui BuildRoot: %{_tmppath}/%{name}-%{ver}-root %description An IRC client that has these features: - 4 paned. - Supports multiple servers. - Simple UI. %prep rm -rf $RPM_BUILD_ROOT %setup -q %build %configure make %install %makeinstall %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr (-,root,root) %doc README COPYING INSTALL ChangeLog AUTHORS NEWS NEWS.ja %{_bindir}/loqui %{_sysconfdir}/applications/loqui.desktop %{_datadir}/pixmaps/loqui.png %changelog * Sun Dec 12 2010 IWAI, Masaharu - add BuildRequires: gob2 * Sun Dec 12 2010 Yoichi Imai - update URL and Source0: moved - update Packager mail address - update desktop file path * Thu Apr 8 2004 Yoichi Imai - Added icon / desktop file. * Thu Jan 22 2004 Yoichi Imai - Improvement by iwaim. Thanks. * Sat Jun 7 2003 Yoichi Imai - created spec.in loqui-0.5.5/mkinstalldirs0000755000175000017500000000672212121622347012410 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2009-04-28.21; # UTC # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' IFS=" "" $nl" errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # 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 # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue 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 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: loqui-0.5.5/config.h.in0000664000175000017500000000701012121605222011607 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Define the gettext package to be used */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `isascii' function. */ #undef HAVE_ISASCII /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `mkdir' function. */ #undef HAVE_MKDIR /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strftime' function. */ #undef HAVE_STRFTIME /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strpbrk' function. */ #undef HAVE_STRPBRK /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define the location where the catalogs will be installed */ #undef PACKAGE_LOCALE_DIR /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if the `S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Is using glib 2.22 */ #undef USE_GLIB_2_4 /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `unsigned int' if does not define. */ #undef size_t loqui-0.5.5/Makefile.am0000664000175000017500000000147212121600532011625 00000000000000SUBDIRS = m4 libloqui src po # test AUTOMAKE_OPTIONS = 1.5 ChangeLog: bzr log -v $(shell bzr info | sed -ne 's/^ *parent branch: //p') > $@ EXTRA_DIST= autogen.sh \ AUTHORS \ README \ NEWS \ NEWS.ja \ COPYING \ COPYING.LIB \ LICENSE \ ChangeLog \ INSTALL \ loqui.spec \ loqui.spec.in \ loqui.desktop \ loqui.png \ loqui-am-macros.m4 ACLOCAL_AMFLAGS = -I m4 icon_DATA = loqui.png icondir = $(datadir)/pixmaps desktop_DATA = loqui.desktop desktopdir = $(datadir)/applications/ dist-spec: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz sed '/^Source:/ s/\.tar\.gz$$/\.tar\.bz2/' $(distdir)/loqui.spec > $(distdir)/loqui.spec.bzip2 mv $(distdir)/loqui.spec.bzip2 $(distdir)/loqui.spec $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) loqui-0.5.5/configure.ac0000664000175000017500000000440412121616455012070 00000000000000# -*- Autoconf -*- AC_PREREQ(2.53) m4_define([loqui_major_version], [0]) m4_define([loqui_minor_version], [5]) m4_define([loqui_micro_version], [5]) m4_define([loqui_extra_version], []) m4_define([loqui_version], [loqui_major_version.loqui_minor_version.loqui_micro_version[]loqui_extra_version]) AC_INIT(loqui, loqui_version) AC_CONFIG_SRCDIR([src/main.c]) AM_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE AM_MAINTAINER_MODE # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_LIBTOOL AC_CHECK_PROG(WINDRES, windres, windres) AM_CONDITIONAL(HAVE_WINDRES, test x"$WINDRES" != x) # Checks for libraries. AM_PATH_GLIB_2_0(2.22.0,, AC_MSG_ERROR(Test for GLib failed. See the 'INSTALL' for help.), gobject gio) if test "x${glib_config_major_version}" = "x2" -a "x${glib_config_minor_version}" = "x22"; then AC_DEFINE_UNQUOTED(USE_GLIB_2_4, 1, [Is using glib 2.22]) fi AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) AM_PATH_GTK_2_0(2.4.0,, AC_MSG_ERROR(Test for Gtk failed. See the 'INSTALL' for help.), gthread) AC_SUBST(GNET_CFLAGS) AC_SUBST(GNET_LIBS) # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([fcntl.h locale.h stdlib.h string.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STAT AC_C_CONST AC_TYPE_SIZE_T AC_STRUCT_TM GETTEXT_PACKAGE="$PACKAGE" AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define the gettext package to be used]) ALL_LINGUAS="ja" AM_GLIB_GNU_GETTEXT dnl Set PACKAGE_LOCALE_DIR in config.h. if test "x${prefix}" = "xNONE"; then AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale", [Define the location where the catalogs will be installed]) else AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale") fi # Checks for library functions. AC_FUNC_STRFTIME AC_CHECK_FUNCS([isascii memset mkdir setlocale strchr strpbrk strrchr strstr strtol]) AC_CHECK_FUNCS(bind_textdomain_codeset) AC_CHECK_FUNCS(localtime_r) AC_CONFIG_FILES([ Makefile libloqui/Makefile libloqui/protocols/Makefile libloqui/protocols/jabber/Makefile src/Makefile src/icons/Makefile src/embedtxt/Makefile po/Makefile.in m4/Makefile loqui.spec ]) AC_OUTPUT loqui-0.5.5/COPYING.LIB0000664000175000017500000006131412121600532011232 00000000000000 GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] 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 Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, 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 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 a program 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. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, 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 companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. 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, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library 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. 1. 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. 2. 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: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) 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. 3. 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. 4. 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. 5. 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. 6. As an exception to the Sections above, you may also compile 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: a) 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.) b) 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. c) 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. d) 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 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. 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. 7. 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: a) 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. b) 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. 8. 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. 9. 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. 10. 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 to this License. 11. 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. 12. 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. 13. The Free Software Foundation may publish revised and/or new versions of the Library 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. 14. 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 15. 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. 16. 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. Copyright (C) This library 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; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 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. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! loqui-0.5.5/ChangeLog0000664000175000017500000164773312121622467011377 00000000000000------------------------------------------------------------ revno: 1658 committer: Yoichi Imai branch nick: loqui timestamp: Mon 2013-03-18 22:09:42 +0900 message: Prevent from sending JIS X 0201 kana modified: libloqui/loqui_codeconv_tools.c ------------------------------------------------------------ revno: 1657 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2013-02-10 22:05:02 +0900 message: manually set ISO-2022-JP escape sequence when 'Japanese' is selected modified: libloqui/loqui_codeconv_tools.c ------------------------------------------------------------ revno: 1656 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2013-01-27 20:20:40 +0900 message: 0.5.4 modified: NEWS NEWS.ja configure.ac src/about.c ------------------------------------------------------------ revno: 1655 committer: Yoichi Imai branch nick: loqui timestamp: Fri 2013-01-25 07:37:50 +0900 message: loqui_codeconv_update: Fix segmentation fault on Solaris11. fix comparison for result of g_iconv_close modified: libloqui/loqui_codeconv.c ------------------------------------------------------------ revno: 1652 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2012-05-24 21:44:41 +0900 message: 0.5.3 modified: NEWS NEWS.ja configure.ac ------------------------------------------------------------ revno: 1651 committer: Yoichi Imai branch nick: loqui timestamp: Mon 2012-04-30 23:44:29 +0900 message: Fixed a wrong message for INVITE modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1650 committer: Yoichi Imai branch nick: loqui timestamp: Wed 2012-02-29 01:06:57 +0900 message: Call g_thread_init() if glib < 2.31.0 (LP: #935284) modified: libloqui/loqui-core.gob ------------------------------------------------------------ revno: 1649 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-11-19 01:01:26 +0900 message: version +bzr modified: configure.ac ------------------------------------------------------------ revno: 1648 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-11-19 00:14:07 +0900 message: 0.5.2 modified: configure.ac ------------------------------------------------------------ revno: 1647 tags: release-0_5_2 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-11-19 00:08:27 +0900 message: Fixed fuzzy modified: po/ja.po ------------------------------------------------------------ revno: 1646 committer: Yoichi Imai branch nick: loqui timestamp: Fri 2011-11-18 23:59:21 +0900 message: Updated NEWS modified: NEWS NEWS.ja ------------------------------------------------------------ revno: 1645 committer: Yoichi Imai branch nick: loqui timestamp: Fri 2011-11-18 00:03:32 +0900 message: Reset reconnect count when received RPL_WElCOME. modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1644 committer: Yoichi Imai branch nick: loqui timestamp: Wed 2011-11-16 02:25:18 +0900 message: Initialize iconv_t if fails to convert charset (when client -> server). modified: libloqui/loqui_codeconv.c libloqui/loqui_codeconv_tools.c ------------------------------------------------------------ revno: 1643 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2011-11-13 21:39:32 +0900 message: NULL prefix assumes the server in the handler of MODE reply. modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1642 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2011-11-13 21:36:39 +0900 message: Implemented a handler of RPL_NOTOPIC modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1641 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-11-05 19:14:58 +0900 message: Fixed the bug a user is not added when the user is joined. modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1640 committer: Yoichi Imai branch nick: loqui timestamp: Mon 2011-10-31 23:53:59 +0900 message: Append the character ':' if a parameter is empty modified: libloqui/irc_message.c ------------------------------------------------------------ revno: 1639 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2011-10-27 02:52:09 +0900 message: Clear all members of the channel when the user_self parted. Clear all members of the account when the connection is closed. modified: libloqui/loqui_account_irc.c libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1638 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2011-10-27 01:31:22 +0900 message: Set the target of RPL_WELCOME to user_self's nick. (Bug #689170) modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1637 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2011-10-27 01:02:59 +0900 message: Add user_self to the account. Skip setting a new nick to user_self when NICK command received. modified: libloqui/loqui_account_irc.c libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1636 committer: Yoichi Imai branch nick: loqui timestamp: Tue 2011-10-25 23:17:28 +0900 message: Removed the debian directory since it's maintained by debian officially. removed: debian/ debian/changelog debian/control debian/copyright debian/dirs debian/docs debian/files debian/menu debian/rules ------------------------------------------------------------ revno: 1635 committer: Yoichi Imai branch nick: loqui timestamp: Tue 2011-10-25 22:30:27 +0900 message: Fixed the problem that tarballs don't include some text files. modified: Makefile.am ------------------------------------------------------------ revno: 1634 committer: Yoichi Imai branch nick: loqui timestamp: Tue 2011-10-25 22:29:15 +0900 message: Fixed POTFILES.in modified: po/POTFILES.in ------------------------------------------------------------ revno: 1633 committer: Yoichi Imai branch nick: loqui timestamp: Tue 2011-10-25 22:04:53 +0900 message: Removed LqGKeyFile (GLib >= 2.6 has GKeyFile, while now Loqui depends GLib >= 2.22) removed: libloqui/lqgkeyfile.c libloqui/lqgkeyfile.h modified: libloqui/Makefile.am.m4 libloqui/loqui-pref.gob libloqui/loqui_marshalers.c po/Makefile.in.in src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1632 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-02-05 02:08:47 +0900 message: version +bzr modified: configure.ac ------------------------------------------------------------ revno: 1631 tags: release-0_5_1 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-02-05 02:02:31 +0900 message: 0.5.1 modified: configure.ac po/POTFILES.in ------------------------------------------------------------ revno: 1630 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-02-05 01:55:03 +0900 message: Updated NEWS modified: NEWS NEWS.ja ------------------------------------------------------------ revno: 1629 committer: Yoichi Imai branch nick: loqui timestamp: Fri 2011-01-28 00:46:58 +0900 message: Removed gnet from spec.in and debian/control. modified: debian/control loqui.spec.in ------------------------------------------------------------ revno: 1628 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2011-01-27 01:44:19 +0900 message: Fixed that nick_list_unselect_all returns null modified: src/nick_list.c ------------------------------------------------------------ revno: 1627 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2011-01-27 01:02:28 +0900 message: Set SO_BROADCAST to ipmsg socket modified: libloqui/loqui-socket-ipmsg.gob ------------------------------------------------------------ revno: 1626 committer: Yoichi Imai branch nick: loqui timestamp: Wed 2011-01-26 02:04:45 +0900 message: Removed gnet dependency. modified: configure.ac libloqui/ipmsg_packet.c libloqui/ipmsg_packet.h libloqui/loqui-account-ipmsg.gob libloqui/loqui-core.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui-socket-ipmsg.gob ------------------------------------------------------------ revno: 1625 committer: Yoichi Imai branch nick: loqui timestamp: Mon 2011-01-24 03:26:54 +0900 message: Use GIO for IRC. modified: libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_account_irc.c libloqui/loqui_channel_entry.c ------------------------------------------------------------ revno: 1624 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2011-01-13 01:54:46 +0900 message: Use GIO instead of GNet in ctcp_handle.c removed: libloqui/loqui-transfer-item-irc.gob modified: libloqui/Makefile.am.m4 libloqui/ctcp_handle.c ------------------------------------------------------------ revno: 1623 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2011-01-08 01:49:49 +0900 message: Handle () in URL. modified: libloqui/loqui-utils.c ------------------------------------------------------------ revno: 1622 committer: Kazuhiro NISHIYAMA branch nick: loqui timestamp: Thu 2011-01-06 01:21:33 +0900 message: ignore generated files modified: .bzrignore ------------------------------------------------------------ revno: 1621 committer: Yoichi Imai branch nick: loqui timestamp: Thu 2011-01-06 01:01:29 +0900 message: Fixed the bug channel mode table is not terminated with -1. modified: libloqui/loqui-mode-manager.gob libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1620 committer: Yoichi Imai branch nick: loqui timestamp: Tue 2011-01-04 21:34:26 +0900 message: Use GtkStatusIcon instead of EggTrayIcon (the icon should be transparent). removed: src/eggtrayicon.c src/eggtrayicon.h modified: src/Makefile.am.m4 src/loqui-tray-icon.gob ------------------------------------------------------------ revno: 1619 committer: Yoichi Imai branch nick: loqui timestamp: Wed 2010-12-29 00:59:11 +0900 message: Execute the notification command with message text. modified: libloqui/loqui-message-text.gob src/loqui-notifier-gtk.gob ------------------------------------------------------------ revno: 1618 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-19 02:35:37 +0900 message: Use canberra-gtk-play for notification command modified: src/loqui-general-pref-gtk-default.h ------------------------------------------------------------ revno: 1617 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-19 00:50:04 +0900 message: Remove include gnet.h from loqui-core-gtk modified: src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1616 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-19 00:43:45 +0900 message: Removed EggRegex. Use GRegex instead. Require glib >= 2.22 (for URI, Regex, GIO). removed: libloqui/regex/ libloqui/regex/Makefile.am libloqui/regex/README libloqui/regex/eggregex.c libloqui/regex/eggregex.h libloqui/regex/pcre/ libloqui/regex/pcre/Makefile.am libloqui/regex/pcre/chartables.c libloqui/regex/pcre/get.c libloqui/regex/pcre/internal.h libloqui/regex/pcre/maketables.c libloqui/regex/pcre/pcre-config.h libloqui/regex/pcre/pcre.c libloqui/regex/pcre/pcre.h libloqui/regex/pcre/printint.c libloqui/regex/pcre/study.c modified: configure.ac libloqui/Makefile.am.m4 libloqui/loqui-notifier.gob libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1615 committer: Yoichi Imai branch nick: loqui timestamp: Sat 2010-12-18 01:10:51 +0900 message: Add : only if the last parameter has space(s). modified: libloqui/irc_message.c ------------------------------------------------------------ revno: 1614 committer: Yoichi Imai branch nick: loqui timestamp: Fri 2010-12-17 02:31:19 +0900 message: Update po modified: po/ja.po ------------------------------------------------------------ revno: 1613 committer: topia@clovery.jp branch nick: loqui timestamp: Fri 2010-12-17 02:28:46 +0900 message: add .bzrignore and remove needless config.rpath removed: config.rpath added: .bzrignore ------------------------------------------------------------ revno: 1612 committer: topia@clovery.jp branch nick: loqui timestamp: Fri 2010-12-17 02:28:00 +0900 message: implement add-built-sources-to-bzr-ignore modified: loqui-am-macros.m4 ------------------------------------------------------------ revno: 1611 committer: topia@clovery.jp branch nick: loqui timestamp: Fri 2010-12-17 02:03:27 +0900 message: minor fix to autogen.sh modified: autogen.sh ------------------------------------------------------------ revno: 1610 committer: topia@clovery.jp branch nick: loqui timestamp: Fri 2010-12-17 02:03:10 +0900 message: add loqui-am-macros.m4 to EXTRA_DIST modified: Makefile.am ------------------------------------------------------------ revno: 1609 [merge] committer: Yoichi Imai branch nick: loqui timestamp: Tue 2010-12-14 03:15:31 +0900 message: merge modified: autogen.sh loqui.spec.in ------------------------------------------------------------ revno: 1608 committer: Yoichi Imai branch nick: loqui timestamp: Tue 2010-12-14 03:14:41 +0900 message: Implemented search keyword feature. modified: src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1607 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 17:40:42 +0900 message: Added +svn to version modified: configure.ac ------------------------------------------------------------ revno: 1606 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 17:34:51 +0900 message: Added LINGUAS added: po/LINGUAS ------------------------------------------------------------ revno: 1605 tags: release-0_5_0 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 17:30:19 +0900 message: 0.5.0 modified: configure.ac ------------------------------------------------------------ revno: 1604 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 17:24:37 +0900 message: Update POTFILES. modified: po/POTFILES.in update-potfiles.sh* ------------------------------------------------------------ revno: 1603 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 17:14:45 +0900 message: Updated NEWS. modified: NEWS NEWS.ja autogen.sh* ------------------------------------------------------------ revno: 1602 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 17:10:58 +0900 message: Fixed wrong applications path modified: Makefile.am ------------------------------------------------------------ revno: 1601 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 17:05:08 +0900 message: Changed URL / mail address. modified: AUTHORS autogen.sh* config.rpath* debian/copyright debian/rules* libloqui/ctcp_handle.c libloqui/ctcp_handle.h libloqui/ctcp_message.c libloqui/ctcp_message.h libloqui/ipmsg_packet.c libloqui/ipmsg_packet.h libloqui/irc_message.c libloqui/irc_message.h libloqui/loqui-account-ipmsg.gob libloqui/loqui-account-manager.gob libloqui/loqui-core.gob libloqui/loqui-generic-profile-factory.gob libloqui/loqui-gobject-utils.c libloqui/loqui-gobject-utils.h libloqui/loqui-message-text-region.gob libloqui/loqui-message-text.gob libloqui/loqui-mode-item.gob libloqui/loqui-mode-manager.gob libloqui/loqui-notifier.gob libloqui/loqui-pref-partial.gob libloqui/loqui-pref-sequence.gob libloqui/loqui-pref.gob libloqui/loqui-profile-factory.c libloqui/loqui-profile-factory.h libloqui/loqui-profile-handle.gob libloqui/loqui-profile.c libloqui/loqui-profile.h libloqui/loqui-property-profile.gob libloqui/loqui-protocol.gob libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui-socket-ipmsg.gob libloqui/loqui-static-core.c libloqui/loqui-static-core.h libloqui/loqui-transfer-item-irc.gob libloqui/loqui-transfer-item.gob libloqui/loqui-utils-ipmsg.c libloqui/loqui-utils-ipmsg.h libloqui/loqui-utils.c libloqui/loqui-utils.h libloqui/loqui.h libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_account_irc.c libloqui/loqui_account_irc.h libloqui/loqui_account_manager_iter.c libloqui/loqui_account_manager_iter.h libloqui/loqui_channel.c libloqui/loqui_channel.h libloqui/loqui_channel_buffer.c libloqui/loqui_channel_buffer.h libloqui/loqui_channel_entry.c libloqui/loqui_channel_entry.h libloqui/loqui_channel_entry_utils.c libloqui/loqui_channel_entry_utils.h libloqui/loqui_channel_irc.c libloqui/loqui_channel_irc.h libloqui/loqui_codeconv.c libloqui/loqui_codeconv.h libloqui/loqui_codeconv_tools.c libloqui/loqui_codeconv_tools.h libloqui/loqui_member.c libloqui/loqui_member.h libloqui/loqui_message.c libloqui/loqui_message.h libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h libloqui/loqui_profile_account_ipmsg.c libloqui/loqui_profile_account_ipmsg.h libloqui/loqui_profile_account_irc.c libloqui/loqui_profile_account_irc.h libloqui/loqui_protocol_ipmsg.c libloqui/loqui_protocol_ipmsg.h libloqui/loqui_protocol_irc.c libloqui/loqui_protocol_irc.h libloqui/loqui_protocol_manager.c libloqui/loqui_protocol_manager.h libloqui/loqui_receiver.c libloqui/loqui_receiver.h libloqui/loqui_receiver_irc.c libloqui/loqui_receiver_irc.h libloqui/loqui_sender.c libloqui/loqui_sender.h libloqui/loqui_sender_irc.c libloqui/loqui_sender_irc.h libloqui/loqui_string_tokenizer.c libloqui/loqui_string_tokenizer.h libloqui/loqui_title_format.c libloqui/loqui_title_format.h libloqui/loqui_user.c libloqui/loqui_user.h libloqui/loqui_user_ipmsg.c libloqui/loqui_user_ipmsg.h libloqui/loqui_user_irc.c libloqui/loqui_user_irc.h libloqui/loqui_utils_irc.c libloqui/loqui_utils_irc.h libloqui/loqui_webutils.c libloqui/loqui_webutils.h libloqui/lqgkeyfile.c libloqui/lqgkeyfile.h libloqui/protocols/jabber/loqui-account-jabber.gob loqui.spec.in src/about.c src/about.h src/account_list_dialog.c src/account_list_dialog.h src/channel_tree.c src/channel_tree.h src/command_dialog.c src/command_dialog.h src/eggtrayicon.c src/gtkutils.c src/gtkutils.h src/loqui-account-dialog.gob src/loqui-channel-entry-action-group-ui.gob src/loqui-channel-entry-action-group.gob src/loqui-channel-entry-ui-data.gob src/loqui-core-gtk.gob src/loqui-notifier-gtk.gob src/loqui-protocol-selection-dialog.gob src/loqui-transfer-window.gob src/loqui-tray-icon.gob src/loqui_account_manager_store.c src/loqui_account_manager_store.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_app_actions.h src/loqui_app_info.c src/loqui_app_info.h src/loqui_channel_buffer_gtk.c src/loqui_channel_buffer_gtk.h src/loqui_channel_entry_action.c src/loqui_channel_entry_action.h src/loqui_channel_entry_store.c src/loqui_channel_entry_store.h src/loqui_channel_text_view.c src/loqui_channel_text_view.h src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_dropdown_box.c src/loqui_dropdown_box.h src/loqui_select_dialog.c src/loqui_select_dialog.h src/loqui_statusbar.c src/loqui_statusbar.h src/loqui_stock.c src/loqui_stock.h src/loqui_style_entry.c src/loqui_style_entry.h src/main.c src/main.h src/nick_list.c src/nick_list.h src/prefs_dialog.c src/prefs_dialog.h src/prefs_general_upgrader.c src/prefs_general_upgrader.h src/remark_entry.c src/remark_entry.h template-gtk.gob template-lib.gob update-potfiles.sh* ------------------------------------------------------------ revno: 1600 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 16:52:41 +0900 message: Changed the .desktop path modified: loqui.spec.in ------------------------------------------------------------ revno: 1599 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 16:52:25 +0900 message: Changed the .desktop path modified: Makefile.am ------------------------------------------------------------ revno: 1598 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 16:27:42 +0900 message: Fixed empty channel name on the channel bar. modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 1597 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 14:28:52 +0900 message: Unselect when mode is changed. modified: src/nick_list.c ------------------------------------------------------------ revno: 1596 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 14:21:09 +0900 message: Changed glib-gettextize order modified: autogen.sh ------------------------------------------------------------ revno: 1595 committer: IWAI, Masaharu branch nick: loqui-bzr timestamp: Sun 2010-12-12 13:45:58 +0900 message: drop single quote for default browser command modified: src/loqui-general-pref-gtk-default.h ------------------------------------------------------------ revno: 1594 committer: IWAI, Masaharu branch nick: loqui-bzr timestamp: Sun 2010-12-12 13:34:49 +0900 message: replace default browser command xdg-open modified: src/loqui-general-pref-gtk-default.h ------------------------------------------------------------ revno: 1593 fixes bug: https://launchpad.net/bugs/689116 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 12:37:26 +0900 message: Fixed the bug to fail execute mkinstalldirs. modified: autogen.sh po/Makefile.in.in ------------------------------------------------------------ revno: 1592 committer: Yoichi Imai branch nick: loqui timestamp: Sun 2010-12-12 01:32:32 +0900 message: Added 'Japanese (UTF-8)' to the codeconv table for IRC. modified: libloqui/loqui_protocol_irc.c ------------------------------------------------------------ revno: 1591 committer: sunnyone41 branch nick: trunk timestamp: Wed 2009-12-23 06:35:26 +0000 message: Fixed abot dialog. modified: src/about.c ------------------------------------------------------------ revno: 1590 committer: sunnyone41 branch nick: trunk timestamp: Wed 2009-12-23 06:21:46 +0000 message: Update desktop file. modified: loqui.desktop ------------------------------------------------------------ revno: 1589 committer: sunnyone41 branch nick: trunk timestamp: Wed 2009-12-23 06:20:20 +0000 message: Changed the default browser, mozilla to firefox. modified: src/loqui-general-pref-gtk-default.h ------------------------------------------------------------ revno: 1588 committer: sunnyone41 branch nick: trunk timestamp: Wed 2009-12-23 06:18:15 +0000 message: Removed MSN code. removed: libloqui/protocols/msn/ libloqui/protocols/msn/loqui_account_msn.c libloqui/protocols/msn/loqui_account_msn.h libloqui/protocols/msn/loqui_protocol_msn.c libloqui/protocols/msn/loqui_protocol_msn.h libloqui/protocols/msn/msn_constants.h libloqui/protocols/msn/msn_login.c libloqui/protocols/msn/msn_login.h libloqui/protocols/msn/msn_message.c libloqui/protocols/msn/msn_message.h modified: configure.ac libloqui/protocols/Makefile.am src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1587 committer: znz branch nick: trunk timestamp: Fri 2006-07-28 08:58:39 +0000 message: not exist libloqui/protocols/msn/Makefile.am.m4 modified: autogen.sh ------------------------------------------------------------ revno: 1586 committer: sunnyone41 branch nick: trunk timestamp: Wed 2006-07-12 09:45:55 +0000 message: Fixed the bug that it doesn't read newer lines if an error occurs. modified: libloqui/loqui_account_irc.c ------------------------------------------------------------ revno: 1585 committer: sunnyone41 branch nick: trunk timestamp: Tue 2006-01-17 08:10:46 +0000 message: Fixed path of headers modified: libloqui/protocols/msn/loqui_account_msn.c libloqui/protocols/msn/loqui_account_msn.h libloqui/protocols/msn/msn_login.c libloqui/protocols/msn/msn_login.h libloqui/protocols/msn/msn_message.c ------------------------------------------------------------ revno: 1584 committer: sunnyone41 branch nick: trunk timestamp: Tue 2006-01-17 08:10:04 +0000 message: Added Makefiles in protocols modified: configure.ac ------------------------------------------------------------ revno: 1583 committer: sunnyone41 branch nick: trunk timestamp: Tue 2006-01-17 08:09:43 +0000 message: Fixed invalid m4 macro. modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1582 committer: sunnyone41 branch nick: trunk timestamp: Tue 2006-01-17 08:09:00 +0000 message: Check directories recursively. modified: update-potfiles.sh ------------------------------------------------------------ revno: 1581 committer: sunnyone41 branch nick: trunk timestamp: Tue 2006-01-17 08:08:27 +0000 message: Added newer Makefile.am modified: autogen.sh ------------------------------------------------------------ revno: 1580 committer: sunnyone41 branch nick: trunk timestamp: Mon 2006-01-02 08:21:20 +0000 message: Fixed the path of loqui_protocol_msn.h modified: src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1579 committer: sunnyone41 branch nick: trunk timestamp: Mon 2006-01-02 08:17:52 +0000 message: Sources of MSN programs were moved to protocols/msn. added: libloqui/protocols/msn/ renamed: libloqui/loqui_account_msn.c => libloqui/protocols/msn/loqui_account_msn.c libloqui/loqui_account_msn.h => libloqui/protocols/msn/loqui_account_msn.h libloqui/loqui_protocol_msn.c => libloqui/protocols/msn/loqui_protocol_msn.c libloqui/loqui_protocol_msn.h => libloqui/protocols/msn/loqui_protocol_msn.h libloqui/msn_constants.h => libloqui/protocols/msn/msn_constants.h libloqui/msn_login.c => libloqui/protocols/msn/msn_login.c libloqui/msn_login.h => libloqui/protocols/msn/msn_login.h libloqui/msn_message.c => libloqui/protocols/msn/msn_message.c libloqui/msn_message.h => libloqui/protocols/msn/msn_message.h modified: libloqui/Makefile.am.m4 libloqui/protocols/Makefile.am ------------------------------------------------------------ revno: 1578 committer: sunnyone41 branch nick: trunk timestamp: Mon 2006-01-02 08:09:15 +0000 message: Fixed the path of loqui-mode-manager.h modified: libloqui/loqui_channel.h ------------------------------------------------------------ revno: 1577 committer: sunnyone41 branch nick: trunk timestamp: Mon 2006-01-02 08:09:03 +0000 message: Added protocols to SUBDIRS modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1576 committer: sunnyone41 branch nick: trunk timestamp: Mon 2006-01-02 08:05:40 +0000 message: Added protocols dir added: libloqui/protocols/Makefile.am libloqui/protocols/jabber/Makefile.am.m4 libloqui/protocols/jabber/loqui-account-jabber.gob ------------------------------------------------------------ revno: 1575 committer: sunnyone41 branch nick: trunk timestamp: Mon 2006-01-02 08:04:50 +0000 message: Added protocols dir added: libloqui/protocols/ libloqui/protocols/jabber/ ------------------------------------------------------------ revno: 1574 committer: sunnyone41 branch nick: trunk timestamp: Mon 2006-01-02 08:02:07 +0000 message: Fixed the path of loqui-utils.h modified: template-lib.gob ------------------------------------------------------------ revno: 1573 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-12-15 08:02:47 +0000 message: Don't check libintl.h modified: configure.ac ------------------------------------------------------------ revno: 1572 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-12-15 07:58:37 +0000 message: Use glib/gi18n.h instead of libintl.h modified: src/eggtrayicon.c ------------------------------------------------------------ revno: 1571 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-10-24 17:41:35 +0000 message: Removed dist-bzip2 option modified: configure.ac ------------------------------------------------------------ revno: 1570 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-10-24 17:01:09 +0000 message: Call gtk_text_view_place_cursor_onscreen() when the vadjustment of a channel text view changed. modified: src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1569 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-10-22 14:28:12 +0000 message: Created the 'GlobalFont' configuration (but doesn't work) modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1568 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-10-22 14:24:00 +0000 message: Added gtkutils_get_default_font_desc() modified: src/gtkutils.c src/gtkutils.h ------------------------------------------------------------ revno: 1567 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-10-22 13:51:12 +0000 message: Created the configuration entry for RecentLogRegexp. modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 1566 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-10-22 13:50:40 +0000 message: Parse plum recent logs with EggRegex. modified: libloqui/loqui-general-pref-default.h libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1565 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-10-22 13:25:43 +0000 message: Check whether _pcre_get_named_substring succeeded or not. modified: libloqui/regex/eggregex.c ------------------------------------------------------------ revno: 1564 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-10-20 16:14:58 +0000 message: Added dist-spec target modified: Makefile.am ------------------------------------------------------------ revno: 1563 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-10-20 16:10:31 +0000 message: Added dist-bzip2 option to AM_INIT_AUTOMAKE modified: configure.ac ------------------------------------------------------------ revno: 1562 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-10-20 15:56:45 +0000 message: Get LC_CTYPE with g_win32_getlocale on Win32 environments modified: libloqui/loqui-utils.c libloqui/loqui-utils.h libloqui/loqui_codeconv.c ------------------------------------------------------------ revno: 1561 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-10-20 14:10:27 +0000 message: Added +svn modified: configure.ac ------------------------------------------------------------ revno: 1560 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-10-13 12:22:39 +0000 message: 0.4.4 ------------------------------------------------------------ revno: 1559 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-10-13 11:49:22 +0000 message: 0.4.4 modified: NEWS NEWS.ja configure.ac ------------------------------------------------------------ revno: 1558 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 16:50:17 +0000 message: Fixed double-free modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1557 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 16:49:04 +0000 message: Added +svn modified: configure.ac ------------------------------------------------------------ revno: 1556 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 14:19:29 +0000 message: Fixed the condition of notification. modified: src/loqui-notifier-gtk.gob ------------------------------------------------------------ revno: 1555 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 14:19:00 +0000 message: updated modified: debian/changelog ------------------------------------------------------------ revno: 1554 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 09:28:15 +0000 message: 0.4.3 ------------------------------------------------------------ revno: 1553 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 09:14:11 +0000 message: Removed +svn modified: configure.ac ------------------------------------------------------------ revno: 1552 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 09:13:40 +0000 message: Added isc-posix.m4 added: m4/isc-posix.m4 ------------------------------------------------------------ revno: 1551 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 08:53:45 +0000 message: 0.4.3 modified: NEWS NEWS.ja configure.ac ------------------------------------------------------------ revno: 1550 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 08:48:56 +0000 message: Updated po modified: po/ja.po ------------------------------------------------------------ revno: 1549 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-10-12 07:51:49 +0000 message: Created loqui_channel_create_remark_message_text() modified: libloqui/loqui_channel.c libloqui/loqui_channel.h ------------------------------------------------------------ revno: 1548 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 13:23:50 +0000 message: The about dialog uses loqui_core_get_version_info() modified: src/about.c ------------------------------------------------------------ revno: 1547 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 06:59:40 +0000 message: Removed gettext.h removed: gettext.h ------------------------------------------------------------ revno: 1546 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 06:59:27 +0000 message: Updated gettext m4 files modified: m4/Makefile.am m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/lcmessage.m4 m4/progtest.m4 ------------------------------------------------------------ revno: 1545 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 06:42:09 +0000 message: Created the "Proxy" page for prefs_dialog. modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 1544 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 06:42:00 +0000 message: Cleaned notify_highlight() up modified: src/loqui-notifier-gtk.gob ------------------------------------------------------------ revno: 1543 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 06:17:57 +0000 message: Changed the name of checkbox and the key for TreatAsRecentLogUntilFirstPongReceived modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 1542 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 06:16:37 +0000 message: Treat server messages only as recent logs. modified: libloqui/loqui-general-pref-default.h libloqui/loqui_account_irc.c libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1541 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 05:50:44 +0000 message: Removed exec_notification, to_set_updated properties from LoquiMessageText. Changed the parameters of LoquiChannel#append_remark. modified: libloqui/ctcp_handle.c libloqui/loqui-message-text.gob libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui_channel.c libloqui/loqui_channel.h libloqui/loqui_channel_entry.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c src/loqui-notifier-gtk.gob ------------------------------------------------------------ revno: 1540 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-10-09 05:13:19 +0000 message: Added an explanation of special prefixes modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 1539 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-09-17 08:59:42 +0000 message: Changed the timing to set updated/updated_weak/has_unread_keyword modified: libloqui/loqui_channel_entry.c ------------------------------------------------------------ revno: 1538 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-09-17 08:40:52 +0000 message: Added regular expression support for highlight-keyword modified: libloqui/loqui-notifier.gob ------------------------------------------------------------ revno: 1537 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-09-17 08:40:10 +0000 message: Removed needless variables modified: libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1536 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-09-17 08:07:29 +0000 message: Don't set has_unread_keyword = TRUE in loqui_app.c modified: src/loqui_app.c ------------------------------------------------------------ revno: 1535 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-09-17 08:03:26 +0000 message: Set has_unread_keyword in LoquiChannelEntry. modified: libloqui/loqui_channel.c libloqui/loqui_channel_entry.c ------------------------------------------------------------ revno: 1534 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-09-17 08:02:35 +0000 message: Added IS_ modified: src/loqui_app_info.c ------------------------------------------------------------ revno: 1533 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-09-17 07:51:38 +0000 message: * Added to_set_updated property to LoquiMessageText. * Don't set last_message_time at loqui_channel_append_remark(). * Added get_has_highlight_keyword() to LoquiMessageText. * Set updated/updated_weak property in LoquiChannelEntry. modified: libloqui/loqui-message-text.gob libloqui/loqui_channel.c libloqui/loqui_channel_entry.c ------------------------------------------------------------ revno: 1532 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-16 04:23:06 +0000 message: Removed ABOUT-NLS modified: loqui.spec.in ------------------------------------------------------------ revno: 1531 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-16 04:16:05 +0000 message: Override append_message_text modified: libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1530 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-09 13:44:41 +0000 message: Fixed the parser of URI regions. modified: libloqui/loqui-notifier.gob ------------------------------------------------------------ revno: 1529 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 13:41:13 +0000 message: Check ExecNotificationByNotice in LoquiNotifierGtk modified: libloqui/loqui_channel.c src/loqui-notifier-gtk.gob ------------------------------------------------------------ revno: 1528 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 13:40:19 +0000 message: Removed '-o $(srcdir)' modified: libloqui/Makefile.am.m4 src/Makefile.am.m4 ------------------------------------------------------------ revno: 1527 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 11:58:11 +0000 message: Use LoquiNotifierGtk added: src/loqui-notifier-gtk.gob modified: src/Makefile.am.m4 src/loqui-core-gtk.gob src/loqui_app.c ------------------------------------------------------------ revno: 1526 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 11:57:32 +0000 message: Fixed modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1525 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 11:57:05 +0000 message: Removed a needless debug message modified: libloqui/loqui-notifier.gob ------------------------------------------------------------ revno: 1524 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 11:56:37 +0000 message: Search keywords when a message is remark only. Search keywords that occurs more than once. modified: libloqui/loqui-core.gob libloqui/loqui-notifier.gob ------------------------------------------------------------ revno: 1523 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 11:02:24 +0000 message: Parse URI with LoquiNotification modified: libloqui/loqui-notifier.gob src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1522 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 11:01:58 +0000 message: end_uri is set to the next character that uri ends. modified: libloqui/loqui-utils.c ------------------------------------------------------------ revno: 1521 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 10:40:50 +0000 message: Tag URI area without insert signal modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1520 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 10:30:22 +0000 message: Tag regions of highlight area with LoquiMessageTextRegion modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1519 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 10:29:47 +0000 message: Fixed #include modified: libloqui/loqui_channel_entry.c ------------------------------------------------------------ revno: 1518 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 10:29:24 +0000 message: Added get_offset modified: libloqui/loqui-message-text-region.gob ------------------------------------------------------------ revno: 1517 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 10:28:43 +0000 message: Added '-o $(srcdir)' modified: libloqui/Makefile.am.m4 src/Makefile.am.m4 ------------------------------------------------------------ revno: 1516 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 09:24:37 +0000 message: LoquiNotification -> LoquiNotifier renamed: libloqui/loqui-notification.gob => libloqui/loqui-notifier.gob modified: libloqui/Makefile.am.m4 libloqui/loqui-core.gob libloqui/loqui_channel_entry.c libloqui/loqui-notifier.gob ------------------------------------------------------------ revno: 1515 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 09:19:36 +0000 message: Added process_message_text. modified: libloqui/loqui-notification.gob libloqui/loqui_channel_entry.c src/loqui_app.c ------------------------------------------------------------ revno: 1514 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 09:18:50 +0000 message: Added set_nofication modified: libloqui/loqui-core.gob ------------------------------------------------------------ revno: 1513 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:50:17 +0000 message: Search keyword with LoquiNotification] modified: src/loqui_app.c ------------------------------------------------------------ revno: 1512 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:49:47 +0000 message: Added LoquiNotification class. added: libloqui/loqui-notification.gob modified: libloqui/Makefile.am.m4 libloqui/loqui-core.gob ------------------------------------------------------------ revno: 1511 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:30:38 +0000 message: Fixed the offset parameter modified: src/loqui_app.c ------------------------------------------------------------ revno: 1510 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:28:09 +0000 message: Use LoquiMessageTextRegion class modified: libloqui/loqui-message-text.gob ------------------------------------------------------------ revno: 1509 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:27:58 +0000 message: Created validator_*. Don't check whether or not a JOIN message is for you (Create a channel buffer when an other user joined a channel if Loqui received a JOIN message.) modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1508 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:22:57 +0000 message: Use LoquiMessageTextRegion class added: libloqui/loqui-message-text-region.gob modified: libloqui/Makefile.am.m4 src/loqui_app.c ------------------------------------------------------------ revno: 1507 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:21:21 +0000 message: Update your last_message_time with sent_* modified: libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1506 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:20:21 +0000 message: Created IRC_MESSAGE_PARAM_INDEX_TARGET modified: libloqui/irc_message.c libloqui/irc_message.h ------------------------------------------------------------ revno: 1505 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-09-02 08:19:51 +0000 message: Added loqui_utils_free_list_and_elements_unref() modified: libloqui/loqui-utils.c libloqui/loqui-utils.h ------------------------------------------------------------ revno: 1504 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-31 13:38:33 +0000 message: Updated LICENSE notice modified: LICENSE ------------------------------------------------------------ revno: 1503 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-31 12:12:27 +0000 message: Add a time string without LoquiChannelBuffer#append modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1502 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-27 08:44:19 +0000 message: Receive DCC-SEND data (untested) modified: libloqui/loqui-transfer-item-irc.gob libloqui/loqui-transfer-item.gob ------------------------------------------------------------ revno: 1501 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-27 06:23:36 +0000 message: Use const keyword in GOB files modified: libloqui/loqui-core.gob libloqui/loqui-generic-profile-factory.gob libloqui/loqui-pref-partial.gob libloqui/loqui-pref-sequence.gob libloqui/loqui-profile-handle.gob libloqui/loqui-property-profile.gob libloqui/loqui-protocol.gob ------------------------------------------------------------ revno: 1500 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-27 06:21:29 +0000 message: Added eggregex.h to SOURCES modified: libloqui/regex/Makefile.am ------------------------------------------------------------ revno: 1499 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 14:40:21 +0000 message: Removed printint.h modified: libloqui/regex/pcre/Makefile.am ------------------------------------------------------------ revno: 1498 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 14:39:04 +0000 message: Not to check bool modified: configure.ac ------------------------------------------------------------ revno: 1497 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 14:38:12 +0000 message: Added +svn modified: configure.ac ------------------------------------------------------------ revno: 1496 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 14:36:36 +0000 message: Added EggRegex. Abolished to check memmove. modified: configure.ac ------------------------------------------------------------ revno: 1495 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 14:35:34 +0000 message: Added libeggregex.la modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1494 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 14:35:13 +0000 message: Added GLIB_CFLAGS modified: libloqui/regex/Makefile.am libloqui/regex/pcre/Makefile.am ------------------------------------------------------------ revno: 1493 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 14:35:01 +0000 message: Use g_memmove instead of memmove modified: libloqui/ipmsg_packet.c libloqui/regex/pcre/internal.h ------------------------------------------------------------ revno: 1492 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-25 13:48:09 +0000 message: Added regex added: libloqui/regex/ libloqui/regex/Makefile.am libloqui/regex/README libloqui/regex/eggregex.c libloqui/regex/eggregex.h libloqui/regex/pcre/ libloqui/regex/pcre/Makefile.am libloqui/regex/pcre/chartables.c libloqui/regex/pcre/get.c libloqui/regex/pcre/internal.h libloqui/regex/pcre/maketables.c libloqui/regex/pcre/pcre-config.h libloqui/regex/pcre/pcre.c libloqui/regex/pcre/pcre.h libloqui/regex/pcre/printint.c libloqui/regex/pcre/study.c ------------------------------------------------------------ revno: 1491 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 17:43:52 +0000 message: Updated debian/changelog modified: debian/changelog ------------------------------------------------------------ revno: 1490 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 17:32:35 +0000 message: 0.4.2. ------------------------------------------------------------ revno: 1489 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 17:24:35 +0000 message: Show CTCP reply messages in LoquiSenderIRC modified: libloqui/ctcp_handle.c libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1488 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 16:42:57 +0000 message: 0.4.2 modified: configure.ac ------------------------------------------------------------ revno: 1487 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 15:08:05 +0000 message: Updated loqui.ico modified: src/icons/loqui.ico ------------------------------------------------------------ revno: 1486 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 14:25:56 +0000 message: Added LOQUI_RES modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1485 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 13:52:02 +0000 message: Added EXTRA_DIST modified: src/embedtxt/Makefile.am ------------------------------------------------------------ revno: 1484 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 13:50:41 +0000 message: Use noinst_HEADERS modified: src/embedtxt/Makefile.am ------------------------------------------------------------ revno: 1483 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 13:46:55 +0000 message: Added loqui.ico modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 1482 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 13:41:36 +0000 message: Fixed handling of resource file modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1481 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 13:13:02 +0000 message: Updated po modified: po/ja.po ------------------------------------------------------------ revno: 1480 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 13:04:52 +0000 message: Fixed the argument of AC_CHECK_PROG modified: configure.ac ------------------------------------------------------------ revno: 1479 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 11:44:55 +0000 message: Updated NEWS modified: NEWS NEWS.ja ------------------------------------------------------------ revno: 1478 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 11:44:23 +0000 message: Removed /*I*/ modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1477 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 11:43:58 +0000 message: IRCMessage#get_param's param count starts from 0 modified: libloqui/irc_message.c libloqui/irc_message.h libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1476 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 10:40:12 +0000 message: Update accel keys in LoquiChannelEntryActionGroup instead of LoquiApp modified: src/loqui-channel-entry-action-group.gob src/loqui_app.c ------------------------------------------------------------ revno: 1475 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 10:30:59 +0000 message: Create rc/res modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1474 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 10:30:40 +0000 message: Check windres modified: configure.ac ------------------------------------------------------------ revno: 1473 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 10:07:38 +0000 message: Added loqui.ico (converted by 'convert') added: src/icons/loqui.ico ------------------------------------------------------------ revno: 1472 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 09:22:07 +0000 message: Fixed version modified: configure.ac ------------------------------------------------------------ revno: 1471 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 09:20:19 +0000 message: Define G_LOG_DOMAIN with CC's -D option modified: configure.ac libloqui/Makefile.am.m4 libloqui/loqui-account-manager.gob libloqui/loqui-core.gob libloqui/loqui-profile-handle.gob libloqui/loqui-protocol.gob src/Makefile.am.m4 src/loqui-core-gtk.gob src/loqui-transfer-window.gob src/loqui-tray-icon.gob ------------------------------------------------------------ revno: 1470 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 09:17:28 +0000 message: Updated POTFILES.in modified: po/POTFILES.in ------------------------------------------------------------ revno: 1469 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 09:11:59 +0000 message: Fixed modified: configure.ac ------------------------------------------------------------ revno: 1468 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 09:03:53 +0000 message: Write configure.ac in the new style modified: configure.ac ------------------------------------------------------------ revno: 1467 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 09:03:26 +0000 message: Moved configure.in to configure.ac renamed: configure.in => configure.ac ------------------------------------------------------------ revno: 1466 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 08:09:33 +0000 message: Fetch ChangeLog from the repositry. Removed ABOUT-NLS. autogen.sh removes ChangeLog modified: Makefile.am autogen.sh ------------------------------------------------------------ revno: 1465 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 08:08:29 +0000 message: Removed ABOUT-NLS removed: ABOUT-NLS ------------------------------------------------------------ revno: 1464 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 06:24:00 +0000 message: Updated svn:ignore ------------------------------------------------------------ revno: 1463 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 06:23:20 +0000 message: Updated svn:ignore ------------------------------------------------------------ revno: 1462 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 06:17:34 +0000 message: Removed .PHONY for ChangeLog modified: Makefile.am ------------------------------------------------------------ revno: 1461 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-24 06:01:14 +0000 message: Use noinst_HEADERS for icons modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 1460 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 16:13:01 +0000 message: get_version_info returns runtime version of gtk modified: src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1459 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 15:42:58 +0000 message: Fixed the bug that the program crashes when the tray icon is right-clicked. modified: src/loqui-tray-icon.gob ------------------------------------------------------------ revno: 1458 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 15:37:21 +0000 message: Removed loqui_channel_entry_ui.[ch] removed: src/loqui_channel_entry_ui.c src/loqui_channel_entry_ui.h ------------------------------------------------------------ revno: 1457 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 15:36:22 +0000 message: Use LoquiChannelEntryActionGroup, LoquiChannelEntryActionGroupUI modified: src/Makefile.am.m4 src/loqui_app.c src/loqui_app.h src/loqui_channelbar.c ------------------------------------------------------------ revno: 1456 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 15:35:10 +0000 message: Have a reference count of the channel entry modified: src/loqui_channel_entry_action.c ------------------------------------------------------------ revno: 1455 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 15:34:19 +0000 message: Connect signals to LoquiChannelEntryActionGroup modified: src/loqui-channel-entry-action-group-ui.gob ------------------------------------------------------------ revno: 1454 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 15:33:46 +0000 message: Connect signals to LoquiAccountManager modified: src/loqui-channel-entry-action-group.gob ------------------------------------------------------------ revno: 1453 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-23 15:33:00 +0000 message: Call PARENT_HANDLER modified: libloqui/loqui-account-manager.gob ------------------------------------------------------------ revno: 1452 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-17 12:10:18 +0000 message: Added LoquiCHannelEntryUIData, LoquiChannelEntryActionGroupUI. added: src/loqui-channel-entry-action-group-ui.gob src/loqui-channel-entry-ui-data.gob modified: src/Makefile.am.m4 src/loqui-channel-entry-action-group.gob ------------------------------------------------------------ revno: 1451 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-17 09:13:57 +0000 message: Created LoquiChannelEntryActionGroup added: src/loqui-channel-entry-action-group.gob modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1450 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-17 07:49:51 +0000 message: Added utility signals modified: libloqui/loqui-account-manager.gob ------------------------------------------------------------ revno: 1449 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-17 07:28:37 +0000 message: Use GOB for LoquiAccountManager removed: libloqui/loqui-account-manager.c libloqui/loqui-account-manager.h added: libloqui/loqui-account-manager.gob modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1448 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-08-17 06:17:35 +0000 message: loqui_account_manager.[ch] -> loqui-account-manager.[ch] renamed: libloqui/loqui_account_manager.c => libloqui/loqui-account-manager.c libloqui/loqui_account_manager.h => libloqui/loqui-account-manager.h modified: libloqui/Makefile.am.m4 libloqui/loqui_account_manager_iter.h libloqui/loqui_receiver_irc.c src/account_list_dialog.c src/account_list_dialog.h src/channel_tree.c src/loqui-account-dialog.gob src/loqui-core-gtk.gob src/loqui_account_manager_store.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channelbar.c src/loqui_statusbar.c src/nick_list.c libloqui/loqui-account-manager.c ------------------------------------------------------------ revno: 1447 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-16 16:01:19 +0000 message: Removed a compiler-warning modified: libloqui/loqui-utils.c ------------------------------------------------------------ revno: 1446 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-16 15:48:54 +0000 message: Added a sample of a string of autojoin modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1445 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-08-16 15:41:15 +0000 message: Check the autojoin string and handle channel keys in it. modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1444 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-13 09:20:23 +0000 message: Set a private talk as joined when a message is sent. modified: libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1443 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-13 09:17:35 +0000 message: Update last_message_time with LoquiChannel # append_remark modified: libloqui/loqui_channel.c libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1442 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-13 09:13:38 +0000 message: Separated the channel creator for IRC from ReceiverIRC. Parse PRIVMSG/NOTICE to send with SenderIRC's sent_* function. modified: libloqui/loqui_account_irc.c libloqui/loqui_account_irc.h libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1441 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-13 07:21:56 +0000 message: Updated test_ipmsg modified: test/test_ipmsg.c ------------------------------------------------------------ revno: 1440 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-13 07:21:42 +0000 message: Added not split test modified: test/test_string_tokenizer.c ------------------------------------------------------------ revno: 1439 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-08-13 07:19:33 +0000 message: Handle NULL as a programming error (check it with g_return_val_if_fail). modified: libloqui/loqui_codeconv.c libloqui/loqui_codeconv_tools.c ------------------------------------------------------------ revno: 1438 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-08-04 04:05:18 +0000 message: Fixed a memory-leak. modified: libloqui/loqui-utils.c ------------------------------------------------------------ revno: 1437 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-31 05:56:06 +0000 message: Handle IPMSG_GETINFO and reply IPMSG_SENDINFO modified: libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob ------------------------------------------------------------ revno: 1436 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-31 04:45:26 +0000 message: Fixed that some RPL_ constants are octal modified: libloqui/irc_constants.h ------------------------------------------------------------ revno: 1435 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-30 15:48:12 +0000 message: Created irc_message_get_target and map it to %t for irc_message_format() and use it. modified: libloqui/irc_message.c libloqui/irc_message.h libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1434 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-30 15:40:22 +0000 message: Use LoquiStringTokenizer to parse RPL_WHOREPLY modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1433 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-30 15:19:46 +0000 message: Created irc_message_get_last_param() (that returns NULL if no parameters exist) and map it to %L for irc_message_format(). modified: libloqui/irc_message.c libloqui/irc_message.h libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1432 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-30 14:34:26 +0000 message: Added +svn modified: configure.in ------------------------------------------------------------ revno: 1431 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-30 14:30:05 +0000 message: Don't mark a channel as updated with messages received until Loqui received PONG at first when 'DontMarkUntilFirstPongReceived' is enabled. modified: libloqui/ctcp_handle.c libloqui/loqui-general-pref-default.h libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui_channel.c libloqui/loqui_channel.h libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c src/prefs_dialog.c ------------------------------------------------------------ revno: 1430 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-30 08:28:57 +0000 message: Added new() to templates modified: template-gtk.gob template-lib.gob ------------------------------------------------------------ revno: 1429 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-30 08:16:59 +0000 message: Fix tests modified: test/test_message.c test/test_profile_account.c test/test_profile_handle.c test/test_utils.c ------------------------------------------------------------ revno: 1428 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-29 10:43:28 +0000 message: Added test_ipmsg (not worked) added: test/test_ipmsg.c modified: test/Makefile ------------------------------------------------------------ revno: 1427 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-22 07:54:26 +0000 message: Updated copyright year modified: src/about.c ------------------------------------------------------------ revno: 1426 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-22 07:53:51 +0000 message: Updated copyright year modified: template-gtk.gob template-lib.gob ------------------------------------------------------------ revno: 1425 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-22 07:51:18 +0000 message: 0.4.0. ------------------------------------------------------------ revno: 1424 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-22 07:50:40 +0000 message: 0.4.1 ------------------------------------------------------------ revno: 1423 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 18:07:55 +0000 message: 0.4.1 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 1422 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 18:06:16 +0000 message: Updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1421 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 17:51:35 +0000 message: Handling of an ignored message. modified: libloqui/loqui_channel.c src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1420 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 17:50:57 +0000 message: Added is_ignored property modified: libloqui/loqui-message-text.gob ------------------------------------------------------------ revno: 1419 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 17:39:44 +0000 message: Use GOB for LoquiMessageText removed: libloqui/loqui-message-text.c libloqui/loqui-message-text.h added: libloqui/loqui-message-text.gob modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1418 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 17:17:16 +0000 message: loqui_utils_free_string_list -> loqui_utils_free_list_and_elements modified: libloqui/loqui-utils.c libloqui/loqui-utils.h src/prefs_dialog.c ------------------------------------------------------------ revno: 1417 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 14:56:51 +0000 message: Changed the order of arguments of LOQUI_DEFINE_* macros modified: libloqui/loqui-gobject-utils.h libloqui/loqui-message-text.c libloqui/loqui-message-text.h libloqui/loqui_channel_entry.c libloqui/loqui_channel_entry.h libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h libloqui/loqui_user.c libloqui/loqui_user.h libloqui/loqui_user_ipmsg.c libloqui/loqui_user_ipmsg.h libloqui/loqui_user_irc.c libloqui/loqui_user_irc.h ------------------------------------------------------------ revno: 1416 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 14:27:52 +0000 message: Use LOQUI_DEFINE macros directly (not to use LOQUI_(CLASS_NAME)_* macros) modified: libloqui/loqui-gobject-utils.h libloqui/loqui_profile_account_irc.c libloqui/loqui_profile_account_irc.h ------------------------------------------------------------ revno: 1415 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 14:19:48 +0000 message: Use LOQUI_DEFINE macros directly (not to use LOQUI_(CLASS_NAME)_* macros) modified: libloqui/loqui_channel.c libloqui/loqui_channel.h libloqui/loqui_channel_entry.c libloqui/loqui_channel_entry.h libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h libloqui/loqui_user.c libloqui/loqui_user.h libloqui/loqui_user_ipmsg.c libloqui/loqui_user_ipmsg.h libloqui/loqui_user_irc.c libloqui/loqui_user_irc.h ------------------------------------------------------------ revno: 1414 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 13:55:46 +0000 message: Moved gobject_utils.[ch] to loqui-gobject-utils.[ch] renamed: libloqui/gobject_utils.c => libloqui/loqui-gobject-utils.c libloqui/gobject_utils.h => libloqui/loqui-gobject-utils.h modified: libloqui/Makefile.am.m4 libloqui/ipmsg_packet.c libloqui/loqui-message-text.h libloqui/loqui-profile-factory.c libloqui/loqui-profile.c libloqui/loqui-protocol.gob libloqui/loqui-transfer-item.gob libloqui/loqui_channel_buffer.c libloqui/loqui_profile_account.h libloqui/loqui_user.h libloqui/loqui_user_ipmsg.h src/loqui_channel_entry_action.c libloqui/loqui-gobject-utils.c ------------------------------------------------------------ revno: 1413 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 13:49:24 +0000 message: Use LOQUI_DEFINE prefix for ATTR_* macros. modified: libloqui/gobject_utils.h libloqui/loqui-message-text.c libloqui/loqui-message-text.h libloqui/loqui-transfer-item.gob libloqui/loqui_channel.h libloqui/loqui_channel_entry.h libloqui/loqui_profile_account.h libloqui/loqui_profile_account_irc.c libloqui/loqui_profile_account_irc.h libloqui/loqui_user.h libloqui/loqui_user_ipmsg.h libloqui/loqui_user_irc.h ------------------------------------------------------------ revno: 1412 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 13:38:23 +0000 message: Use LOQUI_ATTR_ACCESSOR_CONST_STRING_* modified: libloqui/loqui-message-text.c libloqui/loqui-message-text.h ------------------------------------------------------------ revno: 1411 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 13:32:44 +0000 message: Moved loqui_message_text.[ch] to loqui-message-text.[ch] renamed: libloqui/loqui_message_text.c => libloqui/loqui-message-text.c libloqui/loqui_message_text.h => libloqui/loqui-message-text.h modified: libloqui/Makefile.am.m4 libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui_channel_buffer.h libloqui/loqui_channel_entry.h src/loqui_channel_buffer_gtk.h libloqui/loqui-message-text.c ------------------------------------------------------------ revno: 1410 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 13:32:23 +0000 message: Updated POTFILES modified: po/POTFILES.in ------------------------------------------------------------ revno: 1409 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 13:19:24 +0000 message: Fixed the converter for MS unicode table. modified: libloqui/loqui_codeconv.c libloqui/loqui_codeconv_tools.c ------------------------------------------------------------ revno: 1408 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 11:46:45 +0000 message: Converter for MS-table modified: libloqui/loqui_codeconv.c libloqui/loqui_codeconv_tools.c libloqui/loqui_codeconv_tools.h ------------------------------------------------------------ revno: 1407 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 11:17:19 +0000 message: Moved utils.[ch] to loqui-utils.[ch] modified: src/account_list_dialog.c src/channel_tree.c src/gtkutils.c src/loqui-account-dialog.gob src/loqui_app.c src/loqui_channel_buffer_gtk.c src/main.c src/prefs_dialog.c ------------------------------------------------------------ revno: 1406 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 11:13:33 +0000 message: Moved utils.[ch] to loqui-utils.[ch] renamed: libloqui/utils.c => libloqui/loqui-utils.c libloqui/utils.h => libloqui/loqui-utils.h modified: libloqui/Makefile.am.m4 libloqui/ctcp_message.c libloqui/gobject_utils.h libloqui/ipmsg_packet.c libloqui/irc_message.c libloqui/loqui-account-ipmsg.gob libloqui/loqui-core.gob libloqui/loqui-generic-profile-factory.gob libloqui/loqui-mode-item.gob libloqui/loqui-mode-manager.gob libloqui/loqui-pref-partial.gob libloqui/loqui-pref-sequence.gob libloqui/loqui-property-profile.gob libloqui/loqui-protocol.gob libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui-socket-ipmsg.gob libloqui/loqui-transfer-item-irc.gob libloqui/loqui-transfer-item.gob libloqui/loqui_account.c libloqui/loqui_account_manager.c libloqui/loqui_channel.c libloqui/loqui_codeconv.c libloqui/loqui_receiver_irc.c libloqui/msn_message.c src/loqui-core-gtk.gob src/loqui-style-entry.gob src/loqui_style_entry.c src/prefs_general_upgrader.c src/remark_entry.c template-gtk.gob template-lib.gob libloqui/loqui-utils.c ------------------------------------------------------------ revno: 1405 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 11:02:29 +0000 message: Added LOQUI_ prefix to the function is utils modified: libloqui/ctcp_message.c libloqui/ipmsg_packet.c libloqui/irc_message.c libloqui/loqui-account-ipmsg.gob libloqui/loqui-mode-item.gob libloqui/loqui-pref-partial.gob libloqui/loqui-pref-sequence.gob libloqui/loqui-profile-handle.gob libloqui/loqui-property-profile.gob libloqui/loqui-protocol.gob libloqui/loqui_account.c libloqui/loqui_account_irc.c libloqui/loqui_account_manager.c libloqui/loqui_account_msn.c libloqui/loqui_channel.c libloqui/loqui_channel_entry.c libloqui/loqui_codeconv.c libloqui/loqui_member.c libloqui/loqui_message_text.c libloqui/loqui_profile_account.c libloqui/loqui_profile_account_irc.c libloqui/loqui_user.c libloqui/loqui_user_ipmsg.c libloqui/utils.h src/gtkutils.c src/loqui-style-entry.gob src/loqui_app.c src/loqui_app_info.c src/loqui_channel_buffer_gtk.c src/loqui_style_entry.c src/nick_list.c src/remark_entry.c ------------------------------------------------------------ revno: 1404 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 11:00:46 +0000 message: Added loqui_ prefix to util_ functions modified: libloqui/ipmsg_packet.c libloqui/irc_message.c libloqui/loqui-socket-ipmsg.gob libloqui/loqui_account.c libloqui/loqui_channel_entry.c libloqui/loqui_protocol_manager.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c libloqui/msn_message.c libloqui/utils.c libloqui/utils.h src/gtkutils.c src/loqui_app.c src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1403 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 10:38:05 +0000 message: Replaced debug_(print|puts) with loqui_debug_(print|puts). modified: libloqui/irc_message.c libloqui/loqui-receiver-ipmsg.gob libloqui/loqui_account_irc.c libloqui/loqui_channel.c libloqui/loqui_sender_irc.c libloqui/utils.c libloqui/utils.h src/gtkutils.c src/loqui-account-dialog.gob src/loqui_channel_buffer_gtk.c src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1402 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 10:33:43 +0000 message: Added +svn modified: configure.in ------------------------------------------------------------ revno: 1401 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 10:21:16 +0000 message: Search the nicknames of normal-ignore. modified: libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1400 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 10:19:55 +0000 message: Added USE_NORMAL_IGNORE. modified: libloqui/loqui-general-pref-default.h ------------------------------------------------------------ revno: 1399 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 09:56:13 +0000 message: Added the entries of 'normal ignore' to the prefs_dialog modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 1398 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 08:55:44 +0000 message: Quick hack to receive DCC-SEND. modified: libloqui/ctcp_handle.c ------------------------------------------------------------ revno: 1397 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 04:43:15 +0000 message: Created inet_addr setter/getter. modified: libloqui/ctcp_handle.c libloqui/loqui-transfer-item-irc.gob ------------------------------------------------------------ revno: 1396 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-17 04:06:45 +0000 message: Fixed handling of 'port' modified: libloqui/ctcp_handle.c ------------------------------------------------------------ revno: 1395 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 10:59:34 +0000 message: Changed the place of '#ifdef GDK_WINDOWING_X11' modified: src/eggtrayicon.c src/eggtrayicon.h ------------------------------------------------------------ revno: 1394 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 10:44:35 +0000 message: Set the properties of LoquiTransferItem modified: libloqui/ctcp_handle.c libloqui/gobject_utils.h libloqui/loqui-transfer-item-irc.gob libloqui/loqui-transfer-item.gob ------------------------------------------------------------ revno: 1393 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 10:07:13 +0000 message: Get GInetAddr from an address number modified: libloqui/ctcp_handle.c ------------------------------------------------------------ revno: 1392 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 08:38:15 +0000 message: Added a DCC handler modified: libloqui/ctcp_handle.c ------------------------------------------------------------ revno: 1391 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 08:36:32 +0000 message: Added LoquiTransferItem#new modified: libloqui/loqui-transfer-item-irc.gob ------------------------------------------------------------ revno: 1390 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 08:36:17 +0000 message: Added unrefwith ... and the is_upload property modified: libloqui/loqui-transfer-item.gob ------------------------------------------------------------ revno: 1389 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 08:35:51 +0000 message: Added CTCPMessage#get_param, CTCPMessage#count_parameters modified: libloqui/ctcp_message.c libloqui/ctcp_message.h ------------------------------------------------------------ revno: 1388 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 07:24:16 +0000 message: Use GtkAction for the toolbar modified: src/loqui-transfer-window.gob ------------------------------------------------------------ revno: 1387 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 07:23:54 +0000 message: Added loqui_transfer_window_ui UI definition added: src/embedtxt/loqui_transfer_window_ui.txt modified: src/embedtxt/Makefile.am ------------------------------------------------------------ revno: 1386 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 06:27:50 +0000 message: Added LoquiTransferItemIRC added: libloqui/loqui-transfer-item-irc.gob modified: libloqui/Makefile.am.m4 libloqui/loqui-transfer-item.gob ------------------------------------------------------------ revno: 1385 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 05:51:39 +0000 message: Don't set the account-buffer as the current buffer when it's connected. modified: src/loqui_app.c ------------------------------------------------------------ revno: 1384 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 05:33:09 +0000 message: Use GOB for Loqui:Transfer:Item. removed: libloqui/loqui_transfer_item.c libloqui/loqui_transfer_item.h added: libloqui/loqui-transfer-item.gob modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1383 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-10 04:31:44 +0000 message: Make LoquiUserIPMsg # get_identifier null-safe. modified: libloqui/loqui_user_ipmsg.c ------------------------------------------------------------ revno: 1382 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-08 15:45:50 +0000 message: Manage EggTrayIcon in LoquiTrayIcon. Added #ifdef GDK_WINDOWING_X11 removed: src/loqui-tray-icon.c src/loqui-tray-icon.h added: src/loqui-tray-icon.gob modified: src/eggtrayicon.c src/eggtrayicon.h src/loqui_app.c ------------------------------------------------------------ revno: 1381 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-08 14:01:29 +0000 message: Use GOB for LoquiTrayIcon modified: src/Makefile.am.m4 src/loqui-tray-icon.c src/loqui-tray-icon.h ------------------------------------------------------------ revno: 1380 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-08 13:31:24 +0000 message: Moved loqui_tray_icon.[ch] to loqui-tray-icon.[ch] renamed: src/loqui_tray_icon.c => src/loqui-tray-icon.c src/loqui_tray_icon.h => src/loqui-tray-icon.h modified: src/Makefile.am.m4 src/loqui_app.c src/loqui_app.h src/loqui-tray-icon.c ------------------------------------------------------------ revno: 1379 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-08 13:10:51 +0000 message: Changed the InfoColor modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1378 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-08 11:43:40 +0000 message: Added gdk_threads_enter(), gdk_threads_leave() modified: src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1377 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-07-06 10:31:27 +0000 message: Updated control modified: debian/control ------------------------------------------------------------ revno: 1376 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-07-06 10:16:11 +0000 message: Updated documentation modified: NEWS NEWS.ja README configure.in debian/control loqui.spec.in po/ja.po ------------------------------------------------------------ revno: 1375 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-07-05 16:16:19 +0000 message: Fixed the po modified: po/ja.po ------------------------------------------------------------ revno: 1374 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-07-04 15:02:30 +0000 message: Updated po modified: po/ja.po ------------------------------------------------------------ revno: 1373 committer: kouji branch nick: trunk timestamp: Mon 2005-07-04 06:42:56 +0000 message: updated japanese message catalog. modified: po/ja.po ------------------------------------------------------------ revno: 1372 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 11:29:20 +0000 message: New entries added modified: debian/changelog ------------------------------------------------------------ revno: 1371 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 11:19:13 +0000 message: Fixed modified: NEWS.ja ------------------------------------------------------------ revno: 1370 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 11:17:19 +0000 message: Fixed the NEWS modified: NEWS ------------------------------------------------------------ revno: 1369 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 11:15:29 +0000 message: 0.4.0pre4 ------------------------------------------------------------ revno: 1368 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 10:44:21 +0000 message: 0.4.0pre4 modified: configure.in ------------------------------------------------------------ revno: 1367 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 10:37:35 +0000 message: 0.4.0pre4 modified: NEWS NEWS.ja ------------------------------------------------------------ revno: 1366 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 10:35:56 +0000 message: Updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1365 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 10:34:34 +0000 message: Added \d$ to printf message modified: libloqui/ctcp_handle.c ------------------------------------------------------------ revno: 1364 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 10:06:53 +0000 message: Added an ad-hoc check of children (channels) existence modified: src/loqui_account_manager_store.c ------------------------------------------------------------ revno: 1363 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 09:22:01 +0000 message: Removed a debug message modified: src/loqui_account_manager_store.c ------------------------------------------------------------ revno: 1362 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 09:21:23 +0000 message: Added loqui_account_manager_store_remove_channel_after_cb modified: src/loqui_account_manager_store.c ------------------------------------------------------------ revno: 1361 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 08:58:33 +0000 message: Added close button modified: src/loqui-transfer-window.gob ------------------------------------------------------------ revno: 1360 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 08:39:43 +0000 message: Use GOB for LoquiTransferWindow removed: src/loqui-transfer-window.c src/loqui-transfer-window.h added: src/loqui-transfer-window.gob modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1359 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 08:29:08 +0000 message: Moved loqui_transfer_window.[ch] to loqui-transfer-window.[ch] renamed: src/loqui_transfer_window.c => src/loqui-transfer-window.c src/loqui_transfer_window.h => src/loqui-transfer-window.h modified: src/Makefile.am.m4 src/loqui_app.h src/loqui_app_actions.c src/loqui-transfer-window.c ------------------------------------------------------------ revno: 1358 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 08:25:46 +0000 message: Fixed the problem failed to disconnect a signal handler from LoquiPref modified: libloqui/loqui-pref-partial.gob ------------------------------------------------------------ revno: 1357 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-07-03 08:06:01 +0000 message: Fixed handling of a param element that has invalid key modified: libloqui/loqui-profile-handle.gob ------------------------------------------------------------ revno: 1356 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-02 07:16:02 +0000 message: 0.4.0pre3 ------------------------------------------------------------ revno: 1355 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-02 06:38:02 +0000 message: Changed Standards-Version modified: debian/control ------------------------------------------------------------ revno: 1354 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-02 06:37:40 +0000 message: Added quoting modified: debian/menu ------------------------------------------------------------ revno: 1353 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-07-02 06:37:32 +0000 message: Removed (s) modified: debian/copyright ------------------------------------------------------------ revno: 1352 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 17:56:07 +0000 message: 0.4.0pre3 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 1351 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 17:38:39 +0000 message: Updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1350 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 17:31:14 +0000 message: Fixed the typo modified: libloqui/loqui-profile-handle.gob ------------------------------------------------------------ revno: 1349 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 17:07:51 +0000 message: Updated svn:ignore ------------------------------------------------------------ revno: 1348 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 16:52:57 +0000 message: Use LoquiReceiverIPMsg modified: libloqui/loqui_protocol_ipmsg.c ------------------------------------------------------------ revno: 1347 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 16:49:42 +0000 message: LoquiProfileHandle now uses LoquiProfile, LoquiProfileFactory removed: libloqui/loqui-profile-handle.c libloqui/loqui-profile-handle.h added: libloqui/loqui-profile-handle.gob modified: libloqui/Makefile.am.m4 libloqui/loqui_account_manager.c ------------------------------------------------------------ revno: 1346 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 16:36:49 +0000 message: Fixed the account dialog modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1345 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 16:23:42 +0000 message: Added gob_to_built_sources(M4_SRC_PROTOCOL_BASE_BASE_GOB) modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1344 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 14:07:58 +0000 message: get_profile_value_type -> get_profile_value_spec modified: libloqui/loqui-profile.c libloqui/loqui-profile.h libloqui/loqui-property-profile.gob ------------------------------------------------------------ revno: 1343 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 13:58:28 +0000 message: [gs]et_type_name -> [gs]et_profile_type_name modified: libloqui/loqui-generic-profile-factory.gob libloqui/loqui-profile-factory.c libloqui/loqui-profile-factory.h libloqui/loqui-protocol.gob ------------------------------------------------------------ revno: 1342 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-07-01 13:54:18 +0000 message: [gs]et_type_name -> [gs]et_profile_type_name modified: libloqui/loqui-generic-profile-factory.gob libloqui/loqui-profile.c libloqui/loqui-profile.h libloqui/loqui-property-profile.gob libloqui/loqui-protocol.gob ------------------------------------------------------------ revno: 1341 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 17:18:23 +0000 message: Moved loqui_profile_handle.[ch] to loqui-profile-handle.[ch] renamed: libloqui/loqui_profile_handle.c => libloqui/loqui-profile-handle.c libloqui/loqui_profile_handle.h => libloqui/loqui-profile-handle.h modified: libloqui/Makefile.am.m4 libloqui/loqui_account_manager.c libloqui/loqui-profile-handle.c ------------------------------------------------------------ revno: 1340 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 16:59:34 +0000 message: Added set_type_name modified: libloqui/loqui-protocol.gob ------------------------------------------------------------ revno: 1339 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 16:59:11 +0000 message: strdup parameter name modified: libloqui/loqui-property-profile.gob ------------------------------------------------------------ revno: 1338 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 16:58:52 +0000 message: Added comments modified: libloqui/loqui-profile.h ------------------------------------------------------------ revno: 1337 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 16:58:34 +0000 message: Use LOQUI_DEFINE_INTERFACE_* macros modified: libloqui/loqui-profile-factory.c ------------------------------------------------------------ revno: 1336 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 15:01:58 +0000 message: Fixed the declaration of variables modified: libloqui/loqui-generic-profile-factory.gob ------------------------------------------------------------ revno: 1335 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 15:01:41 +0000 message: LoquiProfileAccount inherits LoquiPropertyProfile modified: libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h ------------------------------------------------------------ revno: 1334 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 15:00:39 +0000 message: Implements LoquiProfileFactory modified: libloqui/loqui-protocol.gob ------------------------------------------------------------ revno: 1333 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 15:00:05 +0000 message: Use loqui_channel_set_is_joined modified: libloqui/msn_login.c ------------------------------------------------------------ revno: 1332 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 14:20:46 +0000 message: Created LOQUI_DEFINE_* macros modified: libloqui/gobject_utils.h libloqui/loqui-profile.c libloqui/loqui_channel_buffer.c ------------------------------------------------------------ revno: 1331 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 13:42:29 +0000 message: Created LOQUI_DEFINE_INTERFACE modified: libloqui/gobject_utils.h libloqui/loqui-profile.c libloqui/loqui_channel_buffer.c ------------------------------------------------------------ revno: 1330 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 13:21:47 +0000 message: Disabled MSN modified: src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1329 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 13:19:24 +0000 message: Check the page of IRC in the dialog with the class only modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1328 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 12:59:39 +0000 message: Separated save/load profile data modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1327 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 12:36:54 +0000 message: Use LoquiProtocolSelectionDialog modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1326 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 12:36:20 +0000 message: Use GtkMessageDialog for LoquiProtocolSelectionDialog. Enabled to set default protocol for LoquiProtocolSelectionDialog. modified: src/loqui-protocol-selection-dialog.gob ------------------------------------------------------------ revno: 1325 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-06-29 11:37:06 +0000 message: Added libloqui/ modified: template-lib.gob ------------------------------------------------------------ revno: 1324 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-06-28 15:26:55 +0000 message: Added loqui_protocol_manager_get_protocol_list() modified: libloqui/loqui_protocol_manager.c libloqui/loqui_protocol_manager.h ------------------------------------------------------------ revno: 1323 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-06-28 15:24:57 +0000 message: Created LoquiProtocolSelectionDialog added: src/loqui-protocol-selection-dialog.gob modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1322 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-06-28 15:11:34 +0000 message: Added gi18n.h modified: template-gtk.gob ------------------------------------------------------------ revno: 1321 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-06-28 15:00:50 +0000 message: Removed intl.h modified: template-gtk.gob ------------------------------------------------------------ revno: 1320 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-06-28 14:03:49 +0000 message: Updated svn:ignore ------------------------------------------------------------ revno: 1319 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-06-28 14:01:26 +0000 message: Use GOB for LoquiProtocol class removed: libloqui/loqui-protocol.c libloqui/loqui-protocol.h added: libloqui/loqui-protocol.gob modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1318 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-06-28 13:43:06 +0000 message: Moved from loqui_protocol.[ch] loqui-protocol.[ch] renamed: libloqui/loqui_protocol.c => libloqui/loqui-protocol.c libloqui/loqui_protocol.h => libloqui/loqui-protocol.h modified: libloqui/Makefile.am.m4 libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h libloqui/loqui_protocol_ipmsg.h libloqui/loqui_protocol_irc.h libloqui/loqui_protocol_manager.h libloqui/loqui_protocol_msn.h libloqui/loqui-protocol.c ------------------------------------------------------------ revno: 1317 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-06-27 17:32:36 +0000 message: Fixed the type modified: libloqui/loqui-property-profile.gob ------------------------------------------------------------ revno: 1316 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-06-27 17:30:17 +0000 message: Moved loqui_profile_factory.[ch] to loqui-profile-factory.[ch] renamed: libloqui/loqui_profile_factory.c => libloqui/loqui-profile-factory.c libloqui/loqui_profile_factory.h => libloqui/loqui-profile-factory.h modified: libloqui/Makefile.am.m4 libloqui/loqui-generic-profile-factory.gob libloqui/loqui-profile-factory.c ------------------------------------------------------------ revno: 1315 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-06-27 17:25:54 +0000 message: Moved loqui_profile.[ch] to loqui-profile.[ch] renamed: libloqui/loqui_profile.c => libloqui/loqui-profile.c libloqui/loqui_profile.h => libloqui/loqui-profile.h modified: libloqui/Makefile.am.m4 libloqui/loqui-property-profile.gob libloqui/loqui_profile_factory.h libloqui/loqui-profile.c ------------------------------------------------------------ revno: 1314 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-06-27 17:15:47 +0000 message: Added LoquiPropertyProfile added: libloqui/loqui-property-profile.gob modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1313 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-06-27 17:14:26 +0000 message: Added get_profile_value_type, get_profile_key_list to LoquiProfile interface. modified: libloqui/loqui_profile.c libloqui/loqui_profile.h ------------------------------------------------------------ revno: 1312 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-06-27 09:21:39 +0000 message: Added set_profile_value, get_profile_value to LoquiProfile interface modified: libloqui/loqui_profile.c libloqui/loqui_profile.h ------------------------------------------------------------ revno: 1311 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-06-24 14:54:29 +0000 message: Continuing implementing LoquiProfile, LoquiProfileFactory added: libloqui/loqui-generic-profile-factory.gob modified: libloqui/Makefile.am.m4 libloqui/loqui_profile.c libloqui/loqui_profile.h libloqui/loqui_profile_factory.c libloqui/loqui_profile_factory.h ------------------------------------------------------------ revno: 1310 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-06-19 13:56:24 +0000 message: Added LoquiProfile, LoquiProfileFactory added: libloqui/loqui_profile.c libloqui/loqui_profile.h libloqui/loqui_profile_factory.c libloqui/loqui_profile_factory.h modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1309 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-06-16 12:31:43 +0000 message: Update sensitivity of actions related accounts/channels when joined/parted the current channel. modified: src/loqui_app_info.c ------------------------------------------------------------ revno: 1308 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-05-25 12:19:46 +0000 message: updated debian/changelog modified: debian/changelog ------------------------------------------------------------ revno: 1307 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-05-25 12:18:59 +0000 message: Added +svn modified: configure.in ------------------------------------------------------------ revno: 1306 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-05-25 12:18:34 +0000 message: 0.4.0pre2 ------------------------------------------------------------ revno: 1305 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-05-25 11:09:56 +0000 message: 0.4.0pre2 modified: NEWS NEWS.ja configure.in po/ja.po ------------------------------------------------------------ revno: 1304 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-05-25 10:58:46 +0000 message: Fixed the condition to check whether or not a GIConv is valid. modified: libloqui/loqui_codeconv.c ------------------------------------------------------------ revno: 1303 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-05-25 10:43:46 +0000 message: Removed libloqui.* line. modified: loqui.spec.in ------------------------------------------------------------ revno: 1302 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-05-20 14:44:40 +0000 message: Rewrote in reST modified: README ------------------------------------------------------------ revno: 1301 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 10:46:09 +0000 message: Added svn to MICRO_VERSION modified: configure.in ------------------------------------------------------------ revno: 1300 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 10:45:21 +0000 message: 0.4.0pre1 ------------------------------------------------------------ revno: 1299 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 10:44:35 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 1298 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 09:22:29 +0000 message: Make libraries static modified: NEWS NEWS.ja libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1297 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 08:42:14 +0000 message: Updated dependency. Added NEWS.ja to docs modified: debian/control debian/docs ------------------------------------------------------------ revno: 1296 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 08:32:17 +0000 message: Updated NEWS modified: NEWS NEWS.ja ------------------------------------------------------------ revno: 1295 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 08:09:42 +0000 message: Fetch the list of files from svn modified: update-potfiles.sh ------------------------------------------------------------ revno: 1294 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 08:09:19 +0000 message: Updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1293 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 07:59:17 +0000 message: Updated po modified: po/ja.po ------------------------------------------------------------ revno: 1292 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-05-15 07:37:39 +0000 message: Updated license notice modified: libloqui/ctcp_handle.c libloqui/ctcp_handle.h libloqui/ctcp_message.c libloqui/ctcp_message.h libloqui/gobject_utils.c libloqui/gobject_utils.h libloqui/irc_message.c libloqui/irc_message.h libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_account_manager.c libloqui/loqui_account_manager.h libloqui/loqui_channel.c libloqui/loqui_channel.h libloqui/loqui_channel_entry.c libloqui/loqui_channel_entry.h libloqui/loqui_codeconv.c libloqui/loqui_codeconv.h libloqui/loqui_member.c libloqui/loqui_member.h libloqui/loqui_message_text.c libloqui/loqui_message_text.h libloqui/loqui_receiver_irc.c libloqui/loqui_receiver_irc.h libloqui/utils.c libloqui/utils.h ------------------------------------------------------------ revno: 1291 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-05-10 15:37:21 +0000 message: Fixed to fail to parse MODE that include more than one targets. modified: libloqui/loqui-mode-manager.gob ------------------------------------------------------------ revno: 1290 committer: topia branch nick: trunk timestamp: Mon 2005-05-09 13:31:33 +0000 message: * support suse package. * add libloqui to install files. * update gtk2 version requisite to 2.4. modified: loqui.spec.in ------------------------------------------------------------ revno: 1289 committer: topia branch nick: trunk timestamp: Mon 2005-05-09 12:56:01 +0000 message: * fix make dist errors. modified: libloqui/Makefile.am.m4 po/POTFILES.in ------------------------------------------------------------ revno: 1288 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-05-07 13:53:51 +0000 message: Supress warnings that loqui can't remove a widget on a toggle button when startup. modified: src/gtkutils.c src/gtkutils.h src/loqui_channelbar.c src/loqui_statusbar.c src/remark_entry.c ------------------------------------------------------------ revno: 1287 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-05-06 11:41:22 +0000 message: Don't show +b/+e/+I on mode status. modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1286 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-04-19 06:02:31 +0000 message: * Fixed Loqui:Mode:Item. * Fixed the problem failed to parse MODE -v bar modified: libloqui/loqui-mode-item.gob libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1285 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-04-08 10:44:45 +0000 message: Use channel entry's name for account_name modified: libloqui/loqui_account.c ------------------------------------------------------------ revno: 1284 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-04-08 10:35:45 +0000 message: set id to Loqui:Pref:Partial with Loqui:Pref:Sequence modified: libloqui/loqui-pref-partial.gob libloqui/loqui-pref-sequence.gob ------------------------------------------------------------ revno: 1283 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-04-07 04:05:54 +0000 message: Handle the quit message from the non-existent user modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1282 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-04-01 13:29:32 +0000 message: Fixed the message for ERR_UNKNOWNMODE modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1281 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 09:57:16 +0000 message: Reply Gtk version to CTCP-VERSION modified: libloqui/ctcp_handle.c libloqui/loqui-core.gob src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1280 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 09:56:39 +0000 message: Added libloqui for POTFILES modified: update-potfiles.sh ------------------------------------------------------------ revno: 1279 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 07:01:05 +0000 message: fixed po modified: po/ja.po ------------------------------------------------------------ revno: 1278 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 06:55:05 +0000 message: Use handler_id instead of signal_id modified: src/channel_tree.c ------------------------------------------------------------ revno: 1277 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 06:54:09 +0000 message: Changed an function to expand the tree that will be selected (also fixed a memory leak). modified: src/channel_tree.c ------------------------------------------------------------ revno: 1276 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 06:51:02 +0000 message: Expand the tree if a channel is added. modified: src/channel_tree.c src/channel_tree.h src/loqui_app.c ------------------------------------------------------------ revno: 1275 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 05:54:37 +0000 message: Added 'the' modified: src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1274 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 03:18:02 +0000 message: Updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1273 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 03:03:23 +0000 message: Show the PART message of mine modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1272 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-31 02:09:22 +0000 message: Added conn check modified: libloqui/loqui_account_irc.c ------------------------------------------------------------ revno: 1271 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 14:34:45 +0000 message: Updated svn:ignore ------------------------------------------------------------ revno: 1270 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 14:28:44 +0000 message: Added loqui-pref-sequence.gob modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1269 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 14:28:30 +0000 message: Added get_groups modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1268 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 14:26:56 +0000 message: Separated each pages modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1267 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 14:14:47 +0000 message: Separated load function modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1266 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 13:53:44 +0000 message: Removed destroy method modified: src/loqui-account-dialog.gob ------------------------------------------------------------ revno: 1265 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 13:40:58 +0000 message: Use GOB for LoquiAccountDialog removed: src/account_dialog.c src/account_dialog.h added: src/loqui-account-dialog.gob modified: src/Makefile.am.m4 src/account_list_dialog.c ------------------------------------------------------------ revno: 1264 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 13:26:33 +0000 message: Fixed around GOB modified: src/Makefile.am.m4 ------------------------------------------------------------ revno: 1263 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 13:13:43 +0000 message: Implemented modified: libloqui/loqui-pref-sequence.gob ------------------------------------------------------------ revno: 1262 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 09:47:40 +0000 message: Created get_new_id modified: libloqui/loqui-pref-sequence.gob ------------------------------------------------------------ revno: 1261 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 09:43:08 +0000 message: Added has_group modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1260 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 09:42:58 +0000 message: Moved removed: libloqui/loqui-sequenced-pref.gob ------------------------------------------------------------ revno: 1259 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 09:42:43 +0000 message: Temporary added: libloqui/loqui-pref-sequence.gob ------------------------------------------------------------ revno: 1258 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 08:36:34 +0000 message: Fixed a problem fails to open private talk modified: libloqui/loqui_account.c ------------------------------------------------------------ revno: 1257 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 07:54:42 +0000 message: Added LoquiSenderIRC # ping_raw modified: libloqui/loqui_sender_irc.c libloqui/loqui_sender_irc.h ------------------------------------------------------------ revno: 1256 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 03:05:50 +0000 message: force_reconnect works when connected. modified: libloqui/loqui_account.c ------------------------------------------------------------ revno: 1255 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-29 03:01:21 +0000 message: Fixed a problem that it fails to reconnect modified: libloqui/loqui_account.c libloqui/loqui_account.h src/loqui_app_actions.c ------------------------------------------------------------ revno: 1254 committer: sunnyone41 branch nick: trunk timestamp: Mon 2005-03-28 07:26:57 +0000 message: Added M4_SRC_PROTOCOL_BASE_GOB to BUILT_SOURCES modified: libloqui/Makefile.am.m4 ------------------------------------------------------------ revno: 1253 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-27 07:35:09 +0000 message: Use is_change flag instead of set_flag_only argument modified: libloqui/loqui-mode-manager.gob ------------------------------------------------------------ revno: 1252 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-27 07:34:44 +0000 message: Reverted. modified: src/loqui_app_info.c src/loqui_channelbar.c ------------------------------------------------------------ revno: 1251 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-27 07:11:16 +0000 message: Use new LoquiModeManager # to_string modified: src/loqui_app_info.c src/loqui_channelbar.c ------------------------------------------------------------ revno: 1250 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-27 07:10:42 +0000 message: * Fixed handling of mode that needs an argument * Fixed MODE stringifier. modified: libloqui/loqui-mode-manager.gob ------------------------------------------------------------ revno: 1249 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-27 06:21:46 +0000 message: * Disconnect changed handler of mode_manager. * Connect the signal handler to the correct object. modified: libloqui/loqui_channel.c src/loqui_app_info.c ------------------------------------------------------------ revno: 1248 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-27 06:20:32 +0000 message: Set send_status_commands_mode = TRUE by default modified: libloqui/loqui-core.gob ------------------------------------------------------------ revno: 1247 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-03-25 19:10:18 +0000 message: Use Loqui:Mode:Manager added: libloqui/loqui-mode-item.gob libloqui/loqui-mode-manager.gob modified: libloqui/Makefile.am.m4 libloqui/loqui_channel.c libloqui/loqui_channel.h libloqui/loqui_receiver_irc.c src/loqui_app_info.c src/loqui_channelbar.c ------------------------------------------------------------ revno: 1246 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 17:15:33 +0000 message: Re-fix ( changeset:1245 ) modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1245 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 17:04:16 +0000 message: Show first argument in ReceiverIRC # error_nick_unusable modified: libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1244 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 17:00:50 +0000 message: Check gob2 modified: autogen.sh ------------------------------------------------------------ revno: 1243 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 16:49:20 +0000 message: Give higher priority to the mark of joined. modified: src/loqui_account_manager_store.c ------------------------------------------------------------ revno: 1242 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 16:48:24 +0000 message: Give higher priority to the mark of joined. modified: src/loqui_account_manager_store.c ------------------------------------------------------------ revno: 1241 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 15:54:33 +0000 message: Mark a private talk as joined when opened it modified: libloqui/loqui_account.c ------------------------------------------------------------ revno: 1240 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 15:48:21 +0000 message: Removed needless disconnect_all modified: src/loqui_app.c ------------------------------------------------------------ revno: 1239 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 15:24:38 +0000 message: Use YAML for NEWS/NEWS.ja modified: NEWS NEWS.ja ------------------------------------------------------------ revno: 1238 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 15:07:01 +0000 message: Add members unless they doesn't participate in a private talk. modified: libloqui/loqui_account.c ------------------------------------------------------------ revno: 1237 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 14:46:54 +0000 message: Show the unimplemented message to the account buffer. modified: libloqui/loqui_sender.c ------------------------------------------------------------ revno: 1236 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 10:24:45 +0000 message: Remove all users when a connection of IP Messenger is disconnected modified: libloqui/loqui-account-ipmsg.gob libloqui/loqui_account.c libloqui/loqui_account.h ------------------------------------------------------------ revno: 1235 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 06:18:12 +0000 message: Fixed the problem to fail parse a message includes : modified: libloqui/ipmsg_packet.c ------------------------------------------------------------ revno: 1234 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-23 05:46:59 +0000 message: Fixed invalid packet message modified: libloqui/loqui-socket-ipmsg.gob ------------------------------------------------------------ revno: 1233 committer: topia branch nick: trunk timestamp: Fri 2005-03-18 04:19:15 +0000 message: * loqui-am-macros.m4 (Makefile.am): add loqui-am-macros.m4 to dependency. * loqui-am-macros.m4 (show-needless-svn-ignore, add-built-sources-to-svn-ignore): add. * libloqui, src (svn:ignore): tweak with add-built-sources-to-svn-ignore. modified: loqui-am-macros.m4 ------------------------------------------------------------ revno: 1232 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-17 14:36:46 +0000 message: Use LoquiPrefPartial in LoquiChannelBufferGtk . modified: libloqui/loqui-pref-partial.gob src/loqui_app.c src/loqui_channel_buffer_gtk.c src/loqui_channel_buffer_gtk.h ------------------------------------------------------------ revno: 1231 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-17 13:54:35 +0000 message: Added LoquiPrefPartial # foreach modified: libloqui/loqui-pref-partial.gob libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1230 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 19:25:43 +0000 message: Fixed using wrong identifier modified: libloqui/loqui-sender-ipmsg.gob ------------------------------------------------------------ revno: 1229 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 19:21:23 +0000 message: Convert codeset for server in IPMsg. Show the command if failed to convert codeset. modified: libloqui/loqui-socket-ipmsg.gob libloqui/loqui_account_irc.c ------------------------------------------------------------ revno: 1228 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 19:13:40 +0000 message: * Use LoquiAccount # open_private_talk . * Handle RECVMSG. * Implemented LoquiSenderIPMsg # start_private_talk, # say. * Created LoquiAccount # remove_user_from_all and use. * Set ip_addr/port to user_self for IPMsg. modified: libloqui/loqui-account-ipmsg.gob libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1227 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 19:10:29 +0000 message: Added LoquiSocketIPMsg # get_current_port modified: libloqui/loqui-socket-ipmsg.gob ------------------------------------------------------------ revno: 1226 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 17:59:36 +0000 message: Create LoquiAccount # open_private_talk modified: libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1225 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 17:58:28 +0000 message: Added LoquiProtocol # create_channel modified: libloqui/loqui_protocol.c libloqui/loqui_protocol.h ------------------------------------------------------------ revno: 1224 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 16:39:52 +0000 message: Return RECVMSG when the message is received. modified: libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob ------------------------------------------------------------ revno: 1223 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 15:52:32 +0000 message: Added other destination of IPMsgPacket modified: libloqui/loqui-sender-ipmsg.gob libloqui/loqui-socket-ipmsg.gob ------------------------------------------------------------ revno: 1222 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 15:29:05 +0000 message: Show an message when received an message from an unrecognized user. modified: libloqui/loqui-receiver-ipmsg.gob ------------------------------------------------------------ revno: 1221 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 15:17:51 +0000 message: Receives IP Messenger messages temporarily modified: libloqui/loqui-receiver-ipmsg.gob ------------------------------------------------------------ revno: 1220 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 14:37:05 +0000 message: Changed the message of quit modified: libloqui/loqui-receiver-ipmsg.gob ------------------------------------------------------------ revno: 1219 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 14:35:11 +0000 message: Fixed the parser of IP Messenger packets modified: libloqui/ipmsg_packet.c libloqui/loqui-socket-ipmsg.gob ------------------------------------------------------------ revno: 1218 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 14:23:34 +0000 message: Sends BR_EXIT when disconnected. Changed the message of BR_EXIT modified: libloqui/loqui-account-ipmsg.gob libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob ------------------------------------------------------------ revno: 1217 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 14:10:07 +0000 message: Implemented IPMSG_ANSENTRY and ABSENCEOPT modified: libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob ------------------------------------------------------------ revno: 1216 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 12:05:17 +0000 message: Added loqui-utils-ipmsg.[ch] added: libloqui/loqui-utils-ipmsg.c libloqui/loqui-utils-ipmsg.h ------------------------------------------------------------ revno: 1215 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 12:04:55 +0000 message: Added LoquiAccount#fetch_user_by_pair, loqui_utils_ipmsg_create_identifier. LoquiReceiverIPMsg receives IPMSG_ANSENTRY. modified: libloqui/Makefile.am.m4 libloqui/ipmsg_packet.c libloqui/loqui-account-ipmsg.gob libloqui/loqui-receiver-ipmsg.gob ------------------------------------------------------------ revno: 1214 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 12:03:49 +0000 message: Added loqui_account_append_text_printf() modified: libloqui/loqui_account.c libloqui/loqui_account.h ------------------------------------------------------------ revno: 1213 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 11:12:09 +0000 message: Created loqui_account_print_communication modified: libloqui/ipmsg_packet.c libloqui/loqui-socket-ipmsg.gob libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_account_irc.c ------------------------------------------------------------ revno: 1212 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 10:58:28 +0000 message: Fixed an error message of profile handler modified: libloqui/loqui_profile_handle.c ------------------------------------------------------------ revno: 1211 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 10:56:49 +0000 message: Changed IPMsgPacket inspect format modified: libloqui/ipmsg_packet.c ------------------------------------------------------------ revno: 1210 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 10:39:07 +0000 message: Fixed a memory leak modified: libloqui/ipmsg_packet.c ------------------------------------------------------------ revno: 1209 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 10:31:52 +0000 message: Replaced extra with group modified: libloqui/loqui-socket-ipmsg.gob ------------------------------------------------------------ revno: 1208 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 10:29:16 +0000 message: Use LoquiCodeConv for IPMsg. modified: libloqui/loqui-socket-ipmsg.gob libloqui/loqui_protocol_ipmsg.c ------------------------------------------------------------ revno: 1207 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 10:29:00 +0000 message: Show errno when an unknown error occurs modified: libloqui/loqui_codeconv.c ------------------------------------------------------------ revno: 1206 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 09:50:32 +0000 message: Rewrote IPMsgSocket with GOB removed: libloqui/ipmsg_socket.c libloqui/ipmsg_socket.h added: libloqui/loqui-socket-ipmsg.gob modified: libloqui/Makefile.am.m4 libloqui/loqui-account-ipmsg.gob libloqui/loqui-sender-ipmsg.gob ------------------------------------------------------------ revno: 1205 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 08:32:55 +0000 message: Rewrote LoquiSenderIPMsg with GOB removed: libloqui/loqui_sender_ipmsg.c libloqui/loqui_sender_ipmsg.h added: libloqui/loqui-sender-ipmsg.gob modified: libloqui/Makefile.am.m4 libloqui/loqui-account-ipmsg.gob ------------------------------------------------------------ revno: 1204 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 08:11:48 +0000 message: Added svn:ignore ------------------------------------------------------------ revno: 1203 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-03-16 08:09:11 +0000 message: Rewrote LoquiReceiverIPMsg with GOB removed: libloqui/loqui_receiver_ipmsg.c libloqui/loqui_receiver_ipmsg.h added: libloqui/loqui-receiver-ipmsg.gob modified: libloqui/Makefile.am.m4 libloqui/loqui-account-ipmsg.gob ------------------------------------------------------------ revno: 1202 committer: topia branch nick: trunk timestamp: Tue 2005-03-15 16:45:58 +0000 message: We really need automake >= 1.5 to use conditional and EXTRA_DIST. modified: Makefile.am ------------------------------------------------------------ revno: 1201 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-15 15:36:21 +0000 message: override constructor modified: libloqui/loqui-account-ipmsg.gob ------------------------------------------------------------ revno: 1200 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-15 15:25:53 +0000 message: Rewrote LoquiAccountIPMsg with GOB removed: libloqui/loqui_account_ipmsg.c libloqui/loqui_account_ipmsg.h added: libloqui/loqui-account-ipmsg.gob modified: libloqui/Makefile.am.m4 libloqui/loqui_protocol_ipmsg.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_ipmsg.c ------------------------------------------------------------ revno: 1199 committer: topia branch nick: trunk timestamp: Tue 2005-03-15 14:39:55 +0000 message: Set svn:ignore properties, and remove .cvsignore. removed: .cvsignore src/.cvsignore src/embedtxt/.cvsignore src/icons/.cvsignore test/.cvsignore ------------------------------------------------------------ revno: 1198 committer: topia branch nick: trunk timestamp: Tue 2005-03-15 12:56:45 +0000 message: Generate automake makefiles with m4. * autogen.sh: Use 'set -e', and add m4 processing. * loqui-am-macros.m4: Common pieces for m4's automake makefiles(include gob macros). * libloqui/Makefile.am.m4: Rename from libloqui/Makefile.am, and modify to use m4 for gob filename translation (INCLUDES): Make buildable with srcdir != builddir. * src/Makefile.am.m4: Likewise. added: loqui-am-macros.m4 renamed: libloqui/Makefile.am => libloqui/Makefile.am.m4 src/Makefile.am => src/Makefile.am.m4 modified: autogen.sh libloqui/Makefile.am.m4 src/Makefile.am.m4 ------------------------------------------------------------ revno: 1197 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-15 07:45:15 +0000 message: Removed needless command modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 1196 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-03-15 07:44:07 +0000 message: Changed the annotation of browser command modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 1195 committer: topia branch nick: trunk timestamp: Mon 2005-03-14 08:59:07 +0000 message: * de-quote from dialog message. modified: src/command_dialog.c ------------------------------------------------------------ revno: 1194 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-13 07:47:28 +0000 message: Watch sent messages with loqui_sender_irc_message_sent(). Print outgoing IRC message with --show-msg and changed the format of the printed string. modified: libloqui/loqui_account_irc.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c libloqui/loqui_sender_irc.h ------------------------------------------------------------ revno: 1193 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-03-13 07:34:19 +0000 message: Look up the command table with the strup'ed command string modified: libloqui/irc_message.c ------------------------------------------------------------ revno: 1192 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-03-11 09:49:19 +0000 message: Added shadow to scrolled windows of tree views modified: src/loqui_app.c ------------------------------------------------------------ revno: 1191 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-10 17:35:52 +0000 message: Use msg_queue modified: libloqui/loqui_account_irc.c ------------------------------------------------------------ revno: 1190 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-03-10 07:21:41 +0000 message: Fixed disconnecting wrong handler. modified: src/loqui_app_info.c ------------------------------------------------------------ revno: 1189 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-02-22 11:06:41 +0000 message: Added GDK_Menu to ignoring keys modified: src/loqui_app.c ------------------------------------------------------------ revno: 1188 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-02-19 15:57:05 +0000 message: Use LoquiPref#foreach modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1187 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-02-19 15:56:48 +0000 message: Use GET_WITH_DEFAULT_MACRO. Created LoquiPref#foreach. modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1186 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-02-18 02:26:45 +0000 message: Added SequencedPref added: libloqui/loqui-sequenced-pref.gob ------------------------------------------------------------ revno: 1185 committer: sunnyone41 branch nick: trunk timestamp: Thu 2005-02-10 07:34:33 +0000 message: Fixed the key of ignore patterns modified: libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1184 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-02-08 01:52:52 +0000 message: Removed #include "intl.h". modified: libloqui/loqui-core.gob src/loqui-core-gtk.gob src/loqui-style-entry.gob ------------------------------------------------------------ revno: 1183 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-02-06 12:43:52 +0000 message: Removed intl.h. Use libloqui-intl.h removed: libloqui/intl.h added: libloqui/libloqui-intl.h modified: libloqui/ctcp_handle.c libloqui/ctcp_message.c libloqui/ipmsg_socket.c libloqui/irc_message.c libloqui/loqui_account.c libloqui/loqui_account_ipmsg.c libloqui/loqui_account_irc.c libloqui/loqui_account_manager.c libloqui/loqui_account_msn.c libloqui/loqui_channel.c libloqui/loqui_channel_entry.c libloqui/loqui_codeconv.c libloqui/loqui_marshalers.c libloqui/loqui_member.c libloqui/loqui_message.c libloqui/loqui_message_text.c libloqui/loqui_profile_account.c libloqui/loqui_profile_account_irc.c libloqui/loqui_profile_handle.c libloqui/loqui_protocol_irc.c libloqui/loqui_receiver_ipmsg.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_ipmsg.c libloqui/loqui_sender_irc.c libloqui/loqui_user.c libloqui/loqui_user_ipmsg.c libloqui/loqui_user_irc.c libloqui/lqgkeyfile.c libloqui/msn_login.c libloqui/utils.c ------------------------------------------------------------ revno: 1182 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-02-06 12:38:05 +0000 message: Don't use intl.h modified: src/account_dialog.c src/account_list_dialog.c src/channel_tree.c src/command_dialog.c src/gtkutils.c src/loqui_app.c src/loqui_app_actions.c src/loqui_app_info.c src/loqui_channel_entry_action.c src/loqui_channel_text_view.c src/loqui_channelbar.c src/loqui_select_dialog.c src/loqui_statusbar.c src/loqui_transfer_window.c src/main.c src/nick_list.c src/prefs_dialog.c src/prefs_general_upgrader.c src/remark_entry.c ------------------------------------------------------------ revno: 1181 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-02-06 12:18:55 +0000 message: Added libloqui-intl.h, LoquiPrefPartial added: libloqui/loqui-pref-partial.gob modified: libloqui/Makefile.am template-lib.gob ------------------------------------------------------------ revno: 1180 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-02-04 02:59:44 +0000 message: Fixed IS_NOT_FOUND_ERROR() macro. (Added KEY_ prefix to error code) modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1179 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-02-04 02:58:48 +0000 message: Changed the order to execute the browser command and get it modified: src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1178 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-02-04 02:27:03 +0000 message: Changed version to 0.4.0pre1 modified: configure.in ------------------------------------------------------------ revno: 1177 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-02-04 02:20:46 +0000 message: Check G_GNUC_MALLOC is defined or not modified: libloqui/lqgkeyfile.h ------------------------------------------------------------ revno: 1176 committer: topia branch nick: trunk timestamp: Sat 2005-01-29 12:15:23 +0000 message: * fix usage message(extra newline). modified: src/main.c ------------------------------------------------------------ revno: 1175 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 18:08:56 +0000 message: Use LoquiPref. Removed PrefsGeneral. added: src/loqui-general-pref-gtk-default.h src/loqui-general-pref-gtk-groups.h src/loqui-general-pref-gtk.h modified: src/Makefile.am src/loqui-core-gtk.gob src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_app_info.c src/loqui_channel_buffer_gtk.c src/loqui_channel_text_view.c src/prefs_dialog.c src/prefs_general_upgrader.c src/remark_entry.c ------------------------------------------------------------ revno: 1174 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 18:07:54 +0000 message: Fixed loqui_utils_list_to_string(), LOQUI_UTILS_EMPTY_IF_NULL(). modified: libloqui/utils.c libloqui/utils.h ------------------------------------------------------------ revno: 1173 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 17:49:16 +0000 message: Removed prefs_general. modified: libloqui/loqui_codeconv.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1172 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 17:21:38 +0000 message: Removed PrefsGeneral. removed: libloqui/prefs_general.c libloqui/prefs_general.h modified: libloqui/Makefile.am ------------------------------------------------------------ revno: 1171 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 17:06:22 +0000 message: Added LOQUI_UTILS_EMPTY_IF_NULL(), loqui_utils_string_array_to_list(), loqui_utils_list_to_string_array(), loqui_utils_free_string_list(). modified: libloqui/utils.c libloqui/utils.h ------------------------------------------------------------ revno: 1170 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 14:45:42 +0000 message: Merged separated BUILT_SOURCES modified: libloqui/Makefile.am ------------------------------------------------------------ revno: 1169 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 14:44:49 +0000 message: Removed loqui-general-pref.h loqui-general-pref-keys.h. Added loqui-general-pref-groups.h removed: libloqui/loqui-general-pref-keys.h added: libloqui/loqui-general-pref-groups.h modified: libloqui/Makefile.am libloqui/loqui_account.c libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1168 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 14:42:02 +0000 message: Use loqui-static-core. Use get_with_default_* added: libloqui/loqui-static-core.c libloqui/loqui-static-core.h modified: libloqui/Makefile.am libloqui/ipmsg_socket.c libloqui/loqui-core.gob libloqui/loqui-general-pref-default.h libloqui/loqui.c libloqui/loqui.h libloqui/loqui_account.c libloqui/loqui_account_irc.c libloqui/loqui_account_manager.c libloqui/loqui_channel.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c libloqui/prefs_general.c libloqui/utils.c ------------------------------------------------------------ revno: 1167 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-26 14:40:45 +0000 message: Added has_key(), get_with_default_*(). Renamed set_*_default to set_default_*. modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1166 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-01-23 12:43:38 +0000 message: Removed loqui-general-pref.h removed: libloqui/loqui-general-pref.h modified: libloqui/loqui_account.c libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1165 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-01-23 12:41:55 +0000 message: Removed inappropriate cast for GIConv modified: libloqui/loqui_codeconv.c ------------------------------------------------------------ revno: 1164 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-01-23 12:16:00 +0000 message: Added set_integer_default modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1163 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-01-23 11:49:22 +0000 message: Added prefs_general_upgrader added: src/prefs_general_upgrader.c src/prefs_general_upgrader.h modified: src/Makefile.am ------------------------------------------------------------ revno: 1162 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-01-23 11:43:45 +0000 message: set_default_and_get_* modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1161 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-22 04:08:37 +0000 message: Added loqui_get_general_pref modified: libloqui/loqui.c libloqui/loqui.h ------------------------------------------------------------ revno: 1160 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-01-21 05:40:03 +0000 message: Supported new type modified: libloqui/loqui-general-pref.h libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1159 committer: sunnyone41 branch nick: trunk timestamp: Fri 2005-01-21 05:38:54 +0000 message: Added loqui_utils_count_strarray() modified: libloqui/utils.c libloqui/utils.h ------------------------------------------------------------ revno: 1158 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 08:11:19 +0000 message: Added general-pref*.h modified: libloqui/Makefile.am ------------------------------------------------------------ revno: 1157 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 08:09:49 +0000 message: Load/Save general_pref modified: src/loqui-core-gtk.gob ------------------------------------------------------------ revno: 1156 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 08:09:31 +0000 message: Check whether or not the string list exists modified: libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1155 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 07:58:41 +0000 message: Use general_pref modified: libloqui/loqui-general-pref-default.h libloqui/loqui-general-pref-keys.h libloqui/loqui-general-pref.h libloqui/loqui_account_irc.c libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1154 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 07:56:55 +0000 message: Added string_list modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1153 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 07:06:14 +0000 message: Use general_pref modified: libloqui/loqui_account.c ------------------------------------------------------------ revno: 1152 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 07:05:56 +0000 message: Added general_pref added: libloqui/loqui-general-pref-default.h libloqui/loqui-general-pref-keys.h libloqui/loqui-general-pref.h modified: libloqui/loqui-core.gob ------------------------------------------------------------ revno: 1151 committer: sunnyone41 branch nick: trunk timestamp: Sat 2005-01-15 07:04:46 +0000 message: Added boolean modified: libloqui/loqui-pref.gob ------------------------------------------------------------ revno: 1150 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-12 14:39:28 +0000 message: Remove old lines in append_message_text(). modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1149 committer: sunnyone41 branch nick: trunk timestamp: Wed 2005-01-12 14:19:14 +0000 message: Removed include style-prefs modified: src/loqui_app.h ------------------------------------------------------------ revno: 1148 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-01-11 16:56:41 +0000 message: Moved a group Buffer to BufferText modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1147 committer: sunnyone41 branch nick: trunk timestamp: Tue 2005-01-11 16:53:48 +0000 message: Removed LoquiStylePrefs. modified: src/Makefile.am ------------------------------------------------------------ revno: 1146 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-01-09 08:16:19 +0000 message: Created LoquiPref. added: libloqui/loqui-pref.gob modified: libloqui/Makefile.am ------------------------------------------------------------ revno: 1145 committer: sunnyone41 branch nick: trunk timestamp: Sun 2005-01-09 08:16:01 +0000 message: Use LoquiPref. Removed LoquiStylePrefs removed: src/loqui-style-prefs.gob modified: src/loqui-core-gtk.gob src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1144 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 11:21:54 +0000 message: Load buffer style information from stylerc modified: src/loqui-core-gtk.gob src/loqui-style-prefs.gob src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1143 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 11:21:27 +0000 message: added g_thread_init() modified: libloqui/loqui-core.gob ------------------------------------------------------------ revno: 1142 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 10:22:55 +0000 message: Created LoquiGtkCore. removed: src/loqui_gtk.c src/loqui_gtk.h added: src/loqui-core-gtk.gob src/loqui-style-prefs.gob modified: src/Makefile.am src/channel_tree.c src/loqui_account_manager_store.c src/loqui_app.c src/loqui_app.h src/loqui_channel_buffer_gtk.c src/loqui_channel_entry_action.c src/loqui_channelbar.c src/main.c ------------------------------------------------------------ revno: 1141 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 09:11:08 +0000 message: Fixed about renaming. modified: libloqui/lqgkeyfile.c ------------------------------------------------------------ revno: 1140 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 09:08:20 +0000 message: Moved gkeyfile to lqgkeyfile renamed: libloqui/gkeyfile.c => libloqui/lqgkeyfile.c libloqui/gkeyfile.h => libloqui/lqgkeyfile.h modified: libloqui/Makefile.am libloqui/loqui-core.gob ------------------------------------------------------------ revno: 1139 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 09:07:40 +0000 message: Added Lq prefix modified: libloqui/gkeyfile.c libloqui/gkeyfile.h ------------------------------------------------------------ revno: 1138 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 05:33:21 +0000 message: Changed for Loqui:Core modified: src/main.c ------------------------------------------------------------ revno: 1137 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 05:28:38 +0000 message: Fixed templates modified: template-gtk.gob template-lib.gob ------------------------------------------------------------ revno: 1136 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 05:20:07 +0000 message: Created Loqui:Core added: libloqui/loqui-core.gob modified: libloqui/Makefile.am libloqui/ipmsg_socket.c libloqui/loqui.c libloqui/loqui.h libloqui/loqui_account_irc.c libloqui/loqui_account_manager.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c libloqui/prefs_general.c libloqui/utils.c src/loqui_app.c src/loqui_gtk.c src/main.c ------------------------------------------------------------ revno: 1135 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 04:37:15 +0000 message: Added GOB template added: template-gtk.gob template-lib.gob ------------------------------------------------------------ revno: 1134 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-12-30 04:35:22 +0000 message: backported GKeyFile added: libloqui/gkeyfile.c libloqui/gkeyfile.h modified: configure.in libloqui/Makefile.am ------------------------------------------------------------ revno: 1133 committer: topia branch nick: trunk timestamp: Tue 2004-12-28 08:32:19 +0000 message: generate and install shared libloqui modified: libloqui/Makefile.am ------------------------------------------------------------ revno: 1132 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 06:17:23 +0000 message: Set sensitivity of CloseChannel and JoinCurrentChannel modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c ------------------------------------------------------------ revno: 1131 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 06:08:22 +0000 message: Added 'JoinCurrentChannel' modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c src/loqui_app_actions.h ------------------------------------------------------------ revno: 1130 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 05:55:35 +0000 message: Added 'CloseChannel' feature. modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c src/loqui_app_actions.h ------------------------------------------------------------ revno: 1129 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 05:54:45 +0000 message: Added LoquiStyleEntry added: src/loqui-style-entry.gob modified: src/Makefile.am ------------------------------------------------------------ revno: 1128 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 05:53:42 +0000 message: Don't remove the channel when parted/kicked modified: libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1127 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 05:52:48 +0000 message: Added debug message for _dispose modified: libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1126 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 04:06:39 +0000 message: Set all channels as unjoined when the account is disconnected. modified: libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_account_irc.c libloqui/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1125 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-12-26 03:11:34 +0000 message: Disabled the dialog of selecting buffer modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 1124 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-11-10 10:14:22 +0000 message: Added '...' modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 1123 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-11-10 10:11:12 +0000 message: Show channel entry list on buffer-selection-dialog. modified: src/loqui_app_actions.c src/loqui_select_dialog.c src/loqui_select_dialog.h ------------------------------------------------------------ revno: 1122 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-11-10 09:05:36 +0000 message: Disabled the menuitem for transfer window. modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 1121 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-11-10 09:01:01 +0000 message: Added #include modified: src/loqui_app.c ------------------------------------------------------------ revno: 1120 committer: topia branch nick: trunk timestamp: Wed 2004-11-10 08:57:49 +0000 message: make Account menu for only current account. (Account/Connect menu move into File menu, and remove "Current Account" suffix from entries.) modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c ------------------------------------------------------------ revno: 1119 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-11-10 08:42:16 +0000 message: Added LoquiStyleEntry. added: src/loqui_style_entry.c src/loqui_style_entry.h modified: src/Makefile.am ------------------------------------------------------------ revno: 1118 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-11-09 16:29:47 +0000 message: Added selection dialog added: src/loqui_select_dialog.c src/loqui_select_dialog.h modified: src/Makefile.am src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c ------------------------------------------------------------ revno: 1117 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-11-09 15:13:06 +0000 message: Created loqui_[gs]et_user_dir(). Read LOQUI_USER_DIR environmental variable. modified: libloqui/loqui.c libloqui/loqui.h libloqui/loqui_account_manager.c libloqui/prefs_general.c src/loqui_app.c src/loqui_gtk.c src/main.c src/main.h ------------------------------------------------------------ revno: 1116 committer: kouji branch nick: trunk timestamp: Wed 2004-11-03 14:04:02 +0000 message: update ja.po. modified: po/ja.po ------------------------------------------------------------ revno: 1115 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-10-15 03:50:29 +0000 message: Changed libloqui's license to LGPL added: LICENSE modified: libloqui/ipmsg_packet.c libloqui/ipmsg_packet.h libloqui/ipmsg_socket.c libloqui/ipmsg_socket.h libloqui/loqui.c libloqui/loqui.h libloqui/loqui_account_ipmsg.c libloqui/loqui_account_ipmsg.h libloqui/loqui_account_irc.c libloqui/loqui_account_irc.h libloqui/loqui_account_manager_iter.c libloqui/loqui_account_manager_iter.h libloqui/loqui_account_msn.c libloqui/loqui_account_msn.h libloqui/loqui_channel_buffer.c libloqui/loqui_channel_buffer.h libloqui/loqui_channel_entry_utils.c libloqui/loqui_channel_entry_utils.h libloqui/loqui_channel_irc.c libloqui/loqui_channel_irc.h libloqui/loqui_codeconv_tools.c libloqui/loqui_codeconv_tools.h libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h libloqui/loqui_profile_account_ipmsg.c libloqui/loqui_profile_account_ipmsg.h libloqui/loqui_profile_account_irc.c libloqui/loqui_profile_account_irc.h libloqui/loqui_profile_handle.c libloqui/loqui_profile_handle.h libloqui/loqui_protocol.c libloqui/loqui_protocol.h libloqui/loqui_protocol_ipmsg.c libloqui/loqui_protocol_ipmsg.h libloqui/loqui_protocol_irc.c libloqui/loqui_protocol_irc.h libloqui/loqui_protocol_manager.c libloqui/loqui_protocol_manager.h libloqui/loqui_protocol_msn.c libloqui/loqui_protocol_msn.h libloqui/loqui_receiver.c libloqui/loqui_receiver.h libloqui/loqui_receiver_ipmsg.c libloqui/loqui_receiver_ipmsg.h libloqui/loqui_sender.c libloqui/loqui_sender.h libloqui/loqui_sender_ipmsg.c libloqui/loqui_sender_ipmsg.h libloqui/loqui_sender_irc.c libloqui/loqui_sender_irc.h libloqui/loqui_transfer_item.c libloqui/loqui_transfer_item.h libloqui/loqui_user.c libloqui/loqui_user.h libloqui/loqui_user_ipmsg.c libloqui/loqui_user_ipmsg.h libloqui/loqui_user_irc.c libloqui/loqui_user_irc.h libloqui/loqui_utils_irc.c libloqui/loqui_utils_irc.h libloqui/loqui_webutils.c libloqui/loqui_webutils.h libloqui/msn_login.c libloqui/msn_login.h libloqui/msn_message.c libloqui/msn_message.h ------------------------------------------------------------ revno: 1114 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-10-15 03:38:50 +0000 message: Added LoquiTransferItem. Save highlight regions. added: libloqui/loqui_transfer_item.c libloqui/loqui_transfer_item.h modified: libloqui/Makefile.am libloqui/loqui_message_text.c libloqui/loqui_message_text.h src/loqui_app.c ------------------------------------------------------------ revno: 1113 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-10-13 11:23:13 +0000 message: Fixed the problem failed to draw underline modified: src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1112 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-10-13 10:34:06 +0000 message: Draw underline when only the mouse cusor is on the link modified: src/loqui_channel_buffer_gtk.c src/loqui_channel_buffer_gtk.h src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1111 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-10-13 08:47:46 +0000 message: Update the mouse cursor when a visibility event received. modified: src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1110 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-10-13 08:11:49 +0000 message: Open URI with 1-click. Change icon when the mouse cursor on a link. modified: src/loqui_channel_buffer_gtk.c src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 1109 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-10-12 15:19:01 +0000 message: Added transfer window added: src/loqui_transfer_window.c src/loqui_transfer_window.h modified: src/Makefile.am src/embedtxt/loqui_app_ui.txt src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c ------------------------------------------------------------ revno: 1108 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 10:55:24 +0000 message: Fixed the function to show messages modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1107 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 10:54:02 +0000 message: Fixed the function to show messages modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1106 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 10:45:07 +0000 message: Added account name to channel {message,remark}. Changed the routine to show message. modified: libloqui/loqui_channel.c ------------------------------------------------------------ revno: 1105 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 10:44:57 +0000 message: Added account name to channel {message,remark}. Changed the routine to show message. modified: src/loqui_channel_buffer_gtk.c ------------------------------------------------------------ revno: 1104 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 08:57:23 +0000 message: Moved the place of the progressbar modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 1103 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 08:46:12 +0000 message: updated codeconv sensitivity modified: src/account_dialog.c ------------------------------------------------------------ revno: 1102 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 08:41:48 +0000 message: Removed CommandTable class removed: libloqui/command_table.c libloqui/command_table.h modified: libloqui/Makefile.am libloqui/irc_message.c libloqui/irc_message.h src/main.c ------------------------------------------------------------ revno: 1101 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-11 08:18:11 +0000 message: added added: libloqui/loqui.c libloqui/loqui.h ------------------------------------------------------------ revno: 1100 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-10-10 13:08:24 +0000 message: New code convertion framework modified: libloqui/loqui_account.h libloqui/loqui_account_irc.c libloqui/loqui_codeconv.c libloqui/loqui_codeconv.h libloqui/loqui_codeconv_tools.c libloqui/loqui_codeconv_tools.h libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h libloqui/loqui_profile_account_irc.c libloqui/loqui_profile_handle.c libloqui/loqui_protocol.c libloqui/loqui_protocol.h libloqui/loqui_protocol_irc.c src/account_dialog.c src/main.c src/prefs_dialog.c ------------------------------------------------------------ revno: 1099 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-10-10 05:29:16 +0000 message: codeconv -> loqui_codeconv renamed: libloqui/codeconv.c => libloqui/loqui_codeconv.c libloqui/codeconv.h => libloqui/loqui_codeconv.h modified: libloqui/Makefile.am libloqui/loqui_account_irc.c libloqui/loqui_profile_account_irc.c libloqui/loqui_receiver_irc.c libloqui/loqui_codeconv.c libloqui/loqui_codeconv.h ------------------------------------------------------------ revno: 1098 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-10-10 05:10:47 +0000 message: codeconv_ja -> loqui_codeconv_tools renamed: libloqui/codeconv_ja.c => libloqui/loqui_codeconv_tools.c libloqui/codeconv_ja.h => libloqui/loqui_codeconv_tools.h modified: libloqui/Makefile.am libloqui/codeconv.c libloqui/loqui_codeconv_tools.c libloqui/loqui_codeconv_tools.h ------------------------------------------------------------ revno: 1097 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-10-10 05:02:59 +0000 message: Created loqui_account_append_text() as substitution of loqui_account_console_buffer_append(). Created loqui_account_append_text_to_joined_channels(). modified: libloqui/ctcp_handle.c libloqui/irc_message.c libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_account_ipmsg.c libloqui/loqui_account_manager.c libloqui/loqui_receiver_ipmsg.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c ------------------------------------------------------------ revno: 1096 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 13:48:24 +0000 message: use <> instead of "" for including libloqui headers modified: src/account_dialog.c src/account_dialog.h src/account_list_dialog.c src/account_list_dialog.h src/channel_tree.c src/channel_tree.h src/command_dialog.h src/gtkutils.c src/loqui_account_manager_store.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_app_info.c src/loqui_channel_buffer_gtk.c src/loqui_channel_entry_action.c src/loqui_channel_entry_action.h src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_gtk.h src/loqui_statusbar.c src/loqui_statusbar.h src/loqui_stock.h src/main.c src/nick_list.c src/prefs_dialog.c src/remark_entry.c ------------------------------------------------------------ revno: 1095 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 13:28:53 +0000 message: use libloqui removed: test/update.sh modified: test/Makefile test/test_helper.h ------------------------------------------------------------ revno: 1094 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 08:35:25 +0000 message: optimized ui file for gtk-2.4 modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 1093 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 08:15:26 +0000 message: Removed gtk24backports. Removed gtk-2.2 support removed: gtk24backports/ gtk24backports/.cvsignore gtk24backports/AUTHORS gtk24backports/Makefile.am gtk24backports/README gtk24backports/gtk24backports.c gtk24backports/gtk24backports.h gtk24backports/gtk24ext.c gtk24backports/gtk24ext.h gtk24backports/gtk24marshalers.c gtk24backports/gtk24marshalers.h gtk24backports/gtk24marshalers.list gtk24backports/gtk24toolbar.c gtk24backports/gtk24toolbar.h gtk24backports/gtkaction.c gtk24backports/gtkaction.h gtk24backports/gtkactiongroup.c gtk24backports/gtkactiongroup.h gtk24backports/gtkintl.h gtk24backports/gtkradioaction.c gtk24backports/gtkradioaction.h gtk24backports/gtkradiotoolbutton.c gtk24backports/gtkradiotoolbutton.h gtk24backports/gtkseparatortoolitem.c gtk24backports/gtkseparatortoolitem.h gtk24backports/gtktoggleaction.c gtk24backports/gtktoggleaction.h gtk24backports/gtktoggleactionprivate.h gtk24backports/gtktoggletoolbutton.c gtk24backports/gtktoggletoolbutton.h gtk24backports/gtktoolbutton.c gtk24backports/gtktoolbutton.h gtk24backports/gtktoolitem.c gtk24backports/gtktoolitem.h gtk24backports/gtkuimanager.c gtk24backports/gtkuimanager.h modified: Makefile.am configure.in src/Makefile.am src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_app_actions.h src/loqui_channel_entry_action.h src/loqui_gtk.c src/remark_entry.h ------------------------------------------------------------ revno: 1092 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 06:45:02 +0000 message: Removed gtk2 dependency from libloqui modified: configure.in libloqui/Makefile.am libloqui/loqui_account_irc.h libloqui/loqui_channel_irc.h libloqui/loqui_receiver_irc.c libloqui/msn_login.h libloqui/msn_message.h ------------------------------------------------------------ revno: 1091 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 06:34:42 +0000 message: Separated Gtk-independant code to libloqui added: libloqui/ libloqui/Makefile.am renamed: src/codeconv.c => libloqui/codeconv.c src/codeconv.h => libloqui/codeconv.h src/codeconv_ja.c => libloqui/codeconv_ja.c src/codeconv_ja.h => libloqui/codeconv_ja.h src/command_table.c => libloqui/command_table.c src/command_table.h => libloqui/command_table.h src/ctcp_handle.c => libloqui/ctcp_handle.c src/ctcp_handle.h => libloqui/ctcp_handle.h src/ctcp_message.c => libloqui/ctcp_message.c src/ctcp_message.h => libloqui/ctcp_message.h src/gobject_utils.c => libloqui/gobject_utils.c src/gobject_utils.h => libloqui/gobject_utils.h src/intl.h => libloqui/intl.h src/ipmsg.h => libloqui/ipmsg.h src/ipmsg_packet.c => libloqui/ipmsg_packet.c src/ipmsg_packet.h => libloqui/ipmsg_packet.h src/ipmsg_socket.c => libloqui/ipmsg_socket.c src/ipmsg_socket.h => libloqui/ipmsg_socket.h src/irc_constants.h => libloqui/irc_constants.h src/irc_message.c => libloqui/irc_message.c src/irc_message.h => libloqui/irc_message.h src/loqui_account.c => libloqui/loqui_account.c src/loqui_account.h => libloqui/loqui_account.h src/loqui_account_ipmsg.c => libloqui/loqui_account_ipmsg.c src/loqui_account_ipmsg.h => libloqui/loqui_account_ipmsg.h src/loqui_account_irc.c => libloqui/loqui_account_irc.c src/loqui_account_irc.h => libloqui/loqui_account_irc.h src/loqui_account_manager.c => libloqui/loqui_account_manager.c src/loqui_account_manager.h => libloqui/loqui_account_manager.h src/loqui_account_manager_iter.c => libloqui/loqui_account_manager_iter.c src/loqui_account_manager_iter.h => libloqui/loqui_account_manager_iter.h src/loqui_account_msn.c => libloqui/loqui_account_msn.c src/loqui_account_msn.h => libloqui/loqui_account_msn.h src/loqui_channel.c => libloqui/loqui_channel.c src/loqui_channel.h => libloqui/loqui_channel.h src/loqui_channel_buffer.c => libloqui/loqui_channel_buffer.c src/loqui_channel_buffer.h => libloqui/loqui_channel_buffer.h src/loqui_channel_entry.c => libloqui/loqui_channel_entry.c src/loqui_channel_entry.h => libloqui/loqui_channel_entry.h src/loqui_channel_entry_utils.c => libloqui/loqui_channel_entry_utils.c src/loqui_channel_entry_utils.h => libloqui/loqui_channel_entry_utils.h src/loqui_channel_irc.c => libloqui/loqui_channel_irc.c src/loqui_channel_irc.h => libloqui/loqui_channel_irc.h src/loqui_marshalers.c => libloqui/loqui_marshalers.c src/loqui_marshalers.h => libloqui/loqui_marshalers.h src/loqui_marshalers.list => libloqui/loqui_marshalers.list src/loqui_member.c => libloqui/loqui_member.c src/loqui_member.h => libloqui/loqui_member.h src/loqui_member_sort_funcs.c => libloqui/loqui_member_sort_funcs.c src/loqui_member_sort_funcs.h => libloqui/loqui_member_sort_funcs.h src/loqui_message.c => libloqui/loqui_message.c src/loqui_message.h => libloqui/loqui_message.h src/loqui_message_text.c => libloqui/loqui_message_text.c src/loqui_message_text.h => libloqui/loqui_message_text.h src/loqui_profile_account.c => libloqui/loqui_profile_account.c src/loqui_profile_account.h => libloqui/loqui_profile_account.h src/loqui_profile_account_ipmsg.c => libloqui/loqui_profile_account_ipmsg.c src/loqui_profile_account_ipmsg.h => libloqui/loqui_profile_account_ipmsg.h src/loqui_profile_account_irc.c => libloqui/loqui_profile_account_irc.c src/loqui_profile_account_irc.h => libloqui/loqui_profile_account_irc.h src/loqui_profile_handle.c => libloqui/loqui_profile_handle.c src/loqui_profile_handle.h => libloqui/loqui_profile_handle.h src/loqui_protocol.c => libloqui/loqui_protocol.c src/loqui_protocol.h => libloqui/loqui_protocol.h src/loqui_protocol_ipmsg.c => libloqui/loqui_protocol_ipmsg.c src/loqui_protocol_ipmsg.h => libloqui/loqui_protocol_ipmsg.h src/loqui_protocol_irc.c => libloqui/loqui_protocol_irc.c src/loqui_protocol_irc.h => libloqui/loqui_protocol_irc.h src/loqui_protocol_manager.c => libloqui/loqui_protocol_manager.c src/loqui_protocol_manager.h => libloqui/loqui_protocol_manager.h src/loqui_protocol_msn.c => libloqui/loqui_protocol_msn.c src/loqui_protocol_msn.h => libloqui/loqui_protocol_msn.h src/loqui_receiver.c => libloqui/loqui_receiver.c src/loqui_receiver.h => libloqui/loqui_receiver.h src/loqui_receiver_ipmsg.c => libloqui/loqui_receiver_ipmsg.c src/loqui_receiver_ipmsg.h => libloqui/loqui_receiver_ipmsg.h src/loqui_receiver_irc.c => libloqui/loqui_receiver_irc.c src/loqui_receiver_irc.h => libloqui/loqui_receiver_irc.h src/loqui_sender.c => libloqui/loqui_sender.c src/loqui_sender.h => libloqui/loqui_sender.h src/loqui_sender_ipmsg.c => libloqui/loqui_sender_ipmsg.c src/loqui_sender_ipmsg.h => libloqui/loqui_sender_ipmsg.h src/loqui_sender_irc.c => libloqui/loqui_sender_irc.c src/loqui_sender_irc.h => libloqui/loqui_sender_irc.h src/loqui_string_tokenizer.c => libloqui/loqui_string_tokenizer.c src/loqui_string_tokenizer.h => libloqui/loqui_string_tokenizer.h src/loqui_title_format.c => libloqui/loqui_title_format.c src/loqui_title_format.h => libloqui/loqui_title_format.h src/loqui_user.c => libloqui/loqui_user.c src/loqui_user.h => libloqui/loqui_user.h src/loqui_user_ipmsg.c => libloqui/loqui_user_ipmsg.c src/loqui_user_ipmsg.h => libloqui/loqui_user_ipmsg.h src/loqui_user_irc.c => libloqui/loqui_user_irc.c src/loqui_user_irc.h => libloqui/loqui_user_irc.h src/loqui_utils_irc.c => libloqui/loqui_utils_irc.c src/loqui_utils_irc.h => libloqui/loqui_utils_irc.h src/loqui_webutils.c => libloqui/loqui_webutils.c src/loqui_webutils.h => libloqui/loqui_webutils.h src/msn_constants.h => libloqui/msn_constants.h src/msn_login.c => libloqui/msn_login.c src/msn_login.h => libloqui/msn_login.h src/msn_message.c => libloqui/msn_message.c src/msn_message.h => libloqui/msn_message.h src/prefs_general.c => libloqui/prefs_general.c src/prefs_general.h => libloqui/prefs_general.h src/utils.c => libloqui/utils.c src/utils.h => libloqui/utils.h modified: Makefile.am configure.in src/Makefile.am src/main.c src/main.h libloqui/ipmsg_socket.c libloqui/loqui_account.c libloqui/loqui_account_irc.c libloqui/loqui_account_manager.c libloqui/loqui_receiver_irc.c libloqui/loqui_sender_irc.c libloqui/prefs_general.c libloqui/utils.c ------------------------------------------------------------ revno: 1090 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 04:36:35 +0000 message: Created loqui_utils_mkdir_and_chmod modified: src/main.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 1089 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-10-09 04:28:40 +0000 message: Fixed the problem failed to parse mode '-l' modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1088 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-04 10:01:46 +0000 message: Set hostname. Convert encoding if the user on the LC_CTYPE = ja environment. modified: src/ipmsg_socket.c src/loqui_account_ipmsg.c ------------------------------------------------------------ revno: 1087 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-04 09:10:05 +0000 message: Fixed IPMsg packet parser modified: src/ipmsg_packet.c ------------------------------------------------------------ revno: 1086 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-04 08:26:00 +0000 message: re-replaced append with append_message_text. use LoquiChannelBuffer interface. moved ChannelBuffer to LoquiChannelBufferGtk. renamed: src/channel_buffer.c => src/loqui_channel_buffer_gtk.c src/channel_buffer.h => src/loqui_channel_buffer_gtk.h modified: src/Makefile.am src/loqui_account.c src/loqui_account_ipmsg.c src/loqui_account_irc.c src/loqui_app.c src/loqui_app.h src/loqui_channel.c src/loqui_channel_buffer.c src/loqui_channel_buffer.h src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_channel_irc.c src/loqui_channel_text_view.c src/loqui_channel_text_view.h src/loqui_protocol.c src/loqui_channel_buffer_gtk.c src/loqui_channel_buffer_gtk.h ------------------------------------------------------------ revno: 1085 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-04 07:11:27 +0000 message: replaced append_message_text with append modified: src/loqui_channel_buffer.c src/loqui_channel_buffer.h ------------------------------------------------------------ revno: 1084 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-10-04 06:59:19 +0000 message: added 'append_message_text' to ChannelEntry. MessageText has exec_notification flag. modified: src/channel_buffer.c src/channel_buffer.h src/loqui_account.c src/loqui_app.c src/loqui_channel.c src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_message_text.c src/loqui_message_text.h src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1083 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-26 15:44:04 +0000 message: Moved ignore check from ChannelBuffer to LoquiChannel modified: src/channel_buffer.c src/loqui_channel.c ------------------------------------------------------------ revno: 1082 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-26 15:37:00 +0000 message: Added show_{channel,account}_name parameters to ChannelBuffer and removed verbose argument from channel_buffer_append_message_text(). modified: src/channel_buffer.c src/channel_buffer.h src/loqui_account.c src/loqui_app.c src/loqui_channel.c src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1081 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-26 15:17:35 +0000 message: Added LoquiChannelBuffer interface added: src/loqui_channel_buffer.c src/loqui_channel_buffer.h modified: src/Makefile.am ------------------------------------------------------------ revno: 1080 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-26 14:45:37 +0000 message: renamed from MessageText to LoquiMessageText renamed: src/message_text.c => src/loqui_message_text.c src/message_text.h => src/loqui_message_text.h modified: src/Makefile.am src/channel_buffer.c src/channel_buffer.h src/ctcp_handle.c src/loqui_account.c src/loqui_account.h src/loqui_account_ipmsg.c src/loqui_app.c src/loqui_channel.c src/loqui_channel.h src/loqui_receiver_ipmsg.c src/loqui_receiver_irc.c src/loqui_sender_irc.c src/loqui_message_text.c src/loqui_message_text.h ------------------------------------------------------------ revno: 1079 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-26 14:11:46 +0000 message: gatherred common operations to loqui_app_channel_entry_{removed,added}{,_after} modified: src/loqui_app.c ------------------------------------------------------------ revno: 1078 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-09-21 16:20:19 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 1077 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-09-21 16:14:42 +0000 message: 0.3.9 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 1076 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-09-21 16:14:23 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 1075 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-09-21 16:11:17 +0000 message: show RPL_HELLO and RPL_YOURID modified: src/irc_constants.h src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1074 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-09-21 16:04:03 +0000 message: remove handler for notify_topic modified: src/loqui_app_info.c ------------------------------------------------------------ revno: 1073 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-09-21 15:59:13 +0000 message: use 255.255.255.255 for broadcast address modified: src/ipmsg_socket.c ------------------------------------------------------------ revno: 1072 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-09-20 13:20:05 +0000 message: send BR_ENTRY modified: src/ipmsg_packet.c src/ipmsg_packet.h src/ipmsg_socket.c src/loqui_account_ipmsg.c src/loqui_account_ipmsg.h src/loqui_sender_ipmsg.c src/loqui_sender_ipmsg.h ------------------------------------------------------------ revno: 1071 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-09-20 12:29:15 +0000 message: Created IPMsg packet creater. modified: src/ipmsg_packet.c src/ipmsg_packet.h src/ipmsg_socket.c src/ipmsg_socket.h src/loqui_account_ipmsg.c src/loqui_account_ipmsg.h ------------------------------------------------------------ revno: 1070 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-09-20 11:56:55 +0000 message: output ipmsg command number as hex. use IPMSG_GET_MODE() to switch command. ignore second BR_EXIT packet. modified: src/ipmsg_packet.c src/loqui_receiver_ipmsg.c ------------------------------------------------------------ revno: 1069 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-09-18 18:30:18 +0000 message: Use GConn for MSN account modified: src/msn_login.c src/msn_login.h ------------------------------------------------------------ revno: 1068 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-09-18 18:00:07 +0000 message: Added handler for reply related LIST command modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1067 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 19:17:07 +0000 message: disconnect (-> terminate (if need)) -> quit modified: src/loqui_app.c ------------------------------------------------------------ revno: 1066 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 18:31:32 +0000 message: Updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1065 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 18:31:15 +0000 message: Fixed action's label modified: src/loqui_account.c src/loqui_app_actions.c ------------------------------------------------------------ revno: 1064 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 18:25:24 +0000 message: Added 'cancel reconnecting' modified: src/embedtxt/loqui_app_ui.txt src/loqui_account.c src/loqui_account.h src/loqui_account_irc.c src/loqui_app.c src/loqui_app_actions.c src/loqui_app_actions.h src/loqui_app_info.c src/loqui_profile_handle.c ------------------------------------------------------------ revno: 1063 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 18:24:31 +0000 message: Added quit message to dialog modified: src/account_dialog.c ------------------------------------------------------------ revno: 1062 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 17:35:13 +0000 message: Update actions related connection when received notify::is-connected signal. modified: src/loqui_app_info.c ------------------------------------------------------------ revno: 1061 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 17:25:51 +0000 message: Send quit message modified: src/loqui_account_irc.c src/loqui_profile_account_irc.c src/loqui_profile_account_irc.h src/loqui_receiver_irc.c src/loqui_receiver_irc.h src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c src/loqui_sender_irc.h ------------------------------------------------------------ revno: 1060 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 16:35:11 +0000 message: Fixed reconnecting. modified: src/loqui_account.c ------------------------------------------------------------ revno: 1059 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 16:29:36 +0000 message: Fixed calling method modified: src/loqui_account_irc.c ------------------------------------------------------------ revno: 1058 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 16:17:42 +0000 message: Added terminate account modified: src/embedtxt/loqui_app_ui.txt src/loqui_account.c src/loqui_account.h src/loqui_account_irc.c src/loqui_app_actions.c src/loqui_app_actions.h ------------------------------------------------------------ revno: 1057 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-16 15:27:12 +0000 message: Removed IRCConnection class; use GConn. removed: src/irc_connection.c src/irc_connection.h modified: src/Makefile.am src/loqui_account_irc.c src/loqui_account_irc.h src/loqui_sender_irc.c ------------------------------------------------------------ revno: 1056 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-09-13 03:46:56 +0000 message: nick reply parser handle the last space of the command. modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1055 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-09-13 03:39:18 +0000 message: ISO-2022-JP parser split lines (coped with escaped \n) modified: src/codeconv_ja.c ------------------------------------------------------------ revno: 1054 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-12 16:43:37 +0000 message: Remove return code instead of strip the string modified: src/irc_message.c ------------------------------------------------------------ revno: 1053 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-12 14:37:31 +0000 message: Fixed the place of prototype modified: src/msn_login.h src/msn_message.h ------------------------------------------------------------ revno: 1052 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-12 14:35:32 +0000 message: utils_remove_return_code(): Added const to return value modified: src/utils.c src/utils.h ------------------------------------------------------------ revno: 1051 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-09-12 14:33:30 +0000 message: Remove copile errors modified: src/msn_message.c src/msn_message.h ------------------------------------------------------------ revno: 1050 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-09 18:06:17 +0000 message: Use loqui_account_information(). Created loqui_account_disconnected(). modified: src/loqui_account.c src/loqui_account.h src/loqui_account_irc.c src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1049 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-09 17:00:02 +0000 message: Added MSNP code added: src/msn_constants.h src/msn_login.c src/msn_login.h src/msn_message.c src/msn_message.h modified: src/Makefile.am src/loqui_account_msn.c src/loqui_account_msn.h ------------------------------------------------------------ revno: 1048 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-09 16:37:34 +0000 message: added loqui_account_information() modified: src/loqui_account.c src/loqui_account.h ------------------------------------------------------------ revno: 1047 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-09-03 07:55:06 +0000 message: added url encode/decode functions modified: src/utils.c src/utils.h ------------------------------------------------------------ revno: 1046 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-02 16:16:16 +0000 message: Added skelton of MSN protocol added: src/loqui_account_msn.c src/loqui_account_msn.h src/loqui_protocol_msn.c src/loqui_protocol_msn.h ------------------------------------------------------------ revno: 1045 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-02 16:15:45 +0000 message: Added skelton of MSN protocol modified: src/Makefile.am src/main.c ------------------------------------------------------------ revno: 1044 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-02 16:01:42 +0000 message: Added curl wrapper as WebUtils added: src/loqui_webutils.c src/loqui_webutils.h modified: src/Makefile.am ------------------------------------------------------------ revno: 1043 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-02 13:54:18 +0000 message: nullify topic if length is zero modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1042 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-09-02 03:03:53 +0000 message: nullify topic if length is zero modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1041 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:49:43 +0000 message: 0.3.8 ------------------------------------------------------------ revno: 1040 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:39:15 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 1039 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:36:45 +0000 message: 0.3.8 modified: NEWS NEWS.ja configure.in po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1038 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:33:09 +0000 message: g_return_if_fail -> g_return_val_if_fail modified: src/gtkutils.c ------------------------------------------------------------ revno: 1037 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:32:51 +0000 message: Fixed po modified: po/ja.po ------------------------------------------------------------ revno: 1036 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:21:58 +0000 message: updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 1035 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:21:39 +0000 message: Check whether or not the user is myself modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1034 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 16:12:03 +0000 message: Made title and statusbar customizable modified: src/gtkutils.c src/gtkutils.h src/loqui_app_info.c src/loqui_app_info.h src/loqui_gtk.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 1033 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 15:55:42 +0000 message: Fixed the flow when failed to parse modified: src/loqui_title_format.c ------------------------------------------------------------ revno: 1032 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 14:33:19 +0000 message: Decrease the number of update entries when the update entry is removed. modified: src/loqui_app_info.c ------------------------------------------------------------ revno: 1031 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 14:17:27 +0000 message: Use LoquiTitleFormat for updating title and statusbar. Created LoquiAppInfo. added: src/loqui_app_info.c src/loqui_app_info.h modified: src/Makefile.am src/loqui_account.c src/loqui_account.h src/loqui_account_manager_store.c src/loqui_app.c src/loqui_app.h src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_title_format.c ------------------------------------------------------------ revno: 1030 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 08:09:51 +0000 message: Canceled commit 1029 removed: src/loqui_account_manager_gtk.c src/loqui_account_manager_gtk.h modified: src/Makefile.am src/loqui_gtk.c ------------------------------------------------------------ revno: 1029 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 07:43:04 +0000 message: Added LoquiAccountManagerGtk added: src/loqui_account_manager_gtk.c src/loqui_account_manager_gtk.h modified: src/Makefile.am src/loqui_gtk.c ------------------------------------------------------------ revno: 1028 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 07:26:48 +0000 message: Fixed Makefile.am modified: src/Makefile.am ------------------------------------------------------------ revno: 1027 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 07:11:14 +0000 message: Handler for ISON modified: src/loqui_channel_entry.c src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1026 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-08-25 06:07:32 +0000 message: AccountManager -> LoquiAccountManager renamed: src/account_manager.c => src/loqui_account_manager.c src/account_manager.h => src/loqui_account_manager.h modified: src/Makefile.am src/account_dialog.c src/account_dialog.h src/account_list_dialog.c src/account_list_dialog.h src/channel_tree.c src/loqui_account_manager_iter.c src/loqui_account_manager_iter.h src/loqui_account_manager_store.c src/loqui_account_manager_store.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channelbar.c src/loqui_gtk.c src/loqui_receiver_irc.c src/loqui_statusbar.c src/main.c src/nick_list.c src/loqui_account_manager.c src/loqui_account_manager.h ------------------------------------------------------------ revno: 1025 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-08-24 13:38:09 +0000 message: Categorized updating operations modified: src/loqui_app.c src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_statusbar.c src/loqui_statusbar.h ------------------------------------------------------------ revno: 1024 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-08-22 08:56:15 +0000 message: Added loqui_channel_entry_utils_separate() added: src/loqui_channel_entry_utils.c src/loqui_channel_entry_utils.h ------------------------------------------------------------ revno: 1023 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-08-22 08:56:05 +0000 message: Added loqui_channel_entry_utils_separate() modified: src/Makefile.am src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 1022 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-08-21 08:47:51 +0000 message: space works only focusing modified: src/loqui_app.c ------------------------------------------------------------ revno: 1021 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-08-08 08:50:06 +0000 message: title format test modified: test/test_channel_entry.c test/test_title_format.c ------------------------------------------------------------ revno: 1020 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-08-08 08:49:45 +0000 message: Implemented basic title format functions modified: src/loqui_title_format.c src/loqui_title_format.h ------------------------------------------------------------ revno: 1019 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-08-08 06:48:30 +0000 message: supports multiline and comment modified: src/loqui_title_format.c src/loqui_title_format.h ------------------------------------------------------------ revno: 1018 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-08-07 17:20:28 +0000 message: title formatter compiles format string modified: src/loqui_title_format.c src/loqui_title_format.h ------------------------------------------------------------ revno: 1017 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-08-05 13:13:34 +0000 message: channel mode 'p' modified: src/irc_constants.h ------------------------------------------------------------ revno: 1016 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-08-05 13:13:22 +0000 message: channel mode 'p' modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1015 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-24 08:09:23 +0000 message: Create account with LoquiProtocol modified: src/account_manager.c src/loqui_account.c src/loqui_account.h src/loqui_account_ipmsg.c src/loqui_account_irc.c src/loqui_protocol.c src/loqui_protocol.h ------------------------------------------------------------ revno: 1014 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-24 06:41:52 +0000 message: check msgtext has nick or not modified: src/channel_buffer.c ------------------------------------------------------------ revno: 1013 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-24 06:37:24 +0000 message: do g_object_unref() for the objects that is got from gtk_tree_model_get() modified: src/account_list_dialog.c src/channel_tree.c src/loqui_app.c src/loqui_channel_entry.c src/loqui_member.c src/nick_list.c ------------------------------------------------------------ revno: 1012 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-24 05:05:09 +0000 message: added channel entry test added: test/test_channel_entry.c ------------------------------------------------------------ revno: 1011 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-24 05:04:57 +0000 message: Fixed Makefile of test modified: test/Makefile test/update.sh ------------------------------------------------------------ revno: 1010 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-24 04:10:45 +0000 message: LoquichannelIRC -> LoquiChannelIRC Moved add_member_by_nick from loqui_channel.[ch] to loqui_channel_irc.[ch]. modified: src/loqui_channel.c src/loqui_channel.h src/loqui_channel_irc.c src/loqui_channel_irc.h src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1009 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-24 03:43:33 +0000 message: Show CTCP-Action as italic modified: src/channel_buffer.c src/ctcp_handle.c src/irc_constants.h src/message_text.h ------------------------------------------------------------ revno: 1008 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-23 13:34:27 +0000 message: Fixed the definition of LoquiReceiverIRC modified: src/loqui_receiver_irc.h ------------------------------------------------------------ revno: 1007 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-23 13:33:28 +0000 message: Fixed the definition of LoquiReceiverIRC modified: src/loqui_receiver_irc.h ------------------------------------------------------------ revno: 1006 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-23 13:03:47 +0000 message: set the flag of connected as FALSE when failed to connect modified: src/loqui_account_irc.c ------------------------------------------------------------ revno: 1005 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-23 10:24:24 +0000 message: small fix modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1004 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-23 09:14:33 +0000 message: Fixed a memory leak modified: src/ctcp_handle.c ------------------------------------------------------------ revno: 1003 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-23 08:59:33 +0000 message: Created and use loqui_(sender|receiver)_get_account modified: src/loqui_receiver.c src/loqui_receiver.h src/loqui_receiver_irc.c src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c ------------------------------------------------------------ revno: 1002 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-07-22 12:02:46 +0000 message: Added ReceiverIPMsg added: src/loqui_receiver_ipmsg.c src/loqui_receiver_ipmsg.h ------------------------------------------------------------ revno: 1001 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-07-22 12:02:23 +0000 message: added assertion modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 1000 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-16 18:31:53 +0000 message: skip unknown profile type modified: src/loqui_profile_handle.c ------------------------------------------------------------ revno: 999 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-07-16 18:09:48 +0000 message: Handle INVITE command modified: src/loqui_receiver_irc.c ------------------------------------------------------------ revno: 998 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-07-14 11:45:18 +0000 message: Fixed StringTokenizer and added a test added: test/test_string_tokenizer.c modified: configure.in src/loqui_string_tokenizer.c src/loqui_string_tokenizer.h test/Makefile test/update.sh ------------------------------------------------------------ revno: 997 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-07-07 14:50:15 +0000 message: Created LoquiStringTokenizer added: src/loqui_string_tokenizer.c src/loqui_string_tokenizer.h modified: src/Makefile.am ------------------------------------------------------------ revno: 996 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-07-05 15:12:52 +0000 message: Implemented BR_ENTRY/BR_EXIT (IPMessenger) modified: src/ipmsg_packet.c src/ipmsg_packet.h src/ipmsg_socket.c src/loqui_account_ipmsg.c src/loqui_user_ipmsg.c src/loqui_user_ipmsg.h ------------------------------------------------------------ revno: 995 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-07-05 12:39:56 +0000 message: Fixed the connection of IPMessenger modified: src/ipmsg_socket.c src/ipmsg_socket.h src/loqui_account_ipmsg.c ------------------------------------------------------------ revno: 994 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-07-05 12:26:00 +0000 message: IPMessenger packet inspection modified: src/Makefile.am src/ipmsg_packet.c src/ipmsg_packet.h src/ipmsg_socket.c src/ipmsg_socket.h src/loqui_account_ipmsg.c ------------------------------------------------------------ revno: 993 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 11:03:01 +0000 message: Arranged Makefile.am modified: src/Makefile.am ------------------------------------------------------------ revno: 992 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 10:46:31 +0000 message: Added LoquiProtocolIPMsg added: src/loqui_protocol_ipmsg.c src/loqui_protocol_ipmsg.h modified: src/Makefile.am src/main.c ------------------------------------------------------------ revno: 991 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 10:33:49 +0000 message: Removed 'struct _' modified: src/loqui_account.h src/loqui_profile_account.h src/loqui_profile_account_irc.c ------------------------------------------------------------ revno: 990 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 10:30:18 +0000 message: Removed needless definitions modified: src/loqui_protocol_irc.c src/loqui_protocol_irc.h src/main.c ------------------------------------------------------------ revno: 989 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 10:29:15 +0000 message: Removed needless definitions modified: src/account_manager.h src/loqui_protocol_irc.c src/loqui_protocol_irc.h ------------------------------------------------------------ revno: 988 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 10:26:38 +0000 message: ProfileHandle uses Protocol class modified: src/account_dialog.c src/account_manager.c src/account_manager.h src/loqui_app.c src/loqui_app.h src/loqui_gtk.c src/loqui_profile_account.c src/loqui_profile_account.h src/loqui_profile_account_irc.c src/loqui_profile_handle.c src/loqui_profile_handle.h src/loqui_protocol.c src/loqui_protocol.h src/loqui_protocol_irc.c src/loqui_protocol_irc.h src/loqui_protocol_manager.c src/main.c ------------------------------------------------------------ revno: 987 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 09:07:15 +0000 message: Created LoquiProtocolManager, LoquiProtocolIRC added: src/loqui_protocol_irc.c src/loqui_protocol_irc.h src/loqui_protocol_manager.c src/loqui_protocol_manager.h modified: src/Makefile.am src/loqui_app.c src/loqui_app.h src/loqui_gtk.c src/loqui_gtk.h src/main.c ------------------------------------------------------------ revno: 986 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 08:12:28 +0000 message: added LoquiProtocol added: src/loqui_protocol.c src/loqui_protocol.h modified: src/Makefile.am ------------------------------------------------------------ revno: 985 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 05:41:20 +0000 message: Created is_connected property on Account modified: src/account_manager.c src/channel_tree.c src/command_dialog.c src/loqui_account.c src/loqui_account.h src/loqui_account_irc.c src/loqui_app.c src/loqui_app_actions.c src/loqui_sender_irc.c src/loqui_statusbar.c src/remark_entry.c ------------------------------------------------------------ revno: 984 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 05:09:06 +0000 message: Created LoquiReceiver(IRC) (removed IRCHandle) renamed: src/irc_handle.c => src/loqui_receiver_irc.c src/irc_handle.h => src/loqui_receiver_irc.h modified: src/Makefile.am src/ctcp_handle.c src/ctcp_handle.h src/loqui_account.c src/loqui_account_irc.c src/loqui_account_irc.h src/loqui_sender_irc.c src/loqui_receiver_irc.c src/loqui_receiver_irc.h ------------------------------------------------------------ revno: 983 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 04:26:21 +0000 message: Added LoquiReceiver added: src/loqui_receiver.c src/loqui_receiver.h modified: src/Makefile.am src/loqui_account.c src/loqui_account.h ------------------------------------------------------------ revno: 982 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-07-04 04:15:03 +0000 message: Fixed the problem updating a channel identifier modified: src/loqui_account.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 981 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-03 14:43:43 +0000 message: Implementing IPMessenger protocol (connecting part) added: src/ipmsg_packet.c src/ipmsg_packet.h src/ipmsg_socket.c src/ipmsg_socket.h src/loqui_sender_ipmsg.c src/loqui_sender_ipmsg.h modified: src/Makefile.am src/ipmsg.h src/loqui_account_ipmsg.c src/loqui_profile_account_ipmsg.c ------------------------------------------------------------ revno: 980 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-03 14:41:12 +0000 message: check whether the 'connect' method is implemented modified: src/loqui_account.c ------------------------------------------------------------ revno: 979 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-07-03 14:29:48 +0000 message: added utils_remove_ipv6_prefix_ffff() (gnet bug?) modified: src/utils.c src/utils.h ------------------------------------------------------------ revno: 978 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-06-30 09:00:00 +0000 message: Added IPMsg class template: Account, ProfileAccount, User added: src/ipmsg.h src/loqui_account_ipmsg.c src/loqui_account_ipmsg.h src/loqui_profile_account_ipmsg.c src/loqui_profile_account_ipmsg.h src/loqui_user_ipmsg.c src/loqui_user_ipmsg.h modified: src/Makefile.am src/account_manager.c ------------------------------------------------------------ revno: 977 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-06-30 08:42:00 +0000 message: removed dependency to intltool modified: debian/control ------------------------------------------------------------ revno: 976 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-06-28 14:41:23 +0000 message: Watch changing the identifier of channels modified: src/loqui_account.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 975 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-06-28 14:29:27 +0000 message: changed the name of a hash table, identifier_channel_table modified: src/loqui_account.c src/loqui_account.h ------------------------------------------------------------ revno: 974 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-06-28 11:49:22 +0000 message: loqui_account_search_joined_channel requires LoquiUser modified: src/irc_handle.c src/loqui_account.c src/loqui_account.h ------------------------------------------------------------ revno: 973 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-06-28 10:57:14 +0000 message: removed dependency to LoquiAccountIRC modified: src/command_dialog.c ------------------------------------------------------------ revno: 972 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-06-28 10:53:06 +0000 message: moved target validation from command_dialog.c to loqui_sender_irc.c modified: src/command_dialog.c src/loqui_sender_irc.c ------------------------------------------------------------ revno: 971 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-06-28 10:25:57 +0000 message: Created start_private_talk_raw modified: src/command_dialog.c src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c ------------------------------------------------------------ revno: 970 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 16:34:29 +0000 message: remove the channel if it is not joined when requested to part it modified: src/loqui_sender_irc.c ------------------------------------------------------------ revno: 969 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 16:14:24 +0000 message: Fixed plum recent parser modified: src/irc_handle.c ------------------------------------------------------------ revno: 968 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 16:13:18 +0000 message: All channels are set as unjoined when the connection is terminated. modified: src/loqui_account.c src/loqui_account_irc.c ------------------------------------------------------------ revno: 967 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 15:48:16 +0000 message: convert '%' -> ":*.jp" in parser of plum recent. modified: src/irc_handle.c ------------------------------------------------------------ revno: 966 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 15:35:49 +0000 message: Don't send QUIT before disconnecting. modified: src/irc_connection.c src/irc_connection.h src/loqui_account_irc.c ------------------------------------------------------------ revno: 965 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 15:30:57 +0000 message: Changed the timing to send JOIN command for autojoin modified: src/irc_handle.c src/loqui_account_irc.c src/loqui_sender_irc.c src/loqui_sender_irc.h ------------------------------------------------------------ revno: 964 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 14:57:18 +0000 message: Create WARN_AND_RETURN_UNLESS_CONNECTED() and loqui_sender_irc_send_irc_message(). Use loqui_account_warning(). modified: src/loqui_sender_irc.c ------------------------------------------------------------ revno: 963 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 14:28:21 +0000 message: Use loqui_account_warning in irc_handle.c modified: src/irc_handle.c ------------------------------------------------------------ revno: 962 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-26 14:10:54 +0000 message: Created loqui_account_warning(). modified: src/loqui_account.c src/loqui_account.h ------------------------------------------------------------ revno: 961 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-25 07:52:06 +0000 message: Added LoquiChannelIRC and use it added: src/loqui_channel_irc.c src/loqui_channel_irc.h modified: src/Makefile.am src/irc_handle.c src/loqui_sender_irc.c ------------------------------------------------------------ revno: 960 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-06-24 12:08:31 +0000 message: Moved IRC specific feature from LoquiAccount to LoquiAccountIRC modified: src/account_dialog.c src/command_dialog.c src/irc_handle.c src/loqui_account.c src/loqui_account.h src/loqui_account_irc.c src/loqui_account_irc.h src/loqui_app.c src/loqui_sender_irc.c ------------------------------------------------------------ revno: 959 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-06-24 10:19:51 +0000 message: Added LoquiAccountIRC added: src/loqui_account_irc.c src/loqui_account_irc.h modified: src/Makefile.am src/account_dialog.c src/account_manager.c src/command_dialog.c src/loqui_account.c src/loqui_account.h src/loqui_channel.c ------------------------------------------------------------ revno: 958 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-06-23 14:54:51 +0000 message: create 'identifier' property to LoquiUser modified: src/loqui_account.c src/loqui_account.h src/loqui_user.c src/loqui_user.h src/loqui_user_irc.c ------------------------------------------------------------ revno: 957 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-06-23 10:22:52 +0000 message: create 'identifier' property for Channel modified: src/irc_handle.c src/loqui_account.c src/loqui_account.h src/loqui_channel.c src/loqui_channel.h src/loqui_sender_irc.c ------------------------------------------------------------ revno: 956 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:57:59 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 955 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:55:14 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 954 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:51:11 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 953 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:44:39 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 952 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:39:51 +0000 message: 0.3.7 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 951 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:21:20 +0000 message: updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 950 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:16:26 +0000 message: check updated_weak/has_unread_keyword for the color modified: src/loqui_channel_entry_action.c ------------------------------------------------------------ revno: 949 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 17:06:10 +0000 message: added an option 'exec_notification_by_notice' modified: src/loqui_channel.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 948 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 16:49:03 +0000 message: check whether the icon is widget or not modified: src/eggtrayicon.c ------------------------------------------------------------ revno: 947 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 16:46:06 +0000 message: 'Clear All Unread Flags of Buffers' modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c ------------------------------------------------------------ revno: 946 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 16:31:50 +0000 message: don't set updated/has_unread_keyword for the messages from the server modified: src/loqui_channel.c ------------------------------------------------------------ revno: 945 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 15:38:13 +0000 message: workaround to avoid dieing when the tasktray is died(?) modified: src/loqui_app.c ------------------------------------------------------------ revno: 944 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 14:34:46 +0000 message: fixed the bug not to show connecting message? modified: src/loqui_app.c ------------------------------------------------------------ revno: 943 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 14:28:39 +0000 message: recreate the tray icon with idle function modified: src/loqui_app.c ------------------------------------------------------------ revno: 942 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 14:08:15 +0000 message: added Connect menuitem to the tasktray icon modified: src/account_list_dialog.c src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 941 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 14:00:47 +0000 message: fixed the place to show the menu from the tasktray icon modified: src/gtkutils.c src/gtkutils.h src/loqui_tray_icon.c ------------------------------------------------------------ revno: 940 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 13:46:07 +0000 message: the feature to select a channel/account from the tasktray icon modified: src/embedtxt/loqui_app_ui.txt src/loqui_app.c src/loqui_app_actions.c src/loqui_channel_entry_ui.c ------------------------------------------------------------ revno: 939 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 13:16:12 +0000 message: disconnect the signal handler to recreate the task tray icon modified: src/loqui_app.c ------------------------------------------------------------ revno: 938 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 13:14:19 +0000 message: blink the tasktray icon when the new keyword arrived. modified: src/loqui_app.c src/loqui_tray_icon.c src/loqui_tray_icon.h ------------------------------------------------------------ revno: 937 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 12:14:10 +0000 message: Recreate the tasktray icon if it is destroyed modified: src/loqui_app.c ------------------------------------------------------------ revno: 936 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 11:57:15 +0000 message: iconify the window if it is fully visible when the tray icon is clicked modified: src/gtkutils.c src/gtkutils.h src/loqui_app.c src/loqui_app.h src/loqui_tray_icon.c ------------------------------------------------------------ revno: 935 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 11:11:08 +0000 message: changed the timing to make the tasktray-icon hilighted (will hilighted when the app has not toplevel-focus. modified: src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 934 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-18 10:47:03 +0000 message: filter / from accelmaprc modified: src/loqui_gtk.c ------------------------------------------------------------ revno: 933 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-06-15 14:58:11 +0000 message: 0.3.6 ------------------------------------------------------------ revno: 932 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-06-15 14:54:37 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 931 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-06-15 14:51:49 +0000 message: 0.3.6 modified: NEWS NEWS.ja configure.in po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 930 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-06-15 14:38:48 +0000 message: added icon added: src/icons/loqui_hilighted.png ------------------------------------------------------------ revno: 929 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-06-15 14:27:46 +0000 message: Implemented systray icon (notification area) added: src/eggtrayicon.c src/eggtrayicon.h src/loqui_tray_icon.c src/loqui_tray_icon.h modified: src/Makefile.am src/embedtxt/loqui_app_ui.txt src/icons/Makefile.am src/loqui_app.c src/loqui_app.h src/loqui_gtk.c src/loqui_stock.c src/loqui_stock.h ------------------------------------------------------------ revno: 928 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-06-13 10:23:03 +0000 message: Fixed wrong handling of private talk modified: src/irc_handle.c ------------------------------------------------------------ revno: 927 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-12 17:14:31 +0000 message: Save the changes of accel keys modified: src/loqui_gtk.c ------------------------------------------------------------ revno: 926 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-12 17:11:34 +0000 message: fixed accel key modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 925 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-06-12 17:03:27 +0000 message: Changed accel keys for (Previous|Next)UnreadChannel modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 924 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-04 09:19:29 +0000 message: loqui_app_grab_focus_if_key_unused() passes key event. entry in RemarkEntry made public modified: src/channel_tree.c src/loqui_app.c src/loqui_app.h src/loqui_channel_text_view.c src/nick_list.c src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 923 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-06-04 08:36:32 +0000 message: Show icons for actions modified: src/loqui_channelbar.c src/loqui_statusbar.c src/remark_entry.c ------------------------------------------------------------ revno: 922 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-06-01 03:29:27 +0000 message: account.[ch] -> loqui_account.[ch] renamed: src/account.c => src/loqui_account.c src/account.h => src/loqui_account.h modified: src/Makefile.am src/account_dialog.h src/account_manager.c src/account_manager.h src/channel_tree.h src/command_dialog.h src/ctcp_handle.h src/irc_handle.c src/irc_handle.h src/loqui_app.c src/loqui_channel.h src/loqui_channel_entry_action.c src/loqui_channelbar.h src/loqui_sender.h src/loqui_statusbar.h src/loqui_account.c ------------------------------------------------------------ revno: 921 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-06-01 03:24:22 +0000 message: Account -> LoquiAccount modified: src/account.c src/account.h src/account_dialog.c src/account_dialog.h src/account_list_dialog.c src/account_manager.c src/account_manager.h src/channel_tree.c src/command_dialog.c src/command_dialog.h src/ctcp_handle.c src/ctcp_handle.h src/irc_handle.c src/irc_handle.h src/loqui_account_manager_iter.c src/loqui_account_manager_store.c src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channel.c src/loqui_channel.h src/loqui_channel_entry_action.c src/loqui_channel_entry_ui.c src/loqui_channel_entry_ui.h src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c src/loqui_sender_irc.h src/loqui_statusbar.c src/loqui_statusbar.h src/nick_list.c src/remark_entry.c ------------------------------------------------------------ revno: 920 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-26 13:32:39 +0000 message: check the 2nd byte is not ESC modified: src/codeconv_ja.c ------------------------------------------------------------ revno: 919 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-26 12:03:40 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 918 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-26 11:59:59 +0000 message: 0.3.5 ------------------------------------------------------------ revno: 917 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-26 11:59:00 +0000 message: 0.3.5 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 916 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-26 11:58:05 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 915 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-26 11:47:25 +0000 message: handle NEC special characters modified: src/codeconv_ja.c ------------------------------------------------------------ revno: 914 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-25 17:21:46 +0000 message: Changed japanese convertion engine added: src/codeconv_ja.c src/codeconv_ja.h modified: src/Makefile.am src/codeconv.c src/codeconv.h ------------------------------------------------------------ revno: 913 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-25 17:21:28 +0000 message: fixed join_raw modified: src/loqui_sender_irc.c ------------------------------------------------------------ revno: 912 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 04:16:08 +0000 message: Removed account_change_channel_user_mode(). modified: src/account.c src/account.h src/loqui_channel.c src/loqui_sender_irc.c src/loqui_sender_irc.h ------------------------------------------------------------ revno: 911 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 03:55:54 +0000 message: Removed account_send_ctcp_request(), account_join(), account_part(). modified: src/account.c src/account.h src/command_dialog.c src/loqui_app_actions.c src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c src/loqui_sender_irc.h src/nick_list.c ------------------------------------------------------------ revno: 910 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 02:54:27 +0000 message: Removed account_start_private_talk(). modified: src/account.c src/account.h src/command_dialog.c src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c src/nick_list.c ------------------------------------------------------------ revno: 909 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 02:23:49 +0000 message: Removed account_whois(). modified: src/account.c src/loqui_sender_irc.c src/nick_list.c ------------------------------------------------------------ revno: 908 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 02:17:44 +0000 message: get_nicks -> get_members modified: src/nick_list.c ------------------------------------------------------------ revno: 907 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 02:01:06 +0000 message: Removed account_get_channel_mode(). modified: src/account.c src/account.h src/irc_handle.c src/loqui_sender_irc.c src/loqui_sender_irc.h ------------------------------------------------------------ revno: 906 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 01:51:42 +0000 message: Removed account_fetch_away_information(). Created account_get_handle(). RefreshAway(Ctrl+Alt+A) -> Refresh(Ctrl+R). modified: src/account.c src/account.h src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c src/loqui_app_actions.h src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c ------------------------------------------------------------ revno: 905 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-22 01:30:59 +0000 message: Remove account_notice(). modified: src/account.c src/account.h src/ctcp_handle.c ------------------------------------------------------------ revno: 904 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-21 14:54:22 +0000 message: Removed account_speak(). modified: src/account.c src/account.h src/loqui_sender_irc.c src/loqui_sender_irc.h src/remark_entry.c ------------------------------------------------------------ revno: 903 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-21 14:01:38 +0000 message: IRCConnection no longer depends on IRCHandle. modified: src/account.h ------------------------------------------------------------ revno: 902 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-21 14:00:18 +0000 message: IRCConnection no longer depends on IRCHandle. Fixed definition of class methods in IRCConnection. modified: src/account.c src/irc_connection.c src/irc_connection.h ------------------------------------------------------------ revno: 901 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-21 13:38:16 +0000 message: Use LoquiSender(IRC) partially. modified: src/account.c src/account.h src/command_dialog.c src/irc_handle.c src/loqui_channelbar.c src/loqui_sender_irc.c src/loqui_sender_irc.h src/loqui_statusbar.c ------------------------------------------------------------ revno: 900 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-21 12:16:17 +0000 message: account_get_connection(): Created. modified: src/account.c src/account.h src/irc_connection.h src/irc_handle.h ------------------------------------------------------------ revno: 899 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-21 11:55:04 +0000 message: Added LoquiSender(IRC) added: src/loqui_sender.c src/loqui_sender.h src/loqui_sender_irc.c src/loqui_sender_irc.h modified: src/Makefile.am ------------------------------------------------------------ revno: 898 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-21 09:50:33 +0000 message: Get user class from account->user_self to set away menu. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 897 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-19 05:51:42 +0000 message: connect with double-clicking the account node of channel tree modified: src/channel_tree.c ------------------------------------------------------------ revno: 896 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-05-13 13:54:04 +0000 message: 0.3.4 ------------------------------------------------------------ revno: 895 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-05-13 13:32:30 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 894 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-05-13 13:24:00 +0000 message: 0.3.4 modified: NEWS NEWS.ja ------------------------------------------------------------ revno: 893 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-05-13 13:15:21 +0000 message: fixed tooltip modified: src/remark_entry.c ------------------------------------------------------------ revno: 892 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-05-13 13:15:08 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 891 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-05-13 13:13:43 +0000 message: fixed notification modified: src/loqui_channel.c ------------------------------------------------------------ revno: 890 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-12 03:12:52 +0000 message: use activate signal for IM modified: src/remark_entry.c ------------------------------------------------------------ revno: 889 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-05-12 03:12:35 +0000 message: don't execute notification for the messages from the server modified: src/account.c src/irc_handle.c src/loqui_channel.c src/loqui_channel.h ------------------------------------------------------------ revno: 888 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 14:45:39 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 887 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 14:41:22 +0000 message: commented out installcron modified: debian/rules ------------------------------------------------------------ revno: 886 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 14:39:21 +0000 message: changed an option's name modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 885 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 14:35:06 +0000 message: Created an option: select a channel automatically when joined. modified: src/loqui_app.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 884 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 14:03:16 +0000 message: don't focus the current account when the channel is removed unless it's the current channel. modified: src/loqui_app.c ------------------------------------------------------------ revno: 883 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 13:53:01 +0000 message: Show diffrent context menus when right-clicked on the channel tree. modified: src/channel_tree.c src/channel_tree.h src/embedtxt/loqui_app_ui.txt src/loqui_app.c ------------------------------------------------------------ revno: 882 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 13:01:31 +0000 message: added menu added: debian/menu ------------------------------------------------------------ revno: 881 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 13:01:22 +0000 message: added menu modified: debian/rules ------------------------------------------------------------ revno: 880 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 12:54:46 +0000 message: added NOTICE button to RemarkEntry. added: src/icons/notice.png ------------------------------------------------------------ revno: 879 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 12:54:33 +0000 message: added NOTICE button to RemarkEntry. modified: src/icons/Makefile.am src/loqui_stock.c src/loqui_stock.h src/remark_entry.c ------------------------------------------------------------ revno: 878 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 12:15:52 +0000 message: Ctrl+Enter sends NOTICE. modified: src/account.c src/account.h src/loqui_app.c src/remark_entry.c ------------------------------------------------------------ revno: 877 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-05-07 11:19:50 +0000 message: Removed "activate" signal of RemarkEntry. modified: src/loqui_app.c src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 876 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 05:50:39 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 875 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 05:48:46 +0000 message: 0.3.3 ------------------------------------------------------------ revno: 874 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 05:44:32 +0000 message: 0.3.3 modified: NEWS NEWS.ja configure.in po/ja.po ------------------------------------------------------------ revno: 873 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 05:13:41 +0000 message: set color of ChannelEntryAction modified: src/loqui_channel_entry_action.c ------------------------------------------------------------ revno: 872 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 05:09:59 +0000 message: updated -> unread modified: po/ja.po src/account_manager.c src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c src/loqui_channel_entry.c src/loqui_channel_entry.h ------------------------------------------------------------ revno: 871 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 04:59:34 +0000 message: set has_unread_keyword flag modified: src/account_manager.c src/loqui_channel.c ------------------------------------------------------------ revno: 870 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 04:43:52 +0000 message: implemented is_updated_weak/has_unread_keyword modified: src/channel_buffer.c src/irc_handle.c src/loqui_account_manager_store.c src/loqui_app.c src/loqui_channel.c src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_gtk.h ------------------------------------------------------------ revno: 869 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 04:18:15 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 868 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 04:16:50 +0000 message: capitalized words. modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 867 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 04:14:23 +0000 message: jump to next/previous keyword modified: src/embedtxt/loqui_app_ui.txt src/loqui_app.c src/loqui_app_actions.c ------------------------------------------------------------ revno: 866 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 04:13:57 +0000 message: added FRESH_WEAK_COLOR modified: src/loqui_gtk.h ------------------------------------------------------------ revno: 865 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 02:19:26 +0000 message: fixed indent modified: src/channel_tree.c ------------------------------------------------------------ revno: 864 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-05-04 02:19:15 +0000 message: set offline when disconnected modified: src/account.c ------------------------------------------------------------ revno: 863 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 12:03:13 +0000 message: remove variable/function when registered NULL modified: src/loqui_title_format.c ------------------------------------------------------------ revno: 862 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 12:00:00 +0000 message: 0.3.2 ------------------------------------------------------------ revno: 861 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 11:44:02 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 860 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 11:39:36 +0000 message: 0.3.2 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 859 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 11:39:26 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 858 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 11:38:44 +0000 message: fixed class name modified: gtk24backports/gtk24toolbar.c ------------------------------------------------------------ revno: 857 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 10:51:30 +0000 message: don't minimize height of buttons of the statusbar modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 856 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 09:18:04 +0000 message: added ToggleScrollCommonBuffer action to View menu modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 855 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 09:14:03 +0000 message: use connect/reconnect/disconnect account action for the context menu of the channel tree. modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 854 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 09:11:07 +0000 message: use gboolean instead of if() to set sensitivity modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 853 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 09:03:03 +0000 message: connect/reconnect/disconnect current account modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c src/loqui_app_actions.h ------------------------------------------------------------ revno: 852 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 08:17:22 +0000 message: account_set_away_type(): created. modified: src/account.c src/account.h src/loqui_statusbar.c ------------------------------------------------------------ revno: 851 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 08:03:28 +0000 message: create statusbar's away menu with user_class modified: src/loqui_statusbar.c src/loqui_user.c src/loqui_user.h ------------------------------------------------------------ revno: 850 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 07:11:52 +0000 message: handle 265/266 modified: src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 849 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 06:54:06 +0000 message: disable connect button when no accounts are selected. modified: src/account_list_dialog.c src/account_list_dialog.h ------------------------------------------------------------ revno: 848 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 06:42:18 +0000 message: updated copyright year in the about dialog modified: src/about.c ------------------------------------------------------------ revno: 847 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 06:38:02 +0000 message: fixed the problem that wrong callback was connected. modified: src/loqui_app.c ------------------------------------------------------------ revno: 846 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-05-01 06:08:22 +0000 message: added NEWS.ja to EXTRA_DIST modified: Makefile.am ------------------------------------------------------------ revno: 845 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-30 05:45:55 +0000 message: removed Ctrl+F entry modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 844 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-30 05:43:02 +0000 message: removed fuzzy modified: po/ja.po ------------------------------------------------------------ revno: 843 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-30 05:25:59 +0000 message: memory management fix modified: src/account_manager.c src/loqui_app.c ------------------------------------------------------------ revno: 842 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-30 04:22:18 +0000 message: fixed the date modified: loqui.spec.in ------------------------------------------------------------ revno: 841 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-29 08:59:00 +0000 message: updated po (Thanks kouji) modified: po/ja.po ------------------------------------------------------------ revno: 840 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-29 08:55:39 +0000 message: use gettext modified: src/account_dialog.c ------------------------------------------------------------ revno: 839 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 13:08:16 +0000 message: 0.3.1 ------------------------------------------------------------ revno: 838 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 12:29:11 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 837 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 12:20:24 +0000 message: changed modified: README ------------------------------------------------------------ revno: 836 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 12:18:18 +0000 message: 0.3.1 modified: NEWS NEWS.ja configure.in src/loqui_statusbar.c ------------------------------------------------------------ revno: 835 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 12:12:13 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 834 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 12:06:06 +0000 message: set default sort type of nicklist as 'Power > Nick' modified: src/prefs_general.c ------------------------------------------------------------ revno: 833 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 12:00:24 +0000 message: separate auto-switch-scrolling preference. modified: src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_app_actions.h src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_statusbar.c src/loqui_statusbar.h src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 832 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 11:18:36 +0000 message: add auto_switch_scrolling property to channel text view modified: src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channel_text_view.c src/loqui_channel_text_view.h src/prefs_dialog.c src/prefs_dialog.h ------------------------------------------------------------ revno: 831 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 10:39:01 +0000 message: install tooltip to channelbar modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 830 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 10:36:24 +0000 message: install tooltip for scroll-toggle modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 829 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 10:28:16 +0000 message: check whether or not current textview is set. modified: src/loqui_app_actions.c ------------------------------------------------------------ revno: 828 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 10:25:40 +0000 message: install tooltip to command button modified: src/loqui_app.c src/loqui_app.h src/remark_entry.c ------------------------------------------------------------ revno: 827 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 10:17:30 +0000 message: use whether_scroll icon added: src/icons/whether_scroll.png modified: src/icons/Makefile.am src/loqui_statusbar.c src/loqui_stock.c src/loqui_stock.h ------------------------------------------------------------ revno: 826 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 10:10:20 +0000 message: scroll channel tree when selected modified: src/channel_tree.c ------------------------------------------------------------ revno: 825 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 09:54:41 +0000 message: add sort type to nick list's menu modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 824 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 09:53:24 +0000 message: channel tree's menu modified: src/channel_tree.c src/channel_tree.h src/embedtxt/loqui_app_ui.txt src/loqui_app.c ------------------------------------------------------------ revno: 823 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 09:13:19 +0000 message: moved menu popup function for treeview to gtkutils modified: src/gtkutils.c src/gtkutils.h src/nick_list.c ------------------------------------------------------------ revno: 822 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 09:11:51 +0000 message: decrement op-number when the user is removed. modified: src/loqui_channel_entry.c ------------------------------------------------------------ revno: 821 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 08:17:25 +0000 message: Fixed NEWS.ja modified: NEWS.ja ------------------------------------------------------------ revno: 820 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 07:54:51 +0000 message: Don't show border. modified: src/loqui_app.c ------------------------------------------------------------ revno: 819 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-16 07:45:21 +0000 message: re-fixed loqui crashes rejoin + who modified: src/loqui_channel_entry.c ------------------------------------------------------------ revno: 818 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 15:05:30 +0000 message: 0.3.0pre4 tag. ------------------------------------------------------------ revno: 817 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 15:02:50 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 816 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 15:00:05 +0000 message: 0.3.0pre4 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 815 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 14:59:56 +0000 message: updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 814 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 14:35:58 +0000 message: Fixed focus modified: src/loqui_app.c ------------------------------------------------------------ revno: 813 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 14:29:15 +0000 message: TextView:TextBuffer = 1:M -> TextView:TextBuffer = N:N modified: src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c ------------------------------------------------------------ revno: 812 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 13:24:45 +0000 message: Removed loqui_app_scroll_page_*_buffer. modified: src/loqui_app.c src/loqui_app.h src/loqui_channel_text_view.c src/loqui_channel_text_view.h src/remark_entry.c ------------------------------------------------------------ revno: 811 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 13:11:44 +0000 message: Fixed property of codeset modified: src/loqui_profile_account_irc.c ------------------------------------------------------------ revno: 810 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 12:14:30 +0000 message: Removed needless functions. modified: src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 809 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 12:02:23 +0000 message: Check inserting text in LoquiChannelTextView. modified: src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channel_text_view.c src/loqui_channel_text_view.h ------------------------------------------------------------ revno: 808 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 11:26:48 +0000 message: Manage scroll setting in LoquiChannelTextView. modified: src/loqui_app.c src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 807 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 10:59:45 +0000 message: Added signal and property. modified: src/loqui_channel_text_view.h ------------------------------------------------------------ revno: 806 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 10:07:57 +0000 message: Now LoquiChannelTextView has ScrolledWindow. modified: src/loqui_app.c src/loqui_channel_text_view.c src/loqui_channel_text_view.h ------------------------------------------------------------ revno: 805 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 09:46:51 +0000 message: Scroll textview by LoquiChannelTextView. modified: src/loqui_app.c src/loqui_app_actions.c src/loqui_channel_text_view.c src/loqui_channel_text_view.h ------------------------------------------------------------ revno: 804 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 09:18:59 +0000 message: Moved common_textview from priv to app. modified: src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 803 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 09:12:56 +0000 message: 0.3.0pre3 tag. ------------------------------------------------------------ revno: 802 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 08:51:03 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 801 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 08:37:58 +0000 message: Created end private talk. modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c src/loqui_app_actions.h ------------------------------------------------------------ revno: 800 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 08:25:36 +0000 message: Capitalized menu items. Added stock icons to join / part. Update actions' sensitivity as current status. modified: src/loqui_app.c src/loqui_app_actions.c src/loqui_app_actions.h ------------------------------------------------------------ revno: 799 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 07:48:40 +0000 message: Added g_return_{,val}_if_fail. Fixed the bug to receive SEGV when received who reply after part and join the same channel. modified: src/loqui_channel_entry.c src/loqui_channel_entry_store.c ------------------------------------------------------------ revno: 798 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 07:47:02 +0000 message: Removed channel_input_dialog. modified: src/Makefile.am src/command_dialog.c ------------------------------------------------------------ revno: 797 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-09 06:47:31 +0000 message: Removed ChannelInputDialog. removed: src/channel_input_dialog.c src/channel_input_dialog.h modified: src/command_dialog.c ------------------------------------------------------------ revno: 796 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-08 14:47:00 +0000 message: install desktop / icon files added: loqui.png modified: Makefile.am loqui.spec.in ------------------------------------------------------------ revno: 795 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-08 14:32:04 +0000 message: added desktop file added: loqui.desktop ------------------------------------------------------------ revno: 794 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-08 14:29:25 +0000 message: added loqui icon. added: src/icons/loqui.png modified: src/icons/Makefile.am src/loqui_app.c ------------------------------------------------------------ revno: 793 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 14:11:40 +0000 message: 0.3.0pre2 tag. ------------------------------------------------------------ revno: 792 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 14:11:05 +0000 message: 0.3.0pre2 modified: NEWS NEWS.ja configure.in gtk24backports/Makefile.am po/ja.po ------------------------------------------------------------ revno: 791 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 14:10:58 +0000 message: added test_message added: test/test_message.c modified: test/Makefile ------------------------------------------------------------ revno: 790 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 13:55:21 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 789 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 13:46:44 +0000 message: removed needless entries modified: debian/changelog ------------------------------------------------------------ revno: 788 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 13:46:20 +0000 message: Fixed the problem failed to remove user when the user parted/quit. modified: src/irc_handle.c src/loqui_channel_entry.c ------------------------------------------------------------ revno: 787 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 13:45:35 +0000 message: default commands modified: src/loqui_message.h ------------------------------------------------------------ revno: 786 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-04-05 13:45:22 +0000 message: default commands modified: src/loqui_message.c ------------------------------------------------------------ revno: 785 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-04-04 13:50:58 +0000 message: Added new message class. added: src/loqui_message.c src/loqui_message.h modified: src/Makefile.am ------------------------------------------------------------ revno: 784 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-04-04 11:00:06 +0000 message: Send reordered signal when sorted. modified: src/loqui_channel_entry.c ------------------------------------------------------------ revno: 783 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 17:41:25 +0000 message: 0.3.0pre1 ------------------------------------------------------------ revno: 782 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 17:15:24 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 781 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 17:14:32 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 780 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 17:13:35 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 779 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 17:04:10 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 778 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 16:44:15 +0000 message: 0.3.0pre1 modified: NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 777 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 16:39:08 +0000 message: fixed fuzzy modified: po/ja.po ------------------------------------------------------------ revno: 776 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 16:36:38 +0000 message: added added: po/ChangeLog modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 775 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 16:31:15 +0000 message: Removed intltool* modified: Makefile.am ------------------------------------------------------------ revno: 774 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 16:23:56 +0000 message: Fixed license notices modified: src/loqui_channel.c src/loqui_channel.h src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_member.c src/loqui_member.h ------------------------------------------------------------ revno: 773 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 15:57:11 +0000 message: Fixed loqui_channel_entry_remove_real() modified: src/loqui_channel_entry.c ------------------------------------------------------------ revno: 772 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 15:49:20 +0000 message: Added UNJOINED_COLOR modified: src/loqui_account_manager_store.c src/loqui_gtk.h ------------------------------------------------------------ revno: 771 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 15:41:32 +0000 message: Follow the nick of user in private talks as possible. modified: src/account.c src/irc_handle.c ------------------------------------------------------------ revno: 770 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 15:30:56 +0000 message: Added a flag whether to parse power or not to loqui_channel_add_member_by_nick(). Check whether or not the member is already joined to the channel. Detect name changing. modified: src/irc_handle.c src/loqui_channel.c src/loqui_channel.h src/loqui_channel_entry.c ------------------------------------------------------------ revno: 769 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 15:21:39 +0000 message: Detect changing name of channel entries. modified: src/account.c src/loqui_app.c src/loqui_channel_entry_action.c ------------------------------------------------------------ revno: 768 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 15:09:03 +0000 message: Moved buffer-related menuitems to Buffers/ modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 767 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 15:06:50 +0000 message: ability to set sort func with UI modified: src/embedtxt/loqui_app_ui.txt src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_member_sort_funcs.c src/loqui_member_sort_funcs.h src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 766 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 13:59:45 +0000 message: Moved AccountManager-related functions to AccountManager. modified: src/account_manager.c src/loqui_app.c ------------------------------------------------------------ revno: 765 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 13:47:47 +0000 message: Use AccountManagerIter. modified: src/account_manager.c src/loqui_account_manager_iter.c src/loqui_account_manager_iter.h src/loqui_app.c ------------------------------------------------------------ revno: 764 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 13:12:51 +0000 message: Added AccountManagerIter. added: src/loqui_account_manager_iter.c src/loqui_account_manager_iter.h modified: src/Makefile.am src/account_manager.c src/account_manager.h ------------------------------------------------------------ revno: 763 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 13:12:11 +0000 message: fixed that current channel entry was not set modified: src/loqui_app.c ------------------------------------------------------------ revno: 762 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 11:08:11 +0000 message: Fixed sorting. Implemented insertion-sort. modified: src/loqui_app.c src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_member_sort_funcs.c src/loqui_member_sort_funcs.h ------------------------------------------------------------ revno: 761 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 08:45:04 +0000 message: test for utils_g_ptr_array_insert_sort() modified: test/test_utils.c ------------------------------------------------------------ revno: 760 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 08:44:35 +0000 message: Implemented utils_g_ptr_array_insert_sort() modified: src/loqui_account_manager_store.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 759 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 06:04:22 +0000 message: Made sortable with last message time. Fix sorting. modified: src/account.c src/irc_handle.c src/loqui_channel.c src/loqui_channel_entry.c src/loqui_channel_entry_store.c src/loqui_member.c src/loqui_member_sort_funcs.c src/loqui_member_sort_funcs.h ------------------------------------------------------------ revno: 758 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 06:03:11 +0000 message: Added sort-key of nick. modified: src/loqui_user.c src/loqui_user.h ------------------------------------------------------------ revno: 757 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 03:38:20 +0000 message: Made channel entry sortable. added: src/loqui_member_sort_funcs.c src/loqui_member_sort_funcs.h modified: src/Makefile.am src/irc_handle.c src/loqui_channel_entry.c src/loqui_channel_entry.h ------------------------------------------------------------ revno: 756 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-04-03 02:53:34 +0000 message: added last message time modified: src/loqui_member.c src/loqui_member.h ------------------------------------------------------------ revno: 755 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 14:48:27 +0000 message: Show the nick of away type on the statusbar. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 754 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 14:26:26 +0000 message: Use loqui_stock_get_id_from_basic_away_type(). modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 753 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 14:16:44 +0000 message: Added away icons to ChannelTree. modified: src/channel_tree.c src/loqui_account_manager_store.c src/loqui_account_manager_store.h src/loqui_app.c ------------------------------------------------------------ revno: 752 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 14:16:19 +0000 message: Added loqui_stock_get_id_from_basic_away_type(). modified: src/loqui_stock.c src/loqui_stock.h ------------------------------------------------------------ revno: 751 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 14:15:10 +0000 message: Added "changed-user-self" signal. modified: src/account.c src/account.h ------------------------------------------------------------ revno: 750 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 11:56:00 +0000 message: Make NickList's headers invisible. modified: src/nick_list.c ------------------------------------------------------------ revno: 749 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 11:47:08 +0000 message: Added AccountManagerStore added: src/loqui_account_manager_store.c src/loqui_account_manager_store.h ------------------------------------------------------------ revno: 748 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 11:44:43 +0000 message: Removed set_current_{account,channel}. Added set_current_channel_entry. modified: src/channel_tree.c src/loqui_app.c src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 747 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-04-02 08:41:44 +0000 message: Created AccountManagerStore. modified: src/Makefile.am src/channel_tree.c src/channel_tree.h src/loqui_app.c src/loqui_app.h src/loqui_channel_entry_store.c ------------------------------------------------------------ revno: 746 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 17:51:06 +0000 message: Open join-dialog when the channel button on the channelbar modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 745 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 17:40:33 +0000 message: Removed inserted signal. Added 'add' signal. modified: src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_channel_entry_store.c ------------------------------------------------------------ revno: 744 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 17:28:12 +0000 message: Added ID to ChannelEntry. Fixed accel keys. modified: src/account_manager.c src/account_manager.h src/loqui_app.c src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_channel_entry_action.c src/loqui_gtk.c src/loqui_gtk.h ------------------------------------------------------------ revno: 743 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 16:39:19 +0000 message: let it not to open a duplicated private talk buffer. modified: src/account.c ------------------------------------------------------------ revno: 742 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 16:22:18 +0000 message: focus if channel tree's row is activated modified: src/channel_tree.c ------------------------------------------------------------ revno: 741 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 16:17:16 +0000 message: attach focus-changer ChannelTree and NickList. modified: src/channel_tree.c src/gtkutils.c src/loqui_app.c src/loqui_app.h src/loqui_channel_text_view.c src/loqui_channel_text_view.h src/nick_list.c ------------------------------------------------------------ revno: 740 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 15:54:08 +0000 message: re-fix focus modified: src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 739 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 15:45:45 +0000 message: Created gtkutils_bindings_has_matched_entry(). Fix focus modified: src/gtkutils.c src/gtkutils.h src/loqui_channel_text_view.c ------------------------------------------------------------ revno: 738 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 15:04:18 +0000 message: created LoquiChannelTextView. focus remark entry when a needless key is pressed on a channel text view. added: src/loqui_channel_text_view.c src/loqui_channel_text_view.h ------------------------------------------------------------ revno: 737 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-04-01 15:03:41 +0000 message: created LoquiChannelTextView. focus remark entry when a needless key is pressed on a channel text view. modified: src/Makefile.am src/loqui_app.c ------------------------------------------------------------ revno: 736 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-31 15:58:10 +0000 message: Use LoquiChannelEntry class in ChannelEntryAction. set accel path. modified: src/account.c src/account_manager.c src/account_manager.h src/loqui_app.c src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_channel_entry_action.c src/loqui_channel_entry_action.h src/loqui_channel_entry_ui.c src/loqui_channel_entry_ui.h ------------------------------------------------------------ revno: 735 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-31 15:54:05 +0000 message: Fix the order of notify and set. modified: src/gobject_utils.h ------------------------------------------------------------ revno: 734 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-31 05:49:23 +0000 message: select next/prev account/channel with AccountManager modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel_tree.c src/channel_tree.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c ------------------------------------------------------------ revno: 733 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-31 04:28:32 +0000 message: free ProfileHandle. modified: src/account_manager.c ------------------------------------------------------------ revno: 732 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-31 04:25:58 +0000 message: Memory management fix. (problems remains) modified: src/account_dialog.c src/account_manager.c src/loqui_app.c src/loqui_channel_entry_action.c src/loqui_channel_entry_store.c src/loqui_channel_entry_ui.c src/loqui_gtk.c ------------------------------------------------------------ revno: 731 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-30 18:05:08 +0000 message: Do add/remove account with class method. Manage accounts with GList instead of GSList. modified: src/account_list_dialog.c src/account_manager.c src/account_manager.h src/channel_input_dialog.c ------------------------------------------------------------ revno: 730 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-30 17:46:25 +0000 message: Manage channels in a list. Memory management fix about channels. modified: src/account.c src/account.h src/channel_input_dialog.c src/irc_handle.c src/loqui_app.c ------------------------------------------------------------ revno: 729 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-30 15:39:34 +0000 message: set OFFLINE as default modified: src/account.c ------------------------------------------------------------ revno: 728 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-30 14:49:46 +0000 message: Disconnect after QUIT modified: src/account.c src/irc_connection.c src/irc_connection.h ------------------------------------------------------------ revno: 727 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 19:09:53 +0000 message: Added the field for channel key to join dialog. modified: src/account.c src/account.h src/command_dialog.c ------------------------------------------------------------ revno: 726 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 18:32:47 +0000 message: Manage a account's status with LoquiUser modified: src/account.c src/account.h src/account_dialog.c src/account_manager.c src/command_dialog.c src/irc_handle.c src/loqui_app.c src/loqui_statusbar.c ------------------------------------------------------------ revno: 725 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 17:11:16 +0000 message: lazy channel selection modified: src/loqui_app.c ------------------------------------------------------------ revno: 724 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 16:44:00 +0000 message: Count Op/Member number. modified: src/channel_tree.c src/loqui_app.c src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_channelbar.c ------------------------------------------------------------ revno: 723 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 15:31:32 +0000 message: Use ChannelEntry's buffer in Account modified: src/account.c src/account.h src/loqui_app.c ------------------------------------------------------------ revno: 722 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 15:23:59 +0000 message: Change Account's parent. modified: src/account.c src/account.h ------------------------------------------------------------ revno: 721 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 05:10:19 +0000 message: Abolished LoquiMemberPowerType modified: src/irc_handle.c src/loqui_channel.c src/loqui_channel.h src/loqui_channel_entry_store.c src/loqui_member.c src/loqui_member.h src/loqui_utils_irc.c src/loqui_utils_irc.h src/nick_list.c ------------------------------------------------------------ revno: 720 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 04:40:07 +0000 message: Fixed the function to get basic away type modified: src/loqui_user.c ------------------------------------------------------------ revno: 719 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 04:23:14 +0000 message: Fixed handling of who reply modified: src/irc_handle.c ------------------------------------------------------------ revno: 718 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 04:17:33 +0000 message: handle changing member's status modified: src/loqui_channel_entry_store.c ------------------------------------------------------------ revno: 717 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-29 04:02:22 +0000 message: handle removing member modified: src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_channel_entry_store.c ------------------------------------------------------------ revno: 716 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 17:25:44 +0000 message: set label color of channel entry. modified: src/loqui_channel_entry_action.c ------------------------------------------------------------ revno: 715 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 16:43:17 +0000 message: add tearoffs modified: src/loqui_app.c ------------------------------------------------------------ revno: 714 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 16:40:30 +0000 message: Removed private fields from LoquiUser{,IRC} LoquiMember to improve performance. modified: src/loqui_app.c src/loqui_member.c src/loqui_member.h src/loqui_user.c src/loqui_user.h src/loqui_user_irc.c src/loqui_user_irc.h ------------------------------------------------------------ revno: 713 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 16:35:50 +0000 message: Activate notify::is_updated modified: src/loqui_app.c ------------------------------------------------------------ revno: 712 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 16:19:29 +0000 message: Show messages from the server to a channel to not the console but the channel buffer. modified: src/irc_handle.c ------------------------------------------------------------ revno: 711 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 15:57:24 +0000 message: Destroy members when disposed. Fixed the bug failed to remove an user. modified: src/loqui_channel_entry.c ------------------------------------------------------------ revno: 710 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 15:41:51 +0000 message: Use 2 hash tables instead of GRelation modified: src/account.c src/account.h ------------------------------------------------------------ revno: 709 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 14:44:13 +0000 message: 'Channel > Part' close private talk modified: src/account.c ------------------------------------------------------------ revno: 708 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 14:37:33 +0000 message: Fixed the bug receive SEGV when opening connect dialog when there is no account modified: src/account_list_dialog.c ------------------------------------------------------------ revno: 707 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 14:06:41 +0000 message: added include gtk/gtk.h modified: src/loqui_app.h ------------------------------------------------------------ revno: 706 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 14:03:39 +0000 message: added '#ifdef USE_GTK_2_2' to gtk24backports.h modified: gtk24backports/gtk24backports.h ------------------------------------------------------------ revno: 705 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 14:01:14 +0000 message: Removed old Channel. removed: src/channel.c src/channel.h ------------------------------------------------------------ revno: 704 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 13:59:09 +0000 message: Use LoquiUser/Member framework (unstable currently!) added: src/loqui_utils_irc.c src/loqui_utils_irc.h modified: src/Makefile.am src/account.c src/account.h src/account_manager.h src/channel_tree.c src/channel_tree.h src/command_dialog.c src/command_dialog.h src/irc_handle.c src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channel.c src/loqui_channel.h src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_channel_entry_action.c src/loqui_channel_entry_store.c src/loqui_channel_entry_store.h src/loqui_channel_entry_ui.c src/loqui_channel_entry_ui.h src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_member.c src/loqui_member.h src/loqui_statusbar.c src/loqui_statusbar.h src/loqui_user.c src/loqui_user.h src/main.h src/nick_list.c src/nick_list.h src/utils.c src/utils.h ------------------------------------------------------------ revno: 703 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-28 12:57:34 +0000 message: Removed gtktoggleactionprivate.h modified: gtk24backports/gtk24backports.h gtk24backports/gtkuimanager.c ------------------------------------------------------------ revno: 702 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 16:08:00 +0000 message: Removed nick_list_set_store(). modified: src/loqui_app.c src/nick_list.c src/nick_list.h ------------------------------------------------------------ revno: 701 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 16:04:22 +0000 message: use 'object' as child object element name modified: src/loqui_profile_handle.c src/loqui_profile_handle.h ------------------------------------------------------------ revno: 700 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 15:16:53 +0000 message: changed element name: account -> profile modified: src/loqui_profile_handle.c ------------------------------------------------------------ revno: 699 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 11:32:38 +0000 message: updated po modified: po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 698 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 11:11:28 +0000 message: Added. added: src/loqui_channel_entry_ui.c src/loqui_channel_entry_ui.h ------------------------------------------------------------ revno: 697 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 11:11:00 +0000 message: Use GtkAction for the popup menu on NickList. modified: src/loqui_app.c src/loqui_app_actions.c src/nick_list.c src/nick_list.h ------------------------------------------------------------ revno: 696 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 10:19:32 +0000 message: Show channel name on channelbar modified: src/loqui_channel_entry_action.c src/loqui_channelbar.c ------------------------------------------------------------ revno: 695 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 08:37:12 +0000 message: Fix BIG memory leak modified: src/irc_message.c ------------------------------------------------------------ revno: 694 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-26 08:28:46 +0000 message: Removed include buffer_menu.h modified: src/loqui_app.c src/loqui_channelbar.c ------------------------------------------------------------ revno: 693 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-25 18:06:27 +0000 message: Use GtkUIManager instead of buffer_menu to manage channels. removed: src/buffer_menu.c src/buffer_menu.h modified: src/Makefile.am src/embedtxt/loqui_app_ui.txt src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channel_entry_action.c src/loqui_channel_entry_action.h src/loqui_channelbar.c src/loqui_channelbar.h ------------------------------------------------------------ revno: 692 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-25 17:02:55 +0000 message: added test_title_format added: test/test_title_format.c modified: test/Makefile ------------------------------------------------------------ revno: 691 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-25 17:01:48 +0000 message: added added: src/loqui_title_format.c src/loqui_title_format.h ------------------------------------------------------------ revno: 690 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-24 11:45:53 +0000 message: Use EPS instead of page_increment to check whether scrolled to end or not. modified: src/loqui_app.c ------------------------------------------------------------ revno: 689 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-24 11:11:23 +0000 message: Moved functions related current buffer from AccountManager to LoquiApp. AccountManager don't manage app. modified: src/account_dialog.c src/account_manager.c src/account_manager.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_gtk.c src/main.c ------------------------------------------------------------ revno: 688 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-24 09:19:40 +0000 message: Created loqui_app_{set,get}_current_{channel,account} modified: src/channel_tree.c src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channelbar.c src/loqui_statusbar.c src/nick_list.c ------------------------------------------------------------ revno: 687 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-24 07:20:16 +0000 message: Added LoquiChannelEntryAction. added: src/loqui_channel_entry_action.c src/loqui_channel_entry_action.h modified: src/Makefile.am ------------------------------------------------------------ revno: 686 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-24 06:24:40 +0000 message: Removed signals from LoquiStatusbar. modified: src/loqui_app.c src/loqui_statusbar.c ------------------------------------------------------------ revno: 685 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-24 05:28:34 +0000 message: Added {add,remove}-account signals. modified: src/account_manager.c src/account_manager.h ------------------------------------------------------------ revno: 684 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-23 16:24:35 +0000 message: Ignore PONG. modified: src/irc_handle.c ------------------------------------------------------------ revno: 683 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-23 04:30:16 +0000 message: New menu structure. modified: src/embedtxt/loqui_app_ui.txt src/loqui_app_actions.c ------------------------------------------------------------ revno: 682 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-23 04:22:15 +0000 message: Use glib-object.h instead of gtk/gtk.h modified: src/codeconv.h ------------------------------------------------------------ revno: 681 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-22 17:24:17 +0000 message: Added LoquiChannel added: src/loqui_channel.c src/loqui_channel.h ------------------------------------------------------------ revno: 680 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-22 17:23:51 +0000 message: added properties modified: src/loqui_channel_entry.c src/loqui_channel_entry.h ------------------------------------------------------------ revno: 679 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-22 17:23:17 +0000 message: implement dispose function modified: src/loqui_user.c ------------------------------------------------------------ revno: 678 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-21 08:46:00 +0000 message: Added ChannelEntryStore. added: src/loqui_channel_entry_store.c src/loqui_channel_entry_store.h modified: src/Makefile.am ------------------------------------------------------------ revno: 677 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-21 08:44:39 +0000 message: AWAY_INVALID -> AWAY_UNKNOWN. modified: src/loqui_user.c src/loqui_user.h ------------------------------------------------------------ revno: 676 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-21 08:43:46 +0000 message: Functions to get number / nth. modified: src/loqui_channel_entry.c src/loqui_channel_entry.h ------------------------------------------------------------ revno: 675 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 17:15:30 +0000 message: Added ChannelEntry. added: src/loqui_channel_entry.c src/loqui_channel_entry.h src/loqui_marshalers.c src/loqui_marshalers.h src/loqui_marshalers.list modified: src/Makefile.am ------------------------------------------------------------ revno: 674 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 08:30:48 +0000 message: Added LoquiMember class. added: src/loqui_member.c src/loqui_member.h ------------------------------------------------------------ revno: 673 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 08:30:07 +0000 message: Added LoquiMember class. modified: src/Makefile.am src/loqui_user_irc.c ------------------------------------------------------------ revno: 672 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:33:12 +0000 message: Removed intl dir modified: Makefile.am ------------------------------------------------------------ revno: 671 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:32:43 +0000 message: added POTFILES.in helper script added: update-potfiles.sh ------------------------------------------------------------ revno: 670 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:31:14 +0000 message: added new po dir added: po/ po/Makefile.in.in po/POTFILES.in po/ja.po ------------------------------------------------------------ revno: 669 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:29:37 +0000 message: added svn property of ignore ------------------------------------------------------------ revno: 668 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:27:45 +0000 message: removed intl dir removed: intl/ intl/ChangeLog intl/Makefile.in intl/VERSION intl/bindtextdom.c intl/config.charset intl/dcgettext.c intl/dcigettext.c intl/dcngettext.c intl/dgettext.c intl/dngettext.c intl/eval-plural.h intl/explodename.c intl/finddomain.c intl/gettext.c intl/gettextP.h intl/gmo.h intl/hash-string.h intl/intl-compat.c intl/l10nflist.c intl/libgnuintl.h intl/loadinfo.h intl/loadmsgcat.c intl/localcharset.c intl/locale.alias intl/localealias.c intl/localename.c intl/ngettext.c intl/os2compat.c intl/os2compat.h intl/osdep.c intl/plural-exp.c intl/plural-exp.h intl/plural.c intl/plural.y intl/ref-add.sin intl/ref-del.sin intl/textdomain.c ------------------------------------------------------------ revno: 667 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:26:37 +0000 message: Removed old po dir. removed: po/ po/ChangeLog po/Makefile.in.in po/Makevars po/Makevars.template po/POTFILES.in po/Rules-quot po/boldquot.sed po/en@boldquot.header po/en@quot.header po/insert-header.sin po/ja.po po/loqui.pot po/quot.sed po/remove-potcdate.sin ------------------------------------------------------------ revno: 666 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:25:45 +0000 message: removed needless files removed: m4/Makefile m4/Makefile.in ------------------------------------------------------------ revno: 665 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:25:25 +0000 message: added new m4 added: m4/ m4/Makefile m4/Makefile.am m4/Makefile.in m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/lcmessage.m4 m4/progtest.m4 ------------------------------------------------------------ revno: 664 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:24:19 +0000 message: removed old m4 removed: m4/ m4/ChangeLog m4/Makefile.am m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/intdiv0.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/progtest.m4 m4/stdint_h.m4 m4/uintmax_t.m4 m4/ulonglong.m4 ------------------------------------------------------------ revno: 663 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 07:19:52 +0000 message: use glib-gettext modified: configure.in ------------------------------------------------------------ revno: 662 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 06:35:02 +0000 message: Removed ChangeLog file. removed: ChangeLog modified: src/loqui_user.h ------------------------------------------------------------ revno: 661 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 06:16:54 +0000 message: Added is_ignored property. modified: src/loqui_user.c ------------------------------------------------------------ revno: 660 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 05:12:29 +0000 message: updated svn:ignore ------------------------------------------------------------ revno: 659 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-20 05:09:41 +0000 message: Added. added: src/loqui_user_irc.c src/loqui_user_irc.h modified: src/Makefile.am ------------------------------------------------------------ revno: 658 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:53 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_11'. ------------------------------------------------------------ revno: 657 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:53 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_10'. ------------------------------------------------------------ revno: 656 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:53 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_13'. ------------------------------------------------------------ revno: 655 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:53 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_15'. ------------------------------------------------------------ revno: 654 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:52 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_14'. ------------------------------------------------------------ revno: 653 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:51 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_17'. ------------------------------------------------------------ revno: 652 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:51 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_16'. ------------------------------------------------------------ revno: 651 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:51 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_18'. ------------------------------------------------------------ revno: 650 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:50 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_2_4'. ------------------------------------------------------------ revno: 649 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:50 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_2_5'. ------------------------------------------------------------ revno: 648 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:50 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_2_0'. ------------------------------------------------------------ revno: 647 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:50 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_2_1'. ------------------------------------------------------------ revno: 646 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:49 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_2_2'. ------------------------------------------------------------ revno: 645 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:49 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_2_3'. ------------------------------------------------------------ revno: 644 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:49 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_0_9'. ------------------------------------------------------------ revno: 643 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:49 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_0_6'. ------------------------------------------------------------ revno: 642 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:49 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_0_7'. ------------------------------------------------------------ revno: 641 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:48 +0000 message: This commit was manufactured by cvs2svn to create tag 'start'. ------------------------------------------------------------ revno: 640 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:48 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_0_5'. ------------------------------------------------------------ revno: 639 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:48 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_3'. ------------------------------------------------------------ revno: 638 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:46 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_1'. ------------------------------------------------------------ revno: 637 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:46 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_0'. ------------------------------------------------------------ revno: 636 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:46 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_7'. ------------------------------------------------------------ revno: 635 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:46 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_6'. ------------------------------------------------------------ revno: 634 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:46 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_5'. ------------------------------------------------------------ revno: 633 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:45 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_8'. ------------------------------------------------------------ revno: 632 committer: unknown branch nick: trunk timestamp: Fri 2004-03-19 15:09:45 +0000 message: This commit was manufactured by cvs2svn to create tag 'release-0_1_20'. ------------------------------------------------------------ revno: 631 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-19 14:48:40 +0000 message: added test_user added: test/test_user.c ------------------------------------------------------------ revno: 630 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-19 14:47:16 +0000 message: Changed makefile modified: ChangeLog src/Makefile.am ------------------------------------------------------------ revno: 629 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-19 14:31:44 +0000 message: added user test. use libtool. modified: test/Makefile test/test_utils.c test/update.sh ------------------------------------------------------------ revno: 628 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-19 14:24:48 +0000 message: Added LoquiUser. added: src/loqui_user.c src/loqui_user.h ------------------------------------------------------------ revno: 627 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-19 08:25:32 +0000 message: gobject_utils macros send notify. modified: src/gobject_utils.h ------------------------------------------------------------ revno: 626 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-18 16:12:36 +0000 message: Don't use account_manager_get() in normal code. modified: src/account_dialog.c src/account_dialog.h src/account_list_dialog.c src/account_list_dialog.h src/account_manager.c src/channel_input_dialog.c src/channel_input_dialog.h src/channel_tree.c src/channel_tree.h src/command_dialog.c src/command_dialog.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_channelbar.c src/loqui_channelbar.h src/main.c src/nick_list.c src/nick_list.h ------------------------------------------------------------ revno: 625 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-18 15:54:18 +0000 message: default value of is_scroll modified: src/loqui_app.c ------------------------------------------------------------ revno: 624 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-18 13:26:01 +0000 message: Use action to toggle scrolling. modified: src/account_manager.c src/embedtxt/loqui_app_ui.txt src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_app_actions.h src/loqui_statusbar.c src/loqui_statusbar.h src/main.c ------------------------------------------------------------ revno: 623 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-18 11:13:32 +0000 message: Moved gtk related functions to loqui_gtk.[ch] added: src/loqui_gtk.c src/loqui_gtk.h modified: src/Makefile.am src/buffer_menu.c src/channel_tree.c src/command_table.c src/loqui_channelbar.c src/main.c src/main.h ------------------------------------------------------------ revno: 622 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-18 08:49:37 +0000 message: Added warning options to Makefile. modified: src/Makefile.am src/account_dialog.h src/loqui_statusbar.c ------------------------------------------------------------ revno: 621 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-03-18 08:31:26 +0000 message: Created DropdownBox widget. added: src/loqui_dropdown_box.c src/loqui_dropdown_box.h modified: src/Makefile.am src/loqui_statusbar.c ------------------------------------------------------------ revno: 620 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 12:16:32 +0000 message: Changed delete_event from a signal to a class method. modified: src/loqui_app.c ------------------------------------------------------------ revno: 619 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 12:10:32 +0000 message: added files related GNU global modified: src/.cvsignore ------------------------------------------------------------ revno: 618 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 12:09:37 +0000 message: Clean up RemarkEntry's focus behaviour. modified: src/account_manager.c src/loqui_app.c src/loqui_app.h src/remark_entry.c ------------------------------------------------------------ revno: 617 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 11:49:40 +0000 message: Clean up RemarkEntry's focus behaviour. modified: src/remark_entry.h ------------------------------------------------------------ revno: 616 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 11:34:14 +0000 message: Fixed focus_on_click behavior. modified: gtk24backports/gtk24backports.c gtk24backports/gtk24backports.h ------------------------------------------------------------ revno: 615 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 10:24:43 +0000 message: Actions related editing are moved from loqui_app to loqui_app_actions. modified: src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/remark_entry.c ------------------------------------------------------------ revno: 614 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 10:05:27 +0000 message: loqui_actions -> loqui_app_actions removed: src/loqui_actions.c src/loqui_actions.h added: src/loqui_app_actions.c src/loqui_app_actions.h modified: src/Makefile.am src/loqui_app.c ------------------------------------------------------------ revno: 613 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-03-17 04:07:41 +0000 message: separator to placeholder modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 612 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 17:47:38 +0000 message: Changed shortcut keys of (updated) previous/next channel (Ctrl+Shift+Space, Ctrl+Space, Ctrl+Up, Ctrl+Down). modified: src/loqui_actions.c ------------------------------------------------------------ revno: 611 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 15:49:33 +0000 message: Use GtkAction for toggle_command_mode. modified: src/loqui_actions.c src/loqui_app.c src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 610 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 14:40:16 +0000 message: Remove warnings. modified: gtk24backports/gtk24ext.h gtk24backports/gtk24toolbar.c gtk24backports/gtkaction.c gtk24backports/gtkseparatortoolitem.c gtk24backports/gtktoggletoolbutton.c gtk24backports/gtktoolbutton.c gtk24backports/gtkuimanager.c ------------------------------------------------------------ revno: 609 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 14:32:54 +0000 message: Removed. removed: acconfig.h ------------------------------------------------------------ revno: 608 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 14:30:29 +0000 message: Removed autotools' files. Updated .cvsignore removed: install-sh missing mkinstalldirs modified: .cvsignore ------------------------------------------------------------ revno: 607 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 14:21:00 +0000 message: Updated .cvsignore modified: src/embedtxt/.cvsignore ------------------------------------------------------------ revno: 606 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 14:19:32 +0000 message: Added added: COPYING.LIB ------------------------------------------------------------ revno: 605 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 14:19:02 +0000 message: Require autoconf 2.53. Removed intltool. Update missing removed: intltool-extract intltool-extract.in intltool-merge intltool-merge.in intltool-update intltool-update.in modified: configure.in gtk24backports/.cvsignore missing ------------------------------------------------------------ revno: 604 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 14:17:19 +0000 message: added added: gtk24backports/gtk24marshalers.list ------------------------------------------------------------ revno: 603 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 13:57:27 +0000 message: Removed libegg removed: src/libegg/ src/libegg/.cvsignore src/libegg/Makefile.am src/libegg/egg-action-group.c src/libegg/egg-action-group.h src/libegg/egg-action.c src/libegg/egg-action.h src/libegg/egg-entry-action.c src/libegg/egg-entry-action.h src/libegg/egg-history-action.c src/libegg/egg-history-action.h src/libegg/egg-markup.c src/libegg/egg-markup.h src/libegg/egg-marshalers.list src/libegg/egg-menu-merge.c src/libegg/egg-menu-merge.h src/libegg/egg-menu.h src/libegg/egg-radio-action.c src/libegg/egg-radio-action.h src/libegg/egg-radiotoolbutton.c src/libegg/egg-radiotoolbutton.h src/libegg/egg-separatortoolitem.c src/libegg/egg-separatortoolitem.h src/libegg/egg-toggle-action.c src/libegg/egg-toggle-action.h src/libegg/egg-toggletoolbutton.c src/libegg/egg-toggletoolbutton.h src/libegg/egg-toolbar.c src/libegg/egg-toolbar.h src/libegg/egg-toolbutton.c src/libegg/egg-toolbutton.h src/libegg/egg-toolitem.c src/libegg/egg-toolitem.h ------------------------------------------------------------ revno: 602 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 13:55:04 +0000 message: Use Gtk24's action modified: src/Makefile.am src/loqui_actions.c src/loqui_actions.h src/loqui_app.c src/loqui_app.h src/main.c ------------------------------------------------------------ revno: 601 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 13:54:32 +0000 message: Changed for GtkUIManager modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 600 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 12:23:28 +0000 message: added added: gtk24backports/AUTHORS ------------------------------------------------------------ revno: 599 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 12:23:17 +0000 message: fixed. added: gtk24backports/.cvsignore gtk24backports/gtk24backports.c gtk24backports/gtk24ext.c gtk24backports/gtk24ext.h modified: gtk24backports/Makefile.am gtk24backports/README gtk24backports/gtk24backports.h gtk24backports/gtk24toolbar.c gtk24backports/gtk24toolbar.h gtk24backports/gtkaction.c gtk24backports/gtkaction.h gtk24backports/gtkactiongroup.c gtk24backports/gtkactiongroup.h gtk24backports/gtkintl.h gtk24backports/gtkradioaction.c gtk24backports/gtkradioaction.h gtk24backports/gtkradiotoolbutton.c gtk24backports/gtkradiotoolbutton.h gtk24backports/gtktoggleaction.c gtk24backports/gtktoggleaction.h gtk24backports/gtktoggleactionprivate.h gtk24backports/gtktoggletoolbutton.c gtk24backports/gtktoggletoolbutton.h gtk24backports/gtktoolbutton.c gtk24backports/gtktoolitem.c gtk24backports/gtktoolitem.h gtk24backports/gtkuimanager.c gtk24backports/gtkuimanager.h ------------------------------------------------------------ revno: 598 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-16 07:22:51 +0000 message: Backported GtkAction widgets from gtk-2.4 added: gtk24backports/ gtk24backports/Makefile.am gtk24backports/README gtk24backports/gtk24backports.h gtk24backports/gtk24marshalers.c gtk24backports/gtk24marshalers.h gtk24backports/gtk24toolbar.c gtk24backports/gtk24toolbar.h gtk24backports/gtkaction.c gtk24backports/gtkaction.h gtk24backports/gtkactiongroup.c gtk24backports/gtkactiongroup.h gtk24backports/gtkintl.h gtk24backports/gtkradioaction.c gtk24backports/gtkradioaction.h gtk24backports/gtkradiotoolbutton.c gtk24backports/gtkradiotoolbutton.h gtk24backports/gtkseparatortoolitem.c gtk24backports/gtkseparatortoolitem.h gtk24backports/gtktoggleaction.c gtk24backports/gtktoggleaction.h gtk24backports/gtktoggleactionprivate.h gtk24backports/gtktoggletoolbutton.c gtk24backports/gtktoggletoolbutton.h gtk24backports/gtktoolbutton.c gtk24backports/gtktoolbutton.h gtk24backports/gtktoolitem.c gtk24backports/gtktoolitem.h gtk24backports/gtkuimanager.c gtk24backports/gtkuimanager.h modified: Makefile.am acconfig.h configure.in ------------------------------------------------------------ revno: 597 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-15 18:58:33 +0000 message: Added (Entry|History)Action added: src/libegg/egg-entry-action.c src/libegg/egg-entry-action.h src/libegg/egg-history-action.c src/libegg/egg-history-action.h modified: src/libegg/Makefile.am src/libegg/egg-action-group.c src/libegg/egg-action-group.h ------------------------------------------------------------ revno: 596 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-15 18:33:32 +0000 message: Mainmenu uses EggAction* removed: src/loqui_menu.c src/loqui_menu.h added: src/loqui_actions.c src/loqui_actions.h modified: src/Makefile.am src/account_manager.c src/libegg/Makefile.am src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 595 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-15 18:29:24 +0000 message: Added \n modified: src/embedtxt/Makefile.am ------------------------------------------------------------ revno: 594 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-15 18:29:03 +0000 message: fixed. modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 593 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-15 14:41:38 +0000 message: Fixed typo. modified: src/embedtxt/loqui_app_ui.txt ------------------------------------------------------------ revno: 592 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-15 07:17:01 +0000 message: Added embedtxt added: src/embedtxt/ src/embedtxt/.cvsignore src/embedtxt/Makefile.am src/embedtxt/loqui_app_ui.txt modified: configure.in src/Makefile.am ------------------------------------------------------------ revno: 591 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-15 03:46:20 +0000 message: Make account_name free. modified: src/message_text.c ------------------------------------------------------------ revno: 590 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 07:30:42 +0000 message: Select the node where the user clicked before popup nicklist's context-menu. modified: src/nick_list.c ------------------------------------------------------------ revno: 589 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 06:54:22 +0000 message: Changed the algorism to select next/previous channel. modified: src/channel_tree.c ------------------------------------------------------------ revno: 588 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 06:53:19 +0000 message: GTKUTILS_TREE_ITER_COMPARE(): Added. modified: src/gtkutils.h ------------------------------------------------------------ revno: 587 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 05:07:22 +0000 message: added .cvsignore added: src/libegg/.cvsignore ------------------------------------------------------------ revno: 586 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 05:06:11 +0000 message: LOQUI_STOCK_NARUTO -> LOQUI_STOCK_OPERATOR LOQUI_STOCK_SPEAKER -> LOQUI_STOCK_SPEAK_ABILITY modified: src/loqui_stock.c src/loqui_stock.h src/nick_list.c ------------------------------------------------------------ revno: 585 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 05:01:50 +0000 message: Created new icon size: LOQUI_ICON_SIZE_FONT. modified: src/loqui_statusbar.c src/loqui_stock.c src/loqui_stock.h src/nick_list.c ------------------------------------------------------------ revno: 584 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 04:10:50 +0000 message: loqui_stock.[ch]: Added. added: src/loqui_stock.c src/loqui_stock.h modified: src/Makefile.am src/buffer_menu.c src/loqui_statusbar.c src/main.c src/main.h src/remark_entry.c ------------------------------------------------------------ revno: 583 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-03-14 03:58:15 +0000 message: gtkutils_get_current_font_pixel_size(): added. modified: src/gtkutils.c src/gtkutils.h src/nick_list.c ------------------------------------------------------------ revno: 582 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 15:54:57 +0000 message: test for search_uri modified: test/test_utils.c ------------------------------------------------------------ revno: 581 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 15:54:39 +0000 message: utils_search_uri(): Fixed. modified: src/utils.c ------------------------------------------------------------ revno: 580 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 15:27:08 +0000 message: merged action part of libegg added: src/libegg/ src/libegg/Makefile.am src/libegg/egg-action-group.c src/libegg/egg-action-group.h src/libegg/egg-action.c src/libegg/egg-action.h src/libegg/egg-markup.c src/libegg/egg-markup.h src/libegg/egg-marshalers.list src/libegg/egg-menu-merge.c src/libegg/egg-menu-merge.h src/libegg/egg-menu.h src/libegg/egg-radio-action.c src/libegg/egg-radio-action.h src/libegg/egg-radiotoolbutton.c src/libegg/egg-radiotoolbutton.h src/libegg/egg-separatortoolitem.c src/libegg/egg-separatortoolitem.h src/libegg/egg-toggle-action.c src/libegg/egg-toggle-action.h src/libegg/egg-toggletoolbutton.c src/libegg/egg-toggletoolbutton.h src/libegg/egg-toolbar.c src/libegg/egg-toolbar.h src/libegg/egg-toolbutton.c src/libegg/egg-toolbutton.h src/libegg/egg-toolitem.c src/libegg/egg-toolitem.h modified: configure.in src/Makefile.am ------------------------------------------------------------ revno: 579 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 15:25:50 +0000 message: added use test modified: test/test_profile_handle.c ------------------------------------------------------------ revno: 578 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 14:30:45 +0000 message: Use TYPE_ACCOUNT instead of G_TYPE_POINTER in AccountListDialog. modified: src/account_list_dialog.c ------------------------------------------------------------ revno: 577 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 13:19:02 +0000 message: AccountListDialog: implemented "connect" button. modified: src/account_list_dialog.c ------------------------------------------------------------ revno: 576 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 12:25:57 +0000 message: fix: save checkbox of "Connect default". modified: src/account_dialog.c ------------------------------------------------------------ revno: 575 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-13 12:23:15 +0000 message: g_list_foreach_swapped(): Implemented. modified: src/utils.c src/utils.h ------------------------------------------------------------ revno: 574 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 18:56:16 +0000 message: check localtime_r modified: configure.in ------------------------------------------------------------ revno: 573 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 18:55:31 +0000 message: Use LoquiProfile framework. modified: src/account.c src/account.h src/account_dialog.c src/account_dialog.h src/account_list_dialog.c src/account_list_dialog.h src/account_manager.c ------------------------------------------------------------ revno: 572 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 18:53:03 +0000 message: Set default name "Untitled.". modified: src/loqui_profile_account.c ------------------------------------------------------------ revno: 571 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 18:45:18 +0000 message: Set default username. modified: src/loqui_profile_account_irc.c ------------------------------------------------------------ revno: 570 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 18:44:36 +0000 message: Don't check list's null. modified: src/loqui_profile_handle.c ------------------------------------------------------------ revno: 569 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 18:21:31 +0000 message: Removed ConnectDialog and PrefsAccount. modified: src/Makefile.am ------------------------------------------------------------ revno: 568 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 17:07:24 +0000 message: Set default name "Untitled". modified: src/loqui_profile_account.c ------------------------------------------------------------ revno: 567 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 15:56:57 +0000 message: removed old account framework removed: src/connect_dialog.c src/connect_dialog.h src/prefs_account.c src/prefs_account.h ------------------------------------------------------------ revno: 566 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 15:54:30 +0000 message: Use LoquiProfile framework modified: src/buffer_menu.c src/channel_input_dialog.c src/channel_tree.c src/ctcp_handle.c src/loqui_app.c src/loqui_statusbar.c ------------------------------------------------------------ revno: 565 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 15:53:42 +0000 message: use current_nick modified: src/command_dialog.c ------------------------------------------------------------ revno: 564 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 05:31:55 +0000 message: added new test added: test/test_profile_account.c test/test_profile_handle.c test/test_template.c modified: test/Makefile test/test_helper.h test/update.sh ------------------------------------------------------------ revno: 563 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 05:10:53 +0000 message: Added ProfileHandle. added: src/loqui_profile_handle.c src/loqui_profile_handle.h ------------------------------------------------------------ revno: 562 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-03-09 05:00:04 +0000 message: Added ProfileAccount. added: src/loqui_profile_account.c src/loqui_profile_account.h src/loqui_profile_account_irc.c src/loqui_profile_account_irc.h ------------------------------------------------------------ revno: 561 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-03-08 15:47:37 +0000 message: Fixed definition of variable modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 560 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-06 18:52:53 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 559 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-06 18:45:48 +0000 message: 0.2.5 modified: ChangeLog NEWS NEWS.ja po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 558 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-06 18:44:43 +0000 message: Fixed signals of RemarkEntry modified: src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 557 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-06 18:27:06 +0000 message: (Alt+)PageDown/Up scroll common/channel buffer. Use GtkBidings modified: src/loqui_app.c src/loqui_app.h src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 556 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-03-06 17:03:39 +0000 message: Fixed the expander column. Added the buffer number column. modified: src/channel_tree.c ------------------------------------------------------------ revno: 555 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-03-05 11:12:25 +0000 message: new testing framework removed: test/Makefile.am test/Makefile.am.after test/test_main.c test/test_main.h test/test_utils.h test/update-makefile.sh added: test/.cvsignore test/Makefile test/test_helper.h test/update.sh modified: test/test_utils.c ------------------------------------------------------------ revno: 554 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-02-28 05:50:40 +0000 message: Modified READER, WRITER, ACCESSOR macros modified: src/account.h src/gobject_utils.h src/message_text.c src/message_text.h ------------------------------------------------------------ revno: 553 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-02-27 04:42:43 +0000 message: Implemented the feature to save logs experimentally. modified: src/account_manager.c src/main.c src/main.h src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 552 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-02-27 03:41:39 +0000 message: Deepen icon. modified: src/icons/naruto.png ------------------------------------------------------------ revno: 551 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-02-27 03:13:41 +0000 message: Fixed typo. modified: src/irc_handle.c ------------------------------------------------------------ revno: 550 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 16:52:09 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 549 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 16:49:22 +0000 message: 0.2.4 modified: ChangeLog NEWS NEWS.ja configure.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 548 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 16:03:49 +0000 message: Use naruto and speaker icons. Made icons smaller. modified: src/nick_list.c ------------------------------------------------------------ revno: 547 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 16:02:30 +0000 message: Added naruto and speaker icons. modified: src/main.c src/main.h ------------------------------------------------------------ revno: 546 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 08:29:39 +0000 message: Deepened icon modified: src/icons/naruto.png ------------------------------------------------------------ revno: 545 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 08:17:37 +0000 message: Added -kb option to cvs modified: src/icons/speaker.png ------------------------------------------------------------ revno: 544 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 07:55:52 +0000 message: Added icons, speaker and naruto. added: src/icons/naruto.png src/icons/speaker.png modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 543 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-25 05:15:37 +0000 message: Set current nick as nick change dialog. modified: src/command_dialog.c ------------------------------------------------------------ revno: 542 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-02-23 17:58:35 +0000 message: Added ttp:// to url_prefix_list. modified: src/utils.c ------------------------------------------------------------ revno: 541 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-02-23 17:52:35 +0000 message: Quit command mode when the remark entry is activated. modified: src/remark_entry.c ------------------------------------------------------------ revno: 540 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-02-23 16:51:49 +0000 message: Shortcut keys to select a channel. modified: src/buffer_menu.c src/buffer_menu.h src/loqui_menu.c src/main.c src/main.h ------------------------------------------------------------ revno: 539 committer: sunnyone41 branch nick: trunk timestamp: Mon 2004-02-23 15:13:26 +0000 message: Check existence of localtime_r. modified: src/channel_buffer.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 538 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-18 07:09:12 +0000 message: Document about quoting when executing commands. modified: src/prefs_dialog.c ------------------------------------------------------------ revno: 537 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-18 06:58:03 +0000 message: Fixed ++. modified: src/irc_handle.c ------------------------------------------------------------ revno: 536 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-18 06:53:50 +0000 message: irc_message_format(): Not to add last space when using %%*n (n is a number). modified: src/irc_handle.c src/irc_message.c ------------------------------------------------------------ revno: 535 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-18 06:44:26 +0000 message: Clean up mode parser routine. modified: src/irc_handle.c ------------------------------------------------------------ revno: 534 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-18 06:37:52 +0000 message: Fixed the bug failed to parse channel mode, 'l' and 'k'. modified: src/channel.c src/irc_handle.c ------------------------------------------------------------ revno: 533 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-18 04:41:04 +0000 message: Share tags with all channel buffers. modified: src/channel_buffer.c src/channel_buffer.h ------------------------------------------------------------ revno: 532 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-02-08 14:47:26 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 531 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-02-08 14:45:04 +0000 message: 0.2.3 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 530 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-02-08 14:42:52 +0000 message: Fixed the bug to fail reconnect after failed to connect. modified: src/account.c ------------------------------------------------------------ revno: 529 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-02-08 14:30:46 +0000 message: Implemented command mode. modified: src/account.c src/account.h src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/loqui_menu.h src/prefs_dialog.c src/prefs_general.c src/prefs_general.h src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 528 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-02-08 07:43:40 +0000 message: Handle halfwidth-kana experimentally. modified: src/codeconv.c src/codeconv.h ------------------------------------------------------------ revno: 527 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-02-07 12:20:23 +0000 message: Use LOQUI_STOCK_* constants. modified: src/buffer_menu.c src/loqui_statusbar.c src/main.c src/main.h src/nick_list.c ------------------------------------------------------------ revno: 526 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-02-07 12:19:25 +0000 message: Added command icon. modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 525 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-02-07 11:59:28 +0000 message: command icons added: src/icons/command.png src/icons/command.xcf ------------------------------------------------------------ revno: 524 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-04 12:10:28 +0000 message: Show debug message when executing command. modified: src/gtkutils.c ------------------------------------------------------------ revno: 523 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-02-04 06:36:11 +0000 message: Use g_object_ref against Codeconv in IRCConnection. modified: src/irc_connection.c ------------------------------------------------------------ revno: 522 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 08:22:24 +0000 message: Make time format(like %H:%M) in the buffer customizable. modified: src/channel_buffer.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 521 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 08:20:57 +0000 message: Removed needless condtion in a if (). modified: src/utils.c ------------------------------------------------------------ revno: 520 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 08:20:30 +0000 message: utils_strftime(): Supports multibyte(depend on locale) characters. modified: src/utils.c ------------------------------------------------------------ revno: 519 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 08:07:26 +0000 message: utils_strftime(): Check null. modified: src/utils.c ------------------------------------------------------------ revno: 518 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 08:04:50 +0000 message: utils_strftime(): Added. modified: src/utils.c src/utils.h ------------------------------------------------------------ revno: 517 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 06:38:45 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 516 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 06:37:01 +0000 message: 0.2.2 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 515 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 06:23:31 +0000 message: updated po modified: po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 514 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 06:06:30 +0000 message: Count updated channel/private talk numbers. ("updated" signal of Channel is changed.) modified: src/account.c src/account.h src/account_manager.c src/channel.c src/channel.h ------------------------------------------------------------ revno: 513 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 03:57:11 +0000 message: Don't update statusbar in loqui_app. modified: src/loqui_app.c ------------------------------------------------------------ revno: 512 committer: sunnyone41 branch nick: trunk timestamp: Thu 2004-01-22 03:22:11 +0000 message: Improved the .spec file by iwaim. modified: loqui.spec.in ------------------------------------------------------------ revno: 511 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-01-21 17:09:10 +0000 message: Implemented the feature to delete old lines. modified: src/account_manager.c src/channel_buffer.c src/channel_buffer.h ------------------------------------------------------------ revno: 510 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-01-21 14:17:21 +0000 message: Added preferences of max line numbers. modified: src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 509 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-01-21 14:15:53 +0000 message: gtkutils_add_label_spin_button(): Added. modified: src/gtkutils.c src/gtkutils.h ------------------------------------------------------------ revno: 508 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-01-20 06:32:32 +0000 message: Created account_connect_default. modified: src/account.c src/account.h src/account_manager.c src/connect_dialog.c ------------------------------------------------------------ revno: 507 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-01-20 04:12:25 +0000 message: Update information on the screen when the account is disconnected. modified: src/account_manager.c ------------------------------------------------------------ revno: 506 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-01-20 04:04:12 +0000 message: Added handlers for < 100 responses. Disconnect when the nick is already used until RPL_WELCOME, not END_MOTD. modified: src/irc_handle.c ------------------------------------------------------------ revno: 505 committer: sunnyone41 branch nick: trunk timestamp: Tue 2004-01-20 03:59:16 +0000 message: Include < 100 in IRC_MESSAGE_IS_REPLY. modified: src/irc_message.h ------------------------------------------------------------ revno: 504 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 15:57:37 +0000 message: updated ChangeLog modified: ChangeLog ------------------------------------------------------------ revno: 503 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 15:50:58 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 502 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 15:50:22 +0000 message: updated po modified: po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 501 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 15:48:57 +0000 message: 0.2.1 modified: ChangeLog NEWS NEWS.ja configure.in po/ja.po ------------------------------------------------------------ revno: 500 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 15:41:13 +0000 message: Added menu entry: /Command/Refresh users' away information of current channel. modified: src/account.c src/account.h src/irc_handle.c src/irc_handle.h src/loqui_menu.c ------------------------------------------------------------ revno: 499 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 14:46:49 +0000 message: Change the away column of nick list when received who reply. modified: src/account.h src/channel.c src/channel.h src/irc_handle.c src/nick_list.c ------------------------------------------------------------ revno: 498 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 14:17:43 +0000 message: Implemented a handler of who reply. modified: src/irc_handle.c ------------------------------------------------------------ revno: 497 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 10:34:20 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 496 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 10:31:32 +0000 message: 0.2.0 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 495 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 10:27:53 +0000 message: updated po modified: po/POTFILES.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 494 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 08:32:36 +0000 message: Removed the toolbar. removed: src/loqui_toolbar.c src/loqui_toolbar.h modified: src/Makefile.am src/account_manager.c src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/loqui_menu.h src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 493 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 08:21:52 +0000 message: Implemented switching scrolling with the statusbar. modified: src/account_manager.c src/loqui_app.c src/loqui_app.h src/loqui_statusbar.c src/loqui_statusbar.h ------------------------------------------------------------ revno: 492 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 08:20:53 +0000 message: Added *.h to .cvsignore. modified: src/icons/.cvsignore ------------------------------------------------------------ revno: 491 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 08:00:20 +0000 message: Implemented the feature to change away state with statusbar. modified: src/account.h src/loqui_app.c src/loqui_statusbar.c ------------------------------------------------------------ revno: 490 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 07:37:44 +0000 message: Created away menu. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 489 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 06:39:01 +0000 message: Added status Away/Busy. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 488 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 06:14:08 +0000 message: Created --no-send-status-commands. modified: src/irc_handle.c src/main.c src/main.h ------------------------------------------------------------ revno: 487 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 06:01:31 +0000 message: Changed the timing to ok button of the channel bar. modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 486 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 05:57:51 +0000 message: Removed nick related features from RemarkEntry. modified: src/loqui_app.c src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 485 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 05:40:21 +0000 message: Imported nick related features from RemarkEntry. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 484 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 04:40:33 +0000 message: Updated icon Makefile modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 483 committer: sunnyone41 branch nick: trunk timestamp: Sun 2004-01-18 04:23:46 +0000 message: Changed the method to change current channel/account on the channelbar. modified: src/loqui_app.c ------------------------------------------------------------ revno: 482 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 18:36:13 +0000 message: changed sizes of away, busy modified: src/icons/away.png src/icons/busy.png ------------------------------------------------------------ revno: 481 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 18:27:14 +0000 message: Removed labels of the channel name and user number. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 480 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 18:21:39 +0000 message: Added new icons. modified: src/main.c ------------------------------------------------------------ revno: 479 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 18:19:09 +0000 message: Fixed the problem that failed to select account. modified: src/loqui_app.c ------------------------------------------------------------ revno: 478 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 17:53:45 +0000 message: added icons: busy, away added: src/icons/away.png src/icons/busy.png modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 477 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 17:28:54 +0000 message: Added away state icon. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 476 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 16:18:01 +0000 message: Added button_away, button_nick, button_preset to statusbar. modified: src/loqui_statusbar.c ------------------------------------------------------------ revno: 475 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 14:38:05 +0000 message: added online/offline.png added: src/icons/offline.png src/icons/online.png src/icons/person-orig.xcf modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 474 committer: sunnyone41 branch nick: trunk timestamp: Sat 2004-01-17 14:37:21 +0000 message: removed person.png removed: src/icons/person.png modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 473 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 17:43:05 +0000 message: Update channelbar in loqui_app_update_info() instead of in account_manager_*. modified: src/account_manager.c src/loqui_app.c ------------------------------------------------------------ revno: 472 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 17:40:34 +0000 message: Fixed the previous change. modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 471 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 17:37:57 +0000 message: Check wheather the channel is null or not before channel_is_private_talk(). modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 470 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 17:01:54 +0000 message: Created LoquiStatusbar class. added: src/loqui_statusbar.c src/loqui_statusbar.h modified: src/Makefile.am src/loqui_app.c ------------------------------------------------------------ revno: 469 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 15:59:28 +0000 message: Disabled color palette in the remark entry. modified: src/remark_entry.c ------------------------------------------------------------ revno: 468 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 15:53:51 +0000 message: Set the header of channel tree invisible. modified: src/channel_tree.c ------------------------------------------------------------ revno: 467 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 15:49:02 +0000 message: Removed NONOP column from channel tree. modified: src/channel_tree.c ------------------------------------------------------------ revno: 466 committer: sunnyone41 branch nick: trunk timestamp: Fri 2004-01-16 09:24:13 +0000 message: Show channel mode / the number of users on the channelbar. modified: src/account_dialog.c src/account_manager.c src/irc_connection.c src/loqui_app.c src/loqui_channelbar.c ------------------------------------------------------------ revno: 465 committer: sunnyone41 branch nick: trunk timestamp: Wed 2004-01-14 10:30:30 +0000 message: Fixed the bug that uri parser may fail to search uri in a string like "https://localhost/ http://example.com/". modified: src/utils.c ------------------------------------------------------------ revno: 464 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-12-20 18:28:31 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 463 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-12-20 18:13:33 +0000 message: 0.1.20 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 462 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-12-20 17:40:38 +0000 message: updated po modified: po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 461 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-12-20 03:30:49 +0000 message: changed TEXT_TYPE_NORMAL to TEXT_TYPE_ERROR modified: src/irc_handle.c ------------------------------------------------------------ revno: 460 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-12-20 03:28:36 +0000 message: added const to function definitions modified: src/account.c src/account.h ------------------------------------------------------------ revno: 459 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-12-20 03:27:08 +0000 message: handle ERR_* messages modified: src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 458 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-12-20 02:56:28 +0000 message: fixed behavior when received 433/437 error modified: src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 457 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-12-19 18:27:46 +0000 message: changed checkbox <-> radiobox due to the change that 'fallback server' feature is abolished. modified: src/account_dialog.c src/connect_dialog.c ------------------------------------------------------------ revno: 456 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-12-19 18:08:47 +0000 message: added handler for nicknameinuse modified: src/irc_handle.c ------------------------------------------------------------ revno: 455 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-12-19 17:59:45 +0000 message: move a part of functions in IRCHandle to IRCConnection added: src/irc_connection.c src/irc_connection.h modified: src/Makefile.am src/account.c src/account.h src/ctcp_handle.c src/irc_handle.c src/irc_handle.h ------------------------------------------------------------ revno: 454 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-11-23 13:54:23 +0000 message: fixed the bug failed to connect when "Auto Detection" is selected and failed to detect codeset. modified: src/codeconv.c src/prefs_account.c ------------------------------------------------------------ revno: 453 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-11-23 11:52:31 +0000 message: fixed to use null menuitem. (dirty) modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 452 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-11-23 11:14:18 +0000 message: Check whether or not a privmsg/notice message comes from myself. modified: src/irc_handle.c ------------------------------------------------------------ revno: 451 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-11-23 08:55:49 +0000 message: Removed needless g_timer_stop(). modified: src/ctcp_handle.c ------------------------------------------------------------ revno: 450 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-11-23 08:49:38 +0000 message: show receiver when received a ctcp message. modified: src/ctcp_handle.c src/irc_handle.c ------------------------------------------------------------ revno: 449 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 18:29:25 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 448 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 18:27:24 +0000 message: 0.1.19 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 447 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 18:21:15 +0000 message: using -> used modified: src/account_dialog.c ------------------------------------------------------------ revno: 446 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 18:03:07 +0000 message: Check if children->data is GtkLabel. modified: src/buffer_menu.c ------------------------------------------------------------ revno: 445 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 17:57:15 +0000 message: created configuration item to set often using nicks. modified: src/account_dialog.c ------------------------------------------------------------ revno: 444 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 17:48:46 +0000 message: created gtkutils_create_framed_textview(). modified: src/gtkutils.c src/gtkutils.h src/prefs_dialog.c ------------------------------------------------------------ revno: 443 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 17:41:03 +0000 message: Created function to exchange from/to string list to/from textview in gtkutils. modified: src/gtkutils.c src/gtkutils.h src/prefs_dialog.c ------------------------------------------------------------ revno: 442 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 17:25:03 +0000 message: separate pages with notebook. modified: src/account_dialog.c ------------------------------------------------------------ revno: 441 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 17:15:18 +0000 message: Implemented the feature to change nick from the menu. modified: src/loqui_app.c src/remark_entry.c ------------------------------------------------------------ revno: 440 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 16:41:04 +0000 message: Fixed the place to show nicklist menu. Use ToggleButton instead of Button. modified: src/remark_entry.c ------------------------------------------------------------ revno: 439 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 16:38:29 +0000 message: gtkut_menu_position_under_widget is renamed to gtkutils_menu_position_under_widget. modified: src/gtkutils.c src/gtkutils.h ------------------------------------------------------------ revno: 438 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 16:34:36 +0000 message: added gtkut_menu_position_under_widget(). modified: src/gtkutils.c src/gtkutils.h ------------------------------------------------------------ revno: 437 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 16:14:58 +0000 message: show nicklist menu. modified: src/account.h src/loqui_app.c src/prefs_account.c src/remark_entry.c ------------------------------------------------------------ revno: 436 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 15:57:12 +0000 message: added nicklist to .accountrc. modified: src/account.h src/prefs_account.c ------------------------------------------------------------ revno: 435 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 15:56:13 +0000 message: added nick pulldown to remark entry. modified: src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 434 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-09-10 14:21:17 +0000 message: added nick button to remark entry. modified: src/loqui_app.c src/remark_entry.c ------------------------------------------------------------ revno: 433 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-09-06 11:43:48 +0000 message: added .xvpics to .cvsignore modified: src/icons/.cvsignore ------------------------------------------------------------ revno: 432 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-09-06 11:42:32 +0000 message: edited .cvsignore added: src/icons/.cvsignore modified: src/.cvsignore ------------------------------------------------------------ revno: 431 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-08-28 17:40:19 +0000 message: removed needless main_var.c removed: test/main_var.c ------------------------------------------------------------ revno: 430 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-08-28 17:39:45 +0000 message: added testing framework (which does not work) added: test/ test/Makefile.am test/Makefile.am.after test/main_var.c test/test_main.c test/test_main.h test/test_utils.c test/test_utils.h test/update-makefile.sh modified: Makefile.am autogen.sh ------------------------------------------------------------ revno: 429 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-08-27 19:29:09 +0000 message: format idle time like 'Idle time: %d day(s), %H:%M:%S' modified: src/irc_handle.c ------------------------------------------------------------ revno: 428 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-08-27 18:24:45 +0000 message: account_whois sends 'WHOIS target target' modified: src/account.c ------------------------------------------------------------ revno: 427 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-08-27 18:16:00 +0000 message: configuration of codeconv was moved from prefs_general to prefs_account. CodeConv class was created. modified: src/account.c src/account.h src/account_dialog.c src/codeconv.c src/codeconv.h src/irc_handle.c src/main.c src/prefs_account.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 426 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-08-17 06:47:35 +0000 message: made the return value of channel_get_{topic,name} const. modified: src/channel.c src/channel.h src/channel_input_dialog.c src/channel_input_dialog.h src/loqui_app.c ------------------------------------------------------------ revno: 425 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-07-30 07:33:47 +0000 message: fixed the bug loqui crashed when you clicked the OK button on the connect-dialog if there are no accounts modified: src/connect_dialog.c ------------------------------------------------------------ revno: 424 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-07-30 07:24:41 +0000 message: utils_search_uri(): created. fixed the bug that loqui failed to search second uri on the line. modified: src/channel_buffer.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 423 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-08 11:47:11 +0000 message: changed the timing to change the updated flag of channels. modified: src/loqui_app.c ------------------------------------------------------------ revno: 422 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-08 11:36:25 +0000 message: fixed that loqui_channel_set_current_channel is not called when the account is selected modified: src/account_manager.c ------------------------------------------------------------ revno: 421 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 12:16:30 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 420 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 12:15:02 +0000 message: 0.1.18 modified: ChangeLog NEWS NEWS.ja configure.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 419 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 11:58:22 +0000 message: managing remark history by myself. abolished to use GtkCombo for remark entry. modified: src/remark_entry.c ------------------------------------------------------------ revno: 418 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 10:35:54 +0000 message: changing topic isn't allowed if that entry isn't changed. modified: src/loqui_channelbar.c ------------------------------------------------------------ revno: 417 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 09:55:37 +0000 message: new buttons to select the prev/next channel modified: src/loqui_toolbar.c ------------------------------------------------------------ revno: 416 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 09:52:42 +0000 message: changed icons of next/prev updated channel modified: src/loqui_menu.c src/loqui_toolbar.c ------------------------------------------------------------ revno: 415 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 09:41:43 +0000 message: changed the way to detect whether or not to append messages to the common buffer modified: src/account_manager.c ------------------------------------------------------------ revno: 414 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 08:42:25 +0000 message: now it checks whether menuitem in the buffer menu is for channel or for account(BTS: #5) modified: src/buffer_menu.c ------------------------------------------------------------ revno: 413 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-07-01 08:26:36 +0000 message: added option that all default accounts will be connected when the program started modified: src/account_manager.c src/account_manager.h src/main.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 412 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-06-30 13:14:35 +0000 message: fixed plum recent parser modified: src/irc_handle.c ------------------------------------------------------------ revno: 411 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-29 09:30:43 +0000 message: changed info color to green3 modified: src/channel_buffer.c ------------------------------------------------------------ revno: 410 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-29 04:37:14 +0000 message: added person.png added: src/icons/person.png modified: src/icons/Makefile.am ------------------------------------------------------------ revno: 409 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-15 18:32:41 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 408 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-15 18:32:00 +0000 message: 0.1.17 modified: ChangeLog NEWS NEWS.ja configure.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 407 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-15 18:22:55 +0000 message: fixed the bug loqui can't parse a message like TOPIC modified: src/irc_message.c ------------------------------------------------------------ revno: 406 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-15 17:58:00 +0000 message: added preference of whether or not showing channelbar modified: src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/loqui_menu.h src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 405 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-15 17:46:49 +0000 message: implemented channelbar modified: src/account_manager.c src/buffer_menu.c src/channel_tree.c src/irc_handle.c src/loqui_app.c src/loqui_channelbar.c src/loqui_channelbar.h src/main.h ------------------------------------------------------------ revno: 404 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-06-15 17:26:33 +0000 message: added channel_is_private_talk modified: src/channel.c src/channel.h ------------------------------------------------------------ revno: 403 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-14 16:51:59 +0000 message: renamed channel_bar to loqui_channelbar removed: src/channel_bar.c src/channel_bar.h added: src/loqui_channelbar.c src/loqui_channelbar.h modified: src/Makefile.am src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 402 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-14 16:36:05 +0000 message: added channel_bar. handlebox -> handlebox_toolbar added: src/channel_bar.c src/channel_bar.h modified: src/Makefile.am src/loqui_app.c ------------------------------------------------------------ revno: 401 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-14 15:36:43 +0000 message: made buffer_menu.[ch] to manage the menu of buffers added: src/buffer_menu.c src/buffer_menu.h modified: src/Makefile.am src/account_manager.c src/loqui_menu.c src/loqui_menu.h ------------------------------------------------------------ revno: 400 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-14 15:06:20 +0000 message: change the way of removing menuitem of buffer modified: src/loqui_menu.c ------------------------------------------------------------ revno: 399 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-14 14:47:37 +0000 message: created gtkutils_set_label_color modified: src/gtkutils.c src/gtkutils.h src/loqui_menu.c ------------------------------------------------------------ revno: 398 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-14 14:26:09 +0000 message: made combo entry in the remark entry case sensitive modified: src/remark_entry.c ------------------------------------------------------------ revno: 397 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-06-12 06:47:03 +0000 message: set ypad of all treeview as 0 modified: src/channel_tree.c src/nick_list.c ------------------------------------------------------------ revno: 396 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 12:56:41 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 395 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 12:55:47 +0000 message: 0.1.16 modified: Makefile.am NEWS NEWS.ja configure.in src/account_manager.c ------------------------------------------------------------ revno: 394 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 12:39:33 +0000 message: fixed bindir modified: loqui.spec.in ------------------------------------------------------------ revno: 393 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 12:28:32 +0000 message: updated po. modified: ChangeLog configure.in debian/control po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 392 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 12:28:22 +0000 message: added spec added: loqui.spec.in ------------------------------------------------------------ revno: 391 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 10:53:16 +0000 message: added icons added: src/icons/ src/icons/Makefile.am src/icons/console.png ------------------------------------------------------------ revno: 390 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 10:37:31 +0000 message: sorted. modified: src/loqui_menu.c ------------------------------------------------------------ revno: 389 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-06-07 10:31:25 +0000 message: created icons/ and loqui's icon factory. created buffers submenu. modified: ChangeLog configure.in src/Makefile.am src/account_manager.c src/loqui_menu.c src/loqui_menu.h src/main.c ------------------------------------------------------------ revno: 388 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-06-05 09:57:01 +0000 message: abolished my_command_* handlers modified: src/account.c src/account.h src/irc_handle.c ------------------------------------------------------------ revno: 387 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-06-05 08:48:39 +0000 message: removed my_command_kick modified: src/irc_handle.c ------------------------------------------------------------ revno: 386 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-06-05 08:47:10 +0000 message: use IRC_MESSAGE_PARAMETER_MAX. check empty line modified: src/irc_message.c ------------------------------------------------------------ revno: 385 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-06-05 08:03:00 +0000 message: show line that has errors when parsing modified: src/irc_message.c ------------------------------------------------------------ revno: 384 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-06-05 07:51:09 +0000 message: check whether msg is null or not modified: src/irc_handle.c ------------------------------------------------------------ revno: 383 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-05-29 11:17:21 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 382 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-05-29 10:48:24 +0000 message: 0.1.15 modified: ChangeLog NEWS NEWS.ja configure.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 381 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-05-29 10:46:08 +0000 message: changed speak ability to voice privilege modified: src/nick_list.c ------------------------------------------------------------ revno: 380 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-05-29 10:23:06 +0000 message: parse ~/.loqui/gtkrc-2.0 modified: src/main.c ------------------------------------------------------------ revno: 379 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-05-29 10:10:34 +0000 message: now it uses gnet-2.0 (supports IPv6?) modified: configure.in po/ja.po po/loqui.pot src/irc_handle.c src/main.c ------------------------------------------------------------ revno: 378 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-05-29 10:07:53 +0000 message: added hash function modified: src/account.c src/channel.c src/channel.h ------------------------------------------------------------ revno: 377 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-05-29 09:17:31 +0000 message: changed the function to check equality for the channel hash table modified: src/account.c src/channel.c src/channel.h ------------------------------------------------------------ revno: 376 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-04-29 15:25:43 +0000 message: fixed the priv handling in the plum-recent parser modified: src/irc_handle.c ------------------------------------------------------------ revno: 375 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 12:33:53 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 374 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 12:32:11 +0000 message: 0.1.14 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 373 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 12:22:45 +0000 message: implemented transparent ignore modified: src/channel_buffer.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 372 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 11:31:45 +0000 message: fixed a bug modified: src/account_manager.c ------------------------------------------------------------ revno: 371 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 11:29:48 +0000 message: update information about account/channel at idle time modified: src/account_manager.c ------------------------------------------------------------ revno: 370 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 11:03:40 +0000 message: removed a unused variable modified: src/account.c ------------------------------------------------------------ revno: 369 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 11:02:59 +0000 message: changed strftime string modified: src/utils.c ------------------------------------------------------------ revno: 368 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 10:59:46 +0000 message: Changed nicklist menu. Added menuitem to start private talk modified: src/nick_list.c ------------------------------------------------------------ revno: 367 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 10:49:57 +0000 message: Start private talk when the nicklist was double-clicked modified: src/nick_list.c ------------------------------------------------------------ revno: 366 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 10:49:29 +0000 message: separated joining and private talk modified: src/account.c src/account.h src/command_dialog.c src/command_dialog.h src/loqui_menu.c ------------------------------------------------------------ revno: 365 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-04-17 10:23:59 +0000 message: Add 'transparent' tag. Clean up functions that scroll/set channel buffer modified: src/account.c src/channel_buffer.c src/loqui_app.c src/message_text.h ------------------------------------------------------------ revno: 364 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-03-28 01:51:52 +0000 message: manage channels with a hash table modified: src/account.c src/account.h src/channel_input_dialog.c src/irc_handle.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 363 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-03-28 01:51:30 +0000 message: added weak_pointer modified: src/channel.c ------------------------------------------------------------ revno: 362 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-03-26 03:49:28 +0000 message: added Makefile.in.in added: po/Makefile.in.in modified: po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 361 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-03-26 03:42:26 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 360 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-03-26 03:40:57 +0000 message: 0.1.13 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 359 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-03-26 03:35:05 +0000 message: fixed a memory leak modified: src/channel.c ------------------------------------------------------------ revno: 358 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-03-26 03:27:05 +0000 message: added new build-depend modified: debian/control po/ja.po ------------------------------------------------------------ revno: 357 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-25 16:43:05 +0000 message: fixed message not showing bug modified: src/irc_handle.c ------------------------------------------------------------ revno: 356 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 06:41:11 +0000 message: fixed duplicating messages broadcasted to joined channels modified: src/account_manager.c src/irc_handle.c ------------------------------------------------------------ revno: 355 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 05:44:55 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 354 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 05:39:57 +0000 message: 0.1.12 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 353 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 05:38:44 +0000 message: updated po modified: po/POTFILES.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 352 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 05:27:53 +0000 message: Feature to send CTCP request modified: src/account.c src/account.h src/ctcp_handle.c src/ctcp_handle.h src/ctcp_message.c src/irc_handle.c src/nick_list.c ------------------------------------------------------------ revno: 351 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 04:52:56 +0000 message: enabled userinfo modified: src/account_dialog.c ------------------------------------------------------------ revno: 350 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 04:50:43 +0000 message: use GObject reference counter with irc_handle_push_message() modified: src/account.c src/ctcp_handle.c src/irc_handle.c ------------------------------------------------------------ revno: 349 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 04:33:24 +0000 message: Handle CTCP messages added: src/ctcp_handle.c src/ctcp_handle.h src/ctcp_message.c src/ctcp_message.h modified: src/Makefile.am src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 348 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-24 00:39:05 +0000 message: removed dependency to account_manager modified: src/channel_buffer.c ------------------------------------------------------------ revno: 347 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 15:00:23 +0000 message: removed needless functions(remove_channels_of_account). modified: src/account_manager.c src/account_manager.h src/channel_tree.c src/channel_tree.h ------------------------------------------------------------ revno: 346 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 14:57:27 +0000 message: handling common buffer with signal modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_buffer.c src/channel_buffer.h src/irc_handle.c src/loqui_app.c src/loqui_app.h src/message_text.c src/message_text.h ------------------------------------------------------------ revno: 345 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 12:41:27 +0000 message: added some attributes to MessageText modified: src/channel_buffer.h src/message_text.c src/message_text.h ------------------------------------------------------------ revno: 344 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 11:55:50 +0000 message: created MessageText class added: src/message_text.c src/message_text.h modified: src/Makefile.am ------------------------------------------------------------ revno: 343 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 11:55:27 +0000 message: ATTR utilities for gboolean modified: src/gobject_utils.h ------------------------------------------------------------ revno: 342 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 09:50:37 +0000 message: disabled debug_puts at loading accountrc.xml. use GOBject-property framework with account modified: src/account.c src/account.h src/account_dialog.c src/prefs_account.c ------------------------------------------------------------ revno: 341 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 09:49:16 +0000 message: G_OBJECT_UNREF_UNLESS_NULL macro: created modified: src/utils.h ------------------------------------------------------------ revno: 340 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-23 07:29:03 +0000 message: ATTR_{ACCESSOR,READER,WRITER}_STRING{,_PROTOTYPE} macros: created. added: src/gobject_utils.c src/gobject_utils.h modified: src/Makefile.am src/account.c src/account.h src/account_list_dialog.c src/channel.h ------------------------------------------------------------ revno: 339 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 16:24:45 +0000 message: 0.1.11 modified: ChangeLog NEWS NEWS.ja configure.in po/POTFILES.in po/ja.po po/loqui.pot src/account.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 338 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 16:13:54 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 337 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 15:57:33 +0000 message: account_remove_channel() unref Channel object. modified: src/account.c src/account.h src/irc_handle.c ------------------------------------------------------------ revno: 336 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 15:23:09 +0000 message: reconnect function modified: src/account.c src/irc_handle.c src/irc_handle.h src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 335 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 15:00:37 +0000 message: handling IRCHandle's disconnection modified: src/account.c src/irc_handle.c ------------------------------------------------------------ revno: 334 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 14:32:09 +0000 message: removed thread variables modified: src/irc_handle.c ------------------------------------------------------------ revno: 333 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 14:14:57 +0000 message: added disconnect/terminated signal modified: src/irc_handle.c src/irc_handle.h ------------------------------------------------------------ revno: 332 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 13:41:31 +0000 message: add class methods modified: src/account.c src/account.h src/channel.c src/channel.h ------------------------------------------------------------ revno: 331 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 09:47:26 +0000 message: connected signal modified: src/account.c src/account_manager.c ------------------------------------------------------------ revno: 330 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 08:46:23 +0000 message: changed arguments of irc_handle_new/connect modified: src/account.c src/irc_handle.c src/irc_handle.h ------------------------------------------------------------ revno: 329 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 08:07:30 +0000 message: move set_current_channel to account_manager modified: src/account.c src/account_manager.c ------------------------------------------------------------ revno: 328 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-03-17 06:40:38 +0000 message: handle adding/removing channels with signal modified: src/account.c src/account.h src/account_manager.c src/account_manager.h ------------------------------------------------------------ revno: 327 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 16:35:40 +0000 message: Removed needless constants modified: src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 326 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 16:33:58 +0000 message: Replaced implementation of IRCHandle with async function in GNet and g_io_channel_*_watch removed: src/connection.c src/connection.h modified: src/Makefile.am src/irc_handle.c src/loqui_app.c ------------------------------------------------------------ revno: 325 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 14:09:33 +0000 message: Use io_channel_unref instead of _shutdown modified: src/connection.c ------------------------------------------------------------ revno: 324 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 13:05:43 +0000 message: check whether the length of remark string modified: src/remark_entry.c ------------------------------------------------------------ revno: 323 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 08:41:11 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 322 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 08:39:45 +0000 message: 0.1.10 modified: ChangeLog NEWS NEWS.ja configure.in po/ja.po ------------------------------------------------------------ revno: 321 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 08:35:33 +0000 message: implemented multiline input mode modified: src/account.c src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 320 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 06:40:21 +0000 message: added gdk_threads_enter/leave modified: src/irc_handle.c ------------------------------------------------------------ revno: 319 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 06:01:26 +0000 message: added gdk_threads_enter/leave modified: src/irc_handle.c ------------------------------------------------------------ revno: 318 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 05:48:44 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 317 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 05:45:54 +0000 message: 0.1.9 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 316 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 05:43:57 +0000 message: updated po modified: po/POTFILES.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 315 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 05:29:36 +0000 message: fixed parser of plum recent modified: src/irc_handle.c ------------------------------------------------------------ revno: 314 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 05:10:02 +0000 message: handle nick changing in Account. changes of away/nick are handled with signal. modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/irc_handle.c src/irc_handle.h src/loqui_app.c src/remark_entry.c ------------------------------------------------------------ revno: 313 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 04:22:21 +0000 message: remark_entry_history_add(): added modified: src/remark_entry.c ------------------------------------------------------------ revno: 312 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 04:15:57 +0000 message: handle multiline remark modified: src/account.c ------------------------------------------------------------ revno: 311 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-16 03:57:53 +0000 message: changed timing to update user number modified: src/account_manager.c ------------------------------------------------------------ revno: 310 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 17:39:34 +0000 message: remark entry supports history modified: src/prefs_general.c src/prefs_general.h src/remark_entry.c ------------------------------------------------------------ revno: 309 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 16:34:27 +0000 message: use gtk2's to remove combo entries modified: src/channel_input_dialog.c ------------------------------------------------------------ revno: 308 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 16:05:10 +0000 message: fixed focus modified: src/loqui_app.c src/remark_entry.c src/remark_entry.h ------------------------------------------------------------ revno: 307 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 15:46:47 +0000 message: handle channel update with signal modified: src/account_manager.c src/account_manager.h src/channel.c ------------------------------------------------------------ revno: 306 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 15:21:26 +0000 message: removed search_account() modified: src/account_manager.c ------------------------------------------------------------ revno: 305 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 15:13:05 +0000 message: handle channel changes with signal modified: src/account_manager.c src/account_manager.h src/channel.c src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 304 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 13:09:44 +0000 message: check if account_manager_get isn't called recursively. modified: src/account_manager.c ------------------------------------------------------------ revno: 303 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-15 11:00:42 +0000 message: implemented RemarkEntry temporalily added: src/remark_entry.c src/remark_entry.h modified: src/Makefile.am src/loqui_app.c ------------------------------------------------------------ revno: 302 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 15:33:49 +0000 message: added required gdk_threads_enter/leave modified: src/irc_handle.c ------------------------------------------------------------ revno: 301 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 13:43:56 +0000 message: channel_get_name(): created. modified: src/account.c src/account_manager.c src/channel.c src/channel.h src/channel_input_dialog.c src/channel_tree.c src/command_dialog.c src/irc_handle.c ------------------------------------------------------------ revno: 300 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 13:27:17 +0000 message: implemented changing nick feature modified: src/account.c src/account.h src/command_dialog.c src/command_dialog.h src/loqui_menu.c ------------------------------------------------------------ revno: 299 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 13:04:48 +0000 message: removed prefs_highlight removed: src/prefs_highlight.c src/prefs_highlight.h modified: src/Makefile.am src/channel_buffer.c src/main.c src/prefs_dialog.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 298 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 12:54:10 +0000 message: highlight_allow_list to highlight_list modified: src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 297 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 12:20:33 +0000 message: supported GList as PrefType modified: src/prefs_general.c src/prefs_general.h src/utils.h ------------------------------------------------------------ revno: 296 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 06:56:54 +0000 message: handling topicwhotime modified: src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 295 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 06:37:41 +0000 message: parsing plum recent modified: src/irc_handle.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 294 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-11 04:15:14 +0000 message: re-enabled end_motd modified: src/irc_handle.c ------------------------------------------------------------ revno: 293 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-09 11:54:06 +0000 message: fixed README modified: README ------------------------------------------------------------ revno: 292 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-03-09 09:56:54 +0000 message: use 'updated' instead of 'fresh' modified: src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_tree.c src/channel_tree.h src/loqui_app.c src/loqui_menu.c src/loqui_toolbar.c ------------------------------------------------------------ revno: 291 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-08 15:51:05 +0000 message: handling RPL_CREATIONTIME modified: src/irc_handle.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 290 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-03-04 09:54:42 +0000 message: utils_format supports \?x modified: src/loqui_app.c src/utils.c ------------------------------------------------------------ revno: 289 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-01 13:50:27 +0000 message: implemented utils_format() temporarily modified: src/utils.c src/utils.h ------------------------------------------------------------ revno: 288 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-03-01 13:50:09 +0000 message: set default response modified: src/connect_dialog.c ------------------------------------------------------------ revno: 287 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-24 15:37:29 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 286 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-24 15:36:40 +0000 message: 0.1.8 modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 285 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-24 15:33:33 +0000 message: next/prev button modified: src/loqui_menu.c src/loqui_toolbar.c ------------------------------------------------------------ revno: 284 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-24 15:11:25 +0000 message: updated po modified: po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 283 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-24 15:08:02 +0000 message: implemented topic command added: src/command_dialog.c src/command_dialog.h modified: src/account.c src/account.h src/loqui_menu.c ------------------------------------------------------------ revno: 282 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-24 14:55:07 +0000 message: implemented join/part dialog modified: src/Makefile.am src/account.c src/account.h src/channel.c src/channel.h src/channel_input_dialog.c src/channel_input_dialog.h src/loqui_menu.c ------------------------------------------------------------ revno: 281 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-24 13:44:19 +0000 message: channel input dialog added: src/channel_input_dialog.c src/channel_input_dialog.h modified: src/Makefile.am src/loqui_menu.c ------------------------------------------------------------ revno: 280 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 14:10:30 +0000 message: cancel fresh shortcut modified: src/loqui_menu.c ------------------------------------------------------------ revno: 279 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 14:03:11 +0000 message: shortcut for next/prev fresh modified: src/loqui_menu.c ------------------------------------------------------------ revno: 278 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 13:43:53 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 277 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 13:42:52 +0000 message: updated debian changelog modified: debian/changelog ------------------------------------------------------------ revno: 276 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 13:24:48 +0000 message: 0.1.7 removed: debian/loqui.substvars modified: ChangeLog NEWS NEWS.ja configure.in ------------------------------------------------------------ revno: 275 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 13:22:36 +0000 message: updated po modified: po/POTFILES.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 274 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 13:17:53 +0000 message: fixed typo modified: src/loqui_menu.c ------------------------------------------------------------ revno: 273 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 13:01:11 +0000 message: added debian/ added: debian/ debian/changelog debian/control debian/copyright debian/dirs debian/docs debian/files debian/loqui.substvars debian/rules ------------------------------------------------------------ revno: 272 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 12:37:05 +0000 message: implemented next/prev with goto modified: src/channel_tree.c ------------------------------------------------------------ revno: 271 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 12:22:52 +0000 message: implemented next/prev channel modified: src/channel_tree.c src/channel_tree.h src/loqui_menu.c ------------------------------------------------------------ revno: 270 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-23 04:17:32 +0000 message: added NEWS.ja added: NEWS.ja modified: NEWS ------------------------------------------------------------ revno: 269 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 14:53:19 +0000 message: activatable modified: src/connect_dialog.c ------------------------------------------------------------ revno: 268 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 14:33:58 +0000 message: toggling whether or not showing toolbar/statusbar modified: src/account_manager.c src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/loqui_menu.h src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 267 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 13:06:53 +0000 message: added handlebox for toolbar modified: src/loqui_app.c ------------------------------------------------------------ revno: 266 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 13:00:39 +0000 message: removed connect submenu modified: src/account_manager.c src/loqui_menu.c src/loqui_menu.h ------------------------------------------------------------ revno: 265 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 12:53:52 +0000 message: made configurable whether connect account by default or not modified: src/account.c src/account.h src/account_dialog.c src/connect_dialog.c src/prefs_account.c ------------------------------------------------------------ revno: 264 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 12:00:24 +0000 message: added connect dialog added: src/connect_dialog.c src/connect_dialog.h modified: src/Makefile.am src/account.c src/account.h src/account_manager.c src/account_manager.h src/irc_handle.c src/irc_handle.h src/loqui_menu.c src/loqui_toolbar.c ------------------------------------------------------------ revno: 263 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 09:47:15 +0000 message: added s modified: src/utils.h ------------------------------------------------------------ revno: 262 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 08:35:23 +0000 message: %.5f to %.7f modified: src/utils.h ------------------------------------------------------------ revno: 261 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 08:29:00 +0000 message: fixed DEBUG_TIMER_STOP modified: src/utils.h ------------------------------------------------------------ revno: 260 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 08:27:27 +0000 message: DEBUG_TIMER_{START,STOP} macro: added modified: src/utils.h ------------------------------------------------------------ revno: 259 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 08:18:54 +0000 message: handle topic changing with gobject's signal modified: src/account_manager.c src/channel.c ------------------------------------------------------------ revno: 258 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-22 07:23:51 +0000 message: changed the way to handle MODE message modified: src/irc_handle.c ------------------------------------------------------------ revno: 257 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-02-20 14:15:24 +0000 message: use macro modified: src/irc_message.c ------------------------------------------------------------ revno: 256 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 14:03:18 +0000 message: 0.1.6 modified: ChangeLog NEWS configure.in ------------------------------------------------------------ revno: 255 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 13:58:09 +0000 message: scroll channel buffer when scroll button is turned on modified: src/loqui_app.c src/loqui_app.h src/loqui_toolbar.c ------------------------------------------------------------ revno: 254 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 13:42:42 +0000 message: without_signal_emission -> with_signal_handler_blocked. loqui_toolbar has LoquiApp modified: src/account_manager.c src/gtkutils.c src/gtkutils.h src/loqui_toolbar.c src/loqui_toolbar.h ------------------------------------------------------------ revno: 253 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 13:34:30 +0000 message: updated po modified: po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 252 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 13:27:37 +0000 message: null checking modified: src/loqui_app.c ------------------------------------------------------------ revno: 251 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 13:20:16 +0000 message: common buffer always scrolls modified: src/account_manager.c src/channel.c src/loqui_app.c src/loqui_toolbar.c ------------------------------------------------------------ revno: 250 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 13:01:43 +0000 message: implemented auto-switch-scrolling modified: src/loqui_app.c src/prefs_dialog.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 249 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 11:43:10 +0000 message: implemented cut/copy/paste modified: src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/loqui_menu.h ------------------------------------------------------------ revno: 248 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 09:01:11 +0000 message: always show vertical scrollbar of channel buffer modified: src/loqui_app.c ------------------------------------------------------------ revno: 247 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 08:50:03 +0000 message: disable horizontal scrollbar of channel buffer modified: src/loqui_app.c ------------------------------------------------------------ revno: 246 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 06:38:42 +0000 message: 0.1.5 modified: ChangeLog NEWS configure.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 245 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 06:08:45 +0000 message: removed account_manager_select_current_* modified: src/account.c src/account_manager.c src/account_manager.h src/channel_tree.c src/irc_handle.c ------------------------------------------------------------ revno: 244 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 05:29:36 +0000 message: substituted emphasis with highlight removed: src/prefs_emphasis_words.c src/prefs_emphasis_words.h added: src/prefs_highlight.c src/prefs_highlight.h modified: src/Makefile.am src/channel_buffer.c src/main.c src/prefs_account.c src/prefs_dialog.c src/prefs_general.c ------------------------------------------------------------ revno: 243 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 04:08:36 +0000 message: use strcmp instead of g_ascii_strcasecmp modified: src/channel.c ------------------------------------------------------------ revno: 242 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 03:30:51 +0000 message: USER_POWER_V is replaced with USER_POWER_VOICE modified: src/account.c src/channel.c src/channel.h src/channel_tree.c src/irc_handle.c src/nick_list.c ------------------------------------------------------------ revno: 241 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 03:18:39 +0000 message: changed looping condition modified: src/connection.c ------------------------------------------------------------ revno: 240 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 03:02:51 +0000 message: enabled handling error in irc_handle modified: src/connection.c src/irc_handle.c ------------------------------------------------------------ revno: 239 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 02:44:32 +0000 message: avoid buffering error modified: src/connection.c ------------------------------------------------------------ revno: 238 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 02:32:26 +0000 message: use changed signal instead of selection function modified: src/account_manager.c src/channel_tree.c ------------------------------------------------------------ revno: 237 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 02:06:01 +0000 message: lock mutex modified: src/connection.c ------------------------------------------------------------ revno: 236 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 01:44:39 +0000 message: Don't use iochannel internal buffer. modified: src/connection.c ------------------------------------------------------------ revno: 235 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-19 00:23:16 +0000 message: use GIOChannel function of glib2 modified: src/connection.c src/connection.h src/irc_handle.c ------------------------------------------------------------ revno: 234 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-18 13:20:10 +0000 message: not showing mode command modified: src/irc_handle.c ------------------------------------------------------------ revno: 233 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-17 09:07:04 +0000 message: implemented channel mode modified: src/account_manager.c src/channel.c src/channel.h src/irc_constants.h src/irc_handle.c src/nick_list.c ------------------------------------------------------------ revno: 232 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-17 04:17:26 +0000 message: removed end_motd. modified: src/irc_handle.c ------------------------------------------------------------ revno: 231 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 05:24:05 +0000 message: 0.1.4 modified: ChangeLog NEWS configure.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 230 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 05:21:28 +0000 message: implemented prefs dialog modified: src/account_manager.c src/account_manager.h src/loqui_menu.c ------------------------------------------------------------ revno: 229 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 05:19:35 +0000 message: prefs_emphasis_words_init(): added modified: src/prefs_emphasis_words.c src/prefs_emphasis_words.h ------------------------------------------------------------ revno: 228 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 05:19:19 +0000 message: changed charset to codeset modified: src/codeconv.c src/codeconv.h ------------------------------------------------------------ revno: 227 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 05:18:55 +0000 message: added prefs_dialog added: src/prefs_dialog.c src/prefs_dialog.h modified: src/Makefile.am ------------------------------------------------------------ revno: 226 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 03:41:58 +0000 message: changed adviser into notification modified: src/channel.c src/channel_buffer.c src/channel_buffer.h ------------------------------------------------------------ revno: 225 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 03:23:35 +0000 message: modified codeconv engine. modified: src/codeconv.c src/codeconv.h ------------------------------------------------------------ revno: 224 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-02-16 02:34:39 +0000 message: extern conv_table modified: src/codeconv.c src/codeconv.h ------------------------------------------------------------ revno: 223 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-14 12:00:11 +0000 message: removed needless debug message modified: src/utils.c ------------------------------------------------------------ revno: 222 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-14 11:51:18 +0000 message: implemented PrefsEmphasisWords added: src/prefs_emphasis_words.c src/prefs_emphasis_words.h modified: src/Makefile.am src/channel_buffer.c src/main.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 221 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-14 05:24:41 +0000 message: fixed the autojoin message modified: src/irc_handle.c ------------------------------------------------------------ revno: 220 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-14 05:08:47 +0000 message: enable browser modified: src/channel_buffer.c src/gtkutils.c src/gtkutils.h ------------------------------------------------------------ revno: 219 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-14 04:43:27 +0000 message: execute notification modified: src/channel_buffer.c src/gtkutils.c src/gtkutils.h ------------------------------------------------------------ revno: 218 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-02-13 14:23:52 +0000 message: add prefs: use_notification modified: src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 217 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-02-13 14:05:48 +0000 message: implemented autojoin modified: src/account_dialog.c src/irc_handle.c ------------------------------------------------------------ revno: 216 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-02-13 12:28:42 +0000 message: added prefs: {notification,browser}_command modified: src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 215 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-12 17:06:59 +0000 message: implemented emphasis temporarily modified: src/channel.c src/channel_buffer.c src/channel_buffer.h ------------------------------------------------------------ revno: 214 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-12 16:01:20 +0000 message: fixed link function modified: src/channel_buffer.c ------------------------------------------------------------ revno: 213 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-12 15:16:51 +0000 message: uri parsing function modified: src/channel_buffer.c ------------------------------------------------------------ revno: 212 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-02-12 12:14:39 +0000 message: change declaration of inserted callback modified: src/loqui_app.c ------------------------------------------------------------ revno: 211 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:41:22 +0000 message: 0.1.3 Release modified: ChangeLog ------------------------------------------------------------ revno: 210 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:39:45 +0000 message: include intl.h modified: src/gtkutils.c ------------------------------------------------------------ revno: 209 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:39:36 +0000 message: new callback function type modified: src/loqui_menu.c ------------------------------------------------------------ revno: 208 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:35:17 +0000 message: 0.1.3 modified: ChangeLog NEWS configure.in ------------------------------------------------------------ revno: 207 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:31:29 +0000 message: implemented popup menu actually. modified: src/nick_list.c ------------------------------------------------------------ revno: 206 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:31:00 +0000 message: implemented channel mode queue modified: src/channel.c src/channel.h ------------------------------------------------------------ revno: 205 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:30:36 +0000 message: change enum IRCModeFlag difinition modified: src/irc_constants.h ------------------------------------------------------------ revno: 204 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 17:29:38 +0000 message: implemented whois/mode modified: src/account.c src/account.h ------------------------------------------------------------ revno: 203 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 15:35:06 +0000 message: warn if no accounts are selected modified: src/loqui_app.c ------------------------------------------------------------ revno: 202 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 15:31:43 +0000 message: removed account_manager_speak(). modified: src/account_manager.c src/account_manager.h src/loqui_app.c ------------------------------------------------------------ revno: 201 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 15:27:28 +0000 message: set channel/account correctly. is_current_* is changed. modified: src/account_manager.c ------------------------------------------------------------ revno: 200 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 15:20:12 +0000 message: removed account_manager_current_account_set_away(). created account_set_away_message(). modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/loqui_toolbar.c ------------------------------------------------------------ revno: 199 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 15:10:16 +0000 message: removed account_manager_set_curret(). {get,set}_current_{channel,account} were created. modified: src/account_manager.c src/account_manager.h src/channel_tree.c ------------------------------------------------------------ revno: 198 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 14:47:00 +0000 message: nicklist popup menu is temporarily implemented. modified: src/nick_list.c ------------------------------------------------------------ revno: 197 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 14:45:02 +0000 message: translate function moved modified: src/gtkutils.c src/gtkutils.h src/loqui_menu.c ------------------------------------------------------------ revno: 196 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 11:33:15 +0000 message: fixed mistake of previous commit modified: src/account_list_dialog.c ------------------------------------------------------------ revno: 195 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 11:29:57 +0000 message: moved function to open dialog to add/configure/remove account from account_manager.[ch] to account_dialog.[ch] modified: src/account_dialog.c src/account_dialog.h src/account_list_dialog.c src/account_manager.c src/account_manager.h ------------------------------------------------------------ revno: 194 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 10:45:01 +0000 message: Scroll textview with insert-text signal of GtkTextBuffer modified: src/account.c src/account_manager.c src/account_manager.h src/channel.c src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 193 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 09:42:15 +0000 message: fixed typo modified: src/codeconv.c ------------------------------------------------------------ revno: 192 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-02-11 09:40:50 +0000 message: refactoring prefs_general modified: src/account_manager.c src/codeconv.c src/loqui_app.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 191 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 16:19:21 +0000 message: set catalog charset to utf-8 modified: po/ja.po ------------------------------------------------------------ revno: 190 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 16:06:56 +0000 message: resizable column modified: src/channel_tree.c ------------------------------------------------------------ revno: 189 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 15:02:39 +0000 message: 0.0.2 modified: configure.in ------------------------------------------------------------ revno: 188 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 15:02:20 +0000 message: update modified: NEWS ------------------------------------------------------------ revno: 187 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 15:01:30 +0000 message: update po modified: po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 186 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 15:00:04 +0000 message: enable translation of menu modified: src/loqui_menu.c ------------------------------------------------------------ revno: 185 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 15:01:50 +0000 message: update changelog/news modified: ChangeLog NEWS ------------------------------------------------------------ revno: 184 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 14:37:41 +0000 message: new code convertion method modified: src/codeconv.c ------------------------------------------------------------ revno: 183 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 12:42:23 +0000 message: Abolished g_strdup(format) (removed the change of 1.20 -> 1.21). Fixed the bug that irc_message_get_trailing quit the program when parameter number < 1 modified: src/irc_message.c ------------------------------------------------------------ revno: 182 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 08:36:07 +0000 message: disabled userinfo/autojoin on the account dialog modified: src/account_dialog.c ------------------------------------------------------------ revno: 181 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 08:31:28 +0000 message: set_transient_for account_list_dialog modified: src/account_list_dialog.c src/account_list_dialog.h src/account_manager.c ------------------------------------------------------------ revno: 180 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-02-10 07:51:02 +0000 message: removed account_restore prototype modified: src/account.h ------------------------------------------------------------ revno: 179 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 14:03:48 +0000 message: 0.1.1 modified: ChangeLog NEWS configure.in po/POTFILES.in po/loqui.pot ------------------------------------------------------------ revno: 178 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 14:01:14 +0000 message: update po modified: po/ja.po ------------------------------------------------------------ revno: 177 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 13:52:03 +0000 message: implemented away function modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/gtkutils.c src/gtkutils.h src/irc_handle.c src/loqui_toolbar.c src/loqui_toolbar.h ------------------------------------------------------------ revno: 176 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 12:51:36 +0000 message: prefs_general->away_message is added modified: src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 175 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 12:41:35 +0000 message: do nothing when added speak ability to channel operators modified: src/channel.c ------------------------------------------------------------ revno: 174 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 12:35:28 +0000 message: disable connect button modified: src/loqui_toolbar.c ------------------------------------------------------------ revno: 173 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 12:31:40 +0000 message: now channels have a pointer that indicates parent account. is_current_account behavior was changed. is_current_channel_buffer is added. modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/irc_handle.c src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 172 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 09:09:22 +0000 message: now it handles a message that has no parameters. added const modifiers. modified: src/irc_message.c src/irc_message.h ------------------------------------------------------------ revno: 171 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 09:06:34 +0000 message: added away handling function temporarily modified: src/account.c src/account.h src/irc_handle.c ------------------------------------------------------------ revno: 170 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 09:05:13 +0000 message: remove needless hbox. modified: src/loqui_app.c ------------------------------------------------------------ revno: 169 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-02-08 08:22:52 +0000 message: disable unused menuitems modified: src/loqui_menu.c ------------------------------------------------------------ revno: 168 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-07 15:43:25 +0000 message: fixed toolbar. added away button. modified: src/loqui_toolbar.c src/loqui_toolbar.h ------------------------------------------------------------ revno: 167 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-07 15:41:51 +0000 message: strengthening checking modified: src/irc_message.c ------------------------------------------------------------ revno: 166 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-07 05:33:21 +0000 message: changed scrolling function. removed topic line. modified: src/account_manager.c src/account_manager.h src/loqui_app.c src/loqui_app.h src/loqui_toolbar.c src/loqui_toolbar.h src/main.c ------------------------------------------------------------ revno: 165 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-07 05:32:52 +0000 message: added new menu entry modified: src/loqui_menu.c ------------------------------------------------------------ revno: 164 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-07 04:45:20 +0000 message: added toolbar added: src/loqui_toolbar.c src/loqui_toolbar.h modified: src/Makefile.am src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 163 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-07 03:39:29 +0000 message: changed operator modified: src/irc_message.c ------------------------------------------------------------ revno: 162 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-02-07 03:28:38 +0000 message: fixed mistaken is_priv value modified: src/channel.c ------------------------------------------------------------ revno: 161 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-02-06 16:05:16 +0000 message: added statusbar modified: src/loqui_app.c ------------------------------------------------------------ revno: 160 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-31 14:20:57 +0000 message: made updating user number correct modified: src/account_manager.c src/channel.c src/channel.h src/channel_tree.c ------------------------------------------------------------ revno: 159 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-31 13:58:38 +0000 message: using gtk+-2.2's smart way to remove nodes modified: src/channel_tree.c ------------------------------------------------------------ revno: 158 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-31 13:45:59 +0000 message: changed user counting method modified: src/channel.c src/channel.h src/channel_tree.c ------------------------------------------------------------ revno: 157 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-31 13:30:12 +0000 message: created the function updating title modified: src/account_manager.c src/account_manager.h src/channel.c src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 156 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-31 10:40:30 +0000 message: function formatting remark is moved to channel_buffer added: .cvsignore src/.cvsignore modified: configure.in src/account.c src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_buffer.c src/channel_buffer.h src/irc_handle.c ------------------------------------------------------------ revno: 155 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-31 07:37:56 +0000 message: changed the way to append text buffer modified: src/channel_buffer.c src/channel_buffer.h ------------------------------------------------------------ revno: 154 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-31 07:06:02 +0000 message: channel_buffer_append is moved to channel_buffer_append_line modified: src/account.c src/account_manager.c src/channel.c src/channel_buffer.c src/channel_buffer.h ------------------------------------------------------------ revno: 153 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-01-30 14:35:24 +0000 message: change NOTICE's default color into #555555 modified: src/channel_buffer.c ------------------------------------------------------------ revno: 152 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 15:34:24 +0000 message: updated NEWS modified: NEWS ------------------------------------------------------------ revno: 151 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 15:19:10 +0000 message: updated changelog for 0.1.0 modified: ChangeLog ------------------------------------------------------------ revno: 150 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 15:17:49 +0000 message: update po modified: po/POTFILES.in po/ja.po po/loqui.pot ------------------------------------------------------------ revno: 149 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 15:16:11 +0000 message: requires gtk > 2.2.0 modified: configure.in ------------------------------------------------------------ revno: 148 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 15:15:16 +0000 message: remove needless printing modified: src/irc_handle.c ------------------------------------------------------------ revno: 147 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 14:48:13 +0000 message: disabled rules hint modified: src/channel_tree.c ------------------------------------------------------------ revno: 146 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 14:46:15 +0000 message: enable sorting. set rules hint. modified: src/nick_list.c ------------------------------------------------------------ revno: 145 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 14:45:43 +0000 message: use irc_handle_disconnect modified: src/irc_handle.c ------------------------------------------------------------ revno: 144 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 14:45:18 +0000 message: set rules hint modified: src/channel_tree.c ------------------------------------------------------------ revno: 143 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 14:07:56 +0000 message: fixed the blocking read() bug when quiting the program with NONBLOCK modified: src/connection.c ------------------------------------------------------------ revno: 142 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 12:44:23 +0000 message: implemeneted account_dialog modified: src/account_dialog.c ------------------------------------------------------------ revno: 141 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 12:44:04 +0000 message: added remove_all_server function modified: src/account.c src/account.h ------------------------------------------------------------ revno: 140 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-26 12:43:37 +0000 message: added '_with_dialog' and _update_account functions modified: src/account_manager.c src/account_manager.h ------------------------------------------------------------ revno: 139 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 15:21:18 +0000 message: fix a bug to continue failed codeconv message modified: src/connection.c ------------------------------------------------------------ revno: 138 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:31:32 +0000 message: added gtk_utils_add_label_entry() modified: src/gtkutils.c src/gtkutils.h ------------------------------------------------------------ revno: 137 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:30:56 +0000 message: modified the finalizing procedure modified: src/irc_handle.c ------------------------------------------------------------ revno: 136 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:30:25 +0000 message: added functions, (update|remove)_account modified: src/channel_tree.c src/channel_tree.h ------------------------------------------------------------ revno: 135 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:28:43 +0000 message: implemeneted callbacks modified: src/account_list_dialog.c ------------------------------------------------------------ revno: 134 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:27:58 +0000 message: added account_dialog added: src/account_dialog.c src/account_dialog.h modified: src/Makefile.am ------------------------------------------------------------ revno: 133 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:26:46 +0000 message: modified finalizing procedure modified: src/account.c ------------------------------------------------------------ revno: 132 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:25:32 +0000 message: renamed create_connect_submenu to update_connect_submenu modified: src/loqui_menu.c src/loqui_menu.h ------------------------------------------------------------ revno: 131 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 14:24:59 +0000 message: don't save account settings in main.c modified: src/main.c ------------------------------------------------------------ revno: 130 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-25 10:58:41 +0000 message: attempting to fix long-time-quitting bug modified: src/connection.c src/irc_handle.c ------------------------------------------------------------ revno: 129 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-01-23 14:20:26 +0000 message: created account list dialog temporalily added: src/account_list_dialog.c src/account_list_dialog.h modified: configure.in po/POTFILES.in po/ja.po po/loqui.pot src/Makefile.am src/account_manager.c src/account_manager.h src/loqui_menu.c ------------------------------------------------------------ revno: 128 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-01-23 12:04:25 +0000 message: use DEFINE_STRING_ACCESSOR macro modified: src/account.c ------------------------------------------------------------ revno: 127 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-01-23 11:40:21 +0000 message: 0.0.9 NEWS modified: NEWS ------------------------------------------------------------ revno: 126 committer: sunnyone41 branch nick: trunk timestamp: Thu 2003-01-23 11:34:05 +0000 message: fixed the bug when the message which cannot convert codeset appears modified: src/connection.c src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 125 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 14:39:24 +0000 message: calculate users when idle modified: src/channel.c ------------------------------------------------------------ revno: 124 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 14:09:35 +0000 message: removed unused model modified: src/nick_list.c ------------------------------------------------------------ revno: 123 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 14:05:05 +0000 message: counting users modified: src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_tree.c src/channel_tree.h ------------------------------------------------------------ revno: 122 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 13:28:31 +0000 message: change the place to show topic and scroll button modified: src/loqui_app.c ------------------------------------------------------------ revno: 121 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 13:21:53 +0000 message: change channel color when a new message is arrived. modified: src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_tree.c src/channel_tree.h ------------------------------------------------------------ revno: 120 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 12:24:42 +0000 message: update for 0.0.8 modified: ChangeLog NEWS ------------------------------------------------------------ revno: 119 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 12:24:18 +0000 message: update configure.in 0.0.8 modified: configure.in ------------------------------------------------------------ revno: 118 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 12:17:57 +0000 message: fix wrong handling iter modified: src/channel.c ------------------------------------------------------------ revno: 117 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 12:17:18 +0000 message: removed use_server_list modified: src/account.c src/account.h ------------------------------------------------------------ revno: 116 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 11:36:39 +0000 message: user lists are saved list_store directly modified: src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/main.h src/nick_list.c src/nick_list.h ------------------------------------------------------------ revno: 115 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 10:19:28 +0000 message: STR_FREE_UNLESS_NULL is replaced with G_FREE_UNLESS_NULL modified: src/account.c src/channel.c src/prefs_general.c src/utils.h ------------------------------------------------------------ revno: 114 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 10:17:21 +0000 message: COLUMN_* of NickList are moved to main.h and modified: src/main.h src/nick_list.c ------------------------------------------------------------ revno: 113 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 10:12:38 +0000 message: pixmaps of nicklist are drawn by enum number directly modified: src/nick_list.c ------------------------------------------------------------ revno: 112 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 07:42:54 +0000 message: save widgets size modified: src/loqui_app.c src/prefs_general.c src/prefs_general.h ------------------------------------------------------------ revno: 111 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 06:47:44 +0000 message: fixed mistaken target modified: src/loqui_app.c ------------------------------------------------------------ revno: 110 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 05:30:40 +0000 message: merge to count_param modified: src/irc_message.c ------------------------------------------------------------ revno: 109 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 05:28:22 +0000 message: channel_text is moved to channel_buffer removed: src/channel_text.c src/channel_text.h added: src/channel_buffer.c src/channel_buffer.h modified: src/Makefile.am src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/irc_handle.c src/loqui_app.h ------------------------------------------------------------ revno: 108 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-19 04:39:49 +0000 message: change the way to manage channel buffers from notebook+scwin+textview+buffer to textview+buffer removed: src/channel_book.c src/channel_book.h modified: src/account.c src/account_manager.c src/account_manager.h src/channel.c src/channel_text.c src/channel_text.h src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 107 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 15:05:23 +0000 message: Updated changelog modified: ChangeLog ------------------------------------------------------------ revno: 106 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:55:39 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 105 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:54:37 +0000 message: changed GNOME2 to Gtk2 modified: README configure.in po/POTFILES.in po/ja.po po/loqui.pot src/about.c src/about.h src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_book.c src/channel_book.h src/channel_text.c src/channel_text.h src/channel_tree.c src/channel_tree.h src/codeconv.c src/codeconv.h src/command_table.c src/command_table.h src/connection.c src/connection.h src/gtkutils.c src/gtkutils.h src/irc_handle.c src/irc_handle.h src/irc_message.c src/irc_message.h src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/main.c src/main.h src/nick_list.c src/nick_list.h src/prefs_general.c src/prefs_general.h src/utils.c src/utils.h ------------------------------------------------------------ revno: 104 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:45:34 +0000 message: changed missed height and width modified: src/loqui_app.c ------------------------------------------------------------ revno: 103 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:21:58 +0000 message: added locale.h modified: src/codeconv.c ------------------------------------------------------------ revno: 102 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:18:43 +0000 message: added added: src/intl.h ------------------------------------------------------------ revno: 101 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:15:36 +0000 message: added m4 modified: autogen.sh ------------------------------------------------------------ revno: 100 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:15:16 +0000 message: added intl added: intl/ intl/ChangeLog intl/Makefile.in intl/VERSION intl/bindtextdom.c intl/config.charset intl/dcgettext.c intl/dcigettext.c intl/dcngettext.c intl/dgettext.c intl/dngettext.c intl/eval-plural.h intl/explodename.c intl/finddomain.c intl/gettext.c intl/gettextP.h intl/gmo.h intl/hash-string.h intl/intl-compat.c intl/l10nflist.c intl/libgnuintl.h intl/loadinfo.h intl/loadmsgcat.c intl/localcharset.c intl/locale.alias intl/localealias.c intl/localename.c intl/ngettext.c intl/os2compat.c intl/os2compat.h intl/osdep.c intl/plural-exp.c intl/plural-exp.h intl/plural.c intl/plural.y intl/ref-add.sin intl/ref-del.sin intl/textdomain.c ------------------------------------------------------------ revno: 99 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:12:33 +0000 message: added NEWS and AUTHORS added: AUTHORS NEWS ------------------------------------------------------------ revno: 98 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 14:11:59 +0000 message: removed gnome/gconf dependency removed: aclocal.m4 config.guess config.h.in config.sub configure loqui.schemas po/Makefile.in.in modified: ChangeLog Makefile.am autogen.sh configure.in mkinstalldirs po/ChangeLog po/ja.po po/loqui.pot src/Makefile.am src/account.c src/account.h src/account_manager.h src/channel.h src/channel_book.h src/channel_text.h src/channel_tree.c src/channel_tree.h src/codeconv.c src/codeconv.h src/connection.c src/connection.h src/irc_handle.c src/irc_handle.h src/irc_message.c src/irc_message.h src/loqui_app.c src/loqui_app.h src/main.c src/nick_list.c src/nick_list.h src/prefs_account.c src/prefs_general.c ------------------------------------------------------------ revno: 97 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 13:23:46 +0000 message: removed gconf related functions removed: src/eel-gconf-extensions.c src/eel-gconf-extensions.h src/loqui_gconf.h modified: src/Makefile.am src/account.c src/account_manager.c src/loqui_app.c src/main.c src/utils.c src/utils.h ------------------------------------------------------------ revno: 96 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 13:13:55 +0000 message: removed xml.[ch] and its relation removed: src/stringtable.c src/stringtable.h src/xml.c src/xml.h modified: src/Makefile.am src/utils.c src/utils.h ------------------------------------------------------------ revno: 95 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 13:11:14 +0000 message: fully implemented xml-based configuration added: src/prefs_account.c src/prefs_account.h modified: src/Makefile.am src/account.c src/account.h src/account_manager.c src/account_manager.h src/irc_handle.c src/main.c ------------------------------------------------------------ revno: 94 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 09:53:14 +0000 message: abolished GnomeApp and GnomeUIInfo modified: src/Makefile.am src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/loqui_menu.h ------------------------------------------------------------ revno: 93 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 08:08:32 +0000 message: abolished gnome_about modified: src/about.c src/about.h src/loqui_menu.c ------------------------------------------------------------ revno: 92 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 08:01:09 +0000 message: using new preference engine(general only) modified: src/main.c ------------------------------------------------------------ revno: 91 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 08:00:38 +0000 message: removed function making ~/.loqui modified: src/prefs_general.c ------------------------------------------------------------ revno: 90 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 07:53:16 +0000 message: removed gconf code. fixed memory leak modified: src/codeconv.c ------------------------------------------------------------ revno: 89 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 06:50:42 +0000 message: new preference engine(for general) added: src/prefs_general.c src/prefs_general.h modified: src/Makefile.am src/main.h src/utils.c src/utils.h ------------------------------------------------------------ revno: 88 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 03:48:56 +0000 message: account_set frees variables if they has already set modified: src/account.c ------------------------------------------------------------ revno: 87 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-18 02:40:53 +0000 message: using the value g_slist_remove returns modified: src/channel.c ------------------------------------------------------------ revno: 86 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-17 16:12:31 +0000 message: changed scrolling method modified: src/channel_text.c ------------------------------------------------------------ revno: 85 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-17 12:55:52 +0000 message: copied xml-related functions from sylpheed. added: src/stringtable.c src/stringtable.h src/xml.c src/xml.h modified: src/Makefile.am src/utils.c src/utils.h ------------------------------------------------------------ revno: 84 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-17 12:01:59 +0000 message: implemented correct quitting modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel_tree.c src/channel_tree.h src/irc_handle.c src/irc_handle.h src/loqui_app.c ------------------------------------------------------------ revno: 83 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 16:24:43 +0000 message: change the method of finding user from the user list modified: src/channel.c src/channel.h ------------------------------------------------------------ revno: 82 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 16:24:01 +0000 message: null channel checking modified: src/irc_handle.c ------------------------------------------------------------ revno: 81 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 16:23:31 +0000 message: null user checking modified: src/account_manager.c ------------------------------------------------------------ revno: 80 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:37:11 +0000 message: euc-jp modified: po/ja.po ------------------------------------------------------------ revno: 79 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:34:14 +0000 message: euc-jp modified: po/ja.po ------------------------------------------------------------ revno: 78 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:31:40 +0000 message: utf8 modified: po/ja.po ------------------------------------------------------------ revno: 77 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:28:16 +0000 message: 0.0.6 release modified: ChangeLog configure configure.in mkinstalldirs po/ChangeLog po/loqui.pot ------------------------------------------------------------ revno: 76 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:27:54 +0000 message: added include utils.h modified: src/channel.c ------------------------------------------------------------ revno: 75 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:21:38 +0000 message: updated po modified: po/ja.po ------------------------------------------------------------ revno: 74 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:07:33 +0000 message: added underlined branket of gettext modified: src/channel_text.c src/loqui_app.c ------------------------------------------------------------ revno: 73 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 14:03:21 +0000 message: fixed handling a private message modified: src/irc_handle.c ------------------------------------------------------------ revno: 72 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-12 05:37:12 +0000 message: fixed about finding user modified: src/channel.c ------------------------------------------------------------ revno: 71 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-11 07:24:05 +0000 message: added uri picker modified: src/channel_text.c ------------------------------------------------------------ revno: 70 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-11 05:50:02 +0000 message: not to use structure after free() modified: src/channel.c ------------------------------------------------------------ revno: 69 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-11 05:43:47 +0000 message: added option --show-msg modified: src/irc_handle.c src/main.c src/main.h ------------------------------------------------------------ revno: 68 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-11 05:43:36 +0000 message: changed inspect format modified: src/irc_message.c ------------------------------------------------------------ revno: 67 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-11 05:00:00 +0000 message: disconnect when the thread exits modified: src/irc_handle.c ------------------------------------------------------------ revno: 66 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-11 04:51:08 +0000 message: checking if tmp == cur in irc_message_format modified: src/irc_message.c ------------------------------------------------------------ revno: 65 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:58:10 +0000 message: changelog modified: ChangeLog ------------------------------------------------------------ revno: 64 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:46:18 +0000 message: remove needless printing modified: src/irc_handle.c ------------------------------------------------------------ revno: 63 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:45:29 +0000 message: fix focusing modified: src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 62 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:43:37 +0000 message: new commands in new rfc modified: src/irc_constants.h src/irc_message.c ------------------------------------------------------------ revno: 61 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:38:07 +0000 message: set focusing modified: src/account_manager.c src/channel.c src/channel.h src/connection.c src/irc_constants.h src/loqui_app.c ------------------------------------------------------------ revno: 60 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:37:41 +0000 message: password null checking modified: src/account.c ------------------------------------------------------------ revno: 59 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:37:25 +0000 message: fix iso-2022 terminating modified: src/codeconv.c ------------------------------------------------------------ revno: 58 committer: sunnyone41 branch nick: trunk timestamp: Fri 2003-01-10 11:37:00 +0000 message: handling multiple names modified: src/irc_handle.c ------------------------------------------------------------ revno: 57 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 14:01:40 +0000 message: sends password if any modified: src/irc_handle.c ------------------------------------------------------------ revno: 56 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 13:56:39 +0000 message: fix schema modified: loqui.schemas ------------------------------------------------------------ revno: 55 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 13:32:43 +0000 message: fixed gconf stuffs modified: ChangeLog Makefile.am aclocal.m4 config.h.in configure configure.in loqui.schemas mkinstalldirs po/ChangeLog po/ja.po po/loqui.pot src/account_manager.c ------------------------------------------------------------ revno: 54 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 12:32:03 +0000 message: autoconf stuffs modified: ChangeLog Makefile.am configure.in mkinstalldirs po/ChangeLog po/POTFILES.in po/loqui.pot ------------------------------------------------------------ revno: 53 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 12:17:53 +0000 message: po updated modified: po/ja.po ------------------------------------------------------------ revno: 52 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 12:11:27 +0000 message: implemented kick and replies modified: src/irc_handle.c ------------------------------------------------------------ revno: 51 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 11:35:45 +0000 message: made account restoring secure modified: src/account.c src/account.h src/account_manager.c src/irc_handle.c ------------------------------------------------------------ revno: 50 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 11:19:47 +0000 message: implement mode command temporarily modified: src/account.c src/channel.c src/channel.h src/irc_constants.h src/irc_handle.c src/irc_message.c src/irc_message.h src/nick_list.c ------------------------------------------------------------ revno: 49 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 08:33:14 +0000 message: fix behavior of join modified: src/irc_handle.c ------------------------------------------------------------ revno: 48 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 08:19:01 +0000 message: handling priv modified: src/channel.c src/channel.h src/channel_tree.c src/irc_handle.c src/irc_handle.h src/nick_list.c ------------------------------------------------------------ revno: 47 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 07:56:08 +0000 message: implemenet some commands modified: src/irc_handle.c ------------------------------------------------------------ revno: 46 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 06:53:35 +0000 message: fix selection behavior modified: src/account.c src/account_manager.c src/account_manager.h src/channel_tree.c src/channel_tree.h src/irc_handle.c ------------------------------------------------------------ revno: 45 committer: sunnyone41 branch nick: trunk timestamp: Wed 2003-01-08 05:43:09 +0000 message: remove the name in each channels when the user quit modified: src/irc_handle.c ------------------------------------------------------------ revno: 44 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-01-07 16:03:28 +0000 message: show messages to channels that speaker joined modified: src/account.c src/account.h src/channel.c src/irc_handle.c ------------------------------------------------------------ revno: 43 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-01-07 14:48:48 +0000 message: topicing modified: src/account_manager.c src/account_manager.h src/channel.c src/loqui_app.c ------------------------------------------------------------ revno: 42 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-01-07 14:32:39 +0000 message: implement nick list modified: src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/irc_handle.c src/nick_list.c src/nick_list.h ------------------------------------------------------------ revno: 41 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-01-07 11:57:56 +0000 message: implement channel user list modified: src/channel.c src/channel.h src/irc_handle.c ------------------------------------------------------------ revno: 40 committer: sunnyone41 branch nick: trunk timestamp: Tue 2003-01-07 11:57:44 +0000 message: set sensitivity of the Settings menuitem as false modified: src/loqui_menu.c ------------------------------------------------------------ revno: 39 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-01-06 16:16:40 +0000 message: fix focusing modified: src/account_manager.c src/loqui_app.c ------------------------------------------------------------ revno: 38 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-01-06 16:11:59 +0000 message: use message box modified: src/account.c ------------------------------------------------------------ revno: 37 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-01-06 16:01:12 +0000 message: implemeneted my command, part removed: src/cscope.out modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel_book.c src/channel_book.h src/channel_tree.c src/channel_tree.h src/irc_handle.c ------------------------------------------------------------ revno: 36 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-01-06 14:46:07 +0000 message: reimplement irc_message_parse_line modified: src/account.c src/channel_tree.c src/irc_handle.c src/irc_handle.h src/irc_message.c src/loqui_app.c ------------------------------------------------------------ revno: 35 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-01-06 11:25:10 +0000 message: show messages other than the current channel view to the common textview modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/irc_handle.c src/loqui_app.c ------------------------------------------------------------ revno: 34 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-01-06 08:55:50 +0000 message: implemented speaking temporalily modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/loqui_app.c ------------------------------------------------------------ revno: 33 committer: sunnyone41 branch nick: trunk timestamp: Mon 2003-01-06 06:43:23 +0000 message: sending message queue modified: src/irc_constants.h src/irc_handle.c src/irc_handle.h src/irc_message.c src/irc_message.h ------------------------------------------------------------ revno: 32 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 16:06:38 +0000 message: implements response for quit command temporalily modified: src/irc_handle.c ------------------------------------------------------------ revno: 31 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 15:52:44 +0000 message: handling reponse, 00x modified: src/irc_handle.c src/irc_message.c ------------------------------------------------------------ revno: 30 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 14:52:06 +0000 message: implements reply of topic,motd modified: src/channel.c src/irc_handle.c ------------------------------------------------------------ revno: 29 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 14:32:21 +0000 message: implemenets reply_names utility function to display a irc message for threading created get_trailing modified: src/account_manager.c src/irc_handle.c src/irc_message.c ------------------------------------------------------------ revno: 28 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 13:57:36 +0000 message: added get_trailing modified: src/irc_message.c src/irc_message.h ------------------------------------------------------------ revno: 27 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 13:19:48 +0000 message: channel_text_append adds a linefeed automatically modified: src/channel.c src/channel_text.c src/irc_handle.c ------------------------------------------------------------ revno: 26 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 13:04:59 +0000 message: implement handlers for a little replies modified: src/irc_handle.c ------------------------------------------------------------ revno: 25 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 03:07:30 +0000 message: change scroll lock into scroll modified: src/account_manager.c src/irc_handle.c src/loqui_app.c src/loqui_app.h ------------------------------------------------------------ revno: 24 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 02:52:24 +0000 message: added irc_message_format modified: src/irc_handle.c src/irc_message.c src/irc_message.h ------------------------------------------------------------ revno: 23 committer: sunnyone41 branch nick: trunk timestamp: Sun 2003-01-05 02:14:18 +0000 message: made irc_message_get_param's first number 1 modified: src/irc_handle.c src/irc_message.c src/irc_message.h ------------------------------------------------------------ revno: 22 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 17:42:17 +0000 message: prepared to handle reply and error messages modified: src/irc_handle.c ------------------------------------------------------------ revno: 21 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 17:21:48 +0000 message: handling topic modified: src/channel.c src/channel.h src/irc_handle.c ------------------------------------------------------------ revno: 20 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 17:03:15 +0000 message: changing page feature modified: src/account_manager.c src/channel_book.c src/channel_book.h ------------------------------------------------------------ revno: 19 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 16:34:32 +0000 message: remove //-style comment modified: src/irc_constants.h src/irc_handle.c ------------------------------------------------------------ revno: 18 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 16:30:59 +0000 message: checking type modified: src/account_manager.c src/channel_book.c src/channel_text.c src/channel_tree.c src/connection.c src/irc_handle.c src/irc_message.c src/nick_list.c ------------------------------------------------------------ revno: 17 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 16:09:02 +0000 message: show remarks in each channels' textview modified: src/account.h src/irc_handle.c ------------------------------------------------------------ revno: 16 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 16:06:15 +0000 message: doing g_strdup channel name modified: src/channel.c src/channel.h ------------------------------------------------------------ revno: 15 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 12:16:11 +0000 message: response against PING modified: src/irc_handle.c ------------------------------------------------------------ revno: 14 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 12:07:35 +0000 message: code clean up modified: src/account.c src/account.h src/account_manager.c src/channel.c src/channel.h src/channel_tree.c src/irc_handle.c ------------------------------------------------------------ revno: 13 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 10:33:08 +0000 message: handling my own messages modified: src/connection.c src/irc_handle.c src/irc_message.h ------------------------------------------------------------ revno: 12 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 10:32:29 +0000 message: clean up implemets modified: src/channel_tree.c ------------------------------------------------------------ revno: 11 committer: sunnyone41 branch nick: trunk timestamp: Sat 2003-01-04 10:25:09 +0000 message: handling broken code modified: src/codeconv.c ------------------------------------------------------------ revno: 10 committer: sunnyone41 branch nick: trunk timestamp: Sun 2002-12-15 14:30:21 +0000 message: change README modified: README ------------------------------------------------------------ revno: 9 committer: sunnyone41 branch nick: trunk timestamp: Sat 2002-11-23 08:51:25 +0000 message: added a feature to handle join command modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_tree.c src/channel_tree.h src/gtkutils.c src/gtkutils.h src/irc_constants.h src/irc_handle.c src/irc_message.c src/nick_list.h ------------------------------------------------------------ revno: 8 committer: sunnyone41 branch nick: trunk timestamp: Sat 2002-11-23 05:56:00 +0000 message: implement function of handling message experimentally. modified: src/channel_text.c src/irc_handle.c src/irc_message.c src/irc_message.h ------------------------------------------------------------ revno: 7 committer: sunnyone41 branch nick: trunk timestamp: Fri 2002-11-22 15:18:28 +0000 message: apending text function moved to channel_text modified: src/account.c src/account.h src/channel_text.c src/channel_text.h ------------------------------------------------------------ revno: 6 committer: sunnyone41 branch nick: trunk timestamp: Fri 2002-11-22 14:33:14 +0000 message: showing message experimentally modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel_text.c src/channel_text.h src/gtkutils.h src/irc_handle.c src/irc_message.c src/irc_message.h src/loqui_app.c src/loqui_app.h src/loqui_menu.c ------------------------------------------------------------ revno: 5 committer: sunnyone41 branch nick: trunk timestamp: Fri 2002-11-22 12:27:26 +0000 message: removed LoquiCommonText removed: src/loqui_common_text.c src/loqui_common_text.h modified: src/Makefile.am src/loqui_app.c ------------------------------------------------------------ revno: 4 committer: sunnyone41 branch nick: trunk timestamp: Fri 2002-11-22 12:25:47 +0000 message: created add channel text modified: src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel_book.c src/channel_book.h src/channel_text.c src/channel_tree.h src/loqui_app.c src/loqui_app.h src/main.c src/nick_list.h ------------------------------------------------------------ revno: 3 committer: sunnyone41 branch nick: trunk timestamp: Fri 2002-11-22 11:39:37 +0000 message: enabled account manager again modified: src/Makefile.am src/account_manager.c src/account_manager.h src/channel_book.c src/cscope.out src/irc_constants.h src/irc_handle.c src/loqui_app.c src/loqui_app.h src/loqui_menu.c src/main.c ------------------------------------------------------------ revno: 2 committer: sunnyone41 branch nick: trunk timestamp: Thu 2002-11-21 13:56:22 +0000 message: ------------------------------------------------------------ revno: 1 committer: sunnyone41 branch nick: trunk timestamp: Thu 2002-11-21 13:56:17 +0000 message: Initial revision added: ABOUT-NLS COPYING ChangeLog INSTALL Makefile.am README acconfig.h aclocal.m4 autogen.sh config.guess config.h.in config.rpath config.sub configure configure.in gettext.h install-sh intltool-extract intltool-extract.in intltool-merge intltool-merge.in intltool-update intltool-update.in loqui.schemas m4/ m4/ChangeLog m4/Makefile.am m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/intdiv0.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/progtest.m4 m4/stdint_h.m4 m4/uintmax_t.m4 m4/ulonglong.m4 missing mkinstalldirs po/ po/ChangeLog po/Makefile.in.in po/Makevars po/Makevars.template po/POTFILES.in po/Rules-quot po/boldquot.sed po/en@boldquot.header po/en@quot.header po/insert-header.sin po/ja.po po/loqui.pot po/quot.sed po/remove-potcdate.sin src/ src/Makefile.am src/about.c src/about.h src/account.c src/account.h src/account_manager.c src/account_manager.h src/channel.c src/channel.h src/channel_book.c src/channel_book.h src/channel_text.c src/channel_text.h src/channel_tree.c src/channel_tree.h src/codeconv.c src/codeconv.h src/command_table.c src/command_table.h src/connection.c src/connection.h src/cscope.out src/eel-gconf-extensions.c src/eel-gconf-extensions.h src/gtkutils.c src/gtkutils.h src/irc_constants.h src/irc_handle.c src/irc_handle.h src/irc_message.c src/irc_message.h src/loqui_app.c src/loqui_app.h src/loqui_common_text.c src/loqui_common_text.h src/loqui_gconf.h src/loqui_menu.c src/loqui_menu.h src/main.c src/main.h src/nick_list.c src/nick_list.h src/utils.c src/utils.h stamp-h.in ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions. loqui-0.5.5/m4/0000775000175000017500000000000012121622470010172 500000000000000loqui-0.5.5/m4/progtest.m40000664000175000017500000000555012121600532012223 00000000000000# progtest.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1996-2003, 2005 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 can be used in projects which are not available under dnl the GNU General Public License or the GNU Library 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 Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ(2.50) # 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 echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh 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 ifelse([$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. 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 ]) loqui-0.5.5/m4/lt~obsolete.m40000644000175000017500000001375612121622350012735 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) loqui-0.5.5/m4/Makefile.in0000664000175000017500000002512212121622350012156 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = m4 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = Makefile.am codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 progtest.m4 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign m4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/m4/ltsugar.m40000644000175000017500000001042412121622350012031 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) loqui-0.5.5/m4/ltversion.m40000644000175000017500000000126212121622350012375 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) loqui-0.5.5/m4/gettext.m40000664000175000017500000005166712121600532012052 00000000000000# gettext.m4 serial 37 (gettext-0.14.4) dnl Copyright (C) 1995-2005 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 can be used in projects which are not available under dnl the GNU General Public License or the GNU Library 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 Library General Public License, and the rest of the GNU dnl gettext package 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. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/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). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. 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. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], [no], [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])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 test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl tests. But if configure.in 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 only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AM_NLS ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, 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. dnl Add a version number to the cache macros. define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#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 ], [])[extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, 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_cv_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_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#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 ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) dnl Now see whether libintl exists and depends on libiconv. if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#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 ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_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 test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, 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. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" 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 test "$gt_cv_func_gnugettext_libintl" = "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 test "$gt_cv_func_gnugettext_libintl" = "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 ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) 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 Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([gt_GLIBC2])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([bh_C_SIGNED])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl AC_REQUIRE([gt_TYPE_WCHAR_T])dnl AC_REQUIRE([gt_TYPE_WINT_T])dnl AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([gt_TYPE_INTMAX_T]) AC_REQUIRE([gt_PRINTF_POSIX]) AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([gl_GLIBC21])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_REQUIRE([gl_XSIZE])dnl AC_REQUIRE([gt_INTL_MACOSX])dnl AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \ mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \ strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \ __fsetlocking]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). gt_CHECK_DECL(_snprintf, [#include ]) gt_CHECK_DECL(_snwprintf, [#include ]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. gt_CHECK_DECL(feof_unlocked, [#include ]) gt_CHECK_DECL(fgets_unlocked, [#include ]) gt_CHECK_DECL(getc_unlocked, [#include ]) case $gt_cv_func_printf_posix in *yes) HAVE_POSIX_PRINTF=1 ;; *) HAVE_POSIX_PRINTF=0 ;; esac AC_SUBST([HAVE_POSIX_PRINTF]) if test "$ac_cv_func_asprintf" = yes; then HAVE_ASPRINTF=1 else HAVE_ASPRINTF=0 fi AC_SUBST([HAVE_ASPRINTF]) if test "$ac_cv_func_snprintf" = yes; then HAVE_SNPRINTF=1 else HAVE_SNPRINTF=0 fi AC_SUBST([HAVE_SNPRINTF]) if test "$ac_cv_func_wprintf" = yes; then HAVE_WPRINTF=1 else HAVE_WPRINTF=0 fi AC_SUBST([HAVE_WPRINTF]) AM_ICONV AM_LANGINFO_CODESET if test $ac_cv_header_locale_h = yes; then gt_LC_MESSAGES fi if test -n "$INTL_MACOSX_LIBS"; then CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], gt_cv_func_CFPreferencesCopyAppValue, [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" gt_save_LIBS="$LIBS" LIBS="$LIBS -framework CoreFoundation" AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" gt_save_LIBS="$LIBS" LIBS="$LIBS -framework CoreFoundation" AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, [Define to 1 if you have the MacOS 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]) ]) dnl gt_CHECK_DECL(FUNC, INCLUDES) dnl Check whether a function is declared. AC_DEFUN([gt_CHECK_DECL], [ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, [AC_TRY_COMPILE([$2], [ #ifndef $1 char *p = (char *) $1; #endif ], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) if test $ac_cv_have_decl_$1 = yes; then gt_value=1 else gt_value=0 fi AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) loqui-0.5.5/m4/isc-posix.m40000664000175000017500000000170612121600532012271 00000000000000# isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 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. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) loqui-0.5.5/m4/Makefile.am0000664000175000017500000000015112121600532012136 00000000000000EXTRA_DIST = Makefile.am codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 progtest.m4 loqui-0.5.5/m4/ltoptions.m40000644000175000017500000003007312121622350012405 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) loqui-0.5.5/m4/libtool.m40000644000175000017500000106043412121622347012031 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_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 `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS loqui-0.5.5/m4/iconv.m40000664000175000017500000000642612121600532011475 00000000000000# iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 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. 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). 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_TRY_LINK will then fail, the second AC_TRY_LINK 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_TRY_LINK([#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_TRY_LINK([#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_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) 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) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) loqui-0.5.5/m4/glibc21.m40000664000175000017500000000144512121600532011576 00000000000000# glibc21.m4 serial 3 dnl Copyright (C) 2000-2002, 2004 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. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) loqui-0.5.5/m4/lcmessage.m40000664000175000017500000000240412121600532012312 00000000000000# lcmessage.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1995-2002, 2004-2005 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 can be used in projects which are not available under dnl the GNU General Public License or the GNU Library 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 Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) loqui-0.5.5/m4/codeset.m40000664000175000017500000000135112121600532011775 00000000000000# codeset.m4 serial AM1 (gettext-0.10.40) dnl Copyright (C) 2000-2002 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. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET);], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) loqui-0.5.5/loqui.spec.in0000664000175000017500000000255412121600532012205 00000000000000%define ver @VERSION@ %define rel 1 Summary: IRC/Chat client for Gtk2 Name: loqui Version: %{ver} Release: %{rel} Group: Applications/Internet Source0: http://launchpad.net/loqui/src/%{name}-%{ver}.tar.gz License: GPL Packager: Yoichi Imai Requires: gtk2 >= 2.4.0, glib2 >= 2.22.0 BuildRequires: gtk2-devel >= 2.4.0, glib2-devel >= 2.22.0 BuildRequires: gob2 URL: http://launchpad.net/loqui BuildRoot: %{_tmppath}/%{name}-%{ver}-root %description An IRC client that has these features: - 4 paned. - Supports multiple servers. - Simple UI. %prep rm -rf $RPM_BUILD_ROOT %setup -q %build %configure make %install %makeinstall %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr (-,root,root) %doc README COPYING INSTALL ChangeLog AUTHORS NEWS NEWS.ja %{_bindir}/loqui %{_sysconfdir}/applications/loqui.desktop %{_datadir}/pixmaps/loqui.png %changelog * Sun Dec 12 2010 IWAI, Masaharu - add BuildRequires: gob2 * Sun Dec 12 2010 Yoichi Imai - update URL and Source0: moved - update Packager mail address - update desktop file path * Thu Apr 8 2004 Yoichi Imai - Added icon / desktop file. * Thu Jan 22 2004 Yoichi Imai - Improvement by iwaim. Thanks. * Sat Jun 7 2003 Yoichi Imai - created spec.in loqui-0.5.5/depcomp0000755000175000017500000004755612121605222011162 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2011-12-04.11; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # 2011 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, see . # 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 . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac 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 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 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 cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 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. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" 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. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## 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 "s|.*$object$||" -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. In older versions, 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. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done 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,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$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" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 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. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test "$stat" = 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/ \1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/ / G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # 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 ;; #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 preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 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) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$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 preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" 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 preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # 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 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: loqui-0.5.5/loqui.png0000664000175000017500000000353012121600532011425 00000000000000PNG  IHDR00WbKGD pHYs  ~tIME LOIDATxYklS~\|9crqR4! h;rIBK hU+jA.ըiڟm~lVuuIam*U%UMA Bر'8vldGyy/[ve$N1đm,߉lȱC\ *EJW@ Bq FHK=ǡVb (G SE 3ˡ{JBLٲ,96<(G.X*KfHiu)&! @%N]XO_v'";xiu|g¿ǭG`X}fFz(RHP!͵To|A{TcjB}Oܨrk b'ǿM"h\("ݏ#8/v1gKJ+x콼}ku#0{*KiV.˯2t*oZXԩ%2SI hjE4i(ҧٞ6H@VF|⛛Y d@7} h7Aǐgwzhp= 2.22 is required). - Fixed the bug that loqui crashes when it received an invalid channel mode. - "(" and ")" are treated as URL. - date: 2010-12-12 version: 0.5.0 changes: - New site ("ohikkoshi") release. - Fixed some bugs. - date: 2005-10-13 version: 0.4.4 changes: - Fixed the bug that notification didn't work. - Fixed the problem that the program quit if the plum recent parser is used. - date: 2005-10-12 version: 0.4.3 changes: - Rewrote the implementation of the notification / updated-flag. - Included EggRegex (pcre + GLib wrapper). - Regular expression is supported in keywords with re: prefix.. - Created TreatAsRecentLogUntilFirstPongReceived option instead of DontMarkUntilFirstPongReceived option. - date: 2005-08-25 version: 0.4.2 changes: - The feature not to mark a channel as updated by new messages until the program received PONG at first (for some bots, optional). - Fixed the handlers of some IRC miscellaneous replies. - Reply GETINFO queries in IPMessenger. - Supports channel keys for autojoin. - Fixed the bug that the program crashes when the trayicon is right-clicked. - date: 2005-07-18 version: 0.4.1 changes: - Don't set the account buffer as the current buffer when it's connected. - Implemented the 'normal ignore' feature. - Made buildable on Cygwin/MinGW. - date: 2005-07-06 version: 0.4.0 changes: - Updated po. - date: 2005-07-03 version: 0.4.0pre4 changes: - Fixed the problem the program quits when all channels in a account are closed. - Fixed the problem to fail handling an invalid 'param' element in a account profile. - date: 2005-07-02 version: 0.4.0pre3 changes: - Changed the implementation of the management of account profiles. - Supports IP Messenger protocol (Experimental). - Fixed the problem the program doesn't update information of current channel about joined/parted. - date: 2005-05-25 version: 0.4.0pre2 changes: - Fixed the problem failed to create a rpm. - Fixed that the program segfaults when code-convertion was disabled. - date: 2005-05-15 version: 0.4.0pre1 changes: - Separated the parts not using gtk to libloqui (not completed). - Use GOB (developer only). - Use automake >= 1.5, m4 (developer only). - Use .ini (KeyFile) format for general settings. - Fixed the problem to reconnect when sent a QUIT message manually. - Rewrote the MODE parser. - Don't support gtk+-2.2 (Require gtk+-2.4). - Enabled to open an URI with a single-click. - Don't close buffers when parted a channel or closed a connection. - Fixed some UI. - Fixed some bugs. - date: 2004-09-22 version: 0.3.9 changes: - Send QUIT when the program exit. - Fixed the reconnecting flow. - Fixed the problem the other channel's topic appeared on the current channel. - date: 2004-08-26 version: 0.3.8 changes: - Large change of structure. - Fixed bugs / memory leaks. - Printing CTCP Action. - Fixed the parser of plum recent. - Fixed the timing of automatically-join. - Customizing title and statusbar with title formatting. - date: 2004-06-19 version: 0.3.7 changes: - Fixed the condition to hilight the system tray icon (whether focused or not) - Clicking the system tray icon iconify/deiconify the window. - Blink the system tray icon when the new keyword is arrived. - The feature to select a channel/account from the system tray icon. - An option whether to execute notification or not when the new keyword in the NOTICE message is arrived. - The feature to clear all unread flags of buffers. - date: 2004-06-15 version: 0.3.6 changes: - Save the configuration of accel keys at ~/.loqui/accelmaprc. - Changed accel keys for (Previous|Next)UnreadChannel from Ctrl+(Shift+)Space to Alt+Up/Down. - Save the key-event when focusing the entry. - Fixed the bug that failed to show some icons on gtk-2.4 environment. - Implemented the system tray icon (notification area). - date: 2004-05-26 version: 0.3.5 changes: - Handle informal Japanese characters(JIS X 0201 kana, 13ku-NEC special characters) - Connect with double-clicking the account node of channel tree. - date: 2004-05-13 version: 0.3.4 changes: - Sends NOTICE with Ctrl+Enter. - Fixed the context menu of the channel tree. - Added an option: "Select a new channel automatically" - Don't execute notification when a message came from server. - date: 2004-05-04 version: 0.3.3 changes: - Feature: Jump to next/previous keyword. - Set different color when the channel has normal message / notice message / keyword. - date: 2004-05-01 version: 0.3.2 changes: - Bugfix: about .spec - Bugfix: failed to remove account - Created menuitems to connect/reconnect/disconnect. - date: 2004-04-16 version: 0.3.1 changes: - Set tooltips to buttons. - Split the preference switching whether or not to scroll between channel buffer nad common buffer. - Attach menu to channel tree. - Re-fixed the bug loqui crashes when received WHO after re-joining. - date: 2004-04-09 version: 0.3.0pre4 changes: - Fixed the bug failed to save codeset. - Changed the method to manage channel buffers. - date: 2004-04-09 version: 0.3.0pre3 changes: - Fixed the bug the program quit when received WHO on the special condition. - Added icon and desktop file. - Changed the dialog for commands. - Menu changes according to the current status. - date: 2004-04-05 version: 0.3.0pre2 changes: - Fixed the bug failed to sort. - Fixed to receive SEGV when an user is parted/quit. - date: 2004-04-04 version: 0.3.0pre1 changes: - Changed the framework of the preference of accounts. - Performance improvement? - Using GtkAction. - Fixed memory-leaks. - Changed menu. - Changed the style of the channelbar. - Use current nick on the dialog to change nick. - Loop to select the next/previous channel buffer. - Changed the accel keys of next / previous channel buffer (Ctrl+Up/Down, Ctrl+Space, Ctrl+Shift+Space) - Improvement accuracy of automatic toggling scrolling. - Can specify the channel key with the dialog. - "'Channel > Part' closes private talk." - Move focus when pressed a key on the channel buffer / common buffer / nick list / channel tree. - Prevent from opening duplicated the buffer of private talk. - Added icons for away-status to the channel tree. - Made the nick list sortable. - date: 2004-03-07 version: 0.2.5 changes: - Implemented feature to save logs experimentally. - Show buffer numbers at the channel tree. - PageUp/Down scrolls the channel buffer, Alt+PageUp/Down scrolls the common buffer. - date: 2004-02-26 version: 0.2.4 changes: - Fixed some bugs. - Use the current nick as the default value of the nick-change-dialog. - Implemented short-cut keys to select a channel. - Fixed the bug failed to parse channel mode. - Changed icons of +o and +v. - date: 2004-02-08 version: 0.2.3 changes: - Fixed the bug to fail reconnect once loqui failed to connect. - Implemented command mode. - date: 2004-01-22 version: 0.2.2 changes: - Fixed the problem to handle a message that nick is used. - Implemented limitation of lines in buffers. - Show the number of updated channels. - date: 2004-01-19 version: 0.2.1 changes: - Implemented feature to fetch away information of users of a channel. - date: 2004-01-18 version: 0.2.0 changes: - Fixed some bugs. - Changed user interface(Abolished toolbar, enhanced statusbar, etc). - date: 2003-12-21 version: 0.1.20 changes: - Abolished fallbacking servers (closed Bug #13) - Handle used nick when connecting (fixed Bug #14) - Show the sender of CTCP. - Handle in case that the speaker is myself. - Fixed the problem of auto detection of the locale. - date: 2003-09-11 version: 0.1.19 changes: - Fixed some bugs. - Settings of code convertion is moved to account configuration. - Made it easy to change nick if you register nick at account configuration. - Always show idle time with WHOIS command with NickList. - Made idle time human readable. - date: 2003-07-01 version: 0.1.18 changes: - Now it preserves the current message to the history. - Changing topic is only allowed if the entry is changed. - Added Next/Prev channel button to the toolbar. - Fixed the bug that the program quits if you tried to configure accounts when they are connected. - Added the feature that all default accounts will be connected when the program started automatically. - Fixed the parser of plum-recent. - date: 2003-06-16 version: 0.1.17 changes: - Created channelbar. - Fixed the case sensitibity of RemarkEntry. - Remove needless padding of ChannelTree/NickList. - date: 2003-06-07 version: 0.1.16 changes: - Fixed the bug around the KICK message. - Added "Buffers" menu. - Added loqui.spec. - date: 2003-05-29 version: 0.1.15 changes: - Use GNet-2.0(Support IPv6?) - Parse ~/.loqui/gtkrc-2.0. - Fixed the problem loqui distinguishes #case and #CASE. - date: 2003-04-17 version: 0.1.14 changes: - Separated channel/private talk in the menus. - double-clicking nicklist make start private talk. - Transparent ignore. - date: 2003-03-26 version: 0.1.13 changes: - Fixed the bug that some messages are shown when a user that joined some channals quit/parted. - Fixed the bug the coming messages are not shown at all. - date: 2003-03-24 version: 0.1.12 changes: - Changed method to manage Account/Channel. - Supports CTCP. - date: 2003-03-17 version: 0.1.11 changes: - Stop using multi-threading in Loqui. - Enable reconnecting. - Auto-reconnect feature. - date: 2003-03-16 version: 0.1.10 changes: - Implemented multiline editing mode. - Fix the bug about threading. - date: 2003-03-16 version: 0.1.9 changes: - Support CREATIONTIME/TOPICWHOTIME reply. - Feature to parse plum-recent. - Changed saving method of highlighting words(old settings will be lost!). - History of remarks. - date: 2003-02-25 version: 0.1.8 changes: - Join/Part/Topic command with dialog. - Added new toolbar button. - date: 2003-02-23 version: 0.1.7 changes: - Connect dialog. - View menu. - Next/Previous channel. - date: 2003-02-19 version: 0.1.6 changes: - Implemented Cut/Copy/Paste - Fix scrollbar behavior. - Function to determine whether scrolling or not with scrollbar operation. - date: 2003-02-19 version: 0.1.5 changes: - Replaced emphasis with highlight. - Fix the high load when selected a channel. - Show channel modes. - date: 2003-02-16 version: 0.1.4 changes: - Autojoin feature. - Notification feature. - Clickable URL. - Common Preferences dialog. - date: 2003-02-12 version: 0.1.3 changes: - Change the charset of .po file into UTF-8 - Change implementation of prefs_general(data saved in loquirc.xml will be lost.) - Popup menu of NickList is implemented. - date: 2003-02-10 version: 0.1.2 changes: - Fix the bug the program quits when it received a QUIT message that doesn't contain no parameters. - New code convertion method. - Enabled translation of menu. - date: 2003-02-08 version: 0.1.1 changes: - Changed interface. - Fix a bug to fail sending a message that contains no parameters. - Implemented a feature to toggle home/away. - date: 2003-01-27 version: 0.1.0 changes: - Created account settings. - Fix the bug blocking when disconnecting. - Enabled nicklist sorting. - date: 2003-01-23 version: 0.0.9 changes: - Fix the bug a connection is terminated when failed to convert codeset. - Change color of the channel on the channel tree when new messages are arrived. - date: 2003-01-19 version: 0.0.8 changes: - Changed the way to change buffers/userlists. - Saving channel tree/common buffer size. - date: 2003-01-19 version: 0.0.7 changes: - Fixed a bug sometimes nicklist is broken by user's part/quit. - Improved performance of scrolling - Removed dependency of GConf/GNOME2 - date: 2003-01-10 version: 0.0.6 changes: - Fixed a incorrect handling with a private message. - Fixed some small bugs. - date: 2003-01-09 version: 0.0.5 changes: - First release. loqui-0.5.5/missing0000755000175000017500000002415212121605222011167 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 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, see . # 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=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # 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 msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -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' autom4te touch the output file, or create a stub one 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 yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 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' $msg. 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 test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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 test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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 "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. 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." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. 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 prerequisites 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 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: loqui-0.5.5/loqui-am-macros.m40000664000175000017500000000153412121600532013040 00000000000000if MAINTAINER_MODE Makefile.am: %: %.m4 $(top_srcdir)/loqui-am-macros.m4 m4 -I$(top_srcdir) $< > $@ endif MAINTAINER_MODE show-needless-svn-ignore: all-am @svn propget svn:ignore . | while read line; do \ [ ! -z "$$(find . -maxdepth 1 -name "$$line" -print)" ] || \ echo "$$line"; \ done add-built-sources-to-bzr-ignore: @set -e;tmpname=$$(mktemp -t bzr-ignore-temp.XXXXXX) && ( \ ((cat "$(top_srcdir)/.bzrignore"; \ echo -n "$(BUILT_SOURCES)" | tr " " "\n" | sed -e "s|^|$(subdir)/|") | \ sort | uniq > "$$tmpname") && \ if cmp -s "$(top_srcdir)/.bzrignore" "$$tmpname"; then \ rm "$$tmpname"; \ else \ mv "$$tmpname" "$(top_srcdir)/.bzrignore"; \ fi; \ ) define(`gob_to_built_sources',`patsubst(`$@', `\.gob\>', `.c') \ patsubst(`$@', `\.gob\>', `.h') \ patsubst(`$@', `\.gob\>', `-private.h')')dnl loqui-0.5.5/INSTALL0000664000175000017500000001722712121600532010627 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. loqui-0.5.5/install-sh0000755000175000017500000003325612121605222011601 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # 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 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # 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 $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: loqui-0.5.5/README0000664000175000017500000000062412121600532010447 00000000000000Loqui -- IRC/Chat client for Gtk2 ================================= What's this? ------------ Loqui is an IRC/Chat client for a Gtk2 environment. Features -------- - Supports multiple servers. - Supports multiple protocols (IRC, IP Messenger (Experimental)). - The common buffer (a buffer to show messages on the channels that not currently selected). How to install? --------------- See INSTALL. loqui-0.5.5/po/0000775000175000017500000000000012121622470010270 500000000000000loqui-0.5.5/po/ja.gmo0000664000175000017500000005541012121605272011314 00000000000000$< \p'q+O.D1Fx    .!,5bt    )AIXp   '!  &49 IS[v1 #,'5] z .*"?0b  $ 0 J 9T     * 4!7!%J!5p!!8!=!1" J"W"k"t""""'""" #%#.#;@#|##3#2#$$=$Q$V$ q${$$:$?$ %% 2% @%N%n%%%%%%%%&7& J&X&i&& &&&&& &&& & ' '#')' 2'%<'8b'+''''(#(( ((-(#)<)Y)p)w) ) ) )') )) ***.*>*&Q*x**<*;*++;+*Y++++"+!,-",'P,5x,5,g,L-f-!|--- ----. .*. ;.G. c. ...... . ..//I2/H|/#/'/00!030<0P0 Y0e0 l0x000 0000 000000 11;1T1[1u1{11 1'111 2 22 )2 42?2E2Z2a2g2p2v22222/4>b4{4;5Y5?[55 5-555-6-56c6|6666-7-747"8*<8g8n88888 888'8'9>9Z9"v999-9)9:6:P:a:}::(:<: ;*; F;P;`; u;0;;;;K;5<K<i<K<<2<=*===V=i=@k=/='=>Q$>9v>=>&> ?!6?X?h? y?!??5??@;@ C@ P@ ^@@@@?@ @Z@EAG^ADAA5AU5BBBB BBB3C9BC+|CCCCCND)bDD:D1DE E!9E[E/`EEEERER%FxF-FFF6F/)G-YG.GGGG"G!H$H67H"nHH$HHHH HI!I;IWI*jI III III:IE"J0hJJ<JJK3L;L TL^L:tL:L9L*$M OMYM iMvM7M$MMM N N&N*CN$nN;NNBN`#OWOO!O"P>1P-pP"P-P-P1QBOQ1QMQMRp`R$R*R0!S$RS wS SS"SSSST(T#AT#eTTT TTT3T U "U /U-kf0 --debug debug mode --help show this help --no-send-status-commands don't send commands to get status (like MODE, WHO) --show-msg show message mode #(%1$s): The message doesn't contains a nick: %2$s(disconnected)(unselected)A channel is not selected.AccountAccount ListAccount is not connected.Account is not selected.Account nameAccount name:Account:Already connected.An URL will be quoted and substituted with %s. Sample: URL: http://example.com/#id Browser: mozilla -remote openURL\(%s,new-tab\) -> mozilla -remote openURL\('http://example.com/#id',new-tab\)An error occured on receiving: %sAn error occured on sending: %sAuto join channels (ex. #a,#b,#c keyA,keyB):Autojoin channelsAutomatic detection by localeAwayAway messageAway message: Away typeBrowser: BufferBuffersCTCPCancelCancel Pending ReconnectingCase sensitiveChange nickChange nicknameChange user mode [Mode]ChannelChannel bufferChannel is not selectedChannel key (if any):Channel nameChannel name:Channel:ChannelEntryChannelEntryIDChannelOperatorChannels which are joined automaticallyClear All Unread Flags of BuffersCloseClose ChannelCodeCode convertionCodeset: CommandCommand contains linefeed.Common PreferencesConnectConnect by defaultConnect default accounts when the program startedConnected.Connecting to %s:%dConnection closed.Current channel is not private talkDefault:Deprive Channel Operator Privilege (-o)Deprive Voice Privilege (-v)Directory:Disconnected.DownEError occured when executing command, "%s": %sError: space containsExecute notification by NOTICEFailed to connect: %sFailed to create socket. Is used the port?Failed to get the browser command.Failed to get the regexp string for recent logs.Failed to load %sFailed to save %sFile Transfer ManagerFilenameFilename:FormatFormat of time in buffers: GeneralGive Channel Operator Privilege (+o)Give Voice Privilege (+v)HighlightHighlighting keywords(Separate each words with linefeeds)HostnameHostname:ID of channel entry.IRCIdle timeIgnoreIllegal command (make sure one %%s exists)InformationInterpret and send the message as command if toggledInvalid WHO reply.Invalid content: profile has no type'Invalid element '%s': document element is not profileInvalid element: %sInvalid element: the parent of '%s' does not exist (%s).Invalid element: the parent of '%s' is not '%s' but '%s' (%s)Invalid parameter numberInvalid timeInvalid time stringJapaneseJapanese (UTF-8) Join a channelJoin a channel with the account %sJoin a channel with the current accountJoined channels stringJump to Next KeywordJump to Previous KeywordKeyword:Last message timeList of often used nick(Separate each words with linefeeds)Loqui - File Transfer ManagerLoquirc parse error: %sMax line number of a channel buffer(0: unlimited): Max line number of a common buffer(0: unlimited): NameNew nickname of the account %sNext Channel BufferNickNick must not contain '%%'Nick nameNicknameNickname at firstNickname list to ignore (normal) ('*' and '?' can be used)Nickname list to ignore (transparent) ('*' and '?' can be used)Nickname:No channel is selectedNo convertionNot connectedNot connected with this accountNot selected a channel!Not selected an accountNot selected an account!Notification: OfflineOnlineOpen _Connection Dialog...Opened the socket.Parent accountParse plum (an irc proxy) recent feature (Experimental)Part message:Part the channelPart the channel %s (in %s)PasswordPassword:Path:Port:Prefix for commands: Previous Channel BufferPrivateTalkProfileProfile of this accountProgress:Quit MessageQuit message:Rate:RealnameRealname:Receiver is not set in a CTCP messageReconnect automatically when connections are terminated.Reconnecting count is reached to the limit.Save logs (Experimental)Save window/widget sizesSee title formatting help of the software 'foobar2000'. The list of variables is at loqui_app_info.c. If you version is input, it is used.Select Buffer...Select a new channel automatically.Select from the tableSelect...Selection DialogSend message with NOTICE command (Ctrl+Enter)Sender is not set in a CTCP messageSent CTCP %1$s to %2$s: %3$sSent initial commands.ServerServer informationServer nameServerInfoSet _Topic of Current Channel...Set the topic of the channel %s (in %s)Set topicShow Information [Whois]SizeSize:Sort Type of NickListSpecify codesetStart private talkStart private talk with the user in %sStatus:Switch scrolling automaticallySwitch whether scrolling channel buffer or not automaticallySwitch whether scrolling common buffer or not automaticallyTargetTerminating the connection.The CTCP request was ignored.The NICK message does not contain new nickThe account is not connectedThe account is not connected!The account is not connected.The channel has not be parted yet.The message does not contain nickThe message does not contain the channal nameThe target is not found in MODE commandThis PRIVMSG/NOTICE message doesn't contain a remark.This PRIVMSG/NOTICE message doesn't contain a target.This account's configuration and connection will be removed. Do you really want to remove this account?Title format of statusbarTitle format of titleToggle command mode automaticallyToggle multiline modeTopic:TransferringTrying to reconnect...Unable to determine color: %sUnsupported element '%s'UntitledUp / Down:Update the topicUse accountUse ignore (normal) featureUse ignore (transparent) featureUse migemoUse notificationUserUser informationUser information:User mode is not implemented.User name:User_infoUsernameUsing not IRC accountWaiting to reconnect...Whether scrolling the channel buffer to the end when new message arrived.Whether scrolling the common buffer to the end when new message arrived.You are not joined in this channel.You have already joined in the channel._About_Account_Account Settings_Buffers_Change Nickname..._Channel_Channelbar_Clear_Clientinfo_Connect_Copy_Cut_Disconnect_Edit_End Current Private Talk_File_Find Again_Find..._Finger_General Settings_Help_Join Current Channel..._Join a Channel..._Next Unread Channel Buffer_Part Current Channel..._Paste_Paste with Linefeeds Cut_Ping_Previous Unread Channel Buffer_Quit_Reconnect_Refresh Information of Current Channel_Scroll channel buffer_Scroll common buffer_Settings_Start_Start Private Talk..._Statusbar_Terminate_Time_Toggle Command Mode_Tools_User_Version_ViewfilenameportsizeProject-Id-Version: loqui 0.1.20 Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=glib&keywords=I18N+L10N&component=general POT-Creation-Date: 2011-11-18 00:06+0900 PO-Revision-Date: 2005-10-12 17:48+0900 Last-Translator: Yoichi Imai Language-Team: Japanese Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit --debug デバッグモード --help ヘルプメッセージの表示 --no-send-status-commands MODE や WHO のようなステータスを取得するためのコマンドを送信しない --show-msg メッセージ表示モード #(%1$s): メッセージにnickが含まれていません: %2$s(切断)(未選択)チャンネルが選択されていませんアカウントアカウントリストアカウントが接続されていませんアカウントが選択されていませんアカウントの名前アカウントの名前:アカウント:接続済みです。URLはクオートされ%sに置き替えられます。 サンプル: URL: http://example.com/#id Browser: mozilla -remote openURL\(%s,new-tab\) -> mozilla -remote openURL\('http://example.com#id',new-tab\)受信中にエラーが発生しました。送信中にエラーが発生しました。自動joinチャンネル(例: #a,#b,#c keyA,keyB): 自動joinチャンネルロケール情報から自動判定する離席離席メッセージ離席メッセージ: 離席タイプブラウザ: バッファ(_B)バッファCTCPキャンセル未解決の再接続のキャンセル大文字と小文字を区別しないニックネームの変更ニックネームの変更ユーザモードの変更 [Mode]チャンネルチャンネルバッファチャンネルが選択されていませんチャンネルキー (もしあれば): チャンネルの名前チャンネルの名前:チャンネル:チャンネルエントリチャンネルエントリIDチャンネルオペレータ自動的にjoinされるチャンネルすべてのバッファの未読フラグをクリアする閉じるチャンネルを閉じるコードコード変換コードセット: コマンドコマンドに改行が含まれています。全般の設定接続デフォルトで接続するプログラム起動時にデフォルトのアカウントを接続する接続しました。%s:%dに接続しています切断されました。現在のチャンネルはプライベートトークではありませんデフォルト:チャンネルオペレータ権限を奪う (-o)発言権を奪う (-v)ディレクトリ切断されました。ダウンロードEコマンド実行時にエラーが発生しました("%s"): %sエラー: スペースが含まれていますNOTICEによって通知を実行する接続に失敗しました: %sソケットの作成に失敗しました。ポートを使用済みですか?ブラウザコマンドの取得に失敗しました。recent log用の正規表現の取得に失敗しました。%sの読み込みに失敗しました%sの保存に失敗しましたファイル転送マネージャファイル名ファイル名:書式指定バッファの時間表示形式全般チャンネルオペレータ権限を与える (+o)発言権を与える (+v)強調強調するキーワード(改行で区切って下さい)ホスト名ホスト名:チャンネルエントリのIDIRCアイドル時間無視不正なコマンド (%%sの存在を確認してください)詳細情報トグルされていた場合メッセージをコマンドとして解釈し送信する無効なWHOリプライ不正な内容: プロフィールが型情報を持っていません不正な要素 '%s': 文書要素がprofileではありません。不正な要素: %s不正な要素: '%s'の親が存在しません (%s)不正なオブジェクト要素: '%s'の親要素が'%s'ではなく'%s'です (%s)無効なパラメータ番号無効な時間無効な時間文字列日本語日本語 (UTF-8)チャンネルに参加するアカウント %sでチャンネルに参加する現在のアカウントでチャンネルに参加するjoinしているチャンネルの文字列次のキーワードに飛ぶ前のキーワードに飛ぶキーワード:最終メッセージ時刻よく使われるNickのリスト(各語を改行で区切ってください)Loqui - ファイル転送マネージャLoquirc parse error: %sチャンネルバッファの最大行数(0: 無制限): 共通バッファの最大行数(0: 無制限): 名前%sの新しいニックネーム次のチャンネルバッファNickNickは'%%'を含むべきではありませんニックネームニックネーム最初のニックネーム無視する(通常)ニックネームのリスト('*'や'?'を使用できます)無視する(透明)ニックネームのリスト('*'や'?'を使用できます)ニックネーム:チャンネルが選択されていませんコード変換をしない接続されていませんこのアカウントでは接続されていませんチャンネルが選択されていません!!アカウントが選択されていませんアカウントが選択されていません!通知: オフラインオンライン接続ダイアログを開く(_C)ソケットを開きました。親アカウントplum(IRC proxy)のrecentをパースする (実験的)抜けるときのメッセージ:チャンネルを抜けるチャンネル %s (%s) を抜けるパスワードパスワード:パス:ポート:コマンド文字前のチャンネルバッファプライベートトークプロファイルこのアカウントのプロファイル進捗状況:QuitメッセージQuitメッセージ: レート:本名本名:受信側がCTCPメッセージを設定していません接続が強制的に切断されたとき自動的に再接続する再接続の回数が限界に達しました。ログの保存(実験的)ウィンドウとウィジットのサイズを保存する書式は'foobar2000'というソフトウェアを参考にしています。 利用可能な変数のリストは、loqui_app_info.cを見てください。 入力すればそれを使い、そうでなければデフォルト値を使用します。バッファの選択...新しいチャンネルを自動的に選択する一覧から選択する選択...選択ダイアログメッセージをNOTICEコマンドで送信 (Ctrl+Enter)送信側がCTCPメッセージを設定していません%1$sから%2$sへのCTCP応答を送信しました: %3$s初期コマンドを送信しました。サーバサーバ情報サーバ名サーバ情報現在のチャンネルのトピックを変更(_T)...%s(%s)のトピックを設定するトピックの設定情報の表示 [Whois]サイズサイズ:Nickリストのソート順特別なコードセットを使用するプライベートトークの開始%sのユーザとプライベートトークを開始するステータス:スクロールするかしないかを自動的に切り替えるチャンネルバッファをスクロールするかしないかを自動的に切り替える共通バッファをスクロールするかしないかを自動的に切り替えるターゲット接続を切断しています。CTCP要求が拒否されましたNICKメッセージに新しいnickが含まれていませんアカウントが接続されていません未接続のアカウントです!アカウントが接続されていませんそのチャンネルは抜けていませんメッセージにnickが含まれていませんメッセージにチャンネル名が含まれていません。MODEコマンドに対象が発見できませんこのPRIVMSG/NOTICEメッセージには発言が含まれていません。このPRIVMSG/NOTICEメッセージにはtargetが含まれていません。このアカウントの設定と接続は取り除かれます。 本当にアカウントを消しますか?ステータスバーの書式指定ウィンドウタイトルの書式指定コマンドモードへ自動的に移行する複数行モードを切り替えるトピック:転送中再接続の試行中です...色の識別ができません: %s非対応要素: %s未タイトルアップ/ダウンロードトピックの更新アカウントを使う無視(通常)機能を使用する無視(透明)機能を使用するmigemoを利用する通知を使用するユーザユーザ情報ユーザ情報:ユーザーモードは実装されていませんユーザ名:Userinfo(_I)ユーザ名IRCアカウント以外を使っています再接続を待っています...新しいメッセージの投稿時にチャンネルバッファを最下行にスクロールする/しない。新しいメッセージの投稿時に共通バッファを最下行にスクロールする/しない。あなたはこのチャンネルに参加していませんあなたはそのチャンネルに既に参加しています。このプログラムについて(_A)アカウント(_A)アカウント設定バッファ(_B)ニックネームの変更(_C)...チャンネル(_C)チャンネルバークリア(_C)_Clientinfo接続(_C)コピー(_C)切り取り(_C)切断(_D)編集(_E)プライベートトークの終了ファイル(_F)次を検索(_F)検索(_F)...Finger(_F)一般的な設定ヘルプ(_H)現在のチャンネルに参加する...チャンネルにJoinする...次の未読のチャンネルバッファ現在のチャンネルを抜ける...ペースト(_P)改行を削除してペースト(_P)_Ping前の未読のチャンネルバッファ終了(_Q)再接続(_R)現在のチャンネルの情報の更新(_R)チャンネルバッファをスクロールするコマンドバッファのスクロール設定(_S)開始(_S)プライベートトークの開始(_S)...ステータスバー強制切断_Timeコマンドモードを切り替えるツール(_T)ユーザ(_U)_Version表示(_V)ファイル名ポートサイズloqui-0.5.5/po/loqui.pot0000664000175000017500000012535412121622470012077 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-03-18 23:31+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../libloqui/ctcp_handle.c:180 msgid "Sender is not set in a CTCP message" msgstr "" #: ../libloqui/ctcp_handle.c:186 msgid "Receiver is not set in a CTCP message" msgstr "" #: ../libloqui/ctcp_handle.c:201 #, c-format msgid "Received CTCP %1$s from %2$s to %3$s: %4$s%5$s%6$s" msgstr "" #: ../libloqui/ctcp_handle.c:216 msgid "The CTCP request was ignored." msgstr "" #: ../libloqui/ctcp_handle.c:328 #, c-format msgid "This DCC request doesn't have subcommand: %s" msgstr "" #: ../libloqui/ctcp_handle.c:338 #, c-format msgid "This DCC request has an unsupported subcommand: %s (%s)" msgstr "" #: ../libloqui/ctcp_handle.c:362 #, c-format msgid "Invalid DCC request (invalid parameter length: %d (%s))" msgstr "" #: ../libloqui/ctcp_handle.c:404 #, c-format msgid "" "Received DCC SEND request from %s (filename: %s, host: %s, port: %s, size: " "%s)" msgstr "" #: ../libloqui/irc_message.c:465 msgid "Invalid parameter number" msgstr "" #: ../libloqui/loqui-account-ipmsg.gob:77 ../libloqui/loqui_account_irc.c:303 msgid "Already connected." msgstr "" #: ../libloqui/loqui-account-ipmsg.gob:84 msgid "Failed to create socket. Is used the port?" msgstr "" #: ../libloqui/loqui-account-ipmsg.gob:91 #, c-format msgid "Opened the socket." msgstr "" #: ../libloqui/loqui-account-ipmsg.gob:128 msgid "Disconnected." msgstr "" #: ../libloqui/loqui-message-text-region.gob:50 msgid "start_pos" msgstr "" #: ../libloqui/loqui-message-text-region.gob:51 msgid "Start Position" msgstr "" #: ../libloqui/loqui-message-text-region.gob:55 msgid "end_pos" msgstr "" #: ../libloqui/loqui-message-text-region.gob:56 msgid "End Position" msgstr "" #: ../libloqui/loqui-message-text.gob:84 ../libloqui/loqui-message-text.gob:85 msgid "Text" msgstr "" #: ../libloqui/loqui-message-text.gob:91 ../libloqui/loqui-message-text.gob:92 msgid "Channel name" msgstr "" #: ../libloqui/loqui-message-text.gob:98 ../libloqui/loqui-message-text.gob:99 #: ../libloqui/loqui_profile_account.c:263 msgid "Account name" msgstr "" #: ../libloqui/loqui-message-text.gob:105 #: ../libloqui/loqui_profile_account.c:268 ../libloqui/loqui_user.c:228 #: ../src/loqui-account-dialog.gob:389 ../src/nick_list.c:478 msgid "Nick" msgstr "" #: ../libloqui/loqui-message-text.gob:106 msgid "Nickname" msgstr "" #: ../libloqui/loqui-message-text.gob:112 msgid "Self?" msgstr "" #: ../libloqui/loqui-message-text.gob:113 msgid "Whether or not the message is by myself" msgstr "" #: ../libloqui/loqui-message-text.gob:119 msgid "Priv?" msgstr "" #: ../libloqui/loqui-message-text.gob:120 msgid "Whether or not private message" msgstr "" #: ../libloqui/loqui-message-text.gob:126 #: ../libloqui/loqui-message-text.gob:127 msgid "Remark?" msgstr "" #: ../libloqui/loqui-message-text.gob:133 msgid "Is ignored" msgstr "" #: ../libloqui/loqui-message-text.gob:134 msgid "Is ignored or not" msgstr "" #: ../libloqui/loqui-message-text.gob:140 #: ../libloqui/loqui-message-text.gob:141 msgid "Text type" msgstr "" #: ../libloqui/loqui-pref-partial.gob:54 #: ../libloqui/loqui-pref-sequence.gob:43 msgid "Pref" msgstr "" #: ../libloqui/loqui-pref-partial.gob:54 #: ../libloqui/loqui-pref-sequence.gob:43 msgid "Pref Object" msgstr "" #: ../libloqui/loqui-pref-partial.gob:98 ../libloqui/loqui-pref-partial.gob:99 msgid "Group name" msgstr "" #: ../libloqui/loqui-profile-handle.gob:162 #, c-format msgid "Invalid element: the parent of '%s' does not exist (%s)." msgstr "" #: ../libloqui/loqui-profile-handle.gob:170 #, c-format msgid "Invalid element: the parent of '%s' is not '%s' but '%s' (%s)" msgstr "" #: ../libloqui/loqui-profile-handle.gob:223 #: ../libloqui/loqui-profile-handle.gob:476 #, c-format msgid "Unsupported element '%s'" msgstr "" #: ../libloqui/loqui-profile-handle.gob:234 #, c-format msgid "Invalid element '%s': document element is not profile" msgstr "" #: ../libloqui/loqui-profile-handle.gob:256 #, c-format msgid "Invalid content: profile has no type'" msgstr "" #: ../libloqui/loqui-profile-handle.gob:284 #, c-format msgid "Invalid param: doesn't have a key: '%s'" msgstr "" #: ../libloqui/loqui-profile-handle.gob:295 #, c-format msgid "Invalid param key: '%s' (line %d, char %d)" msgstr "" #: ../libloqui/loqui-profile-handle.gob:304 #, c-format msgid "Element spec should be set ('%s')" msgstr "" #: ../libloqui/loqui-profile-handle.gob:371 #, c-format msgid "Invalid item: invalid data '%s' (%s, item)" msgstr "" #: ../libloqui/loqui-profile-handle.gob:390 #, c-format msgid "Invalid param: invalid data '%s' (type: %s)" msgstr "" #: ../libloqui/loqui-profile-handle.gob:485 #, c-format msgid "Don't correspond with start tag: current: %s, queued: %s" msgstr "" #: ../libloqui/loqui-profile-handle.gob:528 #, c-format msgid "The profile element doesn't have parent element" msgstr "" #: ../libloqui/loqui-profile-handle.gob:614 #, c-format msgid "LoquiProfile parse error: %s" msgstr "" #: ../libloqui/loqui-profile-handle.gob:717 #, c-format msgid "ProfileHandle: Unsupported type: %s." msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:58 msgid "Invalid IP address or port" msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:62 msgid "Username is not set" msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:67 msgid "Hostname is not set" msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:364 #, c-format msgid "" "Only supports IPMessenger Protocol Version 1 (the message is version '%d')" msgstr "" #. TODO: fix condition #: ../libloqui/loqui-sender-ipmsg.gob:118 #: ../libloqui/loqui-sender-ipmsg.gob:132 #: ../libloqui/loqui-sender-ipmsg.gob:147 ../libloqui/loqui_account_irc.c:674 msgid "The account is not connected." msgstr "" #: ../libloqui/loqui-socket-ipmsg.gob:94 #, c-format msgid "Failed to convert codeset: %s" msgstr "" #: ../libloqui/loqui-socket-ipmsg.gob:104 #, c-format msgid "Failed to convert codeset of group: %s" msgstr "" #: ../libloqui/loqui-socket-ipmsg.gob:116 #, c-format msgid "Invalid packet: '%s'" msgstr "" #: ../libloqui/loqui-socket-ipmsg.gob:162 msgid "Failed to set SO_BROADCAST" msgstr "" #: ../libloqui/loqui-transfer-item.gob:47 msgid "dirname" msgstr "" #: ../libloqui/loqui-transfer-item.gob:48 msgid "Directory Name" msgstr "" #: ../libloqui/loqui-transfer-item.gob:51 msgid "filename" msgstr "" #: ../libloqui/loqui-transfer-item.gob:52 msgid "Filename" msgstr "" #: ../libloqui/loqui-transfer-item.gob:57 msgid "is_upload" msgstr "" #: ../libloqui/loqui-transfer-item.gob:58 msgid "Is upload" msgstr "" #: ../libloqui/loqui-transfer-item.gob:62 msgid "port" msgstr "" #: ../libloqui/loqui-transfer-item.gob:63 ../libloqui/loqui_user_ipmsg.c:186 msgid "Port" msgstr "" #: ../libloqui/loqui-transfer-item.gob:66 msgid "address" msgstr "" #: ../libloqui/loqui-transfer-item.gob:67 msgid "Address" msgstr "" #: ../libloqui/loqui-transfer-item.gob:70 msgid "size" msgstr "" #: ../libloqui/loqui-transfer-item.gob:71 msgid "Size" msgstr "" #: ../libloqui/loqui-transfer-item.gob:74 msgid "percent" msgstr "" #: ../libloqui/loqui-transfer-item.gob:75 msgid "Percent" msgstr "" #: ../libloqui/loqui-utils.c:177 #, c-format msgid "?x flag doesn't have { in '%s'" msgstr "" #: ../libloqui/loqui_account.c:143 msgid "Myself" msgstr "" #: ../libloqui/loqui_account.c:144 msgid "user self" msgstr "" #: ../libloqui/loqui_account.c:150 ../src/loqui-account-dialog.gob:270 msgid "Profile" msgstr "" #: ../libloqui/loqui_account.c:151 msgid "Profile of this account" msgstr "" #: ../libloqui/loqui_account.c:157 msgid "Sender" msgstr "" #: ../libloqui/loqui_account.c:158 msgid "Command sender" msgstr "" #: ../libloqui/loqui_account.c:164 msgid "Receiver" msgstr "" #: ../libloqui/loqui_account.c:165 msgid "Command receiver" msgstr "" #: ../libloqui/loqui_account.c:171 msgid "IsConnected" msgstr "" #: ../libloqui/loqui_account.c:172 msgid "Connected or not" msgstr "" #: ../libloqui/loqui_account.c:177 msgid "IsPending_Reconnecting" msgstr "" #: ../libloqui/loqui_account.c:178 msgid "Pending_Reconnecting or not" msgstr "" #: ../libloqui/loqui_account.c:405 msgid "Trying to reconnect..." msgstr "" #: ../libloqui/loqui_account.c:424 msgid "Waiting to reconnect..." msgstr "" #: ../libloqui/loqui_account.c:429 msgid "Reconnecting count is reached to the limit." msgstr "" #: ../libloqui/loqui_account.c:617 msgid "Canceled pended reconnecting." msgstr "" #: ../libloqui/loqui_account_irc.c:328 ../libloqui/loqui_account_irc.c:329 #, c-format msgid "Connecting to %s:%d" msgstr "" #: ../libloqui/loqui_account_irc.c:346 #, c-format msgid "Failed to connect: %s" msgstr "" #. GIOStraem owns out_stream #: ../libloqui/loqui_account_irc.c:359 ../libloqui/loqui_account_irc.c:360 msgid "Connected." msgstr "" #: ../libloqui/loqui_account_irc.c:380 msgid "Sent initial commands." msgstr "" #: ../libloqui/loqui_account_irc.c:401 msgid "Connection closed." msgstr "" #. error #: ../libloqui/loqui_account_irc.c:469 ../libloqui/loqui_account_irc.c:470 #, c-format msgid "An error occured on receiving: %s" msgstr "" #: ../libloqui/loqui_account_irc.c:594 ../libloqui/loqui_account_irc.c:595 #, c-format msgid "An error occured on sending: %s" msgstr "" #: ../libloqui/loqui_account_irc.c:641 msgid "Terminating the connection." msgstr "" #: ../libloqui/loqui_channel.c:204 msgid "Joined" msgstr "" #: ../libloqui/loqui_channel.c:205 msgid "Joined or not" msgstr "" #: ../libloqui/loqui_channel.c:210 msgid "PrivateTalk" msgstr "" #: ../libloqui/loqui_channel.c:211 msgid "PrivateTalk or not" msgstr "" #: ../libloqui/loqui_channel.c:216 ../libloqui/loqui_user.c:284 msgid "Identifier" msgstr "" #: ../libloqui/loqui_channel.c:217 msgid "The string to identify the channel" msgstr "" #: ../libloqui/loqui_channel.c:222 ../src/loqui_select_dialog.c:280 msgid "Account" msgstr "" #: ../libloqui/loqui_channel.c:223 msgid "Parent account" msgstr "" #: ../libloqui/loqui_channel_entry.c:267 ../libloqui/loqui_channel_entry.c:268 #: ../libloqui/loqui_profile_account.c:262 ../src/account_list_dialog.c:322 #: ../src/channel_tree.c:320 msgid "Name" msgstr "" #: ../libloqui/loqui_channel_entry.c:273 ../libloqui/loqui_channel_entry.c:274 msgid "Topic" msgstr "" #: ../libloqui/loqui_channel_entry.c:279 msgid "Updated" msgstr "" #: ../libloqui/loqui_channel_entry.c:280 msgid "Updated or not" msgstr "" #: ../libloqui/loqui_channel_entry.c:285 msgid "Updated weak" msgstr "" #: ../libloqui/loqui_channel_entry.c:286 msgid "Updated weak or not" msgstr "" #: ../libloqui/loqui_channel_entry.c:291 msgid "Has unread keyword" msgstr "" #: ../libloqui/loqui_channel_entry.c:292 msgid "Has unread keyword or not" msgstr "" #: ../libloqui/loqui_channel_entry.c:297 msgid "Buffer" msgstr "" #: ../libloqui/loqui_channel_entry.c:298 msgid "Channel buffer" msgstr "" #: ../libloqui/loqui_channel_entry.c:304 msgid "Op Number" msgstr "" #: ../libloqui/loqui_channel_entry.c:305 msgid "the number of channel operators" msgstr "" #: ../libloqui/loqui_channel_entry.c:311 msgid "Member Number" msgstr "" #: ../libloqui/loqui_channel_entry.c:312 msgid "the number of members" msgstr "" #: ../libloqui/loqui_channel_entry.c:318 msgid "Position" msgstr "" #: ../libloqui/loqui_channel_entry.c:319 msgid "Position of all channel entries" msgstr "" #: ../libloqui/loqui_channel_entry.c:325 msgid "ChannelEntryID" msgstr "" #: ../libloqui/loqui_channel_entry.c:326 msgid "ID of channel entry." msgstr "" #: ../libloqui/loqui_channel_entry.c:332 msgid "Do sort" msgstr "" #: ../libloqui/loqui_channel_entry.c:333 msgid "Do sort or don't sort" msgstr "" #: ../libloqui/loqui_member.c:169 ../libloqui/loqui_member.c:170 #: ../src/loqui-account-dialog.gob:280 msgid "User" msgstr "" #: ../libloqui/loqui_member.c:176 ../libloqui/loqui_member.c:177 msgid "ChannelOperator" msgstr "" #: ../libloqui/loqui_member.c:182 msgid "Speakable or not" msgstr "" #: ../libloqui/loqui_member.c:183 msgid "Has voice privillege or not" msgstr "" #: ../libloqui/loqui_member.c:188 ../libloqui/loqui_member.c:189 msgid "Last message time" msgstr "" #: ../libloqui/loqui_message.c:165 ../libloqui/loqui_message.c:166 #: ../src/prefs_dialog.c:530 msgid "Command" msgstr "" #: ../libloqui/loqui_profile_account.c:269 msgid "Nickname at first" msgstr "" #: ../libloqui/loqui_profile_account.c:274 msgid "Use account" msgstr "" #: ../libloqui/loqui_profile_account.c:275 msgid "Whether or not to connect this account by default" msgstr "" #: ../libloqui/loqui_profile_account.c:282 #: ../libloqui/loqui_profile_account.c:283 #: ../libloqui/loqui_profile_account.c:289 #: ../libloqui/loqui_profile_account.c:290 ../libloqui/loqui_user.c:252 #: ../libloqui/loqui_user.c:253 msgid "Server name" msgstr "" #: ../libloqui/loqui_profile_account.c:299 #: ../libloqui/loqui_profile_account.c:300 ../libloqui/loqui_user.c:234 #: ../libloqui/loqui_user.c:235 msgid "Username" msgstr "" #: ../libloqui/loqui_profile_account.c:306 #: ../libloqui/loqui_profile_account.c:307 msgid "Password" msgstr "" #: ../libloqui/loqui_profile_account.c:313 #: ../libloqui/loqui_profile_account.c:314 msgid "CodeConv mode" msgstr "" #: ../libloqui/loqui_profile_account.c:322 msgid "CodeConv item name" msgstr "" #: ../libloqui/loqui_profile_account.c:323 msgid "COdeConv item name" msgstr "" #: ../libloqui/loqui_profile_account.c:328 #: ../libloqui/loqui_profile_account.c:329 msgid "Codeset" msgstr "" #: ../libloqui/loqui_profile_account.c:334 msgid "NickList" msgstr "" #: ../libloqui/loqui_profile_account.c:335 msgid "List of nickname strings" msgstr "" #: ../libloqui/loqui_profile_account.c:348 msgid "Untitled" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:184 #: ../libloqui/loqui_profile_account_irc.c:185 ../libloqui/loqui_user.c:246 #: ../libloqui/loqui_user.c:247 msgid "Realname" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:190 msgid "User information" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:191 msgid "User information used with CTCP USERINFO" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:196 msgid "Autojoin channels" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:197 msgid "Channels which are joined automatically" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:202 msgid "Quit Message" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:203 msgid "Default quit message" msgstr "" #: ../libloqui/loqui_protocol_ipmsg.c:44 ../libloqui/loqui_protocol_irc.c:44 msgid "Japanese" msgstr "" #: ../libloqui/loqui_protocol_ipmsg.c:45 msgid "CP932" msgstr "" #: ../libloqui/loqui_protocol_irc.c:45 msgid "ISO-2022-JP (with JIS X 0201 kana and informal characters)" msgstr "" #: ../libloqui/loqui_protocol_irc.c:51 msgid "Japanese (UTF-8) " msgstr "" #: ../libloqui/loqui_protocol_irc.c:52 msgid "UTF-8" msgstr "" #: ../libloqui/loqui_receiver_irc.c:209 #, c-format msgid "(%1$s): The message doesn't contains a nick: %2$s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:228 #, c-format msgid "" "(%1$s): The message doesn't contains a target (the first parameter): %2$s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:249 #, c-format msgid "(%1$s): msg.param[%2$d] is not a channel name(%3$s): %4$s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:299 msgid "Failed to get the regexp string for recent logs." msgstr "" #: ../libloqui/loqui_receiver_irc.c:308 #, c-format msgid "Failed to compile the regexp string for recent logs: %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:325 #, c-format msgid "Failed to get the string for '%s' with named capture." msgstr "" #: ../libloqui/loqui_receiver_irc.c:396 msgid "This PRIVMSG/NOTICE message doesn't contain a target." msgstr "" #: ../libloqui/loqui_receiver_irc.c:401 ../libloqui/loqui_sender_irc.c:782 msgid "This PRIVMSG/NOTICE message doesn't contain a remark." msgstr "" #: ../libloqui/loqui_receiver_irc.c:482 ../libloqui/loqui_receiver_irc.c:510 #: ../libloqui/loqui_receiver_irc.c:554 ../libloqui/loqui_receiver_irc.c:608 msgid "The message does not contain nick" msgstr "" #: ../libloqui/loqui_receiver_irc.c:493 msgid "*** %n has quit IRC(%L)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:516 ../libloqui/loqui_receiver_irc.c:560 msgid "The message does not contain the channal name" msgstr "" #: ../libloqui/loqui_receiver_irc.c:531 msgid "*** You have left %t (%1)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:536 msgid "*** %n has just part %t(%L)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:566 msgid "The KICK message doesn't contain the user to be kicked." msgstr "" #: ../libloqui/loqui_receiver_irc.c:576 msgid "*** You were kicked from %t by %n (%2)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:579 msgid "*** %1 was kicked from %t by %n(%2)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:614 msgid "The NICK message does not contain new nick" msgstr "" #: ../libloqui/loqui_receiver_irc.c:619 msgid "*** %n is known as %t" msgstr "" #. FIXME: handle user modes #. switch(*flags) { #. case IRC_USER_MODE_FLAGGED_AS_AWAY: #. case IRC_USER_MODE_INVISIBLE: #. case IRC_USER_MODE_RECEIVES_WALLOPS: #. case IRC_USER_MODE_RESTRICTED_CONNECTION: #. case IRC_USER_MODE_OPERATOR: #. case IRC_USER_MODE_LOCAL_OPERATOR: #. case IRC_USER_MODE_RECEIVES_SERVER_NOTICES: #. default: #: ../libloqui/loqui_receiver_irc.c:709 msgid "User mode is not implemented." msgstr "" #: ../libloqui/loqui_receiver_irc.c:728 ../libloqui/loqui_receiver_irc.c:771 msgid "The target is not found in MODE command" msgstr "" #: ../libloqui/loqui_receiver_irc.c:737 #, c-format msgid "RPL_CHANNELMODEIS didn't return a channel name: %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:743 msgid "*** Mode for %1: %*2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:765 #, c-format msgid "Nick must not contain '%%'" msgstr "" #: ../libloqui/loqui_receiver_irc.c:778 msgid "Why can you know the change of his mode?" msgstr "" #: ../libloqui/loqui_receiver_irc.c:787 #, c-format msgid "*** New mode for %%t by %s: %%*1" msgstr "" #: ../libloqui/loqui_receiver_irc.c:833 msgid "*** %n (%u@%h) joined channel %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:877 #, c-format msgid "Sent a command to join %s." msgstr "" #: ../libloqui/loqui_receiver_irc.c:883 #, c-format msgid "Sent a command to join %s (with the channel key(s))." msgstr "" #: ../libloqui/loqui_receiver_irc.c:887 msgid "" "The string for autojoin is invalid. It must be comma-separated, like '#a,#b," "#c' or '#a,#b,#c keyA,keyB'." msgstr "" #: ../libloqui/loqui_receiver_irc.c:976 msgid "Invalid CREATIONTIME reply." msgstr "" #: ../libloqui/loqui_receiver_irc.c:981 ../libloqui/loqui_receiver_irc.c:1022 msgid "Invalid time string" msgstr "" #: ../libloqui/loqui_receiver_irc.c:987 ../libloqui/loqui_receiver_irc.c:1028 msgid "Invalid time" msgstr "" #: ../libloqui/loqui_receiver_irc.c:991 #, c-format msgid "%%1 was created at %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1016 msgid "Invalid TOPICWHOTIME reply." msgstr "" #: ../libloqui/loqui_receiver_irc.c:1032 #, c-format msgid "Topic for %%2 was set by %%3 at %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1055 ../libloqui/loqui_receiver_irc.c:1061 msgid "Invalid WHOISIDLE reply." msgstr "" #: ../libloqui/loqui_receiver_irc.c:1111 msgid "Invalid WHO reply." msgstr "" #: ../libloqui/loqui_receiver_irc.c:1174 #, c-format msgid "%c%s(%s) is %s@%s (%s) on %s(%d hops) [%s]" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1202 msgid "*** No topic is set for %1" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1226 msgid "Topic for %1: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1250 msgid "*** New topic on %t by %n: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1325 msgid "Can't find the channel from the message" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1373 msgid "*** %1 is marked as begin AWAY, but left the message: %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1382 ../libloqui/loqui_receiver_irc.c:1386 #: ../libloqui/loqui_receiver_irc.c:1390 msgid "*** %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1393 msgid "*** You are inviting %1 to %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1396 msgid "*** %2 is running IRC version %1 (%3)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1433 msgid "%1 is %2@%3: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1436 msgid "%1 was %2@%3: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1439 msgid "%1: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1442 msgid "on via server %2(%L)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1448 msgid "Banned on %1 : %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1451 msgid "Time: %2(%1)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1463 ../libloqui/loqui_receiver_irc.c:1469 msgid "%2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1474 msgid "Ison: %*1" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1477 msgid "Channel List: Name(Users) Topic" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1480 msgid "%1(%2)\t%3" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1483 ../libloqui/loqui_receiver_irc.c:1561 msgid "%L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1509 msgid "%1 %L (%2)" msgstr "" #. [$msgto, ?, is unknown mode char to me for ...] #: ../libloqui/loqui_receiver_irc.c:1512 msgid "%1 %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1538 msgid "%L: %1" msgstr "" #: ../libloqui/loqui_sender_irc.c:88 msgid "Not connected" msgstr "" #: ../libloqui/loqui_sender_irc.c:96 msgid "No characters exist." msgstr "" #: ../libloqui/loqui_sender_irc.c:101 msgid "Error: space contains" msgstr "" #: ../libloqui/loqui_sender_irc.c:372 msgid "This is a private talk" msgstr "" #: ../libloqui/loqui_sender_irc.c:470 msgid "This name seems not to be a channel." msgstr "" #: ../libloqui/loqui_sender_irc.c:495 msgid "This name seems not to be a nick." msgstr "" #: ../libloqui/loqui_sender_irc.c:621 msgid "Too many users in change mode request!" msgstr "" #: ../libloqui/loqui_sender_irc.c:667 msgid "Username is not specified." msgstr "" #: ../libloqui/loqui_sender_irc.c:671 msgid "Username must not include space(s)." msgstr "" #: ../libloqui/loqui_sender_irc.c:675 msgid "Realname is not specified." msgstr "" #: ../libloqui/loqui_sender_irc.c:698 msgid "Password is not specified." msgstr "" #: ../libloqui/loqui_sender_irc.c:702 msgid "Password must not contain space(s)." msgstr "" #: ../libloqui/loqui_sender_irc.c:794 #, c-format msgid "Sent CTCP %1$s to %2$s: %3$s" msgstr "" #: ../libloqui/loqui_sender_irc.c:795 msgid "request" msgstr "" #: ../libloqui/loqui_sender_irc.c:795 msgid "reply" msgstr "" #: ../libloqui/loqui_user.c:229 msgid "Nick name" msgstr "" #: ../libloqui/loqui_user.c:240 ../libloqui/loqui_user.c:241 msgid "Hostname" msgstr "" #: ../libloqui/loqui_user.c:258 ../libloqui/loqui_user.c:259 msgid "Away message" msgstr "" #: ../libloqui/loqui_user.c:264 msgid "Away type" msgstr "" #: ../libloqui/loqui_user.c:265 msgid "Away type (LoquiAwayType)" msgstr "" #: ../libloqui/loqui_user.c:271 msgid "Idle time" msgstr "" #: ../libloqui/loqui_user.c:272 msgid "Idle time (from epoch seconds)" msgstr "" #: ../libloqui/loqui_user.c:278 msgid "Ignored" msgstr "" #: ../libloqui/loqui_user.c:279 msgid "Ignored or not" msgstr "" #: ../libloqui/loqui_user.c:285 msgid "The string to determine the user" msgstr "" #: ../libloqui/loqui_user.c:291 msgid "Online" msgstr "" #: ../libloqui/loqui_user.c:294 msgid "Offline" msgstr "" #: ../libloqui/loqui_user.c:297 msgid "Away" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:174 msgid "IPAddr" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:175 msgid "IP Address" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:180 msgid "GroupName" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:181 msgid "Group Name" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:187 msgid "Port number" msgstr "" #: ../libloqui/loqui_user_irc.c:173 msgid "ServerInfo" msgstr "" #: ../libloqui/loqui_user_irc.c:174 msgid "Server information" msgstr "" #: ../libloqui/loqui_user_irc.c:179 ../libloqui/loqui_user_irc.c:180 msgid "Joined channels string" msgstr "" #: ../libloqui/loqui_user_irc.c:185 msgid "Hop Count" msgstr "" #: ../libloqui/loqui_user_irc.c:186 msgid "Hop count" msgstr "" #: ../libloqui/loqui_user_irc.c:192 msgid "IsIRCOperator" msgstr "" #: ../libloqui/loqui_user_irc.c:193 msgid "Is IRC Operator" msgstr "" #: ../src/account_list_dialog.c:300 msgid "Account List" msgstr "" #: ../src/account_list_dialog.c:351 msgid "Connect" msgstr "" #: ../src/channel_tree.c:299 msgid "E" msgstr "" #: ../src/command_dialog.c:33 msgid "Account is not selected." msgstr "" #: ../src/command_dialog.c:37 msgid "Account is not connected." msgstr "" #: ../src/command_dialog.c:47 ../src/loqui_app_actions.c:778 msgid "Channel is not selected" msgstr "" #: ../src/command_dialog.c:52 msgid "You are not joined in this channel." msgstr "" #: ../src/command_dialog.c:72 msgid "Join a channel" msgstr "" #: ../src/command_dialog.c:79 #, c-format msgid "Join a channel with the account %s" msgstr "" #: ../src/command_dialog.c:84 msgid "Channel name:" msgstr "" #: ../src/command_dialog.c:87 msgid "Channel key (if any):" msgstr "" #: ../src/command_dialog.c:115 ../src/loqui_app_actions.c:183 msgid "Start private talk" msgstr "" #: ../src/command_dialog.c:122 #, c-format msgid "Start private talk with the user in %s" msgstr "" #: ../src/command_dialog.c:127 ../src/command_dialog.c:251 #: ../src/loqui-account-dialog.gob:286 msgid "Nickname:" msgstr "" #: ../src/command_dialog.c:153 msgid "Part the channel" msgstr "" #: ../src/command_dialog.c:160 #, c-format msgid "Part the channel %s (in %s)" msgstr "" #: ../src/command_dialog.c:168 msgid "Part message:" msgstr "" #: ../src/command_dialog.c:196 msgid "Set topic" msgstr "" #: ../src/command_dialog.c:204 #, c-format msgid "Set the topic of the channel %s (in %s)" msgstr "" #: ../src/command_dialog.c:212 msgid "Topic:" msgstr "" #: ../src/command_dialog.c:238 msgid "Change nickname" msgstr "" #: ../src/command_dialog.c:246 #, c-format msgid "New nickname of the account %s" msgstr "" #: ../src/gtkutils.c:163 #, c-format msgid "Illegal command (make sure one %%s exists)" msgstr "" #: ../src/gtkutils.c:183 #, c-format msgid "" "Error occured when executing command, \"%s\":\n" "%s" msgstr "" #: ../src/gtkutils.c:196 #, c-format msgid "Unable to determine color: %s" msgstr "" #: ../src/loqui-account-dialog.gob:275 msgid "Account name:" msgstr "" #: ../src/loqui-account-dialog.gob:277 msgid "Connect by default" msgstr "" #: ../src/loqui-account-dialog.gob:287 msgid "User name:" msgstr "" #: ../src/loqui-account-dialog.gob:288 msgid "Password:" msgstr "" #: ../src/loqui-account-dialog.gob:291 msgid "Server" msgstr "" #: ../src/loqui-account-dialog.gob:297 msgid "Hostname:" msgstr "" #: ../src/loqui-account-dialog.gob:298 msgid "Port:" msgstr "" #: ../src/loqui-account-dialog.gob:307 msgid "IRC" msgstr "" #: ../src/loqui-account-dialog.gob:309 msgid "Realname:" msgstr "" #: ../src/loqui-account-dialog.gob:310 msgid "User information:" msgstr "" #: ../src/loqui-account-dialog.gob:311 msgid "Auto join channels (ex. #a,#b,#c keyA,keyB):" msgstr "" #: ../src/loqui-account-dialog.gob:312 msgid "Quit message:" msgstr "" #: ../src/loqui-account-dialog.gob:326 msgid "Code" msgstr "" #: ../src/loqui-account-dialog.gob:328 msgid "Code convertion" msgstr "" #: ../src/loqui-account-dialog.gob:334 msgid "Automatic detection by locale" msgstr "" #: ../src/loqui-account-dialog.gob:340 msgid "No convertion" msgstr "" #: ../src/loqui-account-dialog.gob:347 msgid "Select from the table" msgstr "" #: ../src/loqui-account-dialog.gob:367 msgid "Specify codeset" msgstr "" #: ../src/loqui-account-dialog.gob:377 msgid "Codeset: " msgstr "" #: ../src/loqui-account-dialog.gob:392 msgid "List of often used nick(Separate each words with linefeeds)" msgstr "" #: ../src/loqui-account-dialog.gob:499 msgid "" "This account's configuration and connection will be removed.\n" "Do you really want to remove this account?" msgstr "" #: ../src/loqui-core-gtk.gob:117 #, c-format msgid "Failed to load %s" msgstr "" #: ../src/loqui-core-gtk.gob:128 #, c-format msgid "Failed to save %s" msgstr "" #: ../src/loqui-core-gtk.gob:154 #, c-format msgid "Invalid \"%s\"" msgstr "" #: ../src/loqui-protocol-selection-dialog.gob:110 msgid "Protocol Selection" msgstr "" #: ../src/loqui-protocol-selection-dialog.gob:123 msgid "Choose a protocol." msgstr "" #: ../src/loqui-style-entry.gob:16 msgid "Is color default" msgstr "" #: ../src/loqui-style-entry.gob:17 msgid "Is color default or not" msgstr "" #: ../src/loqui-style-entry.gob:23 msgid "string as color" msgstr "" #: ../src/loqui-style-entry.gob:24 msgid "String representation of color" msgstr "" #: ../src/loqui-style-entry.gob:33 msgid "Is font default" msgstr "" #: ../src/loqui-style-entry.gob:34 msgid "Is font default or not" msgstr "" #: ../src/loqui-transfer-window.gob:36 msgid "_Start" msgstr "" #: ../src/loqui-transfer-window.gob:37 msgid "Cancel" msgstr "" #: ../src/loqui-transfer-window.gob:38 msgid "Close" msgstr "" #: ../src/loqui-transfer-window.gob:42 msgid "_Information" msgstr "" #: ../src/loqui-transfer-window.gob:138 msgid "Loqui - File Transfer Manager" msgstr "" #: ../src/loqui-transfer-window.gob:162 msgid "Information" msgstr "" #: ../src/loqui-transfer-window.gob:182 msgid "Filename:" msgstr "" #: ../src/loqui-transfer-window.gob:193 msgid "Directory:" msgstr "" #: ../src/loqui-transfer-window.gob:202 msgid "Select..." msgstr "" #: ../src/loqui-transfer-window.gob:215 msgid "Up / Down:" msgstr "" #: ../src/loqui-transfer-window.gob:219 msgid "Down" msgstr "" #: ../src/loqui-transfer-window.gob:225 msgid "Status:" msgstr "" #: ../src/loqui-transfer-window.gob:229 msgid "Transferring" msgstr "" #: ../src/loqui-transfer-window.gob:235 msgid "Path:" msgstr "" #: ../src/loqui-transfer-window.gob:239 msgid "hoge.jpg" msgstr "" #: ../src/loqui-transfer-window.gob:245 msgid "Progress:" msgstr "" #: ../src/loqui-transfer-window.gob:254 msgid "50%" msgstr "" #: ../src/loqui-transfer-window.gob:258 msgid "Size:" msgstr "" #: ../src/loqui-transfer-window.gob:262 msgid "10,243,000 / 50,222,222" msgstr "" #: ../src/loqui-transfer-window.gob:270 msgid "Rate:" msgstr "" #: ../src/loqui-transfer-window.gob:274 msgid "50.2 KB/s" msgstr "" #. name, stock_id, label, accelerator, tooltip, callback #. see gdkkeynames.c to find key name #: ../src/loqui_app_actions.c:116 msgid "_File" msgstr "" #: ../src/loqui_app_actions.c:117 msgid "_Edit" msgstr "" #: ../src/loqui_app_actions.c:118 msgid "_Account" msgstr "" #: ../src/loqui_app_actions.c:119 msgid "_Channel" msgstr "" #: ../src/loqui_app_actions.c:120 msgid "_User" msgstr "" #: ../src/loqui_app_actions.c:121 msgid "_View" msgstr "" #: ../src/loqui_app_actions.c:122 msgid "_Buffers" msgstr "" #: ../src/loqui_app_actions.c:123 msgid "_Tools" msgstr "" #: ../src/loqui_app_actions.c:124 msgid "_Settings" msgstr "" #: ../src/loqui_app_actions.c:125 msgid "_Help" msgstr "" #: ../src/loqui_app_actions.c:127 msgid "Change user mode [Mode]" msgstr "" #: ../src/loqui_app_actions.c:128 msgid "CTCP" msgstr "" #: ../src/loqui_app_actions.c:129 msgid "Sort Type of NickList" msgstr "" #: ../src/loqui_app_actions.c:132 msgid "Buffers" msgstr "" #: ../src/loqui_app_actions.c:136 msgid "_Quit" msgstr "" #: ../src/loqui_app_actions.c:138 msgid "Open _Connection Dialog..." msgstr "" #: ../src/loqui_app_actions.c:140 msgid "_Connect" msgstr "" #: ../src/loqui_app_actions.c:141 msgid "Cancel Pending Reconnecting" msgstr "" #: ../src/loqui_app_actions.c:142 msgid "_Reconnect" msgstr "" #: ../src/loqui_app_actions.c:143 msgid "_Disconnect" msgstr "" #: ../src/loqui_app_actions.c:144 msgid "_Terminate" msgstr "" #: ../src/loqui_app_actions.c:146 msgid "_Cut" msgstr "" #: ../src/loqui_app_actions.c:147 msgid "_Copy" msgstr "" #: ../src/loqui_app_actions.c:148 msgid "_Paste" msgstr "" #: ../src/loqui_app_actions.c:149 msgid "_Paste with Linefeeds Cut" msgstr "" #: ../src/loqui_app_actions.c:150 msgid "_Clear" msgstr "" #: ../src/loqui_app_actions.c:152 msgid "_Find..." msgstr "" #: ../src/loqui_app_actions.c:153 msgid "_Find Again" msgstr "" #: ../src/loqui_app_actions.c:154 msgid "Jump to Previous Keyword" msgstr "" #: ../src/loqui_app_actions.c:155 msgid "Jump to Next Keyword" msgstr "" #: ../src/loqui_app_actions.c:157 msgid "Close Channel" msgstr "" #: ../src/loqui_app_actions.c:159 msgid "_Join a Channel..." msgstr "" #: ../src/loqui_app_actions.c:160 msgid "_Join Current Channel..." msgstr "" #: ../src/loqui_app_actions.c:161 msgid "_Part Current Channel..." msgstr "" #: ../src/loqui_app_actions.c:162 msgid "Set _Topic of Current Channel..." msgstr "" #: ../src/loqui_app_actions.c:163 msgid "_Change Nickname..." msgstr "" #: ../src/loqui_app_actions.c:164 msgid "_Refresh Information of Current Channel" msgstr "" #: ../src/loqui_app_actions.c:166 msgid "_Start Private Talk..." msgstr "" #: ../src/loqui_app_actions.c:167 msgid "_End Current Private Talk" msgstr "" #: ../src/loqui_app_actions.c:169 msgid "_Previous Unread Channel Buffer" msgstr "" #: ../src/loqui_app_actions.c:170 msgid "_Next Unread Channel Buffer" msgstr "" #: ../src/loqui_app_actions.c:171 msgid "Previous Channel Buffer" msgstr "" #: ../src/loqui_app_actions.c:172 msgid "Next Channel Buffer" msgstr "" #: ../src/loqui_app_actions.c:173 msgid "Select Buffer..." msgstr "" #: ../src/loqui_app_actions.c:175 msgid "Clear All Unread Flags of Buffers" msgstr "" #: ../src/loqui_app_actions.c:177 msgid "File Transfer Manager" msgstr "" #: ../src/loqui_app_actions.c:178 msgid "_General Settings" msgstr "" #: ../src/loqui_app_actions.c:179 msgid "_Account Settings" msgstr "" #: ../src/loqui_app_actions.c:181 msgid "_About" msgstr "" #: ../src/loqui_app_actions.c:184 msgid "Show Information [Whois]" msgstr "" #: ../src/loqui_app_actions.c:185 msgid "Give Channel Operator Privilege (+o)" msgstr "" #: ../src/loqui_app_actions.c:186 msgid "Give Voice Privilege (+v)" msgstr "" #: ../src/loqui_app_actions.c:187 msgid "Deprive Channel Operator Privilege (-o)" msgstr "" #: ../src/loqui_app_actions.c:188 msgid "Deprive Voice Privilege (-v)" msgstr "" #: ../src/loqui_app_actions.c:190 msgid "_Version" msgstr "" #: ../src/loqui_app_actions.c:191 msgid "_Clientinfo" msgstr "" #: ../src/loqui_app_actions.c:192 msgid "User_info" msgstr "" #: ../src/loqui_app_actions.c:193 msgid "_Ping" msgstr "" #: ../src/loqui_app_actions.c:194 msgid "_Time" msgstr "" #: ../src/loqui_app_actions.c:195 msgid "_Finger" msgstr "" #: ../src/loqui_app_actions.c:198 msgid "_Toggle Command Mode" msgstr "" #: ../src/loqui_app_actions.c:198 msgid "Interpret and send the message as command if toggled" msgstr "" #: ../src/loqui_app_actions.c:199 msgid "_Channelbar" msgstr "" #: ../src/loqui_app_actions.c:200 msgid "_Statusbar" msgstr "" #: ../src/loqui_app_actions.c:201 msgid "_Scroll channel buffer" msgstr "" #: ../src/loqui_app_actions.c:201 msgid "" "Whether scrolling the channel buffer to the end when new message arrived." msgstr "" #: ../src/loqui_app_actions.c:202 msgid "_Scroll common buffer" msgstr "" #: ../src/loqui_app_actions.c:202 msgid "" "Whether scrolling the common buffer to the end when new message arrived." msgstr "" #: ../src/loqui_app_actions.c:689 ../src/loqui_app_actions.c:711 msgid "A channel is not selected." msgstr "" #: ../src/loqui_app_actions.c:696 msgid "The channel has not be parted yet." msgstr "" #: ../src/loqui_app_actions.c:718 msgid "You have already joined in the channel." msgstr "" #: ../src/loqui_app_actions.c:758 msgid "The account is not connected" msgstr "" #: ../src/loqui_app_actions.c:764 msgid "Not selected a channel!" msgstr "" #: ../src/loqui_app_actions.c:780 msgid "Current channel is not private talk" msgstr "" #: ../src/loqui_app_info.h:24 msgid "[%channel_name% @ ][%account_name% - ]Loqui version %version%" msgstr "" #: ../src/loqui_app_info.h:25 msgid "" "$if($grater(%updated_entry_number%,0),%updated_entry_number% entries updated" "$if($grater(%updated_private_talk_number%,0), '('%updated_private_talk_number" "% private talk'(s))')" msgstr "" #: ../src/loqui_channel_entry_action.c:227 #: ../src/loqui_channel_entry_action.c:228 msgid "ChannelEntry" msgstr "" #: ../src/loqui_channel_text_view.c:220 msgid "IsScroll" msgstr "" #: ../src/loqui_channel_text_view.c:221 msgid "Scrolling or not" msgstr "" #: ../src/loqui_channel_text_view.c:227 msgid "Auto switch scrolling" msgstr "" #: ../src/loqui_channel_text_view.c:228 msgid "Switch scrolling automatically" msgstr "" #. search #: ../src/loqui_channel_text_view.c:419 msgid "_Search Keyword With Google" msgstr "" #: ../src/loqui_channel_text_view.c:539 msgid "Failed to get the browser command." msgstr "" #: ../src/loqui_channelbar.c:186 ../src/loqui_statusbar.c:206 #: ../src/loqui_statusbar.c:230 ../src/loqui_statusbar.c:336 msgid "Not selected an account!" msgstr "" #: ../src/loqui_channelbar.c:209 msgid "Join a channel with the current account" msgstr "" #: ../src/loqui_channelbar.c:232 msgid "Update the topic" msgstr "" #: ../src/loqui_select_dialog.c:230 msgid "Selection Dialog" msgstr "" #: ../src/loqui_select_dialog.c:241 msgid "Keyword:" msgstr "" #: ../src/loqui_select_dialog.c:247 msgid "Case sensitive" msgstr "" #: ../src/loqui_select_dialog.c:250 msgid "Use migemo" msgstr "" #: ../src/loqui_select_dialog.c:273 msgid "#" msgstr "" #: ../src/loqui_select_dialog.c:287 msgid "Channel" msgstr "" #: ../src/loqui_select_dialog.c:296 msgid "Target" msgstr "" #: ../src/loqui_select_dialog.c:307 msgid "Account:" msgstr "" #: ../src/loqui_select_dialog.c:320 msgid "Channel:" msgstr "" #: ../src/loqui_statusbar.c:34 msgid "(disconnected)" msgstr "" #: ../src/loqui_statusbar.c:35 msgid "(unselected)" msgstr "" #: ../src/loqui_statusbar.c:204 ../src/loqui_statusbar.c:228 msgid "The account is not connected!" msgstr "" #: ../src/loqui_statusbar.c:394 msgid "Change nick" msgstr "" #: ../src/main.c:71 #, c-format msgid "" " --no-send-status-commands don't send commands to get status (like MODE, " "WHO)\n" msgstr "" #: ../src/main.c:72 #, c-format msgid " --debug debug mode\n" msgstr "" #: ../src/main.c:73 #, c-format msgid " --show-msg show message mode\n" msgstr "" #: ../src/main.c:74 #, c-format msgid " --help show this help\n" msgstr "" #. FIXME: use _default #: ../src/prefs_dialog.c:382 #, c-format msgid "Invalid title format: default is used for %s." msgstr "" #: ../src/prefs_dialog.c:428 msgid "Common Preferences" msgstr "" #: ../src/prefs_dialog.c:446 msgid "General" msgstr "" #: ../src/prefs_dialog.c:448 msgid "Save window/widget sizes" msgstr "" #: ../src/prefs_dialog.c:450 msgid "Switch whether scrolling channel buffer or not automatically" msgstr "" #: ../src/prefs_dialog.c:452 msgid "Switch whether scrolling common buffer or not automatically" msgstr "" #: ../src/prefs_dialog.c:455 msgid "Reconnect automatically when connections are terminated." msgstr "" #: ../src/prefs_dialog.c:458 msgid "Connect default accounts when the program started" msgstr "" #: ../src/prefs_dialog.c:460 msgid "Select a new channel automatically." msgstr "" #: ../src/prefs_dialog.c:463 msgid "Away message: " msgstr "" #: ../src/prefs_dialog.c:464 msgid "Format of time in buffers: " msgstr "" #: ../src/prefs_dialog.c:467 msgid "Max line number of a common buffer(0: unlimited): " msgstr "" #: ../src/prefs_dialog.c:471 msgid "Max line number of a channel buffer(0: unlimited): " msgstr "" #: ../src/prefs_dialog.c:475 msgid "Toggle command mode automatically" msgstr "" #: ../src/prefs_dialog.c:478 msgid "Prefix for commands: " msgstr "" #: ../src/prefs_dialog.c:480 msgid "Save logs (Experimental)" msgstr "" #: ../src/prefs_dialog.c:484 msgid "Proxy" msgstr "" #: ../src/prefs_dialog.c:486 msgid "Parse plum (an irc proxy) recent feature (Experimental)" msgstr "" #: ../src/prefs_dialog.c:489 msgid "Regular Expression for recent logs: " msgstr "" #: ../src/prefs_dialog.c:491 msgid "" "Treat server messages as recent logs until received a first PONG (for some " "irc-proxies)." msgstr "" #: ../src/prefs_dialog.c:495 msgid "Highlight" msgstr "" #: ../src/prefs_dialog.c:497 msgid "Use notification" msgstr "" #: ../src/prefs_dialog.c:500 msgid "Execute notification by NOTICE" msgstr "" #: ../src/prefs_dialog.c:504 msgid "Highlighting keywords(Separate each words with linefeeds)" msgstr "" #: ../src/prefs_dialog.c:507 msgid "" "Special prefixes:\n" " \"re:\": Perl Compatible Regular Expression (ex. re:foo*)\n" " \"plain:\": Plain (normal) text (ex. plain:word)" msgstr "" #: ../src/prefs_dialog.c:513 msgid "Ignore" msgstr "" #: ../src/prefs_dialog.c:515 msgid "Use ignore (normal) feature" msgstr "" #: ../src/prefs_dialog.c:519 msgid "Nickname list to ignore (normal) ('*' and '?' can be used)" msgstr "" #: ../src/prefs_dialog.c:522 msgid "Use ignore (transparent) feature" msgstr "" #: ../src/prefs_dialog.c:526 msgid "Nickname list to ignore (transparent) ('*' and '?' can be used)" msgstr "" #: ../src/prefs_dialog.c:532 msgid "Browser: " msgstr "" #: ../src/prefs_dialog.c:534 #, c-format msgid "" "An URL will be quoted and substituted with %s.\n" "Sample:\n" " URL: http://example.com/#id\n" " Browser: mozilla -remote openURL\\(%s,new-tab\\)\n" " -> mozilla -remote openURL\\('http://example.com/#id',new-tab\\)" msgstr "" #: ../src/prefs_dialog.c:541 msgid "Notification: " msgstr "" #: ../src/prefs_dialog.c:544 msgid "Format" msgstr "" #: ../src/prefs_dialog.c:546 msgid "" "See title formatting help of the software 'foobar2000'.\n" "The list of variables is at loqui_app_info.c.\n" "If you version is input, it is used." msgstr "" #: ../src/prefs_dialog.c:549 msgid "Title format of title" msgstr "" #: ../src/prefs_dialog.c:563 ../src/prefs_dialog.c:584 msgid "Default:" msgstr "" #: ../src/prefs_dialog.c:570 msgid "Title format of statusbar" msgstr "" #: ../src/prefs_general_upgrader.c:169 #, c-format msgid "Invalid element: %s" msgstr "" #: ../src/prefs_general_upgrader.c:178 #, c-format msgid "prefs_general: Invalid attribute for entry: %s" msgstr "" #: ../src/prefs_general_upgrader.c:193 #, c-format msgid "Unknown key: %s\n" msgstr "" #: ../src/prefs_general_upgrader.c:271 #, c-format msgid "Unsupported pref type: %s" msgstr "" #: ../src/prefs_general_upgrader.c:300 #, c-format msgid "Loquirc parse error: %s" msgstr "" #: ../src/remark_entry.c:327 msgid "Send message with NOTICE command (Ctrl+Enter)" msgstr "" #: ../src/remark_entry.c:337 msgid "Toggle multiline mode" msgstr "" #: ../src/remark_entry.c:572 msgid "Not selected an account" msgstr "" #: ../src/remark_entry.c:579 msgid "Not connected with this account" msgstr "" #: ../src/remark_entry.c:588 msgid "Command contains linefeed." msgstr "" #: ../src/remark_entry.c:601 msgid "Using not IRC account" msgstr "" #: ../src/remark_entry.c:609 msgid "No channel is selected" msgstr "" loqui-0.5.5/po/ChangeLog0000664000175000017500000000000012121600532011743 00000000000000loqui-0.5.5/po/Makefile.in.in0000644000175000017500000002040612121622347012665 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # # This file file 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. # Please note that the actual code is *not* freely available. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ libdir = @libdir@ localedir = $(libdir)/locale gnulocaledir = $(datadir)/locale gettextsrcdir = $(datadir)/glib-2.0/gettext/po subdir = po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ CC = @CC@ GENCAT = @GENCAT@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) SOURCES = POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = LINGUAS ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ $(POFILES) $(GMOFILES) $(SOURCES) POTFILES = \ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ INSTOBJEXT = @INSTOBJEXT@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: $(AM_V_GEN) file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && $(GENCAT) $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \ --msgid-bugs-address='http://bugzilla.gnome.org/enter_bug.cgi?product=glib&keywords=I18N+L10N&component=general' \ --add-comments --keyword=_ --keyword=N_ \ --keyword=C_:1c,2 \ --keyword=NC_:1c,2 \ --keyword=g_dcgettext:2 \ --keyword=g_dngettext:2,3 \ --keyword=g_dpgettext2:2c,3 \ --flag=N_:1:pass-c-format \ --flag=C_:2:pass-c-format \ --flag=NC_:2:pass-c-format \ --flag=g_dngettext:2:pass-c-format \ --flag=g_strdup_printf:1:c-format \ --flag=g_string_printf:2:c-format \ --flag=g_string_append_printf:2:c-format \ --flag=g_error_new:3:c-format \ --flag=g_set_error:4:c-format \ --flag=g_markup_printf_escaped:1:c-format \ --flag=g_log:3:c-format \ --flag=g_print:1:c-format \ --flag=g_printerr:1:c-format \ --flag=g_printf:1:c-format \ --flag=g_fprintf:2:c-format \ --flag=g_sprintf:2:c-format \ --flag=g_snprintf:3:c-format \ --flag=g_scanner_error:2:c-format \ --flag=g_scanner_warn:2:c-format \ $(POTFILES) \ && test ! -f $(GETTEXT_PACKAGE).po \ || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ case "$$cat" in \ *.gmo) destdir=$(gnulocaledir);; \ *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $$dir; \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \ fi; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ fi; \ if test -r $$cat.m; then \ $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ else \ if test -r $(srcdir)/$$cat.m ; then \ $(INSTALL_DATA) $(srcdir)/$$cat.m \ $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ echo "installing $(srcdir)/$$cat as" \ "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ else \ true; \ fi; \ fi; \ done if test "$(PACKAGE)" = "glib"; then \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ fi; \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ done if test "$(PACKAGE)" = "glib"; then \ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ fi check: all dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ ln $(srcdir)/$$file $(distdir) 2> /dev/null \ || cp -p $(srcdir)/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ cd $(srcdir); \ catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; 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; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done # POTFILES is created from POTFILES.in by stripping comments, empty lines # and Intltool tags (enclosed in square brackets), and appending a full # relative path to them POTFILES: POTFILES.in ( if test 'x$(srcdir)' != 'x.'; then \ posrcprefix='$(top_srcdir)/'; \ else \ posrcprefix="../"; \ fi; \ rm -f $@-t $@ \ && (sed -e '/^#/d' \ -e "s/^\[.*\] +//" \ -e '/^[ ]*$$/d' \ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ | sed -e '$$s/\\$$//') > $@-t \ && chmod a-w $@-t \ && mv $@-t $@ ) Makefile: Makefile.in.in ../config.status POTFILES cd .. \ && $(SHELL) ./config.status $(subdir)/$@.in # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/po/POTFILES.in0000664000175000017500000001116612121600532011765 00000000000000libloqui/ctcp_handle.c libloqui/ctcp_handle.h libloqui/ctcp_message.c libloqui/ctcp_message.h libloqui/ipmsg.h libloqui/ipmsg_packet.c libloqui/ipmsg_packet.h libloqui/irc_constants.h libloqui/irc_message.c libloqui/irc_message.h libloqui/libloqui-intl.h libloqui/loqui-account-ipmsg.gob libloqui/loqui-account-manager.gob libloqui/loqui-core.gob libloqui/loqui-general-pref-default.h libloqui/loqui-general-pref-groups.h libloqui/loqui-generic-profile-factory.gob libloqui/loqui-gobject-utils.c libloqui/loqui-gobject-utils.h libloqui/loqui-message-text-region.gob libloqui/loqui-message-text.gob libloqui/loqui-mode-item.gob libloqui/loqui-mode-manager.gob libloqui/loqui-notifier.gob libloqui/loqui-pref-partial.gob libloqui/loqui-pref-sequence.gob libloqui/loqui-pref.gob libloqui/loqui-profile-factory.c libloqui/loqui-profile-factory.h libloqui/loqui-profile-handle.gob libloqui/loqui-profile.c libloqui/loqui-profile.h libloqui/loqui-property-profile.gob libloqui/loqui-protocol.gob libloqui/loqui-receiver-ipmsg.gob libloqui/loqui-sender-ipmsg.gob libloqui/loqui-socket-ipmsg.gob libloqui/loqui-static-core.c libloqui/loqui-static-core.h libloqui/loqui-transfer-item.gob libloqui/loqui-utils-ipmsg.c libloqui/loqui-utils-ipmsg.h libloqui/loqui-utils.c libloqui/loqui-utils.h libloqui/loqui.c libloqui/loqui.h libloqui/loqui_account.c libloqui/loqui_account.h libloqui/loqui_account_irc.c libloqui/loqui_account_irc.h libloqui/loqui_account_manager_iter.c libloqui/loqui_account_manager_iter.h libloqui/loqui_channel.c libloqui/loqui_channel.h libloqui/loqui_channel_buffer.c libloqui/loqui_channel_buffer.h libloqui/loqui_channel_entry.c libloqui/loqui_channel_entry.h libloqui/loqui_channel_entry_utils.c libloqui/loqui_channel_entry_utils.h libloqui/loqui_channel_irc.c libloqui/loqui_channel_irc.h libloqui/loqui_codeconv.c libloqui/loqui_codeconv.h libloqui/loqui_codeconv_tools.c libloqui/loqui_codeconv_tools.h libloqui/loqui_marshalers.c libloqui/loqui_marshalers.h libloqui/loqui_member.c libloqui/loqui_member.h libloqui/loqui_member_sort_funcs.c libloqui/loqui_member_sort_funcs.h libloqui/loqui_message.c libloqui/loqui_message.h libloqui/loqui_profile_account.c libloqui/loqui_profile_account.h libloqui/loqui_profile_account_ipmsg.c libloqui/loqui_profile_account_ipmsg.h libloqui/loqui_profile_account_irc.c libloqui/loqui_profile_account_irc.h libloqui/loqui_protocol_ipmsg.c libloqui/loqui_protocol_ipmsg.h libloqui/loqui_protocol_irc.c libloqui/loqui_protocol_irc.h libloqui/loqui_protocol_manager.c libloqui/loqui_protocol_manager.h libloqui/loqui_receiver.c libloqui/loqui_receiver.h libloqui/loqui_receiver_irc.c libloqui/loqui_receiver_irc.h libloqui/loqui_sender.c libloqui/loqui_sender.h libloqui/loqui_sender_irc.c libloqui/loqui_sender_irc.h libloqui/loqui_string_tokenizer.c libloqui/loqui_string_tokenizer.h libloqui/loqui_title_format.c libloqui/loqui_title_format.h libloqui/loqui_user.c libloqui/loqui_user.h libloqui/loqui_user_ipmsg.c libloqui/loqui_user_ipmsg.h libloqui/loqui_user_irc.c libloqui/loqui_user_irc.h libloqui/loqui_utils_irc.c libloqui/loqui_utils_irc.h libloqui/loqui_webutils.c libloqui/loqui_webutils.h src/about.c src/about.h src/account_list_dialog.c src/account_list_dialog.h src/channel_tree.c src/channel_tree.h src/command_dialog.c src/command_dialog.h src/gtkutils.c src/gtkutils.h src/loqui-account-dialog.gob src/loqui-channel-entry-action-group-ui.gob src/loqui-channel-entry-action-group.gob src/loqui-channel-entry-ui-data.gob src/loqui-core-gtk.gob src/loqui-general-pref-gtk-default.h src/loqui-general-pref-gtk-groups.h src/loqui-general-pref-gtk.h src/loqui-notifier-gtk.gob src/loqui-protocol-selection-dialog.gob src/loqui-style-entry.gob src/loqui-transfer-window.gob src/loqui-tray-icon.gob src/loqui_account_manager_store.c src/loqui_account_manager_store.h src/loqui_app.c src/loqui_app.h src/loqui_app_actions.c src/loqui_app_actions.h src/loqui_app_info.c src/loqui_app_info.h src/loqui_channel_buffer_gtk.c src/loqui_channel_buffer_gtk.h src/loqui_channel_entry_action.c src/loqui_channel_entry_action.h src/loqui_channel_entry_store.c src/loqui_channel_entry_store.h src/loqui_channel_text_view.c src/loqui_channel_text_view.h src/loqui_channelbar.c src/loqui_channelbar.h src/loqui_dropdown_box.c src/loqui_dropdown_box.h src/loqui_select_dialog.c src/loqui_select_dialog.h src/loqui_statusbar.c src/loqui_statusbar.h src/loqui_stock.c src/loqui_stock.h src/loqui_style_entry.c src/loqui_style_entry.h src/main.c src/main.h src/nick_list.c src/nick_list.h src/prefs_dialog.c src/prefs_dialog.h src/prefs_general_upgrader.c src/prefs_general_upgrader.h src/remark_entry.c src/remark_entry.h libloqui/protocols/jabber/loqui-account-jabber.gob loqui-0.5.5/po/ja.po0000664000175000017500000015645312121600532011153 00000000000000# Copyright (C) 2002 Yoichi Imai # This file is distributed under the same license as the loqui package. # Yoichi Imai , 2002. # msgid "" msgstr "" "Project-Id-Version: loqui 0.1.20\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2011-11-18 00:06+0900\n" "PO-Revision-Date: 2005-10-12 17:48+0900\n" "Last-Translator: Yoichi Imai \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" #: ../libloqui/ctcp_handle.c:180 msgid "Sender is not set in a CTCP message" msgstr "送信側がCTCPメッセージを設定していません" #: ../libloqui/ctcp_handle.c:186 msgid "Receiver is not set in a CTCP message" msgstr "受信側がCTCPメッセージを設定していません" #: ../libloqui/ctcp_handle.c:201 #, c-format msgid "Received CTCP %1$s from %2$s to %3$s: %4$s%5$s%6$s" msgstr "" #: ../libloqui/ctcp_handle.c:216 msgid "The CTCP request was ignored." msgstr "CTCP要求が拒否されました" #: ../libloqui/ctcp_handle.c:328 #, c-format msgid "This DCC request doesn't have subcommand: %s" msgstr "" #: ../libloqui/ctcp_handle.c:338 #, c-format msgid "This DCC request has an unsupported subcommand: %s (%s)" msgstr "" #: ../libloqui/ctcp_handle.c:362 #, c-format msgid "Invalid DCC request (invalid parameter length: %d (%s))" msgstr "" #: ../libloqui/ctcp_handle.c:404 #, c-format msgid "" "Received DCC SEND request from %s (filename: %s, host: %s, port: %s, size: " "%s)" msgstr "" #: ../libloqui/irc_message.c:465 msgid "Invalid parameter number" msgstr "無効なパラメータ番号" #: ../libloqui/loqui-account-ipmsg.gob:77 ../libloqui/loqui_account_irc.c:303 msgid "Already connected." msgstr "接続済みです。" #: ../libloqui/loqui-account-ipmsg.gob:84 msgid "Failed to create socket. Is used the port?" msgstr "ソケットの作成に失敗しました。ポートを使用済みですか?" #: ../libloqui/loqui-account-ipmsg.gob:91 #, c-format msgid "Opened the socket." msgstr "ソケットを開きました。" #: ../libloqui/loqui-account-ipmsg.gob:128 msgid "Disconnected." msgstr "切断されました。" #: ../libloqui/loqui-message-text-region.gob:50 msgid "start_pos" msgstr "" #: ../libloqui/loqui-message-text-region.gob:51 msgid "Start Position" msgstr "" #: ../libloqui/loqui-message-text-region.gob:55 msgid "end_pos" msgstr "" #: ../libloqui/loqui-message-text-region.gob:56 msgid "End Position" msgstr "" #: ../libloqui/loqui-message-text.gob:84 ../libloqui/loqui-message-text.gob:85 msgid "Text" msgstr "" #: ../libloqui/loqui-message-text.gob:91 ../libloqui/loqui-message-text.gob:92 msgid "Channel name" msgstr "チャンネルの名前" #: ../libloqui/loqui-message-text.gob:98 ../libloqui/loqui-message-text.gob:99 #: ../libloqui/loqui_profile_account.c:263 msgid "Account name" msgstr "アカウントの名前" #: ../libloqui/loqui-message-text.gob:105 #: ../libloqui/loqui_profile_account.c:268 ../libloqui/loqui_user.c:228 #: ../src/loqui-account-dialog.gob:389 ../src/nick_list.c:478 msgid "Nick" msgstr "Nick" #: ../libloqui/loqui-message-text.gob:106 msgid "Nickname" msgstr "ニックネーム" #: ../libloqui/loqui-message-text.gob:112 msgid "Self?" msgstr "" #: ../libloqui/loqui-message-text.gob:113 msgid "Whether or not the message is by myself" msgstr "" #: ../libloqui/loqui-message-text.gob:119 msgid "Priv?" msgstr "" #: ../libloqui/loqui-message-text.gob:120 msgid "Whether or not private message" msgstr "" #: ../libloqui/loqui-message-text.gob:126 #: ../libloqui/loqui-message-text.gob:127 msgid "Remark?" msgstr "" #: ../libloqui/loqui-message-text.gob:133 msgid "Is ignored" msgstr "" #: ../libloqui/loqui-message-text.gob:134 msgid "Is ignored or not" msgstr "" #: ../libloqui/loqui-message-text.gob:140 #: ../libloqui/loqui-message-text.gob:141 msgid "Text type" msgstr "" #: ../libloqui/loqui-pref-partial.gob:54 #: ../libloqui/loqui-pref-sequence.gob:43 msgid "Pref" msgstr "" #: ../libloqui/loqui-pref-partial.gob:54 #: ../libloqui/loqui-pref-sequence.gob:43 msgid "Pref Object" msgstr "" #: ../libloqui/loqui-pref-partial.gob:98 ../libloqui/loqui-pref-partial.gob:99 msgid "Group name" msgstr "" #: ../libloqui/loqui-profile-handle.gob:162 #, c-format msgid "Invalid element: the parent of '%s' does not exist (%s)." msgstr "不正な要素: '%s'の親が存在しません (%s)" #: ../libloqui/loqui-profile-handle.gob:170 #, c-format msgid "Invalid element: the parent of '%s' is not '%s' but '%s' (%s)" msgstr "不正なオブジェクト要素: '%s'の親要素が'%s'ではなく'%s'です (%s)" #: ../libloqui/loqui-profile-handle.gob:223 #: ../libloqui/loqui-profile-handle.gob:476 #, c-format msgid "Unsupported element '%s'" msgstr "非対応要素: %s" #: ../libloqui/loqui-profile-handle.gob:234 #, c-format msgid "Invalid element '%s': document element is not profile" msgstr "不正な要素 '%s': 文書要素がprofileではありません。" #: ../libloqui/loqui-profile-handle.gob:256 #, c-format msgid "Invalid content: profile has no type'" msgstr "不正な内容: プロフィールが型情報を持っていません" #: ../libloqui/loqui-profile-handle.gob:284 #, c-format msgid "Invalid param: doesn't have a key: '%s'" msgstr "" #: ../libloqui/loqui-profile-handle.gob:295 #, c-format msgid "Invalid param key: '%s' (line %d, char %d)" msgstr "" #: ../libloqui/loqui-profile-handle.gob:304 #, c-format msgid "Element spec should be set ('%s')" msgstr "" #: ../libloqui/loqui-profile-handle.gob:371 #, c-format msgid "Invalid item: invalid data '%s' (%s, item)" msgstr "" #: ../libloqui/loqui-profile-handle.gob:390 #, c-format msgid "Invalid param: invalid data '%s' (type: %s)" msgstr "" #: ../libloqui/loqui-profile-handle.gob:485 #, c-format msgid "Don't correspond with start tag: current: %s, queued: %s" msgstr "" #: ../libloqui/loqui-profile-handle.gob:528 #, c-format msgid "The profile element doesn't have parent element" msgstr "" #: ../libloqui/loqui-profile-handle.gob:614 #, c-format msgid "LoquiProfile parse error: %s" msgstr "" #: ../libloqui/loqui-profile-handle.gob:717 #, c-format msgid "ProfileHandle: Unsupported type: %s." msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:58 msgid "Invalid IP address or port" msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:62 msgid "Username is not set" msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:67 msgid "Hostname is not set" msgstr "" #: ../libloqui/loqui-receiver-ipmsg.gob:364 #, c-format msgid "" "Only supports IPMessenger Protocol Version 1 (the message is version '%d')" msgstr "" #. TODO: fix condition #: ../libloqui/loqui-sender-ipmsg.gob:118 #: ../libloqui/loqui-sender-ipmsg.gob:132 #: ../libloqui/loqui-sender-ipmsg.gob:147 ../libloqui/loqui_account_irc.c:674 msgid "The account is not connected." msgstr "アカウントが接続されていません" #: ../libloqui/loqui-socket-ipmsg.gob:94 #, c-format msgid "Failed to convert codeset: %s" msgstr "" #: ../libloqui/loqui-socket-ipmsg.gob:104 #, c-format msgid "Failed to convert codeset of group: %s" msgstr "" #: ../libloqui/loqui-socket-ipmsg.gob:116 #, c-format msgid "Invalid packet: '%s'" msgstr "" #: ../libloqui/loqui-socket-ipmsg.gob:162 msgid "Failed to set SO_BROADCAST" msgstr "" #: ../libloqui/loqui-transfer-item.gob:47 msgid "dirname" msgstr "" #: ../libloqui/loqui-transfer-item.gob:48 msgid "Directory Name" msgstr "" #: ../libloqui/loqui-transfer-item.gob:51 msgid "filename" msgstr "ファイル名" #: ../libloqui/loqui-transfer-item.gob:52 msgid "Filename" msgstr "ファイル名" #: ../libloqui/loqui-transfer-item.gob:57 msgid "is_upload" msgstr "" #: ../libloqui/loqui-transfer-item.gob:58 msgid "Is upload" msgstr "" #: ../libloqui/loqui-transfer-item.gob:62 msgid "port" msgstr "ポート" #: ../libloqui/loqui-transfer-item.gob:63 ../libloqui/loqui_user_ipmsg.c:186 msgid "Port" msgstr "" #: ../libloqui/loqui-transfer-item.gob:66 msgid "address" msgstr "" #: ../libloqui/loqui-transfer-item.gob:67 msgid "Address" msgstr "" #: ../libloqui/loqui-transfer-item.gob:70 msgid "size" msgstr "サイズ" #: ../libloqui/loqui-transfer-item.gob:71 msgid "Size" msgstr "サイズ" #: ../libloqui/loqui-transfer-item.gob:74 msgid "percent" msgstr "" #: ../libloqui/loqui-transfer-item.gob:75 msgid "Percent" msgstr "" #: ../libloqui/loqui-utils.c:177 #, c-format msgid "?x flag doesn't have { in '%s'" msgstr "" #: ../libloqui/loqui_account.c:143 msgid "Myself" msgstr "" #: ../libloqui/loqui_account.c:144 msgid "user self" msgstr "" #: ../libloqui/loqui_account.c:150 ../src/loqui-account-dialog.gob:270 msgid "Profile" msgstr "プロファイル" #: ../libloqui/loqui_account.c:151 msgid "Profile of this account" msgstr "このアカウントのプロファイル" #: ../libloqui/loqui_account.c:157 msgid "Sender" msgstr "" #: ../libloqui/loqui_account.c:158 msgid "Command sender" msgstr "" #: ../libloqui/loqui_account.c:164 msgid "Receiver" msgstr "" #: ../libloqui/loqui_account.c:165 msgid "Command receiver" msgstr "" #: ../libloqui/loqui_account.c:171 msgid "IsConnected" msgstr "" #: ../libloqui/loqui_account.c:172 msgid "Connected or not" msgstr "" #: ../libloqui/loqui_account.c:177 msgid "IsPending_Reconnecting" msgstr "" #: ../libloqui/loqui_account.c:178 msgid "Pending_Reconnecting or not" msgstr "" #: ../libloqui/loqui_account.c:405 msgid "Trying to reconnect..." msgstr "再接続の試行中です..." #: ../libloqui/loqui_account.c:424 msgid "Waiting to reconnect..." msgstr "再接続を待っています..." #: ../libloqui/loqui_account.c:429 msgid "Reconnecting count is reached to the limit." msgstr "再接続の回数が限界に達しました。" #: ../libloqui/loqui_account.c:617 msgid "Canceled pended reconnecting." msgstr "" #: ../libloqui/loqui_account_irc.c:328 ../libloqui/loqui_account_irc.c:329 #, c-format msgid "Connecting to %s:%d" msgstr "%s:%dに接続しています" #: ../libloqui/loqui_account_irc.c:346 msgid "Failed to connect: %s" msgstr "接続に失敗しました: %s" #. GIOStraem owns out_stream #: ../libloqui/loqui_account_irc.c:359 ../libloqui/loqui_account_irc.c:360 msgid "Connected." msgstr "接続しました。" #: ../libloqui/loqui_account_irc.c:380 msgid "Sent initial commands." msgstr "初期コマンドを送信しました。" #: ../libloqui/loqui_account_irc.c:401 msgid "Connection closed." msgstr "切断されました。" #. error #: ../libloqui/loqui_account_irc.c:469 ../libloqui/loqui_account_irc.c:470 msgid "An error occured on receiving: %s" msgstr "受信中にエラーが発生しました。" #: ../libloqui/loqui_account_irc.c:594 ../libloqui/loqui_account_irc.c:595 msgid "An error occured on sending: %s" msgstr "送信中にエラーが発生しました。" #: ../libloqui/loqui_account_irc.c:641 msgid "Terminating the connection." msgstr "接続を切断しています。" #: ../libloqui/loqui_channel.c:204 msgid "Joined" msgstr "" #: ../libloqui/loqui_channel.c:205 msgid "Joined or not" msgstr "" #: ../libloqui/loqui_channel.c:210 msgid "PrivateTalk" msgstr "プライベートトーク" #: ../libloqui/loqui_channel.c:211 msgid "PrivateTalk or not" msgstr "" #: ../libloqui/loqui_channel.c:216 ../libloqui/loqui_user.c:284 msgid "Identifier" msgstr "" #: ../libloqui/loqui_channel.c:217 msgid "The string to identify the channel" msgstr "" #: ../libloqui/loqui_channel.c:222 ../src/loqui_select_dialog.c:280 msgid "Account" msgstr "アカウント" #: ../libloqui/loqui_channel.c:223 msgid "Parent account" msgstr "親アカウント" #: ../libloqui/loqui_channel_entry.c:267 ../libloqui/loqui_channel_entry.c:268 #: ../libloqui/loqui_profile_account.c:262 ../src/account_list_dialog.c:322 #: ../src/channel_tree.c:320 msgid "Name" msgstr "名前" #: ../libloqui/loqui_channel_entry.c:273 ../libloqui/loqui_channel_entry.c:274 msgid "Topic" msgstr "" #: ../libloqui/loqui_channel_entry.c:279 msgid "Updated" msgstr "" #: ../libloqui/loqui_channel_entry.c:280 msgid "Updated or not" msgstr "" #: ../libloqui/loqui_channel_entry.c:285 msgid "Updated weak" msgstr "" #: ../libloqui/loqui_channel_entry.c:286 msgid "Updated weak or not" msgstr "" #: ../libloqui/loqui_channel_entry.c:291 msgid "Has unread keyword" msgstr "" #: ../libloqui/loqui_channel_entry.c:292 msgid "Has unread keyword or not" msgstr "" #: ../libloqui/loqui_channel_entry.c:297 msgid "Buffer" msgstr "バッファ(_B)" #: ../libloqui/loqui_channel_entry.c:298 msgid "Channel buffer" msgstr "チャンネルバッファ" #: ../libloqui/loqui_channel_entry.c:304 msgid "Op Number" msgstr "" #: ../libloqui/loqui_channel_entry.c:305 msgid "the number of channel operators" msgstr "" #: ../libloqui/loqui_channel_entry.c:311 msgid "Member Number" msgstr "" #: ../libloqui/loqui_channel_entry.c:312 msgid "the number of members" msgstr "" #: ../libloqui/loqui_channel_entry.c:318 msgid "Position" msgstr "" #: ../libloqui/loqui_channel_entry.c:319 msgid "Position of all channel entries" msgstr "" #: ../libloqui/loqui_channel_entry.c:325 msgid "ChannelEntryID" msgstr "チャンネルエントリID" #: ../libloqui/loqui_channel_entry.c:326 msgid "ID of channel entry." msgstr "チャンネルエントリのID" #: ../libloqui/loqui_channel_entry.c:332 msgid "Do sort" msgstr "" #: ../libloqui/loqui_channel_entry.c:333 msgid "Do sort or don't sort" msgstr "" #: ../libloqui/loqui_member.c:169 ../libloqui/loqui_member.c:170 #: ../src/loqui-account-dialog.gob:280 msgid "User" msgstr "ユーザ" #: ../libloqui/loqui_member.c:176 ../libloqui/loqui_member.c:177 msgid "ChannelOperator" msgstr "チャンネルオペレータ" #: ../libloqui/loqui_member.c:182 msgid "Speakable or not" msgstr "" #: ../libloqui/loqui_member.c:183 msgid "Has voice privillege or not" msgstr "" #: ../libloqui/loqui_member.c:188 ../libloqui/loqui_member.c:189 msgid "Last message time" msgstr "最終メッセージ時刻" #: ../libloqui/loqui_message.c:165 ../libloqui/loqui_message.c:166 #: ../src/prefs_dialog.c:530 msgid "Command" msgstr "コマンド" #: ../libloqui/loqui_profile_account.c:269 msgid "Nickname at first" msgstr "最初のニックネーム" #: ../libloqui/loqui_profile_account.c:274 msgid "Use account" msgstr "アカウントを使う" #: ../libloqui/loqui_profile_account.c:275 msgid "Whether or not to connect this account by default" msgstr "" #: ../libloqui/loqui_profile_account.c:282 #: ../libloqui/loqui_profile_account.c:283 #: ../libloqui/loqui_profile_account.c:289 #: ../libloqui/loqui_profile_account.c:290 ../libloqui/loqui_user.c:252 #: ../libloqui/loqui_user.c:253 msgid "Server name" msgstr "サーバ名" #: ../libloqui/loqui_profile_account.c:299 #: ../libloqui/loqui_profile_account.c:300 ../libloqui/loqui_user.c:234 #: ../libloqui/loqui_user.c:235 msgid "Username" msgstr "ユーザ名" #: ../libloqui/loqui_profile_account.c:306 #: ../libloqui/loqui_profile_account.c:307 msgid "Password" msgstr "パスワード" #: ../libloqui/loqui_profile_account.c:313 #: ../libloqui/loqui_profile_account.c:314 msgid "CodeConv mode" msgstr "" #: ../libloqui/loqui_profile_account.c:322 msgid "CodeConv item name" msgstr "" #: ../libloqui/loqui_profile_account.c:323 msgid "COdeConv item name" msgstr "" #: ../libloqui/loqui_profile_account.c:328 #: ../libloqui/loqui_profile_account.c:329 msgid "Codeset" msgstr "" #: ../libloqui/loqui_profile_account.c:334 msgid "NickList" msgstr "" #: ../libloqui/loqui_profile_account.c:335 msgid "List of nickname strings" msgstr "" #: ../libloqui/loqui_profile_account.c:348 msgid "Untitled" msgstr "未タイトル" #: ../libloqui/loqui_profile_account_irc.c:184 #: ../libloqui/loqui_profile_account_irc.c:185 ../libloqui/loqui_user.c:246 #: ../libloqui/loqui_user.c:247 msgid "Realname" msgstr "本名" #: ../libloqui/loqui_profile_account_irc.c:190 msgid "User information" msgstr "ユーザ情報" #: ../libloqui/loqui_profile_account_irc.c:191 msgid "User information used with CTCP USERINFO" msgstr "" #: ../libloqui/loqui_profile_account_irc.c:196 msgid "Autojoin channels" msgstr "自動joinチャンネル" #: ../libloqui/loqui_profile_account_irc.c:197 msgid "Channels which are joined automatically" msgstr "自動的にjoinされるチャンネル" #: ../libloqui/loqui_profile_account_irc.c:202 msgid "Quit Message" msgstr "Quitメッセージ" #: ../libloqui/loqui_profile_account_irc.c:203 msgid "Default quit message" msgstr "" #: ../libloqui/loqui_protocol_ipmsg.c:44 ../libloqui/loqui_protocol_irc.c:44 msgid "Japanese" msgstr "日本語" #: ../libloqui/loqui_protocol_ipmsg.c:45 msgid "CP932" msgstr "" #: ../libloqui/loqui_protocol_irc.c:45 msgid "ISO-2022-JP (with JIS X 0201 kana and informal characters)" msgstr "" #: ../libloqui/loqui_protocol_irc.c:51 msgid "Japanese (UTF-8) " msgstr "日本語 (UTF-8)" #: ../libloqui/loqui_protocol_irc.c:52 msgid "UTF-8" msgstr "" #: ../libloqui/loqui_receiver_irc.c:209 #, c-format msgid "(%1$s): The message doesn't contains a nick: %2$s" msgstr "(%1$s): メッセージにnickが含まれていません: %2$s" #: ../libloqui/loqui_receiver_irc.c:228 #, c-format msgid "" "(%1$s): The message doesn't contains a target (the first parameter): %2$s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:249 #, c-format msgid "(%1$s): msg.param[%2$d] is not a channel name(%3$s): %4$s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:299 msgid "Failed to get the regexp string for recent logs." msgstr "recent log用の正規表現の取得に失敗しました。" #: ../libloqui/loqui_receiver_irc.c:308 #, c-format msgid "Failed to compile the regexp string for recent logs: %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:325 #, c-format msgid "Failed to get the string for '%s' with named capture." msgstr "" #: ../libloqui/loqui_receiver_irc.c:396 msgid "This PRIVMSG/NOTICE message doesn't contain a target." msgstr "このPRIVMSG/NOTICEメッセージにはtargetが含まれていません。" #: ../libloqui/loqui_receiver_irc.c:401 ../libloqui/loqui_sender_irc.c:782 msgid "This PRIVMSG/NOTICE message doesn't contain a remark." msgstr "このPRIVMSG/NOTICEメッセージには発言が含まれていません。" #: ../libloqui/loqui_receiver_irc.c:482 ../libloqui/loqui_receiver_irc.c:510 #: ../libloqui/loqui_receiver_irc.c:554 ../libloqui/loqui_receiver_irc.c:608 msgid "The message does not contain nick" msgstr "メッセージにnickが含まれていません" #: ../libloqui/loqui_receiver_irc.c:493 msgid "*** %n has quit IRC(%L)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:516 ../libloqui/loqui_receiver_irc.c:560 msgid "The message does not contain the channal name" msgstr "メッセージにチャンネル名が含まれていません。" #: ../libloqui/loqui_receiver_irc.c:531 msgid "*** You have left %t (%1)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:536 msgid "*** %n has just part %t(%L)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:566 msgid "The KICK message doesn't contain the user to be kicked." msgstr "" #: ../libloqui/loqui_receiver_irc.c:576 msgid "*** You were kicked from %t by %n (%2)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:579 msgid "*** %1 was kicked from %t by %n(%2)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:614 msgid "The NICK message does not contain new nick" msgstr "NICKメッセージに新しいnickが含まれていません" #: ../libloqui/loqui_receiver_irc.c:619 msgid "*** %n is known as %t" msgstr "" #. FIXME: handle user modes #. switch(*flags) { #. case IRC_USER_MODE_FLAGGED_AS_AWAY: #. case IRC_USER_MODE_INVISIBLE: #. case IRC_USER_MODE_RECEIVES_WALLOPS: #. case IRC_USER_MODE_RESTRICTED_CONNECTION: #. case IRC_USER_MODE_OPERATOR: #. case IRC_USER_MODE_LOCAL_OPERATOR: #. case IRC_USER_MODE_RECEIVES_SERVER_NOTICES: #. default: #: ../libloqui/loqui_receiver_irc.c:709 msgid "User mode is not implemented." msgstr "ユーザーモードは実装されていません" #: ../libloqui/loqui_receiver_irc.c:728 ../libloqui/loqui_receiver_irc.c:771 msgid "The target is not found in MODE command" msgstr "MODEコマンドに対象が発見できません" #: ../libloqui/loqui_receiver_irc.c:737 #, c-format msgid "RPL_CHANNELMODEIS didn't return a channel name: %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:743 msgid "*** Mode for %1: %*2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:765 #, c-format msgid "Nick must not contain '%%'" msgstr "Nickは'%%'を含むべきではありません" #: ../libloqui/loqui_receiver_irc.c:778 msgid "Why can you know the change of his mode?" msgstr "" #: ../libloqui/loqui_receiver_irc.c:787 #, c-format msgid "*** New mode for %%t by %s: %%*1" msgstr "" #: ../libloqui/loqui_receiver_irc.c:833 msgid "*** %n (%u@%h) joined channel %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:877 #, c-format msgid "Sent a command to join %s." msgstr "" #: ../libloqui/loqui_receiver_irc.c:883 #, c-format msgid "Sent a command to join %s (with the channel key(s))." msgstr "" #: ../libloqui/loqui_receiver_irc.c:887 msgid "" "The string for autojoin is invalid. It must be comma-separated, like '#a,#b," "#c' or '#a,#b,#c keyA,keyB'." msgstr "" #: ../libloqui/loqui_receiver_irc.c:976 msgid "Invalid CREATIONTIME reply." msgstr "" #: ../libloqui/loqui_receiver_irc.c:981 ../libloqui/loqui_receiver_irc.c:1022 msgid "Invalid time string" msgstr "無効な時間文字列" #: ../libloqui/loqui_receiver_irc.c:987 ../libloqui/loqui_receiver_irc.c:1028 msgid "Invalid time" msgstr "無効な時間" #: ../libloqui/loqui_receiver_irc.c:991 #, c-format msgid "%%1 was created at %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1016 msgid "Invalid TOPICWHOTIME reply." msgstr "" #: ../libloqui/loqui_receiver_irc.c:1032 #, c-format msgid "Topic for %%2 was set by %%3 at %s" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1055 ../libloqui/loqui_receiver_irc.c:1061 msgid "Invalid WHOISIDLE reply." msgstr "" #: ../libloqui/loqui_receiver_irc.c:1111 msgid "Invalid WHO reply." msgstr "無効なWHOリプライ" #: ../libloqui/loqui_receiver_irc.c:1174 #, c-format msgid "%c%s(%s) is %s@%s (%s) on %s(%d hops) [%s]" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1202 msgid "*** No topic is set for %1" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1226 msgid "Topic for %1: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1250 msgid "*** New topic on %t by %n: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1325 msgid "Can't find the channel from the message" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1373 msgid "*** %1 is marked as begin AWAY, but left the message: %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1382 ../libloqui/loqui_receiver_irc.c:1386 #: ../libloqui/loqui_receiver_irc.c:1390 msgid "*** %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1393 msgid "*** You are inviting %1 to %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1396 msgid "*** %2 is running IRC version %1 (%3)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1433 msgid "%1 is %2@%3: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1436 msgid "%1 was %2@%3: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1439 msgid "%1: %L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1442 msgid "on via server %2(%L)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1448 msgid "Banned on %1 : %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1451 msgid "Time: %2(%1)" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1463 ../libloqui/loqui_receiver_irc.c:1469 msgid "%2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1474 msgid "Ison: %*1" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1477 msgid "Channel List: Name(Users) Topic" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1480 msgid "%1(%2)\t%3" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1483 ../libloqui/loqui_receiver_irc.c:1561 msgid "%L" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1509 msgid "%1 %L (%2)" msgstr "" #. [$msgto, ?, is unknown mode char to me for ...] #: ../libloqui/loqui_receiver_irc.c:1512 msgid "%1 %2" msgstr "" #: ../libloqui/loqui_receiver_irc.c:1538 msgid "%L: %1" msgstr "" #: ../libloqui/loqui_sender_irc.c:88 msgid "Not connected" msgstr "接続されていません" #: ../libloqui/loqui_sender_irc.c:96 msgid "No characters exist." msgstr "" #: ../libloqui/loqui_sender_irc.c:101 msgid "Error: space contains" msgstr "エラー: スペースが含まれています" #: ../libloqui/loqui_sender_irc.c:372 msgid "This is a private talk" msgstr "" #: ../libloqui/loqui_sender_irc.c:470 msgid "This name seems not to be a channel." msgstr "" #: ../libloqui/loqui_sender_irc.c:495 msgid "This name seems not to be a nick." msgstr "" #: ../libloqui/loqui_sender_irc.c:621 msgid "Too many users in change mode request!" msgstr "" #: ../libloqui/loqui_sender_irc.c:667 msgid "Username is not specified." msgstr "" #: ../libloqui/loqui_sender_irc.c:671 msgid "Username must not include space(s)." msgstr "" #: ../libloqui/loqui_sender_irc.c:675 msgid "Realname is not specified." msgstr "" #: ../libloqui/loqui_sender_irc.c:698 msgid "Password is not specified." msgstr "" #: ../libloqui/loqui_sender_irc.c:702 msgid "Password must not contain space(s)." msgstr "" #: ../libloqui/loqui_sender_irc.c:794 #, c-format msgid "Sent CTCP %1$s to %2$s: %3$s" msgstr "%1$sから%2$sへのCTCP応答を送信しました: %3$s" #: ../libloqui/loqui_sender_irc.c:795 msgid "request" msgstr "" #: ../libloqui/loqui_sender_irc.c:795 msgid "reply" msgstr "" #: ../libloqui/loqui_user.c:229 msgid "Nick name" msgstr "ニックネーム" #: ../libloqui/loqui_user.c:240 ../libloqui/loqui_user.c:241 msgid "Hostname" msgstr "ホスト名" #: ../libloqui/loqui_user.c:258 ../libloqui/loqui_user.c:259 msgid "Away message" msgstr "離席メッセージ" #: ../libloqui/loqui_user.c:264 msgid "Away type" msgstr "離席タイプ" #: ../libloqui/loqui_user.c:265 msgid "Away type (LoquiAwayType)" msgstr "" #: ../libloqui/loqui_user.c:271 msgid "Idle time" msgstr "アイドル時間" #: ../libloqui/loqui_user.c:272 msgid "Idle time (from epoch seconds)" msgstr "" #: ../libloqui/loqui_user.c:278 msgid "Ignored" msgstr "" #: ../libloqui/loqui_user.c:279 msgid "Ignored or not" msgstr "" #: ../libloqui/loqui_user.c:285 msgid "The string to determine the user" msgstr "" #: ../libloqui/loqui_user.c:291 msgid "Online" msgstr "オンライン" #: ../libloqui/loqui_user.c:294 msgid "Offline" msgstr "オフライン" #: ../libloqui/loqui_user.c:297 msgid "Away" msgstr "離席" #: ../libloqui/loqui_user_ipmsg.c:174 msgid "IPAddr" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:175 msgid "IP Address" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:180 msgid "GroupName" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:181 msgid "Group Name" msgstr "" #: ../libloqui/loqui_user_ipmsg.c:187 msgid "Port number" msgstr "" #: ../libloqui/loqui_user_irc.c:173 msgid "ServerInfo" msgstr "サーバ情報" #: ../libloqui/loqui_user_irc.c:174 msgid "Server information" msgstr "サーバ情報" #: ../libloqui/loqui_user_irc.c:179 ../libloqui/loqui_user_irc.c:180 msgid "Joined channels string" msgstr "joinしているチャンネルの文字列" #: ../libloqui/loqui_user_irc.c:185 msgid "Hop Count" msgstr "" #: ../libloqui/loqui_user_irc.c:186 msgid "Hop count" msgstr "" #: ../libloqui/loqui_user_irc.c:192 msgid "IsIRCOperator" msgstr "" #: ../libloqui/loqui_user_irc.c:193 msgid "Is IRC Operator" msgstr "" #: ../src/account_list_dialog.c:300 msgid "Account List" msgstr "アカウントリスト" #: ../src/account_list_dialog.c:351 msgid "Connect" msgstr "接続" #: ../src/channel_tree.c:299 msgid "E" msgstr "E" #: ../src/command_dialog.c:33 msgid "Account is not selected." msgstr "アカウントが選択されていません" #: ../src/command_dialog.c:37 msgid "Account is not connected." msgstr "アカウントが接続されていません" #: ../src/command_dialog.c:47 ../src/loqui_app_actions.c:778 msgid "Channel is not selected" msgstr "チャンネルが選択されていません" #: ../src/command_dialog.c:52 msgid "You are not joined in this channel." msgstr "あなたはこのチャンネルに参加していません" #: ../src/command_dialog.c:72 msgid "Join a channel" msgstr "チャンネルに参加する" #: ../src/command_dialog.c:79 #, c-format msgid "Join a channel with the account %s" msgstr "アカウント %sでチャンネルに参加する" #: ../src/command_dialog.c:84 msgid "Channel name:" msgstr "チャンネルの名前:" #: ../src/command_dialog.c:87 msgid "Channel key (if any):" msgstr "チャンネルキー (もしあれば): " #: ../src/command_dialog.c:115 ../src/loqui_app_actions.c:183 msgid "Start private talk" msgstr "プライベートトークの開始" #: ../src/command_dialog.c:122 #, c-format msgid "Start private talk with the user in %s" msgstr "%sのユーザとプライベートトークを開始する" #: ../src/command_dialog.c:127 ../src/command_dialog.c:251 #: ../src/loqui-account-dialog.gob:286 msgid "Nickname:" msgstr "ニックネーム:" #: ../src/command_dialog.c:153 msgid "Part the channel" msgstr "チャンネルを抜ける" #: ../src/command_dialog.c:160 #, c-format msgid "Part the channel %s (in %s)" msgstr "チャンネル %s (%s) を抜ける" #: ../src/command_dialog.c:168 msgid "Part message:" msgstr "抜けるときのメッセージ:" #: ../src/command_dialog.c:196 msgid "Set topic" msgstr "トピックの設定" #: ../src/command_dialog.c:204 #, c-format msgid "Set the topic of the channel %s (in %s)" msgstr "%s(%s)のトピックを設定する" #: ../src/command_dialog.c:212 msgid "Topic:" msgstr "トピック:" #: ../src/command_dialog.c:238 msgid "Change nickname" msgstr "ニックネームの変更" #: ../src/command_dialog.c:246 #, c-format msgid "New nickname of the account %s" msgstr "%sの新しいニックネーム" #: ../src/gtkutils.c:163 #, c-format msgid "Illegal command (make sure one %%s exists)" msgstr "不正なコマンド (%%sの存在を確認してください)" #: ../src/gtkutils.c:183 #, c-format msgid "" "Error occured when executing command, \"%s\":\n" "%s" msgstr "" "コマンド実行時にエラーが発生しました(\"%s\"):\n" "%s" #: ../src/gtkutils.c:196 #, c-format msgid "Unable to determine color: %s" msgstr "色の識別ができません: %s" #: ../src/loqui-account-dialog.gob:275 msgid "Account name:" msgstr "アカウントの名前:" #: ../src/loqui-account-dialog.gob:277 msgid "Connect by default" msgstr "デフォルトで接続する" #: ../src/loqui-account-dialog.gob:287 msgid "User name:" msgstr "ユーザ名:" #: ../src/loqui-account-dialog.gob:288 msgid "Password:" msgstr "パスワード:" #: ../src/loqui-account-dialog.gob:291 msgid "Server" msgstr "サーバ" #: ../src/loqui-account-dialog.gob:297 msgid "Hostname:" msgstr "ホスト名:" #: ../src/loqui-account-dialog.gob:298 msgid "Port:" msgstr "ポート:" #: ../src/loqui-account-dialog.gob:307 msgid "IRC" msgstr "IRC" #: ../src/loqui-account-dialog.gob:309 msgid "Realname:" msgstr "本名:" #: ../src/loqui-account-dialog.gob:310 msgid "User information:" msgstr "ユーザ情報:" #: ../src/loqui-account-dialog.gob:311 msgid "Auto join channels (ex. #a,#b,#c keyA,keyB):" msgstr "自動joinチャンネル(例: #a,#b,#c keyA,keyB): " #: ../src/loqui-account-dialog.gob:312 msgid "Quit message:" msgstr "Quitメッセージ: " #: ../src/loqui-account-dialog.gob:326 msgid "Code" msgstr "コード" #: ../src/loqui-account-dialog.gob:328 msgid "Code convertion" msgstr "コード変換" #: ../src/loqui-account-dialog.gob:334 msgid "Automatic detection by locale" msgstr "ロケール情報から自動判定する" #: ../src/loqui-account-dialog.gob:340 msgid "No convertion" msgstr "コード変換をしない" #: ../src/loqui-account-dialog.gob:347 msgid "Select from the table" msgstr "一覧から選択する" #: ../src/loqui-account-dialog.gob:367 msgid "Specify codeset" msgstr "特別なコードセットを使用する" #: ../src/loqui-account-dialog.gob:377 msgid "Codeset: " msgstr "コードセット: " #: ../src/loqui-account-dialog.gob:392 msgid "List of often used nick(Separate each words with linefeeds)" msgstr "よく使われるNickのリスト(各語を改行で区切ってください)" #: ../src/loqui-account-dialog.gob:499 msgid "" "This account's configuration and connection will be removed.\n" "Do you really want to remove this account?" msgstr "" "このアカウントの設定と接続は取り除かれます。\n" "本当にアカウントを消しますか?" #: ../src/loqui-core-gtk.gob:117 #, c-format msgid "Failed to load %s" msgstr "%sの読み込みに失敗しました" #: ../src/loqui-core-gtk.gob:128 #, c-format msgid "Failed to save %s" msgstr "%sの保存に失敗しました" #: ../src/loqui-core-gtk.gob:154 #, c-format msgid "Invalid \"%s\"" msgstr "" #: ../src/loqui-protocol-selection-dialog.gob:110 msgid "Protocol Selection" msgstr "" #: ../src/loqui-protocol-selection-dialog.gob:123 msgid "Choose a protocol." msgstr "" #: ../src/loqui-style-entry.gob:16 msgid "Is color default" msgstr "" #: ../src/loqui-style-entry.gob:17 msgid "Is color default or not" msgstr "" #: ../src/loqui-style-entry.gob:23 msgid "string as color" msgstr "" #: ../src/loqui-style-entry.gob:24 msgid "String representation of color" msgstr "" #: ../src/loqui-style-entry.gob:33 msgid "Is font default" msgstr "" #: ../src/loqui-style-entry.gob:34 msgid "Is font default or not" msgstr "" #: ../src/loqui-transfer-window.gob:36 msgid "_Start" msgstr "開始(_S)" #: ../src/loqui-transfer-window.gob:37 msgid "Cancel" msgstr "キャンセル" #: ../src/loqui-transfer-window.gob:38 msgid "Close" msgstr "閉じる" #: ../src/loqui-transfer-window.gob:42 msgid "_Information" msgstr "" #: ../src/loqui-transfer-window.gob:138 msgid "Loqui - File Transfer Manager" msgstr "Loqui - ファイル転送マネージャ" #: ../src/loqui-transfer-window.gob:162 msgid "Information" msgstr "詳細情報" #: ../src/loqui-transfer-window.gob:182 msgid "Filename:" msgstr "ファイル名:" #: ../src/loqui-transfer-window.gob:193 msgid "Directory:" msgstr "ディレクトリ" #: ../src/loqui-transfer-window.gob:202 msgid "Select..." msgstr "選択..." #: ../src/loqui-transfer-window.gob:215 msgid "Up / Down:" msgstr "アップ/ダウンロード" #: ../src/loqui-transfer-window.gob:219 msgid "Down" msgstr "ダウンロード" #: ../src/loqui-transfer-window.gob:225 msgid "Status:" msgstr "ステータス:" #: ../src/loqui-transfer-window.gob:229 msgid "Transferring" msgstr "転送中" #: ../src/loqui-transfer-window.gob:235 msgid "Path:" msgstr "パス:" #: ../src/loqui-transfer-window.gob:239 msgid "hoge.jpg" msgstr "" #: ../src/loqui-transfer-window.gob:245 msgid "Progress:" msgstr "進捗状況:" #: ../src/loqui-transfer-window.gob:254 msgid "50%" msgstr "" #: ../src/loqui-transfer-window.gob:258 msgid "Size:" msgstr "サイズ:" #: ../src/loqui-transfer-window.gob:262 msgid "10,243,000 / 50,222,222" msgstr "" #: ../src/loqui-transfer-window.gob:270 msgid "Rate:" msgstr "レート:" #: ../src/loqui-transfer-window.gob:274 msgid "50.2 KB/s" msgstr "" #. name, stock_id, label, accelerator, tooltip, callback #. see gdkkeynames.c to find key name #: ../src/loqui_app_actions.c:116 msgid "_File" msgstr "ファイル(_F)" #: ../src/loqui_app_actions.c:117 msgid "_Edit" msgstr "編集(_E)" #: ../src/loqui_app_actions.c:118 msgid "_Account" msgstr "アカウント(_A)" #: ../src/loqui_app_actions.c:119 msgid "_Channel" msgstr "チャンネル(_C)" #: ../src/loqui_app_actions.c:120 msgid "_User" msgstr "ユーザ(_U)" #: ../src/loqui_app_actions.c:121 msgid "_View" msgstr "表示(_V)" #: ../src/loqui_app_actions.c:122 msgid "_Buffers" msgstr "バッファ(_B)" #: ../src/loqui_app_actions.c:123 msgid "_Tools" msgstr "ツール(_T)" #: ../src/loqui_app_actions.c:124 msgid "_Settings" msgstr "設定(_S)" #: ../src/loqui_app_actions.c:125 msgid "_Help" msgstr "ヘルプ(_H)" #: ../src/loqui_app_actions.c:127 msgid "Change user mode [Mode]" msgstr "ユーザモードの変更 [Mode]" #: ../src/loqui_app_actions.c:128 msgid "CTCP" msgstr "CTCP" #: ../src/loqui_app_actions.c:129 msgid "Sort Type of NickList" msgstr "Nickリストのソート順" #: ../src/loqui_app_actions.c:132 msgid "Buffers" msgstr "バッファ" #: ../src/loqui_app_actions.c:136 msgid "_Quit" msgstr "終了(_Q)" #: ../src/loqui_app_actions.c:138 msgid "Open _Connection Dialog..." msgstr "接続ダイアログを開く(_C)" #: ../src/loqui_app_actions.c:140 msgid "_Connect" msgstr "接続(_C)" #: ../src/loqui_app_actions.c:141 msgid "Cancel Pending Reconnecting" msgstr "未解決の再接続のキャンセル" #: ../src/loqui_app_actions.c:142 msgid "_Reconnect" msgstr "再接続(_R)" #: ../src/loqui_app_actions.c:143 msgid "_Disconnect" msgstr "切断(_D)" #: ../src/loqui_app_actions.c:144 msgid "_Terminate" msgstr "強制切断" #: ../src/loqui_app_actions.c:146 msgid "_Cut" msgstr "切り取り(_C)" #: ../src/loqui_app_actions.c:147 msgid "_Copy" msgstr "コピー(_C)" #: ../src/loqui_app_actions.c:148 msgid "_Paste" msgstr "ペースト(_P)" #: ../src/loqui_app_actions.c:149 msgid "_Paste with Linefeeds Cut" msgstr "改行を削除してペースト(_P)" #: ../src/loqui_app_actions.c:150 msgid "_Clear" msgstr "クリア(_C)" #: ../src/loqui_app_actions.c:152 msgid "_Find..." msgstr "検索(_F)..." #: ../src/loqui_app_actions.c:153 msgid "_Find Again" msgstr "次を検索(_F)" #: ../src/loqui_app_actions.c:154 msgid "Jump to Previous Keyword" msgstr "前のキーワードに飛ぶ" #: ../src/loqui_app_actions.c:155 msgid "Jump to Next Keyword" msgstr "次のキーワードに飛ぶ" #: ../src/loqui_app_actions.c:157 msgid "Close Channel" msgstr "チャンネルを閉じる" #: ../src/loqui_app_actions.c:159 msgid "_Join a Channel..." msgstr "チャンネルにJoinする..." #: ../src/loqui_app_actions.c:160 msgid "_Join Current Channel..." msgstr "現在のチャンネルに参加する..." #: ../src/loqui_app_actions.c:161 msgid "_Part Current Channel..." msgstr "現在のチャンネルを抜ける..." #: ../src/loqui_app_actions.c:162 msgid "Set _Topic of Current Channel..." msgstr "現在のチャンネルのトピックを変更(_T)..." #: ../src/loqui_app_actions.c:163 msgid "_Change Nickname..." msgstr "ニックネームの変更(_C)..." #: ../src/loqui_app_actions.c:164 msgid "_Refresh Information of Current Channel" msgstr "現在のチャンネルの情報の更新(_R)" #: ../src/loqui_app_actions.c:166 msgid "_Start Private Talk..." msgstr "プライベートトークの開始(_S)..." #: ../src/loqui_app_actions.c:167 msgid "_End Current Private Talk" msgstr "プライベートトークの終了" #: ../src/loqui_app_actions.c:169 msgid "_Previous Unread Channel Buffer" msgstr "前の未読のチャンネルバッファ" #: ../src/loqui_app_actions.c:170 msgid "_Next Unread Channel Buffer" msgstr "次の未読のチャンネルバッファ" #: ../src/loqui_app_actions.c:171 msgid "Previous Channel Buffer" msgstr "前のチャンネルバッファ" #: ../src/loqui_app_actions.c:172 msgid "Next Channel Buffer" msgstr "次のチャンネルバッファ" #: ../src/loqui_app_actions.c:173 msgid "Select Buffer..." msgstr "バッファの選択..." #: ../src/loqui_app_actions.c:175 msgid "Clear All Unread Flags of Buffers" msgstr "すべてのバッファの未読フラグをクリアする" #: ../src/loqui_app_actions.c:177 msgid "File Transfer Manager" msgstr "ファイル転送マネージャ" #: ../src/loqui_app_actions.c:178 msgid "_General Settings" msgstr "一般的な設定" #: ../src/loqui_app_actions.c:179 msgid "_Account Settings" msgstr "アカウント設定" #: ../src/loqui_app_actions.c:181 msgid "_About" msgstr "このプログラムについて(_A)" #: ../src/loqui_app_actions.c:184 msgid "Show Information [Whois]" msgstr "情報の表示 [Whois]" #: ../src/loqui_app_actions.c:185 msgid "Give Channel Operator Privilege (+o)" msgstr "チャンネルオペレータ権限を与える (+o)" #: ../src/loqui_app_actions.c:186 msgid "Give Voice Privilege (+v)" msgstr "発言権を与える (+v)" #: ../src/loqui_app_actions.c:187 msgid "Deprive Channel Operator Privilege (-o)" msgstr "チャンネルオペレータ権限を奪う (-o)" #: ../src/loqui_app_actions.c:188 msgid "Deprive Voice Privilege (-v)" msgstr "発言権を奪う (-v)" #: ../src/loqui_app_actions.c:190 msgid "_Version" msgstr "_Version" #: ../src/loqui_app_actions.c:191 msgid "_Clientinfo" msgstr "_Clientinfo" #: ../src/loqui_app_actions.c:192 msgid "User_info" msgstr "Userinfo(_I)" #: ../src/loqui_app_actions.c:193 msgid "_Ping" msgstr "_Ping" #: ../src/loqui_app_actions.c:194 msgid "_Time" msgstr "_Time" #: ../src/loqui_app_actions.c:195 msgid "_Finger" msgstr "Finger(_F)" #: ../src/loqui_app_actions.c:198 msgid "_Toggle Command Mode" msgstr "コマンドモードを切り替える" #: ../src/loqui_app_actions.c:198 msgid "Interpret and send the message as command if toggled" msgstr "トグルされていた場合メッセージをコマンドとして解釈し送信する" #: ../src/loqui_app_actions.c:199 msgid "_Channelbar" msgstr "チャンネルバー" #: ../src/loqui_app_actions.c:200 msgid "_Statusbar" msgstr "ステータスバー" #: ../src/loqui_app_actions.c:201 msgid "_Scroll channel buffer" msgstr "チャンネルバッファをスクロールする" #: ../src/loqui_app_actions.c:201 msgid "" "Whether scrolling the channel buffer to the end when new message arrived." msgstr "" "新しいメッセージの投稿時にチャンネルバッファを最下行にスクロールする/しない。" #: ../src/loqui_app_actions.c:202 msgid "_Scroll common buffer" msgstr "コマンドバッファのスクロール" #: ../src/loqui_app_actions.c:202 msgid "" "Whether scrolling the common buffer to the end when new message arrived." msgstr "" "新しいメッセージの投稿時に共通バッファを最下行にスクロールする/しない。" #: ../src/loqui_app_actions.c:689 ../src/loqui_app_actions.c:711 msgid "A channel is not selected." msgstr "チャンネルが選択されていません" #: ../src/loqui_app_actions.c:696 msgid "The channel has not be parted yet." msgstr "そのチャンネルは抜けていません" #: ../src/loqui_app_actions.c:718 msgid "You have already joined in the channel." msgstr "あなたはそのチャンネルに既に参加しています。" #: ../src/loqui_app_actions.c:758 msgid "The account is not connected" msgstr "アカウントが接続されていません" #: ../src/loqui_app_actions.c:764 msgid "Not selected a channel!" msgstr "チャンネルが選択されていません!!" #: ../src/loqui_app_actions.c:780 msgid "Current channel is not private talk" msgstr "現在のチャンネルはプライベートトークではありません" #: ../src/loqui_app_info.h:24 msgid "[%channel_name% @ ][%account_name% - ]Loqui version %version%" msgstr "" #: ../src/loqui_app_info.h:25 msgid "" "$if($grater(%updated_entry_number%,0),%updated_entry_number% entries updated" "$if($grater(%updated_private_talk_number%,0), '('%updated_private_talk_number" "% private talk'(s))')" msgstr "" #: ../src/loqui_channel_entry_action.c:227 #: ../src/loqui_channel_entry_action.c:228 msgid "ChannelEntry" msgstr "チャンネルエントリ" #: ../src/loqui_channel_text_view.c:220 msgid "IsScroll" msgstr "" #: ../src/loqui_channel_text_view.c:221 msgid "Scrolling or not" msgstr "" #: ../src/loqui_channel_text_view.c:227 msgid "Auto switch scrolling" msgstr "" #: ../src/loqui_channel_text_view.c:228 msgid "Switch scrolling automatically" msgstr "スクロールするかしないかを自動的に切り替える" #. search #: ../src/loqui_channel_text_view.c:419 msgid "_Search Keyword With Google" msgstr "" #: ../src/loqui_channel_text_view.c:539 msgid "Failed to get the browser command." msgstr "ブラウザコマンドの取得に失敗しました。" #: ../src/loqui_channelbar.c:186 ../src/loqui_statusbar.c:206 #: ../src/loqui_statusbar.c:230 ../src/loqui_statusbar.c:336 msgid "Not selected an account!" msgstr "アカウントが選択されていません!" #: ../src/loqui_channelbar.c:209 msgid "Join a channel with the current account" msgstr "現在のアカウントでチャンネルに参加する" #: ../src/loqui_channelbar.c:232 msgid "Update the topic" msgstr "トピックの更新" #: ../src/loqui_select_dialog.c:230 msgid "Selection Dialog" msgstr "選択ダイアログ" #: ../src/loqui_select_dialog.c:241 msgid "Keyword:" msgstr "キーワード:" #: ../src/loqui_select_dialog.c:247 msgid "Case sensitive" msgstr "大文字と小文字を区別しない" #: ../src/loqui_select_dialog.c:250 msgid "Use migemo" msgstr "migemoを利用する" #: ../src/loqui_select_dialog.c:273 msgid "#" msgstr "#" #: ../src/loqui_select_dialog.c:287 msgid "Channel" msgstr "チャンネル" #: ../src/loqui_select_dialog.c:296 msgid "Target" msgstr "ターゲット" #: ../src/loqui_select_dialog.c:307 msgid "Account:" msgstr "アカウント:" #: ../src/loqui_select_dialog.c:320 msgid "Channel:" msgstr "チャンネル:" #: ../src/loqui_statusbar.c:34 msgid "(disconnected)" msgstr "(切断)" #: ../src/loqui_statusbar.c:35 msgid "(unselected)" msgstr "(未選択)" #: ../src/loqui_statusbar.c:204 ../src/loqui_statusbar.c:228 msgid "The account is not connected!" msgstr "未接続のアカウントです!" #: ../src/loqui_statusbar.c:394 msgid "Change nick" msgstr "ニックネームの変更" #: ../src/main.c:71 #, c-format msgid "" " --no-send-status-commands don't send commands to get status (like MODE, " "WHO)\n" msgstr "" " --no-send-status-commands MODE や WHO のようなステータスを取得するためのコ" "マンドを送信しない\n" #: ../src/main.c:72 #, c-format msgid " --debug debug mode\n" msgstr " --debug デバッグモード\n" #: ../src/main.c:73 #, c-format msgid " --show-msg show message mode\n" msgstr " --show-msg メッセージ表示モード\n" #: ../src/main.c:74 #, c-format msgid " --help show this help\n" msgstr " --help ヘルプメッセージの表示\n" #. FIXME: use _default #: ../src/prefs_dialog.c:382 #, c-format msgid "Invalid title format: default is used for %s." msgstr "" #: ../src/prefs_dialog.c:428 msgid "Common Preferences" msgstr "全般の設定" #: ../src/prefs_dialog.c:446 msgid "General" msgstr "全般" #: ../src/prefs_dialog.c:448 msgid "Save window/widget sizes" msgstr "ウィンドウとウィジットのサイズを保存する" #: ../src/prefs_dialog.c:450 msgid "Switch whether scrolling channel buffer or not automatically" msgstr "チャンネルバッファをスクロールするかしないかを自動的に切り替える" #: ../src/prefs_dialog.c:452 msgid "Switch whether scrolling common buffer or not automatically" msgstr "共通バッファをスクロールするかしないかを自動的に切り替える" #: ../src/prefs_dialog.c:455 msgid "Reconnect automatically when connections are terminated." msgstr "接続が強制的に切断されたとき自動的に再接続する" #: ../src/prefs_dialog.c:458 msgid "Connect default accounts when the program started" msgstr "プログラム起動時にデフォルトのアカウントを接続する" #: ../src/prefs_dialog.c:460 msgid "Select a new channel automatically." msgstr "新しいチャンネルを自動的に選択する" #: ../src/prefs_dialog.c:463 msgid "Away message: " msgstr "離席メッセージ: " #: ../src/prefs_dialog.c:464 msgid "Format of time in buffers: " msgstr "バッファの時間表示形式" #: ../src/prefs_dialog.c:467 msgid "Max line number of a common buffer(0: unlimited): " msgstr "共通バッファの最大行数(0: 無制限): " #: ../src/prefs_dialog.c:471 msgid "Max line number of a channel buffer(0: unlimited): " msgstr "チャンネルバッファの最大行数(0: 無制限): " #: ../src/prefs_dialog.c:475 msgid "Toggle command mode automatically" msgstr "コマンドモードへ自動的に移行する" #: ../src/prefs_dialog.c:478 msgid "Prefix for commands: " msgstr "コマンド文字" #: ../src/prefs_dialog.c:480 msgid "Save logs (Experimental)" msgstr "ログの保存(実験的)" #: ../src/prefs_dialog.c:484 msgid "Proxy" msgstr "" #: ../src/prefs_dialog.c:486 msgid "Parse plum (an irc proxy) recent feature (Experimental)" msgstr "plum(IRC proxy)のrecentをパースする (実験的)" #: ../src/prefs_dialog.c:489 msgid "Regular Expression for recent logs: " msgstr "" #: ../src/prefs_dialog.c:491 msgid "" "Treat server messages as recent logs until received a first PONG (for some " "irc-proxies)." msgstr "" #: ../src/prefs_dialog.c:495 msgid "Highlight" msgstr "強調" #: ../src/prefs_dialog.c:497 msgid "Use notification" msgstr "通知を使用する" #: ../src/prefs_dialog.c:500 msgid "Execute notification by NOTICE" msgstr "NOTICEによって通知を実行する" #: ../src/prefs_dialog.c:504 msgid "Highlighting keywords(Separate each words with linefeeds)" msgstr "強調するキーワード(改行で区切って下さい)" #: ../src/prefs_dialog.c:507 msgid "" "Special prefixes:\n" " \"re:\": Perl Compatible Regular Expression (ex. re:foo*)\n" " \"plain:\": Plain (normal) text (ex. plain:word)" msgstr "" #: ../src/prefs_dialog.c:513 msgid "Ignore" msgstr "無視" #: ../src/prefs_dialog.c:515 msgid "Use ignore (normal) feature" msgstr "無視(通常)機能を使用する" #: ../src/prefs_dialog.c:519 msgid "Nickname list to ignore (normal) ('*' and '?' can be used)" msgstr "無視する(通常)ニックネームのリスト('*'や'?'を使用できます)" #: ../src/prefs_dialog.c:522 msgid "Use ignore (transparent) feature" msgstr "無視(透明)機能を使用する" #: ../src/prefs_dialog.c:526 msgid "Nickname list to ignore (transparent) ('*' and '?' can be used)" msgstr "無視する(透明)ニックネームのリスト('*'や'?'を使用できます)" #: ../src/prefs_dialog.c:532 msgid "Browser: " msgstr "ブラウザ: " #: ../src/prefs_dialog.c:534 #, c-format msgid "" "An URL will be quoted and substituted with %s.\n" "Sample:\n" " URL: http://example.com/#id\n" " Browser: mozilla -remote openURL\\(%s,new-tab\\)\n" " -> mozilla -remote openURL\\('http://example.com/#id',new-tab\\)" msgstr "" "URLはクオートされ%sに置き替えられます。\n" "サンプル:\n" " URL: http://example.com/#id\n" " Browser: mozilla -remote openURL\\(%s,new-tab\\)\n" " -> mozilla -remote openURL\\('http://example.com#id',new-tab\\)" #: ../src/prefs_dialog.c:541 msgid "Notification: " msgstr "通知: " #: ../src/prefs_dialog.c:544 msgid "Format" msgstr "書式指定" #: ../src/prefs_dialog.c:546 msgid "" "See title formatting help of the software 'foobar2000'.\n" "The list of variables is at loqui_app_info.c.\n" "If you version is input, it is used." msgstr "" "書式は'foobar2000'というソフトウェアを参考にしています。\n" "利用可能な変数のリストは、loqui_app_info.cを見てください。\n" "入力すればそれを使い、そうでなければデフォルト値を使用します。" #: ../src/prefs_dialog.c:549 msgid "Title format of title" msgstr "ウィンドウタイトルの書式指定" #: ../src/prefs_dialog.c:563 ../src/prefs_dialog.c:584 msgid "Default:" msgstr "デフォルト:" #: ../src/prefs_dialog.c:570 msgid "Title format of statusbar" msgstr "ステータスバーの書式指定" #: ../src/prefs_general_upgrader.c:169 #, c-format msgid "Invalid element: %s" msgstr "不正な要素: %s" #: ../src/prefs_general_upgrader.c:178 #, c-format msgid "prefs_general: Invalid attribute for entry: %s" msgstr "" #: ../src/prefs_general_upgrader.c:193 #, c-format msgid "Unknown key: %s\n" msgstr "" #: ../src/prefs_general_upgrader.c:271 #, c-format msgid "Unsupported pref type: %s" msgstr "" #: ../src/prefs_general_upgrader.c:300 #, c-format msgid "Loquirc parse error: %s" msgstr "Loquirc parse error: %s" #: ../src/remark_entry.c:327 msgid "Send message with NOTICE command (Ctrl+Enter)" msgstr "メッセージをNOTICEコマンドで送信 (Ctrl+Enter)" #: ../src/remark_entry.c:337 msgid "Toggle multiline mode" msgstr "複数行モードを切り替える" #: ../src/remark_entry.c:572 msgid "Not selected an account" msgstr "アカウントが選択されていません" #: ../src/remark_entry.c:579 msgid "Not connected with this account" msgstr "このアカウントでは接続されていません" #: ../src/remark_entry.c:588 msgid "Command contains linefeed." msgstr "コマンドに改行が含まれています。" #: ../src/remark_entry.c:601 msgid "Using not IRC account" msgstr "IRCアカウント以外を使っています" #: ../src/remark_entry.c:609 msgid "No channel is selected" msgstr "チャンネルが選択されていません" #~ msgid "Already started." #~ msgstr "開始済みです。" #~ msgid "Filename is not set." #~ msgstr "ファイル名がセットされていません" #~ msgid "An error occured on the connection" #~ msgstr "接続にエラーが発生しました。" #~ msgid "Failed to open '%s' to save: %s" #~ msgstr "'%s'の保存に失敗しました: %s" #~ msgid "Failed to write: %s" #~ msgstr "%sの書こ込みに失敗しました" #~ msgid "Completed." #~ msgstr "完了しました。" #~ msgid "Failed to close." #~ msgstr "切断に失敗しました。" #~ msgid "Terminated." #~ msgstr "終了しました。" #~ msgid "Who can change mode?" #~ msgstr "誰がモードを変えられるのです?" #~ msgid "Connecting." #~ msgstr "接続しています。" #~ msgid "Connecting to login server (%s:%d)" #~ msgstr "login server (%s:%d) に接続しています" #~ msgid "Sent CTCP reply to %s: %s" #~ msgstr "%sへCTCP応答を送信しました: %s" #~ msgid "The message does not contain nick." #~ msgstr "このメッセージにはnickが含まれていません" #~ msgid "Stop" #~ msgstr "停止" #~ msgid "Info" #~ msgstr "情報" #~ msgid "Invalid element '%s': should be 'profiles'" #~ msgstr "不正な要素 '%s': 'プロフィール'である必要があります" #~ msgid "Invalid element: why is not in profile?" #~ msgstr "不正な要素: なぜ'プロフィール'に含まれていないのですか?" #~ msgid "Invalid param: doesn't have pspec" #~ msgstr "無効なパラメータ: pspecを持っていません" #~ msgid "Invalid param: doesn't have obj" #~ msgstr "無効なパラメータ: objを持っていません" #~ msgid "LoquiProfileHandle parse error: %s" #~ msgstr "LoquiProfileHandle parse error: %s" #~ msgid "_Connect Current Account" #~ msgstr "現在のアカウントを接続する" #~ msgid "Cancel Pending Reconnecting Current Account" #~ msgstr "現在のアカウントの未解決の再接続をキャンセルする" #~ msgid "_Reconnect Current Account" #~ msgstr "現在のアカウントを再接続する" #~ msgid "_Disconnect Current Account" #~ msgstr "現在のアカウントを切断する" #~ msgid "_Terminate Current Account" #~ msgstr "現在のアカウントを強制切断する" #~ msgid "title" #~ msgstr "タイトル" #~ msgid "statusbar" #~ msgstr "ステータスバー" #~ msgid "URL is passed to a browser with quoted, like 'http://example.com/'" #~ msgstr "" #~ "'http://example.com/'のように、URLはクォートしてブラウザに渡されます。" #~ msgid "No conv" #~ msgstr "無変換" #~ msgid "Custom" #~ msgstr "カスタム" #~ msgid "Invalid codeset string (length zero)" #~ msgstr "不正なコードセット文字列 (長さ0)" #~ msgid "Code convartion error: %s" #~ msgstr "コード変換エラー: %s" #~ msgid "Unknown error occured in code convertion." #~ msgstr "コード変換で不明なエラーが発生しました" #~ msgid "Flags are not found in MODE command" #~ msgstr "MODEコマンドにフラグが見つかりません" #~ msgid "Can't find a nick to change mode" #~ msgstr "モードを変えるnickが見つかりません" loqui-0.5.5/po/LINGUAS0000664000175000017500000000000312121600532011221 00000000000000ja loqui-0.5.5/aclocal.m40000664000175000017500000021554112121622347011445 00000000000000# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, # Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Configure paths for GLIB # Owen Taylor 1997-2001 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 AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], , enable_glibtest=yes) pkg_config_args=glib-2.0 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 min_glib_version=ifelse([$1], ,2.0.0,$1) 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_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` 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_TRY_RUN([ #include #include #include int main () { unsigned int major, minor, micro; char *tmp_version; fclose (fopen ("conf.glibtest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_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 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 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 enviroment 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_TRY_LINK([ #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 occured. 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 AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_GENMARSHAL) AC_SUBST(GOBJECT_QUERY) AC_SUBST(GLIB_MKENUMS) AC_SUBST(GLIB_COMPILE_RESOURCES) rm -f conf.glibtest ]) # 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 # # 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 ]) # 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= 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" 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 glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])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 ]) # 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]) # Configure paths for GTK+ # Owen Taylor 1997-2001 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, dnl pass to pkg-config dnl AC_DEFUN([AM_PATH_GTK_2_0], [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], , enable_gtktest=yes) pkg_config_args=gtk+-2.0 for module in . $4 do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=ifelse([$1], ,2.0.0,$1) AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_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 GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ 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 pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.gtktest", "w")); /* 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*** 'pkg-config --modversion gtk+-2.0' 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 pkg-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 pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } 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); } 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 pkg-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 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 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 (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_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://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" 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 "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) 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 ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, # 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) loqui-0.5.5/libloqui/0000775000175000017500000000000012121622470011472 500000000000000loqui-0.5.5/libloqui/protocols/0000775000175000017500000000000012121622470013516 500000000000000loqui-0.5.5/libloqui/protocols/Makefile.in0000664000175000017500000004317012121622350015505 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libloqui/protocols DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = jabber all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libloqui/protocols/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libloqui/protocols/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/libloqui/protocols/jabber/0000775000175000017500000000000012121622470014743 500000000000000loqui-0.5.5/libloqui/protocols/jabber/Makefile.in0000664000175000017500000004124612121622350016734 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libloqui/protocols/jabber DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libloqui_jabber_la_DEPENDENCIES = \ $(top_builddir)/libloqui/libloqui.la am_libloqui_jabber_la_OBJECTS = loqui-account-jabber.lo libloqui_jabber_la_OBJECTS = $(am_libloqui_jabber_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libloqui_jabber_la_SOURCES) DIST_SOURCES = $(libloqui_jabber_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = $(GLIB_CFLAGS) $(GNET_CFLAGS) $(EXTRA_WARNING_CFLAGS) -I$(includedir) -I$(top_srcdir) -DG_LOG_DOMAIN=\"libloqui\" AM_CFLAGS = -g -Wall -Wredundant-decls -Wmissing-declarations -Wmissing-prototypes noinst_LTLIBRARIES = libloqui_jabber.la BUILT_SOURCES := \ loqui-account-jabber.c \ loqui-account-jabber.h \ loqui-account-jabber-private.h libloqui_jabber_la_SOURCES = \ loqui-account-jabber.gob \ loqui-account-jabber.c \ loqui-account-jabber.h \ loqui-account-jabber-private.h libloqui_jabber_la_LIBADD = \ $(top_builddir)/libloqui/libloqui.la all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libloqui/protocols/jabber/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libloqui/protocols/jabber/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libloqui_jabber.la: $(libloqui_jabber_la_OBJECTS) $(libloqui_jabber_la_DEPENDENCIES) $(EXTRA_libloqui_jabber_la_DEPENDENCIES) $(LINK) $(libloqui_jabber_la_OBJECTS) $(libloqui_jabber_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-account-jabber.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am @MAINTAINER_MODE_TRUE@Makefile.am: %: %.m4 $(top_srcdir)/loqui-am-macros.m4 @MAINTAINER_MODE_TRUE@ m4 -I$(top_srcdir) $< > $@ show-needless-svn-ignore: all-am @svn propget svn:ignore . | while read line; do \ [ ! -z "$$(find . -maxdepth 1 -name "$$line" -print)" ] || \ echo "$$line"; \ done add-built-sources-to-bzr-ignore: @set -e;tmpname=$$(mktemp -t bzr-ignore-temp.XXXXXX) && ( \ ((cat "$(top_srcdir)/.bzrignore"; \ echo -n "$(BUILT_SOURCES)" | tr " " "\n" | sed -e "s|^|$(subdir)/|") | \ sort | uniq > "$$tmpname") && \ if cmp -s "$(top_srcdir)/.bzrignore" "$$tmpname"; then \ rm "$$tmpname"; \ else \ mv "$$tmpname" "$(top_srcdir)/.bzrignore"; \ fi; \ ) %.c %.h %-private.h: %.gob gob2 --always-private-header $< # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/libloqui/protocols/jabber/loqui-account-jabber.c0000664000175000017500000001062612121605257021046 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-account-jabber.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2005 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-account-jabber.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-account-jabber.h" #include "loqui-account-jabber-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 29 "loqui-account-jabber.gob" #include #include #line 56 "loqui-account-jabber.c" /* self casting macros */ #define SELF(x) LOQUI_ACCOUNT_JABBER(x) #define SELF_CONST(x) LOQUI_ACCOUNT_JABBER_CONST(x) #define IS_SELF(x) LOQUI_IS_ACCOUNT_JABBER(x) #define TYPE_SELF LOQUI_TYPE_ACCOUNT_JABBER #define SELF_CLASS(x) LOQUI_ACCOUNT_JABBER_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_ACCOUNT_JABBER_GET_CLASS(x) /* self typedefs */ typedef LoquiAccountJabber Self; typedef LoquiAccountJabberClass SelfClass; /* here are local prototypes */ #line 0 "loqui-account-jabber.gob" static void loqui_account_jabber_init (LoquiAccountJabber * o) G_GNUC_UNUSED; #line 73 "loqui-account-jabber.c" #line 0 "loqui-account-jabber.gob" static void loqui_account_jabber_class_init (LoquiAccountJabberClass * c) G_GNUC_UNUSED; #line 76 "loqui-account-jabber.c" /* pointer to the class of our parent */ static LoquiAccountClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_account_jabber_new GType loqui_account_jabber_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiAccountJabberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_account_jabber_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiAccountJabber), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_account_jabber_init, NULL }; type = g_type_register_static (LOQUI_TYPE_ACCOUNT, "LoquiAccountJabber", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiAccountJabber *)g_object_new(loqui_account_jabber_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiAccountJabber * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiAccountJabber * GET_NEW_VARG (const char *first, ...) { LoquiAccountJabber *ret; va_list ap; va_start (ap, first); ret = (LoquiAccountJabber *)g_object_new_valist (loqui_account_jabber_get_type (), first, ap); va_end (ap); return ret; } static void loqui_account_jabber_init (LoquiAccountJabber * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Account:Jabber::init" } #undef __GOB_FUNCTION__ static void loqui_account_jabber_class_init (LoquiAccountJabberClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Account:Jabber::class_init" parent_class = g_type_class_ref (LOQUI_TYPE_ACCOUNT); } #undef __GOB_FUNCTION__ #line 37 "loqui-account-jabber.gob" LoquiAccountJabber * loqui_account_jabber_new (void) { #line 147 "loqui-account-jabber.c" #define __GOB_FUNCTION__ "Loqui:Account:Jabber::new" { #line 38 "loqui-account-jabber.gob" Self *self; self = GET_NEW; return self; }} #line 157 "loqui-account-jabber.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/protocols/jabber/loqui-account-jabber.gob0000664000175000017500000000227512121600532021363 00000000000000requires 2.0.0 %alltop{ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2005 Yoichi Imai * * This Library 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 the Gnome 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. */ %} %h{ #include %} %{ #include #include %} class Loqui:Account:Jabber from Loqui:Account { public Loqui:Account:Jabber * new(void) { Self *self; self = GET_NEW; return self; } } loqui-0.5.5/libloqui/protocols/jabber/Makefile.am0000664000175000017500000000251412121622350016716 00000000000000if MAINTAINER_MODE Makefile.am: %: %.m4 $(top_srcdir)/loqui-am-macros.m4 m4 -I$(top_srcdir) $< > $@ endif MAINTAINER_MODE show-needless-svn-ignore: all-am @svn propget svn:ignore . | while read line; do \ [ ! -z "$$(find . -maxdepth 1 -name "$$line" -print)" ] || \ echo "$$line"; \ done add-built-sources-to-bzr-ignore: @set -e;tmpname=$$(mktemp -t bzr-ignore-temp.XXXXXX) && ( \ ((cat "$(top_srcdir)/.bzrignore"; \ echo -n "$(BUILT_SOURCES)" | tr " " "\n" | sed -e "s|^|$(subdir)/|") | \ sort | uniq > "$$tmpname") && \ if cmp -s "$(top_srcdir)/.bzrignore" "$$tmpname"; then \ rm "$$tmpname"; \ else \ mv "$$tmpname" "$(top_srcdir)/.bzrignore"; \ fi; \ ) INCLUDES = $(GLIB_CFLAGS) $(GNET_CFLAGS) $(EXTRA_WARNING_CFLAGS) -I$(includedir) -I$(top_srcdir) -DG_LOG_DOMAIN=\"libloqui\" AM_CFLAGS = -g -Wall -Wredundant-decls -Wmissing-declarations -Wmissing-prototypes %.c %.h %-private.h: %.gob gob2 --always-private-header $< noinst_LTLIBRARIES = libloqui_jabber.la BUILT_SOURCES := \ loqui-account-jabber.c \ loqui-account-jabber.h \ loqui-account-jabber-private.h libloqui_jabber_la_SOURCES = \ loqui-account-jabber.gob \ loqui-account-jabber.c \ loqui-account-jabber.h \ loqui-account-jabber-private.h libloqui_jabber_la_LIBADD = \ $(top_builddir)/libloqui/libloqui.la loqui-0.5.5/libloqui/protocols/jabber/loqui-account-jabber.h0000664000175000017500000000503612121605257021052 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2005 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_ACCOUNT_JABBER_H__ #define __LOQUI_ACCOUNT_JABBER_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define LOQUI_TYPE_ACCOUNT_JABBER (loqui_account_jabber_get_type()) #define LOQUI_ACCOUNT_JABBER(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_account_jabber_get_type(), LoquiAccountJabber) #define LOQUI_ACCOUNT_JABBER_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_account_jabber_get_type(), LoquiAccountJabber const) #define LOQUI_ACCOUNT_JABBER_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_account_jabber_get_type(), LoquiAccountJabberClass) #define LOQUI_IS_ACCOUNT_JABBER(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_account_jabber_get_type ()) #define LOQUI_ACCOUNT_JABBER_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_account_jabber_get_type(), LoquiAccountJabberClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_ACCOUNT_JABBER__ #define __TYPEDEF_LOQUI_ACCOUNT_JABBER__ typedef struct _LoquiAccountJabber LoquiAccountJabber; #endif struct _LoquiAccountJabber { LoquiAccount __parent__; }; /* * Class definition */ typedef struct _LoquiAccountJabberClass LoquiAccountJabberClass; struct _LoquiAccountJabberClass { LoquiAccountClass __parent__; }; /* * Public methods */ GType loqui_account_jabber_get_type (void) G_GNUC_CONST; #line 37 "loqui-account-jabber.gob" LoquiAccountJabber * loqui_account_jabber_new (void); #line 77 "loqui-account-jabber.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/protocols/jabber/loqui-account-jabber-private.h0000664000175000017500000000241312121605257022516 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2005 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 3 "loqui-account-jabber.gob" #line 27 "loqui-account-jabber-private.h" #ifndef __LOQUI_ACCOUNT_JABBER_PRIVATE_H__ #define __LOQUI_ACCOUNT_JABBER_PRIVATE_H__ #include "loqui-account-jabber.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/protocols/Makefile.am0000664000175000017500000000002112121600532015456 00000000000000SUBDIRS = jabber loqui-0.5.5/libloqui/loqui-generic-profile-factory-private.h0000664000175000017500000000302012121605231021070 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 3 "loqui-generic-profile-factory.gob" #line 27 "loqui-generic-profile-factory-private.h" #ifndef __LOQUI_GENERIC_PROFILE_FACTORY_PRIVATE_H__ #define __LOQUI_GENERIC_PROFILE_FACTORY_PRIVATE_H__ #include "loqui-generic-profile-factory.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ struct _LoquiGenericProfileFactoryPrivate { #line 36 "loqui-generic-profile-factory.gob" gchar * name; #line 37 "loqui-generic-profile-factory.gob" GType type; #line 42 "loqui-generic-profile-factory-private.h" }; #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui-transfer-item.c0000664000175000017500000007035512121605231015473 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-transfer-item.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-transfer-item.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-transfer-item.h" #include "loqui-transfer-item-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 29 "loqui-transfer-item.gob" #include #include "loqui-utils.h" LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiTransferItem, loqui_transfer_item, filename); #line 57 "loqui-transfer-item.c" /* self casting macros */ #define SELF(x) LOQUI_TRANSFER_ITEM(x) #define SELF_CONST(x) LOQUI_TRANSFER_ITEM_CONST(x) #define IS_SELF(x) LOQUI_IS_TRANSFER_ITEM(x) #define TYPE_SELF LOQUI_TYPE_TRANSFER_ITEM #define SELF_CLASS(x) LOQUI_TRANSFER_ITEM_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_TRANSFER_ITEM_GET_CLASS(x) /* self typedefs */ typedef LoquiTransferItem Self; typedef LoquiTransferItemClass SelfClass; /* here are local prototypes */ static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec); static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec); #line 0 "loqui-transfer-item.gob" static void loqui_transfer_item_init (LoquiTransferItem * o) G_GNUC_UNUSED; #line 76 "loqui-transfer-item.c" #line 0 "loqui-transfer-item.gob" static void loqui_transfer_item_class_init (LoquiTransferItemClass * c) G_GNUC_UNUSED; #line 79 "loqui-transfer-item.c" /* * Signal connection wrapper macro shortcuts */ #define self_connect__start(object,func,data) loqui_transfer_item_connect__start((object),(func),(data)) #define self_connect_after__start(object,func,data) loqui_transfer_item_connect_after__start((object),(func),(data)) #define self_connect_data__start(object,func,data,destroy_data,flags) loqui_transfer_item_connect_data__start((object),(func),(data),(destroy_data),(flags)) #define self_connect__cancel(object,func,data) loqui_transfer_item_connect__cancel((object),(func),(data)) #define self_connect_after__cancel(object,func,data) loqui_transfer_item_connect_after__cancel((object),(func),(data)) #define self_connect_data__cancel(object,func,data,destroy_data,flags) loqui_transfer_item_connect_data__cancel((object),(func),(data),(destroy_data),(flags)) #define self_connect__completed(object,func,data) loqui_transfer_item_connect__completed((object),(func),(data)) #define self_connect_after__completed(object,func,data) loqui_transfer_item_connect_after__completed((object),(func),(data)) #define self_connect_data__completed(object,func,data,destroy_data,flags) loqui_transfer_item_connect_data__completed((object),(func),(data),(destroy_data),(flags)) #define self_connect__info(object,func,data) loqui_transfer_item_connect__info((object),(func),(data)) #define self_connect_after__info(object,func,data) loqui_transfer_item_connect_after__info((object),(func),(data)) #define self_connect_data__info(object,func,data,destroy_data,flags) loqui_transfer_item_connect_data__info((object),(func),(data),(destroy_data),(flags)) #define self_connect__warn(object,func,data) loqui_transfer_item_connect__warn((object),(func),(data)) #define self_connect_after__warn(object,func,data) loqui_transfer_item_connect_after__warn((object),(func),(data)) #define self_connect_data__warn(object,func,data,destroy_data,flags) loqui_transfer_item_connect_data__warn((object),(func),(data),(destroy_data),(flags)) typedef void (*___Sig1) (LoquiTransferItem *, gchar *, gpointer); static void ___marshal_Sig1 (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { register ___Sig1 callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 2); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (___Sig1) (marshal_data != NULL ? marshal_data : cc->callback); callback ((LoquiTransferItem *)data1, (gchar *) g_value_get_string (param_values + 1), data2); } enum { START_SIGNAL, CANCEL_SIGNAL, COMPLETED_SIGNAL, INFO_SIGNAL, WARN_SIGNAL, LAST_SIGNAL }; enum { PROP_0, PROP_DIRNAME, PROP_FILENAME, PROP_IS_UPLOAD, PROP_PORT, PROP_ADDRESS, PROP_SIZE, PROP_PERCENT }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_get_dirname loqui_transfer_item_get_dirname #define self_set_dirname loqui_transfer_item_set_dirname #define self_get_is_upload loqui_transfer_item_get_is_upload #define self_set_is_upload loqui_transfer_item_set_is_upload #define self_get_port loqui_transfer_item_get_port #define self_set_port loqui_transfer_item_set_port #define self_get_address loqui_transfer_item_get_address #define self_set_address loqui_transfer_item_set_address #define self_get_size loqui_transfer_item_get_size #define self_set_size loqui_transfer_item_set_size #define self_get_percent loqui_transfer_item_get_percent #define self_set_percent loqui_transfer_item_set_percent #define self_new loqui_transfer_item_new #define self_start loqui_transfer_item_start #define self_cancel loqui_transfer_item_cancel #define self_completed loqui_transfer_item_completed #define self_info loqui_transfer_item_info #define self_warn loqui_transfer_item_warn #define self_information loqui_transfer_item_information #define self_warning loqui_transfer_item_warning #define self_get_path_local loqui_transfer_item_get_path_local #define self_get_path_raw loqui_transfer_item_get_path_raw GType loqui_transfer_item_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiTransferItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_transfer_item_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiTransferItem), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_transfer_item_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiTransferItem", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiTransferItem *)g_object_new(loqui_transfer_item_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiTransferItem * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiTransferItem * GET_NEW_VARG (const char *first, ...) { LoquiTransferItem *ret; va_list ap; va_start (ap, first); ret = (LoquiTransferItem *)g_object_new_valist (loqui_transfer_item_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Transfer:Item::dispose" LoquiTransferItem *self G_GNUC_UNUSED = LOQUI_TRANSFER_ITEM (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #line 38 "loqui-transfer-item.gob" if(self->dirname) { g_free ((gpointer) self->dirname); self->dirname = NULL; } #line 232 "loqui-transfer-item.c" #line 39 "loqui-transfer-item.gob" if(self->filename) { g_free ((gpointer) self->filename); self->filename = NULL; } #line 235 "loqui-transfer-item.c" #line 41 "loqui-transfer-item.gob" if(self->address) { g_free ((gpointer) self->address); self->address = NULL; } #line 238 "loqui-transfer-item.c" } #undef __GOB_FUNCTION__ static void loqui_transfer_item_init (LoquiTransferItem * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Transfer:Item::init" #line 29 "loqui-transfer-item.gob" o->dirname = NULL; #line 248 "loqui-transfer-item.c" #line 29 "loqui-transfer-item.gob" o->filename = NULL; #line 251 "loqui-transfer-item.c" #line 29 "loqui-transfer-item.gob" o->address = NULL; #line 254 "loqui-transfer-item.c" } #undef __GOB_FUNCTION__ static void loqui_transfer_item_class_init (LoquiTransferItemClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Transfer:Item::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; parent_class = g_type_class_ref (G_TYPE_OBJECT); object_signals[START_SIGNAL] = g_signal_new ("start", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiTransferItemClass, start), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); object_signals[CANCEL_SIGNAL] = g_signal_new ("cancel", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiTransferItemClass, cancel), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); object_signals[COMPLETED_SIGNAL] = g_signal_new ("completed", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiTransferItemClass, completed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); object_signals[INFO_SIGNAL] = g_signal_new ("info", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiTransferItemClass, info), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_STRING); if ___GOB_UNLIKELY(sizeof(const gchar * ) != sizeof(gchar *) || parent_class == NULL /* avoid warning */) { g_error("loqui-transfer-item.gob line 99: Type mismatch of \"info\" signal signature"); } object_signals[WARN_SIGNAL] = g_signal_new ("warn", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiTransferItemClass, warn), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_STRING); if ___GOB_UNLIKELY(sizeof(const gchar * ) != sizeof(gchar *) || parent_class == NULL /* avoid warning */) { g_error("loqui-transfer-item.gob line 105: Type mismatch of \"warn\" signal signature"); } c->start = NULL; c->cancel = NULL; c->completed = NULL; c->info = NULL; c->warn = NULL; g_object_class->dispose = ___dispose; g_object_class->get_property = ___object_get_property; g_object_class->set_property = ___object_set_property; { GParamSpec *param_spec; param_spec = g_param_spec_string ("dirname" /* name */, _("dirname") /* nick */, _("Directory Name") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_DIRNAME, param_spec); param_spec = g_param_spec_string ("filename" /* name */, _("filename") /* nick */, _("Filename") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_FILENAME, param_spec); param_spec = g_param_spec_boolean ("is_upload" /* name */, _("is_upload") /* nick */, _("Is upload") /* blurb */, FALSE /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_IS_UPLOAD, param_spec); param_spec = g_param_spec_int ("port" /* name */, _("port") /* nick */, _("Port") /* blurb */, G_MININT /* minimum */, G_MAXINT /* maximum */, 0 /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_PORT, param_spec); param_spec = g_param_spec_string ("address" /* name */, _("address") /* nick */, _("Address") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_ADDRESS, param_spec); param_spec = g_param_spec_int ("size" /* name */, _("size") /* nick */, _("Size") /* blurb */, G_MININT /* minimum */, G_MAXINT /* maximum */, 0 /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_SIZE, param_spec); param_spec = g_param_spec_double ("percent" /* name */, _("percent") /* nick */, _("Percent") /* blurb */, -G_MAXDOUBLE /* minimum */, G_MAXDOUBLE /* maximum */, 0.0 /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_PERCENT, param_spec); } } #undef __GOB_FUNCTION__ static void ___object_set_property (GObject *object, guint property_id, const GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Transfer:Item::set_property" { LoquiTransferItem *self G_GNUC_UNUSED; self = LOQUI_TRANSFER_ITEM (object); switch (property_id) { case PROP_DIRNAME: { #line 46 "loqui-transfer-item.gob" { char *old = self->dirname; self->dirname = g_value_dup_string (VAL); g_free (old); } #line 414 "loqui-transfer-item.c" } break; case PROP_FILENAME: { #line 53 "loqui-transfer-item.gob" loqui_transfer_item_set_filename(self, g_value_get_string(VAL)); #line 421 "loqui-transfer-item.c" } break; case PROP_IS_UPLOAD: { #line 56 "loqui-transfer-item.gob" self->is_upload = g_value_get_boolean (VAL); #line 428 "loqui-transfer-item.c" } break; case PROP_PORT: { #line 61 "loqui-transfer-item.gob" self->port = g_value_get_int (VAL); #line 435 "loqui-transfer-item.c" } break; case PROP_ADDRESS: { #line 65 "loqui-transfer-item.gob" { char *old = self->address; self->address = g_value_dup_string (VAL); g_free (old); } #line 442 "loqui-transfer-item.c" } break; case PROP_SIZE: { #line 69 "loqui-transfer-item.gob" self->size = g_value_get_int (VAL); #line 449 "loqui-transfer-item.c" } break; case PROP_PERCENT: { #line 73 "loqui-transfer-item.gob" self->percent = g_value_get_double (VAL); #line 456 "loqui-transfer-item.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ static void ___object_get_property (GObject *object, guint property_id, GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_property" { LoquiTransferItem *self G_GNUC_UNUSED; self = LOQUI_TRANSFER_ITEM (object); switch (property_id) { case PROP_DIRNAME: { #line 46 "loqui-transfer-item.gob" g_value_set_string (VAL, self->dirname); #line 487 "loqui-transfer-item.c" } break; case PROP_FILENAME: { #line 54 "loqui-transfer-item.gob" g_value_set_string(VAL, loqui_transfer_item_get_filename(self)); #line 494 "loqui-transfer-item.c" } break; case PROP_IS_UPLOAD: { #line 56 "loqui-transfer-item.gob" g_value_set_boolean (VAL, self->is_upload); #line 501 "loqui-transfer-item.c" } break; case PROP_PORT: { #line 61 "loqui-transfer-item.gob" g_value_set_int (VAL, self->port); #line 508 "loqui-transfer-item.c" } break; case PROP_ADDRESS: { #line 65 "loqui-transfer-item.gob" g_value_set_string (VAL, self->address); #line 515 "loqui-transfer-item.c" } break; case PROP_SIZE: { #line 69 "loqui-transfer-item.gob" g_value_set_int (VAL, self->size); #line 522 "loqui-transfer-item.c" } break; case PROP_PERCENT: { #line 73 "loqui-transfer-item.gob" g_value_set_double (VAL, self->percent); #line 529 "loqui-transfer-item.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ #line 46 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_dirname (LoquiTransferItem * self) { #line 550 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_dirname" { #line 46 "loqui-transfer-item.gob" gchar* val; g_object_get (G_OBJECT (self), "dirname", &val, NULL); return val; }} #line 556 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 46 "loqui-transfer-item.gob" void loqui_transfer_item_set_dirname (LoquiTransferItem * self, gchar * val) { #line 563 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::set_dirname" { #line 46 "loqui-transfer-item.gob" g_object_set (G_OBJECT (self), "dirname", val, NULL); }} #line 569 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 56 "loqui-transfer-item.gob" gboolean loqui_transfer_item_get_is_upload (LoquiTransferItem * self) { #line 576 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_is_upload" { #line 56 "loqui-transfer-item.gob" gboolean val; g_object_get (G_OBJECT (self), "is_upload", &val, NULL); return val; }} #line 582 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 56 "loqui-transfer-item.gob" void loqui_transfer_item_set_is_upload (LoquiTransferItem * self, gboolean val) { #line 589 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::set_is_upload" { #line 56 "loqui-transfer-item.gob" g_object_set (G_OBJECT (self), "is_upload", val, NULL); }} #line 595 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 61 "loqui-transfer-item.gob" gint loqui_transfer_item_get_port (LoquiTransferItem * self) { #line 602 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_port" { #line 61 "loqui-transfer-item.gob" gint val; g_object_get (G_OBJECT (self), "port", &val, NULL); return val; }} #line 608 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 61 "loqui-transfer-item.gob" void loqui_transfer_item_set_port (LoquiTransferItem * self, gint val) { #line 615 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::set_port" { #line 61 "loqui-transfer-item.gob" g_object_set (G_OBJECT (self), "port", val, NULL); }} #line 621 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 65 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_address (LoquiTransferItem * self) { #line 628 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_address" { #line 65 "loqui-transfer-item.gob" gchar* val; g_object_get (G_OBJECT (self), "address", &val, NULL); return val; }} #line 634 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 65 "loqui-transfer-item.gob" void loqui_transfer_item_set_address (LoquiTransferItem * self, gchar * val) { #line 641 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::set_address" { #line 65 "loqui-transfer-item.gob" g_object_set (G_OBJECT (self), "address", val, NULL); }} #line 647 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 69 "loqui-transfer-item.gob" gint loqui_transfer_item_get_size (LoquiTransferItem * self) { #line 654 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_size" { #line 69 "loqui-transfer-item.gob" gint val; g_object_get (G_OBJECT (self), "size", &val, NULL); return val; }} #line 660 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 69 "loqui-transfer-item.gob" void loqui_transfer_item_set_size (LoquiTransferItem * self, gint val) { #line 667 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::set_size" { #line 69 "loqui-transfer-item.gob" g_object_set (G_OBJECT (self), "size", val, NULL); }} #line 673 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 73 "loqui-transfer-item.gob" gdouble loqui_transfer_item_get_percent (LoquiTransferItem * self) { #line 680 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_percent" { #line 73 "loqui-transfer-item.gob" gdouble val; g_object_get (G_OBJECT (self), "percent", &val, NULL); return val; }} #line 686 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 73 "loqui-transfer-item.gob" void loqui_transfer_item_set_percent (LoquiTransferItem * self, gdouble val) { #line 693 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::set_percent" { #line 73 "loqui-transfer-item.gob" g_object_set (G_OBJECT (self), "percent", val, NULL); }} #line 699 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 78 "loqui-transfer-item.gob" LoquiTransferItem * loqui_transfer_item_new (void) { #line 706 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::new" { #line 79 "loqui-transfer-item.gob" Self *self; self = GET_NEW; return self; }} #line 717 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 87 "loqui-transfer-item.gob" void loqui_transfer_item_start (LoquiTransferItem * self) { #line 724 "loqui-transfer-item.c" GValue ___param_values[1]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 87 "loqui-transfer-item.gob" g_return_if_fail (self != NULL); #line 87 "loqui-transfer-item.gob" g_return_if_fail (LOQUI_IS_TRANSFER_ITEM (self)); #line 735 "loqui-transfer-item.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); g_signal_emitv (___param_values, object_signals[START_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); } #line 91 "loqui-transfer-item.gob" void loqui_transfer_item_cancel (LoquiTransferItem * self) { #line 753 "loqui-transfer-item.c" GValue ___param_values[1]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 91 "loqui-transfer-item.gob" g_return_if_fail (self != NULL); #line 91 "loqui-transfer-item.gob" g_return_if_fail (LOQUI_IS_TRANSFER_ITEM (self)); #line 764 "loqui-transfer-item.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); g_signal_emitv (___param_values, object_signals[CANCEL_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); } #line 95 "loqui-transfer-item.gob" void loqui_transfer_item_completed (LoquiTransferItem * self) { #line 782 "loqui-transfer-item.c" GValue ___param_values[1]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 95 "loqui-transfer-item.gob" g_return_if_fail (self != NULL); #line 95 "loqui-transfer-item.gob" g_return_if_fail (LOQUI_IS_TRANSFER_ITEM (self)); #line 793 "loqui-transfer-item.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); g_signal_emitv (___param_values, object_signals[COMPLETED_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); } #line 99 "loqui-transfer-item.gob" void loqui_transfer_item_info (LoquiTransferItem * self, const gchar * text) { #line 811 "loqui-transfer-item.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 99 "loqui-transfer-item.gob" g_return_if_fail (self != NULL); #line 99 "loqui-transfer-item.gob" g_return_if_fail (LOQUI_IS_TRANSFER_ITEM (self)); #line 822 "loqui-transfer-item.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_STRING); g_value_set_static_string (&___param_values[1], (gchar *) text); g_signal_emitv (___param_values, object_signals[INFO_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 105 "loqui-transfer-item.gob" void loqui_transfer_item_warn (LoquiTransferItem * self, const gchar * text) { #line 845 "loqui-transfer-item.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 105 "loqui-transfer-item.gob" g_return_if_fail (self != NULL); #line 105 "loqui-transfer-item.gob" g_return_if_fail (LOQUI_IS_TRANSFER_ITEM (self)); #line 856 "loqui-transfer-item.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_STRING); g_value_set_static_string (&___param_values[1], (gchar *) text); g_signal_emitv (___param_values, object_signals[WARN_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 111 "loqui-transfer-item.gob" void loqui_transfer_item_information (LoquiTransferItem * self, const gchar * format, ...) { #line 879 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::information" #line 111 "loqui-transfer-item.gob" g_return_if_fail (self != NULL); #line 111 "loqui-transfer-item.gob" g_return_if_fail (LOQUI_IS_TRANSFER_ITEM (self)); #line 885 "loqui-transfer-item.c" { #line 112 "loqui-transfer-item.gob" va_list args; gchar *str; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); self_info(self, str); g_free(str); }} #line 900 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 125 "loqui-transfer-item.gob" void loqui_transfer_item_warning (LoquiTransferItem * self, const gchar * format, ...) { #line 907 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::warning" #line 125 "loqui-transfer-item.gob" g_return_if_fail (self != NULL); #line 125 "loqui-transfer-item.gob" g_return_if_fail (LOQUI_IS_TRANSFER_ITEM (self)); #line 913 "loqui-transfer-item.c" { #line 126 "loqui-transfer-item.gob" va_list args; gchar *str; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); self_warn(self, str); g_free(str); }} #line 928 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 139 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_path_local (LoquiTransferItem * self) { #line 935 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_path_local" #line 139 "loqui-transfer-item.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 139 "loqui-transfer-item.gob" g_return_val_if_fail (LOQUI_IS_TRANSFER_ITEM (self), (gchar * )0); #line 941 "loqui-transfer-item.c" { #line 140 "loqui-transfer-item.gob" /* TODO: convertion ? */ return self_get_path_raw(self); }} #line 948 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ #line 145 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_path_raw (LoquiTransferItem * self) { #line 955 "loqui-transfer-item.c" #define __GOB_FUNCTION__ "Loqui:Transfer:Item::get_path_raw" #line 145 "loqui-transfer-item.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 145 "loqui-transfer-item.gob" g_return_val_if_fail (LOQUI_IS_TRANSFER_ITEM (self), (gchar * )0); #line 961 "loqui-transfer-item.c" { #line 146 "loqui-transfer-item.gob" gchar *tmp; tmp = g_strconcat(self->dirname, G_DIR_SEPARATOR_S, self->filename, NULL); return tmp; }} #line 971 "loqui-transfer-item.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/loqui-socket-ipmsg.c0000664000175000017500000004205512121605231015314 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-socket-ipmsg.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-socket-ipmsg.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-socket-ipmsg.h" #include "loqui-socket-ipmsg-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 30 "loqui-socket-ipmsg.gob" #include #include "loqui-utils.h" #include "ipmsg_packet.h" #include "ipmsg.h" #include #include #include "loqui-static-core.h" #include "loqui-account-ipmsg.h" #include "loqui-receiver-ipmsg.h" #include #line 66 "loqui-socket-ipmsg.c" #line 46 "loqui-socket-ipmsg.gob" #define SELF_GET_ACCOUNT(self) (self->account) #define SELF_GET_ACCOUNT_IPMSG(self) (LOQUI_ACCOUNT_IPMSG(SELF_GET_ACCOUNT(self))) #line 73 "loqui-socket-ipmsg.c" /* self casting macros */ #define SELF(x) LOQUI_SOCKET_IPMSG(x) #define SELF_CONST(x) LOQUI_SOCKET_IPMSG_CONST(x) #define IS_SELF(x) LOQUI_IS_SOCKET_IPMSG(x) #define TYPE_SELF LOQUI_TYPE_SOCKET_IPMSG #define SELF_CLASS(x) LOQUI_SOCKET_IPMSG_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_SOCKET_IPMSG_GET_CLASS(x) /* self typedefs */ typedef LoquiSocketIPMsg Self; typedef LoquiSocketIPMsgClass SelfClass; /* here are local prototypes */ #line 0 "loqui-socket-ipmsg.gob" static void loqui_socket_ipmsg_init (LoquiSocketIPMsg * o) G_GNUC_UNUSED; #line 90 "loqui-socket-ipmsg.c" #line 0 "loqui-socket-ipmsg.gob" static void loqui_socket_ipmsg_class_init (LoquiSocketIPMsgClass * c) G_GNUC_UNUSED; #line 93 "loqui-socket-ipmsg.c" #line 66 "loqui-socket-ipmsg.gob" static gboolean loqui_socket_ipmsg_watch_in_cb (GIOChannel * ioch, GIOCondition condition, Self * self) G_GNUC_UNUSED; #line 96 "loqui-socket-ipmsg.c" /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_watch_in_cb loqui_socket_ipmsg_watch_in_cb #define self_bind loqui_socket_ipmsg_bind #define self_unbind loqui_socket_ipmsg_unbind #define self_send_packet_with_inetaddr loqui_socket_ipmsg_send_packet_with_inetaddr #define self_send_packet loqui_socket_ipmsg_send_packet #define self_send_packet_to_default loqui_socket_ipmsg_send_packet_to_default #define self_get_current_port loqui_socket_ipmsg_get_current_port #define self_new loqui_socket_ipmsg_new GType loqui_socket_ipmsg_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiSocketIPMsgClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_socket_ipmsg_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiSocketIPMsg), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_socket_ipmsg_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiSocketIPMsg", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiSocketIPMsg *)g_object_new(loqui_socket_ipmsg_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiSocketIPMsg * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiSocketIPMsg * GET_NEW_VARG (const char *first, ...) { LoquiSocketIPMsg *ret; va_list ap; va_start (ap, first); ret = (LoquiSocketIPMsg *)g_object_new_valist (loqui_socket_ipmsg_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::dispose" LoquiSocketIPMsg *self G_GNUC_UNUSED = LOQUI_SOCKET_IPMSG (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #define udpsock (self->_priv->udpsock) #define VAR udpsock { #line 53 "loqui-socket-ipmsg.gob" self_unbind(self); } #line 167 "loqui-socket-ipmsg.c" memset(&udpsock, 0, sizeof(udpsock)); #undef VAR #undef udpsock #line 57 "loqui-socket-ipmsg.gob" if(self->_priv->inetaddr_broadcast) { g_object_unref ((gpointer) self->_priv->inetaddr_broadcast); self->_priv->inetaddr_broadcast = NULL; } #line 173 "loqui-socket-ipmsg.c" #line 59 "loqui-socket-ipmsg.gob" if(self->_priv->codeconv) { g_object_unref ((gpointer) self->_priv->codeconv); self->_priv->codeconv = NULL; } #line 176 "loqui-socket-ipmsg.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::finalize" LoquiSocketIPMsg *self G_GNUC_UNUSED = LOQUI_SOCKET_IPMSG (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_socket_ipmsg_init (LoquiSocketIPMsg * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_SOCKET_IPMSG,LoquiSocketIPMsgPrivate); } #undef __GOB_FUNCTION__ static void loqui_socket_ipmsg_class_init (LoquiSocketIPMsgClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiSocketIPMsgPrivate)); parent_class = g_type_class_ref (G_TYPE_OBJECT); g_object_class->dispose = ___dispose; g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 66 "loqui-socket-ipmsg.gob" static gboolean loqui_socket_ipmsg_watch_in_cb (GIOChannel * ioch, GIOCondition condition, Self * self) { #line 220 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::watch_in_cb" { #line 67 "loqui-socket-ipmsg.gob" #define MAXBUF 65536 gchar buf[MAXBUF+1]; gsize len; IPMsgPacket *packet; GSocketAddress *addr; gchar *local, *local_group; gint len2zero; LoquiAccount *account; GString *string; GError *error = NULL; account = SELF_GET_ACCOUNT(self); len = g_socket_receive_from(selfp->udpsock, &addr, buf, MAXBUF, NULL, &error); if (error != NULL) { loqui_account_warning(account, "Error: receiving: %s", error->message); selfp->in_watch = 0; return FALSE; } else if (len == 0) { loqui_account_warning(account, "No characters is arrived."); return TRUE; } buf[len] = '\0'; /* group message exists after '\0' */ if ((local = loqui_codeconv_to_local(selfp->codeconv, buf, &error)) == NULL) { loqui_account_warning(account, _("Failed to convert codeset: %s"), error->message); g_error_free(error); return TRUE; } string = g_string_new(local); g_free(local); len2zero = strlen(buf); if (len2zero + 1 < len) { if ((local_group = loqui_codeconv_to_local(selfp->codeconv, buf + len2zero + 1, &error)) == NULL) { loqui_account_warning(account, _("Failed to convert codeset of group: %s"), error->message); g_error_free(error); g_string_free(string, TRUE); return TRUE; } g_string_append_c(string, '\0'); g_string_append(string, local_group); g_free(local_group); } packet = ipmsg_packet_parse(string->str, string->len); if (!packet) { loqui_account_warning(account, _("Invalid packet: '%s'"), string->str); g_string_free(string, TRUE); return TRUE; } g_string_free(string, TRUE); ipmsg_packet_set_inetaddr(packet, G_INET_SOCKET_ADDRESS(addr)); g_object_unref(addr); if (loqui_core_get_show_msg_mode(loqui_get_core())) { gchar *tmp = ipmsg_packet_inspect(packet); loqui_account_print_communication(SELF_GET_ACCOUNT(self), TRUE, tmp); g_free(tmp); } loqui_receiver_ipmsg_handle(LOQUI_RECEIVER_IPMSG(SELF_GET_ACCOUNT(self)->receiver), packet); g_object_unref(packet); return TRUE; }} #line 293 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ #line 137 "loqui-socket-ipmsg.gob" gboolean loqui_socket_ipmsg_bind (LoquiSocketIPMsg * self) { #line 300 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::bind" #line 137 "loqui-socket-ipmsg.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 137 "loqui-socket-ipmsg.gob" g_return_val_if_fail (LOQUI_IS_SOCKET_IPMSG (self), (gboolean )0); #line 306 "loqui-socket-ipmsg.c" { #line 137 "loqui-socket-ipmsg.gob" GIOChannel *ioch; GError *error = NULL; GInetAddress *any_addr, *broadcast_addr; GSocketAddress *bind_addrport; int sockfd, on_flag = 1; selfp->udpsock = g_socket_new(G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, NULL); /* TODO: error handling */ any_addr = g_inet_address_new_any(G_SOCKET_FAMILY_IPV4); bind_addrport = g_inet_socket_address_new(any_addr, IPMSG_DEFAULT_PORT); g_object_unref(any_addr); g_socket_bind(selfp->udpsock, bind_addrport, TRUE, &error); g_object_unref(bind_addrport); /* FIXME: no methods available for SO_BROADCAST in gio... */ sockfd = g_socket_get_fd(selfp->udpsock); if (setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (void*) &on_flag, sizeof(on_flag)) != 0) { loqui_account_warning(SELF_GET_ACCOUNT(self), _("Failed to set SO_BROADCAST")); } if (error != NULL) { g_object_unref(selfp->udpsock); selfp->udpsock = NULL; g_error_free(error); return FALSE; } ioch = g_io_channel_unix_new(g_socket_get_fd(selfp->udpsock)); selfp->in_watch = g_io_add_watch(ioch, G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL, (GIOFunc) self_watch_in_cb, self); broadcast_addr = g_inet_address_new_from_string("255.255.255.255"); selfp->inetaddr_broadcast = G_INET_SOCKET_ADDRESS(g_inet_socket_address_new(broadcast_addr, IPMSG_DEFAULT_PORT)); g_object_unref(broadcast_addr); return TRUE; }} #line 356 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ #line 185 "loqui-socket-ipmsg.gob" void loqui_socket_ipmsg_unbind (LoquiSocketIPMsg * self) { #line 363 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::unbind" #line 185 "loqui-socket-ipmsg.gob" g_return_if_fail (self != NULL); #line 185 "loqui-socket-ipmsg.gob" g_return_if_fail (LOQUI_IS_SOCKET_IPMSG (self)); #line 369 "loqui-socket-ipmsg.c" { #line 185 "loqui-socket-ipmsg.gob" if (!selfp->udpsock) return; if (selfp->in_watch) { g_source_remove(selfp->in_watch); selfp->in_watch = 0; } g_socket_shutdown(selfp->udpsock, TRUE, TRUE, NULL); /* TODO: error handling */ selfp->udpsock = NULL; }} #line 384 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ #line 197 "loqui-socket-ipmsg.gob" void loqui_socket_ipmsg_send_packet_with_inetaddr (LoquiSocketIPMsg * self, IPMsgPacket * packet, GInetSocketAddress * inetaddr) { #line 391 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::send_packet_with_inetaddr" #line 197 "loqui-socket-ipmsg.gob" g_return_if_fail (self != NULL); #line 197 "loqui-socket-ipmsg.gob" g_return_if_fail (LOQUI_IS_SOCKET_IPMSG (self)); #line 397 "loqui-socket-ipmsg.c" { #line 197 "loqui-socket-ipmsg.gob" gchar *body_local = NULL, *group_local = NULL, *body_serv = NULL, *group_serv = NULL; GError *error = NULL; GString *string; if (!selfp->udpsock) return; ipmsg_packet_to_string(packet, &body_local, &group_local); if ((body_serv = loqui_codeconv_to_server(selfp->codeconv, body_local, &error)) == NULL) { loqui_account_warning(SELF_GET_ACCOUNT(self), "Failed to convert codeset(%s): %s.", error->message, body_local); g_error_free(error); g_free(body_local); g_free(group_local); return; } if (group_local != NULL && ((group_serv = loqui_codeconv_to_server(selfp->codeconv, group_local, &error)) == NULL)) { loqui_account_warning(SELF_GET_ACCOUNT(self), "Failed to convert codeset(%s): %s.", error->message, group_local); g_error_free(error); g_free(body_local); g_free(group_local); g_free(body_serv); return; } string = g_string_new(body_serv); if (group_serv != NULL) { g_string_append_c(string, '\0'); g_string_append(string, group_serv); } g_free(body_serv); g_free(group_serv); g_socket_send_to(selfp->udpsock, G_SOCKET_ADDRESS(inetaddr), string->str, string->len, NULL, &error); /* TODO: cancellable, error handling*/ if (error != NULL) { loqui_account_warning(SELF_GET_ACCOUNT(self), "Can't send text: %s", error->message); g_error_free(error); return; } g_string_free(string, TRUE); if (loqui_core_get_show_msg_mode(loqui_get_core())) { gchar *tmp = ipmsg_packet_inspect(packet); loqui_account_print_communication(SELF_GET_ACCOUNT(self), FALSE, tmp); g_free(tmp); } }} #line 453 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ #line 251 "loqui-socket-ipmsg.gob" void loqui_socket_ipmsg_send_packet (LoquiSocketIPMsg * self, IPMsgPacket * packet, const gchar * ip_addr, gint port) { #line 460 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::send_packet" #line 251 "loqui-socket-ipmsg.gob" g_return_if_fail (self != NULL); #line 251 "loqui-socket-ipmsg.gob" g_return_if_fail (LOQUI_IS_SOCKET_IPMSG (self)); #line 466 "loqui-socket-ipmsg.c" { #line 251 "loqui-socket-ipmsg.gob" GInetSocketAddress *inet_sock_addr; GInetAddress *inet_addr; inet_addr = g_inet_address_new_from_string(ip_addr); inet_sock_addr = G_INET_SOCKET_ADDRESS(g_inet_socket_address_new(inet_addr, port)); g_object_unref(inet_addr); self_send_packet_with_inetaddr(self, packet, inet_sock_addr); g_object_unref(inet_sock_addr); }} #line 480 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ #line 263 "loqui-socket-ipmsg.gob" void loqui_socket_ipmsg_send_packet_to_default (LoquiSocketIPMsg * self, IPMsgPacket * packet) { #line 487 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::send_packet_to_default" #line 263 "loqui-socket-ipmsg.gob" g_return_if_fail (self != NULL); #line 263 "loqui-socket-ipmsg.gob" g_return_if_fail (LOQUI_IS_SOCKET_IPMSG (self)); #line 493 "loqui-socket-ipmsg.c" { #line 263 "loqui-socket-ipmsg.gob" g_return_if_fail(selfp->inetaddr_broadcast); self_send_packet_with_inetaddr(self, packet, selfp->inetaddr_broadcast); }} #line 501 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ #line 269 "loqui-socket-ipmsg.gob" gint loqui_socket_ipmsg_get_current_port (LoquiSocketIPMsg * self) { #line 508 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::get_current_port" #line 269 "loqui-socket-ipmsg.gob" g_return_val_if_fail (self != NULL, (gint )0); #line 269 "loqui-socket-ipmsg.gob" g_return_val_if_fail (LOQUI_IS_SOCKET_IPMSG (self), (gint )0); #line 514 "loqui-socket-ipmsg.c" { #line 269 "loqui-socket-ipmsg.gob" if (!selfp->udpsock) return 0; /* TODO: error handling */ return g_inet_socket_address_get_port(G_INET_SOCKET_ADDRESS(g_socket_get_local_address(selfp->udpsock, NULL))); }} #line 524 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ #line 277 "loqui-socket-ipmsg.gob" LoquiSocketIPMsg * loqui_socket_ipmsg_new (LoquiAccount * account) { #line 531 "loqui-socket-ipmsg.c" #define __GOB_FUNCTION__ "Loqui:Socket:IPMsg::new" { #line 278 "loqui-socket-ipmsg.gob" Self *self; self = GET_NEW; self->account = account; selfp->codeconv = loqui_codeconv_new(); loqui_codeconv_set_table(selfp->codeconv, loqui_protocol_get_codeconv_table(loqui_account_get_profile(account)->protocol)); loqui_codeconv_set_mode(selfp->codeconv, LOQUI_CODECONV_MODE_AUTOMATIC); g_assert(loqui_codeconv_update(selfp->codeconv, NULL)); return self; }} #line 548 "loqui-socket-ipmsg.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/loqui-general-pref-groups.h0000664000175000017500000000040512121600532016570 00000000000000#define LOQUI_GENERAL_PREF_GROUP_ACCOUNT "Account" #define LOQUI_GENERAL_PREF_GROUP_IGNORE "Ignore" #define LOQUI_GENERAL_PREF_GROUP_MESSAGES "Messages" #define LOQUI_GENERAL_PREF_GROUP_NOTIFICATION "Notification" #define LOQUI_GENERAL_PREF_GROUP_PROXY "Proxy" loqui-0.5.5/libloqui/loqui_utils_irc.h0000664000175000017500000000246012121600532014766 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_UTILS_IRC_H__ #define __LOQUI_UTILS_IRC_H__ #include void loqui_utils_irc_parse_nick(const gchar *nick, gboolean *is_channel_operator, gboolean *speakable, gchar **nick_ptr); #define LOQUI_UTILS_IRC_STRING_IS_CHANNEL(s) ((*s == '#' || *s =='&' || *s =='!' || *s == '+')) #endif /* __LOQUI_UTILS_IRC_H__ */ loqui-0.5.5/libloqui/loqui-notifier.c0000664000175000017500000003556112121605231014532 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-notifier.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-notifier.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-notifier.h" #include "loqui-notifier-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 30 "loqui-notifier.gob" #include "libloqui-intl.h" #include "loqui-utils.h" #include "loqui-core.h" #include "loqui.h" #define HIGHLIGHT_WORD_RE_PREIX "re:" #define HIGHLIGHT_WORD_PLAIN_PREFIX "plain:" #line 61 "loqui-notifier.c" /* self casting macros */ #define SELF(x) LOQUI_NOTIFIER(x) #define SELF_CONST(x) LOQUI_NOTIFIER_CONST(x) #define IS_SELF(x) LOQUI_IS_NOTIFIER(x) #define TYPE_SELF LOQUI_TYPE_NOTIFIER #define SELF_CLASS(x) LOQUI_NOTIFIER_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_NOTIFIER_GET_CLASS(x) /* self typedefs */ typedef LoquiNotifier Self; typedef LoquiNotifierClass SelfClass; /* here are local prototypes */ #line 0 "loqui-notifier.gob" static void loqui_notifier_init (LoquiNotifier * o) G_GNUC_UNUSED; #line 78 "loqui-notifier.c" #line 0 "loqui-notifier.gob" static void loqui_notifier_class_init (LoquiNotifierClass * c) G_GNUC_UNUSED; #line 81 "loqui-notifier.c" static void ___real_loqui_notifier_process_message_text (LoquiNotifier * self, LoquiMessageText * msgtext); #line 70 "loqui-notifier.gob" static void loqui_notifier_search_highlight_word_regexp (LoquiNotifier * self, LoquiMessageText * msgtext, gchar * regexp_str) G_GNUC_UNUSED; #line 85 "loqui-notifier.c" /* * Signal connection wrapper macro shortcuts */ #define self_connect__notify_highlight(object,func,data) loqui_notifier_connect__notify_highlight((object),(func),(data)) #define self_connect_after__notify_highlight(object,func,data) loqui_notifier_connect_after__notify_highlight((object),(func),(data)) #define self_connect_data__notify_highlight(object,func,data,destroy_data,flags) loqui_notifier_connect_data__notify_highlight((object),(func),(data),(destroy_data),(flags)) #define self_connect__notify_uri(object,func,data) loqui_notifier_connect__notify_uri((object),(func),(data)) #define self_connect_after__notify_uri(object,func,data) loqui_notifier_connect_after__notify_uri((object),(func),(data)) #define self_connect_data__notify_uri(object,func,data,destroy_data,flags) loqui_notifier_connect_data__notify_uri((object),(func),(data),(destroy_data),(flags)) typedef void (*___Sig1) (LoquiNotifier *, GObject *, gpointer); static void ___marshal_Sig1 (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { register ___Sig1 callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 2); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (___Sig1) (marshal_data != NULL ? marshal_data : cc->callback); callback ((LoquiNotifier *)data1, (GObject *) g_value_get_object (param_values + 1), data2); } enum { NOTIFY_HIGHLIGHT_SIGNAL, NOTIFY_URI_SIGNAL, LAST_SIGNAL }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_notifier_new #define self_notify_highlight loqui_notifier_notify_highlight #define self_notify_uri loqui_notifier_notify_uri #define self_process_message_text loqui_notifier_process_message_text #define self_search_highlight_word_regexp loqui_notifier_search_highlight_word_regexp #define self_search_highlight_regions loqui_notifier_search_highlight_regions #define self_search_uri_regions loqui_notifier_search_uri_regions GType loqui_notifier_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiNotifierClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_notifier_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiNotifier), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_notifier_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiNotifier", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiNotifier *)g_object_new(loqui_notifier_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiNotifier * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiNotifier * GET_NEW_VARG (const char *first, ...) { LoquiNotifier *ret; va_list ap; va_start (ap, first); ret = (LoquiNotifier *)g_object_new_valist (loqui_notifier_get_type (), first, ap); va_end (ap); return ret; } static void loqui_notifier_init (LoquiNotifier * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Notifier::init" } #undef __GOB_FUNCTION__ static void loqui_notifier_class_init (LoquiNotifierClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Notifier::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; parent_class = g_type_class_ref (G_TYPE_OBJECT); object_signals[NOTIFY_HIGHLIGHT_SIGNAL] = g_signal_new ("notify_highlight", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiNotifierClass, notify_highlight), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiMessageText * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-notifier.gob line 52: Type mismatch of \"notify_highlight\" signal signature"); } object_signals[NOTIFY_URI_SIGNAL] = g_signal_new ("notify_uri", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiNotifierClass, notify_uri), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiMessageText * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-notifier.gob line 56: Type mismatch of \"notify_uri\" signal signature"); } c->notify_highlight = NULL; c->notify_uri = NULL; #line 60 "loqui-notifier.gob" c->process_message_text = ___real_loqui_notifier_process_message_text; #line 233 "loqui-notifier.c" } #undef __GOB_FUNCTION__ #line 43 "loqui-notifier.gob" LoquiNotifier * loqui_notifier_new (void) { #line 243 "loqui-notifier.c" #define __GOB_FUNCTION__ "Loqui:Notifier::new" { #line 44 "loqui-notifier.gob" LoquiNotifier *ret; ret = GET_NEW; return ret; }} #line 253 "loqui-notifier.c" #undef __GOB_FUNCTION__ #line 52 "loqui-notifier.gob" void loqui_notifier_notify_highlight (LoquiNotifier * self, LoquiMessageText * msgtext) { #line 260 "loqui-notifier.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 52 "loqui-notifier.gob" g_return_if_fail (self != NULL); #line 52 "loqui-notifier.gob" g_return_if_fail (LOQUI_IS_NOTIFIER (self)); #line 271 "loqui-notifier.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) msgtext); g_signal_emitv (___param_values, object_signals[NOTIFY_HIGHLIGHT_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 56 "loqui-notifier.gob" void loqui_notifier_notify_uri (LoquiNotifier * self, LoquiMessageText * msgtext) { #line 294 "loqui-notifier.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 56 "loqui-notifier.gob" g_return_if_fail (self != NULL); #line 56 "loqui-notifier.gob" g_return_if_fail (LOQUI_IS_NOTIFIER (self)); #line 305 "loqui-notifier.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) msgtext); g_signal_emitv (___param_values, object_signals[NOTIFY_URI_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 60 "loqui-notifier.gob" void loqui_notifier_process_message_text (LoquiNotifier * self, LoquiMessageText * msgtext) { #line 328 "loqui-notifier.c" LoquiNotifierClass *klass; #line 60 "loqui-notifier.gob" g_return_if_fail (self != NULL); #line 60 "loqui-notifier.gob" g_return_if_fail (LOQUI_IS_NOTIFIER (self)); #line 334 "loqui-notifier.c" klass = LOQUI_NOTIFIER_GET_CLASS(self); if(klass->process_message_text) (*klass->process_message_text)(self,msgtext); } #line 60 "loqui-notifier.gob" static void ___real_loqui_notifier_process_message_text (LoquiNotifier * self G_GNUC_UNUSED, LoquiMessageText * msgtext) { #line 344 "loqui-notifier.c" #define __GOB_FUNCTION__ "Loqui:Notifier::process_message_text" { #line 61 "loqui-notifier.gob" if (loqui_message_text_get_is_remark(msgtext) && self_search_highlight_regions(self, msgtext)) self_notify_highlight(self, msgtext); if (self_search_uri_regions(self, msgtext)) self_notify_uri(self, msgtext); }} #line 356 "loqui-notifier.c" #undef __GOB_FUNCTION__ #line 70 "loqui-notifier.gob" static void loqui_notifier_search_highlight_word_regexp (LoquiNotifier * self, LoquiMessageText * msgtext, gchar * regexp_str) { #line 363 "loqui-notifier.c" #define __GOB_FUNCTION__ "Loqui:Notifier::search_highlight_word_regexp" #line 70 "loqui-notifier.gob" g_return_if_fail (self != NULL); #line 70 "loqui-notifier.gob" g_return_if_fail (LOQUI_IS_NOTIFIER (self)); #line 369 "loqui-notifier.c" { #line 71 "loqui-notifier.gob" GRegex *regex; GMatchInfo *match_info; GError *error; const gchar *text; gssize string_len; gint start_pos, end_pos; LoquiMessageTextRegion *region; error = NULL; if ((regex = g_regex_new(regexp_str, 0, 0, &error)) == NULL) { g_warning("Regex compile error: %s", error->message); g_error_free(error); return; } text = loqui_message_text_get_text(msgtext); string_len = strlen(text); g_regex_match(regex, text, 0, &match_info); while (g_match_info_matches(match_info)) { g_match_info_fetch_pos(match_info, 0, &start_pos, &end_pos); region = loqui_message_text_region_create(msgtext, start_pos, end_pos); msgtext->highlight_region_list = g_list_append(msgtext->highlight_region_list, region); g_match_info_next(match_info, NULL); } g_match_info_free(match_info); g_regex_unref(regex); }} #line 402 "loqui-notifier.c" #undef __GOB_FUNCTION__ #line 102 "loqui-notifier.gob" gboolean loqui_notifier_search_highlight_regions (LoquiNotifier * self, LoquiMessageText * msgtext) { #line 409 "loqui-notifier.c" #define __GOB_FUNCTION__ "Loqui:Notifier::search_highlight_regions" #line 102 "loqui-notifier.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 102 "loqui-notifier.gob" g_return_val_if_fail (LOQUI_IS_NOTIFIER (self), (gboolean )0); #line 415 "loqui-notifier.c" { #line 103 "loqui-notifier.gob" const gchar *remark; LoquiMessageTextRegion *region; gchar **highlight_array; gboolean matched; gchar *word, *raw; gsize len; const gchar *tmp, *cur; int i; matched = FALSE; remark = loqui_message_text_get_text(msgtext); highlight_array = loqui_pref_get_string_list(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "HighlightList", NULL, NULL); if (highlight_array == NULL) return FALSE; for (i = 0; (raw = highlight_array[i]) != NULL; i++) { if (g_str_has_prefix(raw, HIGHLIGHT_WORD_RE_PREIX)) { self_search_highlight_word_regexp(self, msgtext, raw + strlen(HIGHLIGHT_WORD_RE_PREIX)); continue; } if (g_str_has_prefix(raw, HIGHLIGHT_WORD_PLAIN_PREFIX)) { word = raw + strlen(HIGHLIGHT_WORD_PLAIN_PREFIX); } else { word = raw; } len = strlen(word); for (cur = remark; (tmp = strstr(cur, word)) != NULL; cur = tmp + len) { region = loqui_message_text_region_create_from_offset(msgtext, tmp - remark, len); msgtext->highlight_region_list = g_list_append(msgtext->highlight_region_list, region); matched = TRUE; } } g_strfreev(highlight_array); return matched; }} #line 461 "loqui-notifier.c" #undef __GOB_FUNCTION__ #line 148 "loqui-notifier.gob" gboolean loqui_notifier_search_uri_regions (LoquiNotifier * self, LoquiMessageText * msgtext) { #line 468 "loqui-notifier.c" #define __GOB_FUNCTION__ "Loqui:Notifier::search_uri_regions" #line 148 "loqui-notifier.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 148 "loqui-notifier.gob" g_return_val_if_fail (LOQUI_IS_NOTIFIER (self), (gboolean )0); #line 474 "loqui-notifier.c" { #line 149 "loqui-notifier.gob" const gchar *text; const gchar *cur; const gchar *start_uri, *end_uri; LoquiMessageTextRegion *region; gboolean matched = FALSE; text = loqui_message_text_get_text(msgtext); cur = text; while (*cur && loqui_utils_search_uri(cur, NULL, &start_uri, &end_uri)) { region = loqui_message_text_region_create(msgtext, start_uri - text, end_uri - text); msgtext->uri_region_list = g_list_append(msgtext->uri_region_list, region); matched = TRUE; cur = end_uri; } return matched; }} #line 497 "loqui-notifier.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/ctcp_handle.h0000664000175000017500000000446612121600532014034 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __CTCP_HANDLE_H__ #define __CTCP_HANDLE_H__ #include #include "loqui_account.h" #include "loqui_receiver_irc.h" #include "ctcp_message.h" G_BEGIN_DECLS #define TYPE_CTCP_HANDLE (ctcp_handle_get_type ()) #define CTCP_HANDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CTCP_HANDLE, CTCPHandle)) #define CTCP_HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CTCP_HANDLE, CTCPHandleClass)) #define IS_CTCP_HANDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CTCP_HANDLE)) #define IS_CTCP_HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CTCP_HANDLE)) #define CTCP_HANDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CTCP_HANDLE, CTCPHandleClass)) typedef struct _CTCPHandle CTCPHandle; typedef struct _CTCPHandleClass CTCPHandleClass; typedef struct _CTCPHandlePrivate CTCPHandlePrivate; struct _CTCPHandle { GObject parent; CTCPHandlePrivate *priv; }; struct _CTCPHandleClass { GObjectClass parent_class; }; GType ctcp_handle_get_type (void) G_GNUC_CONST; CTCPHandle* ctcp_handle_new(LoquiReceiverIRC *receiver, LoquiAccount *account); void ctcp_handle_message(CTCPHandle *ctcp_handle, CTCPMessage *ctcp_msg, gboolean is_request); G_END_DECLS #endif /* __CTCP_HANDLE_H__ */ loqui-0.5.5/libloqui/loqui-account-manager.h0000664000175000017500000004271312121605231015761 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2005 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_ACCOUNT_MANAGER_H__ #define __LOQUI_ACCOUNT_MANAGER_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "loqui_account.h" #include "loqui_channel.h" #include "loqui_protocol_manager.h" /* * Type checking and casting macros */ #define LOQUI_TYPE_ACCOUNT_MANAGER (loqui_account_manager_get_type()) #define LOQUI_ACCOUNT_MANAGER(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_account_manager_get_type(), LoquiAccountManager) #define LOQUI_ACCOUNT_MANAGER_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_account_manager_get_type(), LoquiAccountManager const) #define LOQUI_ACCOUNT_MANAGER_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_account_manager_get_type(), LoquiAccountManagerClass) #define LOQUI_IS_ACCOUNT_MANAGER(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_account_manager_get_type ()) #define LOQUI_ACCOUNT_MANAGER_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_account_manager_get_type(), LoquiAccountManagerClass) /* Private structure type */ typedef struct _LoquiAccountManagerPrivate LoquiAccountManagerPrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_ACCOUNT_MANAGER__ #define __TYPEDEF_LOQUI_ACCOUNT_MANAGER__ typedef struct _LoquiAccountManager LoquiAccountManager; #endif struct _LoquiAccountManager { GObject __parent__; /*< public >*/ LoquiProtocolManager * protocol_manager; gint max_channel_entry_id; /*< private >*/ LoquiAccountManagerPrivate *_priv; }; /* * Class definition */ typedef struct _LoquiAccountManagerClass LoquiAccountManagerClass; struct _LoquiAccountManagerClass { GObjectClass __parent__; /*signal*/void (* add_account) (LoquiAccountManager * self, LoquiAccount * account); /*signal*/void (* remove_account) (LoquiAccountManager * self, LoquiAccount * account); /*signal*/void (* add_channel_entry) (LoquiAccountManager * self, LoquiChannelEntry * chent); /*signal*/void (* add_channel_entry_after) (LoquiAccountManager * self, LoquiChannelEntry * chent); /*signal*/void (* remove_channel_entry) (LoquiAccountManager * self, LoquiChannelEntry * chent); /*signal*/void (* remove_channel_entry_after) (LoquiAccountManager * self, LoquiChannelEntry * chent); }; /* * Public methods */ GType loqui_account_manager_get_type (void) G_GNUC_CONST; #line 66 "loqui-account-manager.gob" void loqui_account_manager_add_account (LoquiAccountManager * self, LoquiAccount * account); #line 94 "loqui-account-manager.h" #line 84 "loqui-account-manager.gob" void loqui_account_manager_remove_account (LoquiAccountManager * self, LoquiAccount * account); #line 98 "loqui-account-manager.h" #line 100 "loqui-account-manager.gob" void loqui_account_manager_add_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent); #line 102 "loqui-account-manager.h" #line 105 "loqui-account-manager.gob" void loqui_account_manager_add_channel_entry_after (LoquiAccountManager * self, LoquiChannelEntry * chent); #line 106 "loqui-account-manager.h" #line 110 "loqui-account-manager.gob" void loqui_account_manager_remove_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent); #line 110 "loqui-account-manager.h" #line 114 "loqui-account-manager.gob" void loqui_account_manager_remove_channel_entry_after (LoquiAccountManager * self, LoquiChannelEntry * chent); #line 114 "loqui-account-manager.h" #line 120 "loqui-account-manager.gob" LoquiAccountManager * loqui_account_manager_new (LoquiProtocolManager * protocol_manager); #line 117 "loqui-account-manager.h" #line 151 "loqui-account-manager.gob" void loqui_account_manager_remove_all_account (LoquiAccountManager * self); #line 120 "loqui-account-manager.h" #line 160 "loqui-account-manager.gob" void loqui_account_manager_load_accounts (LoquiAccountManager * self); #line 123 "loqui-account-manager.h" #line 188 "loqui-account-manager.gob" void loqui_account_manager_save_accounts (LoquiAccountManager * self); #line 126 "loqui-account-manager.h" #line 211 "loqui-account-manager.gob" void loqui_account_manager_disconnect_all (LoquiAccountManager * self); #line 129 "loqui-account-manager.h" #line 216 "loqui-account-manager.gob" GList * loqui_account_manager_get_account_list (LoquiAccountManager * self); #line 132 "loqui-account-manager.h" #line 221 "loqui-account-manager.gob" void loqui_account_manager_connect_all_default (LoquiAccountManager * self); #line 135 "loqui-account-manager.h" #line 245 "loqui-account-manager.gob" LoquiChannelEntry * loqui_account_manager_get_next_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent, gboolean require_unread); #line 140 "loqui-account-manager.h" #line 272 "loqui-account-manager.gob" LoquiChannelEntry * loqui_account_manager_get_previous_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent, gboolean require_unread); #line 145 "loqui-account-manager.h" #line 299 "loqui-account-manager.gob" gint loqui_account_manager_new_channel_entry_id (LoquiAccountManager * self); #line 148 "loqui-account-manager.h" #line 304 "loqui-account-manager.gob" void loqui_account_manager_update_positions (LoquiAccountManager * self); #line 151 "loqui-account-manager.h" /* * Signal connection wrapper macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define loqui_account_manager_connect__add_account(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_account",(GCallback) __extension__ ({void (* ___add_account) (LoquiAccountManager * ___fake___self, LoquiAccount * ___fake___account, gpointer ___data ) = (func); ___add_account; }), (data)) #define loqui_account_manager_connect_after__add_account(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_account",(GCallback) __extension__ ({void (* ___add_account) (LoquiAccountManager * ___fake___self, LoquiAccount * ___fake___account, gpointer ___data ) = (func); ___add_account; }), (data)) #define loqui_account_manager_connect_data__add_account(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_account",(GCallback) __extension__ ({void (* ___add_account) (LoquiAccountManager * ___fake___self, LoquiAccount * ___fake___account, gpointer ___data ) = (func); ___add_account; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_account_manager_connect__remove_account(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_account",(GCallback) __extension__ ({void (* ___remove_account) (LoquiAccountManager * ___fake___self, LoquiAccount * ___fake___account, gpointer ___data ) = (func); ___remove_account; }), (data)) #define loqui_account_manager_connect_after__remove_account(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_account",(GCallback) __extension__ ({void (* ___remove_account) (LoquiAccountManager * ___fake___self, LoquiAccount * ___fake___account, gpointer ___data ) = (func); ___remove_account; }), (data)) #define loqui_account_manager_connect_data__remove_account(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_account",(GCallback) __extension__ ({void (* ___remove_account) (LoquiAccountManager * ___fake___self, LoquiAccount * ___fake___account, gpointer ___data ) = (func); ___remove_account; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_account_manager_connect__add_channel_entry(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_channel_entry",(GCallback) __extension__ ({void (* ___add_channel_entry) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___add_channel_entry; }), (data)) #define loqui_account_manager_connect_after__add_channel_entry(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_channel_entry",(GCallback) __extension__ ({void (* ___add_channel_entry) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___add_channel_entry; }), (data)) #define loqui_account_manager_connect_data__add_channel_entry(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_channel_entry",(GCallback) __extension__ ({void (* ___add_channel_entry) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___add_channel_entry; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_account_manager_connect__add_channel_entry_after(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_channel_entry_after",(GCallback) __extension__ ({void (* ___add_channel_entry_after) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___add_channel_entry_after; }), (data)) #define loqui_account_manager_connect_after__add_channel_entry_after(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_channel_entry_after",(GCallback) __extension__ ({void (* ___add_channel_entry_after) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___add_channel_entry_after; }), (data)) #define loqui_account_manager_connect_data__add_channel_entry_after(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"add_channel_entry_after",(GCallback) __extension__ ({void (* ___add_channel_entry_after) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___add_channel_entry_after; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_account_manager_connect__remove_channel_entry(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_channel_entry",(GCallback) __extension__ ({void (* ___remove_channel_entry) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___remove_channel_entry; }), (data)) #define loqui_account_manager_connect_after__remove_channel_entry(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_channel_entry",(GCallback) __extension__ ({void (* ___remove_channel_entry) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___remove_channel_entry; }), (data)) #define loqui_account_manager_connect_data__remove_channel_entry(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_channel_entry",(GCallback) __extension__ ({void (* ___remove_channel_entry) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___remove_channel_entry; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_account_manager_connect__remove_channel_entry_after(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_channel_entry_after",(GCallback) __extension__ ({void (* ___remove_channel_entry_after) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___remove_channel_entry_after; }), (data)) #define loqui_account_manager_connect_after__remove_channel_entry_after(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_channel_entry_after",(GCallback) __extension__ ({void (* ___remove_channel_entry_after) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___remove_channel_entry_after; }), (data)) #define loqui_account_manager_connect_data__remove_channel_entry_after(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(__extension__ ({LoquiAccountManager *___object = (object); ___object; })),"remove_channel_entry_after",(GCallback) __extension__ ({void (* ___remove_channel_entry_after) (LoquiAccountManager * ___fake___self, LoquiChannelEntry * ___fake___chent, gpointer ___data ) = (func); ___remove_channel_entry_after; }), (data), (destroy_data), (GConnectFlags)(flags)) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define loqui_account_manager_connect__add_account(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(object),"add_account",(GCallback)(func),(data)) #define loqui_account_manager_connect_after__add_account(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(object),"add_account",(GCallback)(func),(data)) #define loqui_account_manager_connect_data__add_account(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(object),"add_account",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_account_manager_connect__remove_account(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(object),"remove_account",(GCallback)(func),(data)) #define loqui_account_manager_connect_after__remove_account(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(object),"remove_account",(GCallback)(func),(data)) #define loqui_account_manager_connect_data__remove_account(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(object),"remove_account",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_account_manager_connect__add_channel_entry(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(object),"add_channel_entry",(GCallback)(func),(data)) #define loqui_account_manager_connect_after__add_channel_entry(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(object),"add_channel_entry",(GCallback)(func),(data)) #define loqui_account_manager_connect_data__add_channel_entry(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(object),"add_channel_entry",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_account_manager_connect__add_channel_entry_after(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(object),"add_channel_entry_after",(GCallback)(func),(data)) #define loqui_account_manager_connect_after__add_channel_entry_after(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(object),"add_channel_entry_after",(GCallback)(func),(data)) #define loqui_account_manager_connect_data__add_channel_entry_after(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(object),"add_channel_entry_after",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_account_manager_connect__remove_channel_entry(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(object),"remove_channel_entry",(GCallback)(func),(data)) #define loqui_account_manager_connect_after__remove_channel_entry(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(object),"remove_channel_entry",(GCallback)(func),(data)) #define loqui_account_manager_connect_data__remove_channel_entry(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(object),"remove_channel_entry",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_account_manager_connect__remove_channel_entry_after(object,func,data) g_signal_connect(LOQUI_ACCOUNT_MANAGER(object),"remove_channel_entry_after",(GCallback)(func),(data)) #define loqui_account_manager_connect_after__remove_channel_entry_after(object,func,data) g_signal_connect_after(LOQUI_ACCOUNT_MANAGER(object),"remove_channel_entry_after",(GCallback)(func),(data)) #define loqui_account_manager_connect_data__remove_channel_entry_after(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_ACCOUNT_MANAGER(object),"remove_channel_entry_after",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui_member_sort_funcs.c0000664000175000017500000000600312121600532016475 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ #include "config.h" #include "loqui_member_sort_funcs.h" #include "loqui_member.h" #include #define MEMBER_GET_POWER_SCORE(member, sc_ptr) { \ if (member->is_channel_operator) \ *sc_ptr = 2; \ else if (member->speakable) \ *sc_ptr = 1; \ else \ *sc_ptr = 0; \ } gint loqui_member_sort_funcs_nick(LoquiMember **ma_p, LoquiMember **mb_p) { return strcmp((*ma_p)->user->nick_key, (*mb_p)->user->nick_key); } gint loqui_member_sort_funcs_power(LoquiMember **ma_p, LoquiMember **mb_p) { gint score_a, score_b; MEMBER_GET_POWER_SCORE((*ma_p), &score_a); MEMBER_GET_POWER_SCORE((*mb_p), &score_b); return score_b - score_a; } gint loqui_member_sort_funcs_last_message_time(LoquiMember **ma_p, LoquiMember **mb_p) { return (*mb_p)->last_message_time - (*ma_p)->last_message_time; } gint loqui_member_sort_funcs_away(LoquiMember **ma_p, LoquiMember **mb_p) { return (*mb_p)->user->away - (*ma_p)->user->away; } gint loqui_member_sort_funcs_power_nick(LoquiMember **ma_p, LoquiMember **mb_p) { register gint i; if ((i = loqui_member_sort_funcs_power(ma_p, mb_p)) != 0) return i; return loqui_member_sort_funcs_nick(ma_p, mb_p); } gint loqui_member_sort_funcs_away_nick(LoquiMember **ma_p, LoquiMember **mb_p) { register gint i; if ((i = loqui_member_sort_funcs_away(ma_p, mb_p)) != 0) return i; return loqui_member_sort_funcs_nick(ma_p, mb_p); } gint loqui_member_sort_funcs_power_away_nick(LoquiMember **ma_p, LoquiMember **mb_p) { register gint i; if ((i = loqui_member_sort_funcs_power(ma_p, mb_p)) != 0) return i; if ((i = loqui_member_sort_funcs_away(ma_p, mb_p)) != 0) return i; return loqui_member_sort_funcs_nick(ma_p, mb_p); } gint loqui_member_sort_funcs_away_power_nick(LoquiMember **ma_p, LoquiMember **mb_p) { register gint i; if ((i = loqui_member_sort_funcs_away(ma_p, mb_p)) != 0) return i; if ((i = loqui_member_sort_funcs_power(ma_p, mb_p)) != 0) return i; return loqui_member_sort_funcs_nick(ma_p, mb_p); } gint loqui_member_sort_funcs_time_away_power_nick(LoquiMember **ma_p, LoquiMember **mb_p) { register gint i; if ((i = loqui_member_sort_funcs_last_message_time(ma_p, mb_p)) != 0) return i; if ((i = loqui_member_sort_funcs_away(ma_p, mb_p)) != 0) return i; if ((i = loqui_member_sort_funcs_power(ma_p, mb_p)) != 0) return i; return loqui_member_sort_funcs_nick(ma_p, mb_p); } gint loqui_member_sort_funcs_time_power_away_nick(LoquiMember **ma_p, LoquiMember **mb_p) { register gint i; if ((i = loqui_member_sort_funcs_last_message_time(ma_p, mb_p)) != 0) return i; if ((i = loqui_member_sort_funcs_power(ma_p, mb_p)) != 0) return i; if ((i = loqui_member_sort_funcs_away(ma_p, mb_p)) != 0) return i; return loqui_member_sort_funcs_nick(ma_p, mb_p); } gint loqui_member_sort_funcs_time_nick(LoquiMember **ma_p, LoquiMember **mb_p) { register gint i; if ((i = loqui_member_sort_funcs_last_message_time(ma_p, mb_p)) != 0) return i; return loqui_member_sort_funcs_nick(ma_p, mb_p); } loqui-0.5.5/libloqui/loqui-account-manager.c0000664000175000017500000011606612121605231015757 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-account-manager.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2005 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-account-manager.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-account-manager.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 31 "loqui-account-manager.gob" #include "loqui-account-manager-private.h" #include "config.h" #include #include "loqui_account.h" #include "loqui-utils.h" #include "loqui-profile-handle.h" #include "loqui_account_manager_iter.h" #include "loqui-static-core.h" #define ACCOUNT_CONFIG_FILENAME "account.xml" #line 64 "loqui-account-manager.c" /* self casting macros */ #define SELF(x) LOQUI_ACCOUNT_MANAGER(x) #define SELF_CONST(x) LOQUI_ACCOUNT_MANAGER_CONST(x) #define IS_SELF(x) LOQUI_IS_ACCOUNT_MANAGER(x) #define TYPE_SELF LOQUI_TYPE_ACCOUNT_MANAGER #define SELF_CLASS(x) LOQUI_ACCOUNT_MANAGER_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_ACCOUNT_MANAGER_GET_CLASS(x) /* self typedefs */ typedef LoquiAccountManager Self; typedef LoquiAccountManagerClass SelfClass; /* here are local prototypes */ #line 0 "loqui-account-manager.gob" static void loqui_account_manager_init (LoquiAccountManager * o) G_GNUC_UNUSED; #line 81 "loqui-account-manager.c" #line 0 "loqui-account-manager.gob" static void loqui_account_manager_class_init (LoquiAccountManagerClass * c) G_GNUC_UNUSED; #line 84 "loqui-account-manager.c" #line 54 "loqui-account-manager.gob" static void ___1_loqui_account_manager_dispose (GObject * object) G_GNUC_UNUSED; #line 87 "loqui-account-manager.c" static void ___real_loqui_account_manager_add_account (LoquiAccountManager * self, LoquiAccount * account); static void ___real_loqui_account_manager_remove_account (LoquiAccountManager * self, LoquiAccount * account); static void ___real_loqui_account_manager_add_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent); static void ___real_loqui_account_manager_add_channel_entry_after (LoquiAccountManager * self, LoquiChannelEntry * chent); static void ___real_loqui_account_manager_remove_channel_entry_after (LoquiAccountManager * self, LoquiChannelEntry * chent); #line 131 "loqui-account-manager.gob" static void loqui_account_manager_add_channel_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) G_GNUC_UNUSED; #line 95 "loqui-account-manager.c" #line 136 "loqui-account-manager.gob" static void loqui_account_manager_add_channel_after_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) G_GNUC_UNUSED; #line 98 "loqui-account-manager.c" #line 141 "loqui-account-manager.gob" static void loqui_account_manager_remove_channel_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) G_GNUC_UNUSED; #line 101 "loqui-account-manager.c" #line 146 "loqui-account-manager.gob" static void loqui_account_manager_remove_channel_after_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) G_GNUC_UNUSED; #line 104 "loqui-account-manager.c" /* * Signal connection wrapper macro shortcuts */ #define self_connect__add_account(object,func,data) loqui_account_manager_connect__add_account((object),(func),(data)) #define self_connect_after__add_account(object,func,data) loqui_account_manager_connect_after__add_account((object),(func),(data)) #define self_connect_data__add_account(object,func,data,destroy_data,flags) loqui_account_manager_connect_data__add_account((object),(func),(data),(destroy_data),(flags)) #define self_connect__remove_account(object,func,data) loqui_account_manager_connect__remove_account((object),(func),(data)) #define self_connect_after__remove_account(object,func,data) loqui_account_manager_connect_after__remove_account((object),(func),(data)) #define self_connect_data__remove_account(object,func,data,destroy_data,flags) loqui_account_manager_connect_data__remove_account((object),(func),(data),(destroy_data),(flags)) #define self_connect__add_channel_entry(object,func,data) loqui_account_manager_connect__add_channel_entry((object),(func),(data)) #define self_connect_after__add_channel_entry(object,func,data) loqui_account_manager_connect_after__add_channel_entry((object),(func),(data)) #define self_connect_data__add_channel_entry(object,func,data,destroy_data,flags) loqui_account_manager_connect_data__add_channel_entry((object),(func),(data),(destroy_data),(flags)) #define self_connect__add_channel_entry_after(object,func,data) loqui_account_manager_connect__add_channel_entry_after((object),(func),(data)) #define self_connect_after__add_channel_entry_after(object,func,data) loqui_account_manager_connect_after__add_channel_entry_after((object),(func),(data)) #define self_connect_data__add_channel_entry_after(object,func,data,destroy_data,flags) loqui_account_manager_connect_data__add_channel_entry_after((object),(func),(data),(destroy_data),(flags)) #define self_connect__remove_channel_entry(object,func,data) loqui_account_manager_connect__remove_channel_entry((object),(func),(data)) #define self_connect_after__remove_channel_entry(object,func,data) loqui_account_manager_connect_after__remove_channel_entry((object),(func),(data)) #define self_connect_data__remove_channel_entry(object,func,data,destroy_data,flags) loqui_account_manager_connect_data__remove_channel_entry((object),(func),(data),(destroy_data),(flags)) #define self_connect__remove_channel_entry_after(object,func,data) loqui_account_manager_connect__remove_channel_entry_after((object),(func),(data)) #define self_connect_after__remove_channel_entry_after(object,func,data) loqui_account_manager_connect_after__remove_channel_entry_after((object),(func),(data)) #define self_connect_data__remove_channel_entry_after(object,func,data,destroy_data,flags) loqui_account_manager_connect_data__remove_channel_entry_after((object),(func),(data),(destroy_data),(flags)) typedef void (*___Sig1) (LoquiAccountManager *, GObject *, gpointer); static void ___marshal_Sig1 (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { register ___Sig1 callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 2); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (___Sig1) (marshal_data != NULL ? marshal_data : cc->callback); callback ((LoquiAccountManager *)data1, (GObject *) g_value_get_object (param_values + 1), data2); } enum { ADD_ACCOUNT_SIGNAL, REMOVE_ACCOUNT_SIGNAL, ADD_CHANNEL_ENTRY_SIGNAL, ADD_CHANNEL_ENTRY_AFTER_SIGNAL, REMOVE_CHANNEL_ENTRY_SIGNAL, REMOVE_CHANNEL_ENTRY_AFTER_SIGNAL, LAST_SIGNAL }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_add_account loqui_account_manager_add_account #define self_remove_account loqui_account_manager_remove_account #define self_add_channel_entry loqui_account_manager_add_channel_entry #define self_add_channel_entry_after loqui_account_manager_add_channel_entry_after #define self_remove_channel_entry loqui_account_manager_remove_channel_entry #define self_remove_channel_entry_after loqui_account_manager_remove_channel_entry_after #define self_new loqui_account_manager_new #define self_add_channel_cb loqui_account_manager_add_channel_cb #define self_add_channel_after_cb loqui_account_manager_add_channel_after_cb #define self_remove_channel_cb loqui_account_manager_remove_channel_cb #define self_remove_channel_after_cb loqui_account_manager_remove_channel_after_cb #define self_remove_all_account loqui_account_manager_remove_all_account #define self_load_accounts loqui_account_manager_load_accounts #define self_save_accounts loqui_account_manager_save_accounts #define self_disconnect_all loqui_account_manager_disconnect_all #define self_get_account_list loqui_account_manager_get_account_list #define self_connect_all_default loqui_account_manager_connect_all_default #define self_get_next_channel_entry loqui_account_manager_get_next_channel_entry #define self_get_previous_channel_entry loqui_account_manager_get_previous_channel_entry #define self_new_channel_entry_id loqui_account_manager_new_channel_entry_id #define self_update_positions loqui_account_manager_update_positions GType loqui_account_manager_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiAccountManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_account_manager_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiAccountManager), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_account_manager_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiAccountManager", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiAccountManager *)g_object_new(loqui_account_manager_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiAccountManager * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiAccountManager * GET_NEW_VARG (const char *first, ...) { LoquiAccountManager *ret; va_list ap; va_start (ap, first); ret = (LoquiAccountManager *)g_object_new_valist (loqui_account_manager_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Account:Manager::dispose" LoquiAccountManager *self G_GNUC_UNUSED = LOQUI_ACCOUNT_MANAGER (obj_self); #line 54 "loqui-account-manager.gob" ___1_loqui_account_manager_dispose(obj_self); #line 247 "loqui-account-manager.c" #line 49 "loqui-account-manager.gob" if(self->protocol_manager) { g_object_unref ((gpointer) self->protocol_manager); self->protocol_manager = NULL; } #line 250 "loqui-account-manager.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Account:Manager::finalize" LoquiAccountManager *self G_GNUC_UNUSED = LOQUI_ACCOUNT_MANAGER (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_account_manager_init (LoquiAccountManager * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Account:Manager::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_ACCOUNT_MANAGER,LoquiAccountManagerPrivate); #line 31 "loqui-account-manager.gob" o->protocol_manager = NULL; #line 273 "loqui-account-manager.c" } #undef __GOB_FUNCTION__ static void loqui_account_manager_class_init (LoquiAccountManagerClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Account:Manager::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiAccountManagerPrivate)); parent_class = g_type_class_ref (G_TYPE_OBJECT); object_signals[ADD_ACCOUNT_SIGNAL] = g_signal_new ("add_account", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiAccountManagerClass, add_account), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiAccount * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-account-manager.gob line 66: Type mismatch of \"add_account\" signal signature"); } object_signals[REMOVE_ACCOUNT_SIGNAL] = g_signal_new ("remove_account", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiAccountManagerClass, remove_account), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiAccount * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-account-manager.gob line 84: Type mismatch of \"remove_account\" signal signature"); } object_signals[ADD_CHANNEL_ENTRY_SIGNAL] = g_signal_new ("add_channel_entry", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiAccountManagerClass, add_channel_entry), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiChannelEntry * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-account-manager.gob line 100: Type mismatch of \"add_channel_entry\" signal signature"); } object_signals[ADD_CHANNEL_ENTRY_AFTER_SIGNAL] = g_signal_new ("add_channel_entry_after", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiAccountManagerClass, add_channel_entry_after), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiChannelEntry * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-account-manager.gob line 105: Type mismatch of \"add_channel_entry_after\" signal signature"); } object_signals[REMOVE_CHANNEL_ENTRY_SIGNAL] = g_signal_new ("remove_channel_entry", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiAccountManagerClass, remove_channel_entry), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiChannelEntry * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-account-manager.gob line 110: Type mismatch of \"remove_channel_entry\" signal signature"); } object_signals[REMOVE_CHANNEL_ENTRY_AFTER_SIGNAL] = g_signal_new ("remove_channel_entry_after", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiAccountManagerClass, remove_channel_entry_after), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_OBJECT); if ___GOB_UNLIKELY(sizeof(LoquiChannelEntry * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) { g_error("loqui-account-manager.gob line 114: Type mismatch of \"remove_channel_entry_after\" signal signature"); } #line 54 "loqui-account-manager.gob" g_object_class->dispose = ___dispose; #line 66 "loqui-account-manager.gob" c->add_account = ___real_loqui_account_manager_add_account; #line 84 "loqui-account-manager.gob" c->remove_account = ___real_loqui_account_manager_remove_account; #line 100 "loqui-account-manager.gob" c->add_channel_entry = ___real_loqui_account_manager_add_channel_entry; #line 105 "loqui-account-manager.gob" c->add_channel_entry_after = ___real_loqui_account_manager_add_channel_entry_after; #line 369 "loqui-account-manager.c" c->remove_channel_entry = NULL; #line 114 "loqui-account-manager.gob" c->remove_channel_entry_after = ___real_loqui_account_manager_remove_channel_entry_after; #line 373 "loqui-account-manager.c" g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 54 "loqui-account-manager.gob" static void ___1_loqui_account_manager_dispose (GObject * object G_GNUC_UNUSED) #line 383 "loqui-account-manager.c" #define PARENT_HANDLER(___object) \ { if(G_OBJECT_CLASS(parent_class)->dispose) \ (* G_OBJECT_CLASS(parent_class)->dispose)(___object); } { #define __GOB_FUNCTION__ "Loqui:Account:Manager::dispose" { #line 55 "loqui-account-manager.gob" Self *self; self = SELF(object); self_remove_all_account(self); PARENT_HANDLER(object); }} #line 400 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #undef PARENT_HANDLER #line 66 "loqui-account-manager.gob" void loqui_account_manager_add_account (LoquiAccountManager * self, LoquiAccount * account) { #line 408 "loqui-account-manager.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 66 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 66 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 66 "loqui-account-manager.gob" g_return_if_fail (account != NULL); #line 66 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT (account)); #line 423 "loqui-account-manager.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) account); g_signal_emitv (___param_values, object_signals[ADD_ACCOUNT_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 66 "loqui-account-manager.gob" static void ___real_loqui_account_manager_add_account (LoquiAccountManager * self G_GNUC_UNUSED, LoquiAccount * account) { #line 445 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::add_account" { #line 67 "loqui-account-manager.gob" self_add_channel_entry(self, LOQUI_CHANNEL_ENTRY(account)); selfp->account_list = g_list_append(selfp->account_list, g_object_ref(account)); g_signal_connect(G_OBJECT(account), "add-channel", G_CALLBACK(self_add_channel_cb), self); g_signal_connect_after(G_OBJECT(account), "add-channel", G_CALLBACK(self_add_channel_after_cb), self); g_signal_connect(G_OBJECT(account), "remove-channel", G_CALLBACK(self_remove_channel_cb), self); g_signal_connect_after(G_OBJECT(account), "remove-channel", G_CALLBACK(self_remove_channel_after_cb), self); self_add_channel_entry_after(self, LOQUI_CHANNEL_ENTRY(account)); }} #line 465 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 84 "loqui-account-manager.gob" void loqui_account_manager_remove_account (LoquiAccountManager * self, LoquiAccount * account) { #line 472 "loqui-account-manager.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 84 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 84 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 84 "loqui-account-manager.gob" g_return_if_fail (account != NULL); #line 84 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT (account)); #line 487 "loqui-account-manager.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) account); g_signal_emitv (___param_values, object_signals[REMOVE_ACCOUNT_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 84 "loqui-account-manager.gob" static void ___real_loqui_account_manager_remove_account (LoquiAccountManager * self G_GNUC_UNUSED, LoquiAccount * account) { #line 509 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::remove_account" { #line 85 "loqui-account-manager.gob" self_remove_channel_entry(self, LOQUI_CHANNEL_ENTRY(account)); g_signal_handlers_disconnect_by_func(G_OBJECT(account), self_add_channel_cb, self); g_signal_handlers_disconnect_by_func(G_OBJECT(account), self_add_channel_after_cb, self); g_signal_handlers_disconnect_by_func(G_OBJECT(account), self_remove_channel_cb, self); g_signal_handlers_disconnect_by_func(G_OBJECT(account), self_remove_channel_after_cb, self); selfp->account_list = g_list_remove(selfp->account_list, account); g_object_unref(account); self_remove_channel_entry_after(self, LOQUI_CHANNEL_ENTRY(account)); }} #line 526 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 100 "loqui-account-manager.gob" void loqui_account_manager_add_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent) { #line 533 "loqui-account-manager.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 100 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 100 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 544 "loqui-account-manager.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) chent); g_signal_emitv (___param_values, object_signals[ADD_CHANNEL_ENTRY_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 100 "loqui-account-manager.gob" static void ___real_loqui_account_manager_add_channel_entry (LoquiAccountManager * self G_GNUC_UNUSED, LoquiChannelEntry * chent) { #line 566 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::add_channel_entry" { #line 101 "loqui-account-manager.gob" loqui_channel_entry_set_id(chent, self_new_channel_entry_id(self)); }} #line 573 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 105 "loqui-account-manager.gob" void loqui_account_manager_add_channel_entry_after (LoquiAccountManager * self, LoquiChannelEntry * chent) { #line 580 "loqui-account-manager.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 105 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 105 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 591 "loqui-account-manager.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) chent); g_signal_emitv (___param_values, object_signals[ADD_CHANNEL_ENTRY_AFTER_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 105 "loqui-account-manager.gob" static void ___real_loqui_account_manager_add_channel_entry_after (LoquiAccountManager * self G_GNUC_UNUSED, LoquiChannelEntry * chent) { #line 613 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::add_channel_entry_after" { #line 106 "loqui-account-manager.gob" self_update_positions(self); }} #line 620 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 110 "loqui-account-manager.gob" void loqui_account_manager_remove_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent) { #line 627 "loqui-account-manager.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 110 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 110 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 638 "loqui-account-manager.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) chent); g_signal_emitv (___param_values, object_signals[REMOVE_CHANNEL_ENTRY_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 114 "loqui-account-manager.gob" void loqui_account_manager_remove_channel_entry_after (LoquiAccountManager * self, LoquiChannelEntry * chent) { #line 661 "loqui-account-manager.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 114 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 114 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 672 "loqui-account-manager.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_OBJECT); g_value_set_object (&___param_values[1], (GObject *) chent); g_signal_emitv (___param_values, object_signals[REMOVE_CHANNEL_ENTRY_AFTER_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 114 "loqui-account-manager.gob" static void ___real_loqui_account_manager_remove_channel_entry_after (LoquiAccountManager * self G_GNUC_UNUSED, LoquiChannelEntry * chent) { #line 694 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::remove_channel_entry_after" { #line 115 "loqui-account-manager.gob" self_update_positions(self); }} #line 701 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 120 "loqui-account-manager.gob" LoquiAccountManager * loqui_account_manager_new (LoquiProtocolManager * protocol_manager) { #line 708 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::new" { #line 121 "loqui-account-manager.gob" Self *self; self = GET_NEW; self->protocol_manager = g_object_ref(protocol_manager); return self; }} #line 721 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 131 "loqui-account-manager.gob" static void loqui_account_manager_add_channel_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) { #line 728 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::add_channel_cb" { #line 132 "loqui-account-manager.gob" self_add_channel_entry(self, LOQUI_CHANNEL_ENTRY(channel)); }} #line 735 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 136 "loqui-account-manager.gob" static void loqui_account_manager_add_channel_after_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) { #line 742 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::add_channel_after_cb" { #line 137 "loqui-account-manager.gob" self_add_channel_entry_after(self, LOQUI_CHANNEL_ENTRY(channel)); }} #line 749 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 141 "loqui-account-manager.gob" static void loqui_account_manager_remove_channel_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) { #line 756 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::remove_channel_cb" { #line 142 "loqui-account-manager.gob" self_remove_channel_entry(self, LOQUI_CHANNEL_ENTRY(channel)); }} #line 763 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 146 "loqui-account-manager.gob" static void loqui_account_manager_remove_channel_after_cb (LoquiAccount * account, LoquiChannel * channel, LoquiAccountManager * self) { #line 770 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::remove_channel_after_cb" { #line 147 "loqui-account-manager.gob" self_remove_channel_entry_after(self, LOQUI_CHANNEL_ENTRY(channel)); }} #line 777 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 151 "loqui-account-manager.gob" void loqui_account_manager_remove_all_account (LoquiAccountManager * self) { #line 784 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::remove_all_account" #line 151 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 151 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 790 "loqui-account-manager.c" { #line 152 "loqui-account-manager.gob" GList *list; list = g_list_copy(selfp->account_list); loqui_utils_g_list_foreach_swapped(list, (GFunc) self_remove_account, self); g_list_free(list); }} #line 800 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 160 "loqui-account-manager.gob" void loqui_account_manager_load_accounts (LoquiAccountManager * self) { #line 807 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::load_accounts" #line 160 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 160 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 813 "loqui-account-manager.c" { #line 161 "loqui-account-manager.gob" GList *cur, *list = NULL; gchar *path; LoquiProfileHandle *handle; LoquiAccount *account; LoquiProfileAccount *profile; GList *factory_list; path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), ACCOUNT_CONFIG_FILENAME, NULL); factory_list = loqui_protocol_manager_get_protocol_list(self->protocol_manager); handle = loqui_profile_handle_new(factory_list); g_list_free(factory_list); loqui_profile_handle_read_from_file(handle, &list, path); for(cur = list; cur != NULL; cur = cur->next) { profile = LOQUI_PROFILE_ACCOUNT(cur->data); account = loqui_protocol_create_account(profile->protocol, profile); self_add_account(self, account); g_object_unref(account); } g_list_free(list); g_object_unref(handle); }} #line 842 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 188 "loqui-account-manager.gob" void loqui_account_manager_save_accounts (LoquiAccountManager * self) { #line 849 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::save_accounts" #line 188 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 188 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 855 "loqui-account-manager.c" { #line 189 "loqui-account-manager.gob" GList *cur; GList *list = NULL; gchar *path; LoquiProfileHandle *handle; GList *factory_list; for(cur = selfp->account_list; cur != NULL; cur = cur->next) { list = g_list_append(list, loqui_account_get_profile(cur->data)); } path = g_build_filename(loqui_core_get_user_dir(loqui_get_core()), ACCOUNT_CONFIG_FILENAME, NULL); factory_list = loqui_protocol_manager_get_protocol_list(self->protocol_manager); handle = loqui_profile_handle_new(factory_list); g_list_free(factory_list); loqui_profile_handle_write_to_file(handle, list, path); g_object_unref(handle); g_list_free(list); }} #line 879 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 211 "loqui-account-manager.gob" void loqui_account_manager_disconnect_all (LoquiAccountManager * self) { #line 886 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::disconnect_all" #line 211 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 211 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 892 "loqui-account-manager.c" { #line 212 "loqui-account-manager.gob" g_list_foreach(selfp->account_list, (GFunc) loqui_account_disconnect, NULL); }} #line 898 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 216 "loqui-account-manager.gob" GList * loqui_account_manager_get_account_list (LoquiAccountManager * self) { #line 905 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::get_account_list" #line 216 "loqui-account-manager.gob" g_return_val_if_fail (self != NULL, (GList * )0); #line 216 "loqui-account-manager.gob" g_return_val_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self), (GList * )0); #line 911 "loqui-account-manager.c" { #line 217 "loqui-account-manager.gob" return selfp->account_list; }} #line 917 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 221 "loqui-account-manager.gob" void loqui_account_manager_connect_all_default (LoquiAccountManager * self) { #line 924 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::connect_all_default" #line 221 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 221 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 930 "loqui-account-manager.c" { #line 222 "loqui-account-manager.gob" GList *cur; LoquiAccount *account; for (cur = selfp->account_list; cur != NULL; cur = cur->next) { account = LOQUI_ACCOUNT(cur->data); if (loqui_account_get_is_connected(account)) continue; if (!loqui_profile_account_get_use(loqui_account_get_profile(account))) continue; loqui_account_connect(account); } }} #line 947 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 245 "loqui-account-manager.gob" LoquiChannelEntry * loqui_account_manager_get_next_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent, gboolean require_unread) { #line 954 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::get_next_channel_entry" #line 245 "loqui-account-manager.gob" g_return_val_if_fail (self != NULL, (LoquiChannelEntry * )0); #line 245 "loqui-account-manager.gob" g_return_val_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self), (LoquiChannelEntry * )0); #line 960 "loqui-account-manager.c" { #line 246 "loqui-account-manager.gob" LoquiAccountManagerIter iter, iter_chent; gboolean is_exist; LoquiChannelEntry *tmp_chent; loqui_account_manager_iter_init(self, &iter); if (chent) is_exist = loqui_account_manager_iter_set_channel_entry(&iter, chent); else is_exist = FALSE; iter_chent = iter; if (is_exist) { loqui_account_manager_iter_channel_entry_next(&iter); while ((tmp_chent = loqui_account_manager_iter_channel_entry_next(&iter))) { if (!require_unread || loqui_channel_entry_get_whether_unread(tmp_chent)) return tmp_chent; } } loqui_account_manager_iter_set_first_channel_entry(&iter); while ((tmp_chent = loqui_account_manager_iter_channel_entry_next(&iter))) { if (!require_unread || loqui_channel_entry_get_whether_unread(tmp_chent)) return tmp_chent; } return NULL; }} #line 988 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 272 "loqui-account-manager.gob" LoquiChannelEntry * loqui_account_manager_get_previous_channel_entry (LoquiAccountManager * self, LoquiChannelEntry * chent, gboolean require_unread) { #line 995 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::get_previous_channel_entry" #line 272 "loqui-account-manager.gob" g_return_val_if_fail (self != NULL, (LoquiChannelEntry * )0); #line 272 "loqui-account-manager.gob" g_return_val_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self), (LoquiChannelEntry * )0); #line 1001 "loqui-account-manager.c" { #line 273 "loqui-account-manager.gob" LoquiAccountManagerIter iter; gboolean is_exist; LoquiChannelEntry *tmp_chent; loqui_account_manager_iter_init(self, &iter); if (chent) is_exist = loqui_account_manager_iter_set_channel_entry(&iter, chent); else is_exist = FALSE; if (is_exist) { loqui_account_manager_iter_channel_entry_previous(&iter); while ((tmp_chent = loqui_account_manager_iter_channel_entry_previous(&iter))) { if (!require_unread || loqui_channel_entry_get_whether_unread(tmp_chent)) return tmp_chent; } } loqui_account_manager_iter_set_last_channel_entry(&iter); while ((tmp_chent = loqui_account_manager_iter_channel_entry_previous(&iter))) { if (!require_unread || loqui_channel_entry_get_whether_unread(tmp_chent)) return tmp_chent; } return NULL; }} #line 1029 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 299 "loqui-account-manager.gob" gint loqui_account_manager_new_channel_entry_id (LoquiAccountManager * self) { #line 1036 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::new_channel_entry_id" #line 299 "loqui-account-manager.gob" g_return_val_if_fail (self != NULL, (gint )0); #line 299 "loqui-account-manager.gob" g_return_val_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self), (gint )0); #line 1042 "loqui-account-manager.c" { #line 300 "loqui-account-manager.gob" return ++self->max_channel_entry_id; }} #line 1048 "loqui-account-manager.c" #undef __GOB_FUNCTION__ #line 304 "loqui-account-manager.gob" void loqui_account_manager_update_positions (LoquiAccountManager * self) { #line 1055 "loqui-account-manager.c" #define __GOB_FUNCTION__ "Loqui:Account:Manager::update_positions" #line 304 "loqui-account-manager.gob" g_return_if_fail (self != NULL); #line 304 "loqui-account-manager.gob" g_return_if_fail (LOQUI_IS_ACCOUNT_MANAGER (self)); #line 1061 "loqui-account-manager.c" { #line 305 "loqui-account-manager.gob" LoquiAccountManagerIter iter; LoquiChannelEntry *chent; gint i; i = 0; loqui_account_manager_iter_init(self, &iter); loqui_account_manager_iter_set_first_channel_entry(&iter); while ((chent = loqui_account_manager_iter_channel_entry_next(&iter))) { loqui_channel_entry_set_position(chent, i); i++; } }} #line 1077 "loqui-account-manager.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/loqui_channel_irc.c0000664000175000017500000001403312121600532015230 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui_channel_irc.h" #include "loqui_utils_irc.h" #include "loqui_account_irc.h" enum { LAST_SIGNAL }; enum { LAST_PROP }; struct _LoquiChannelIRCPrivate { }; static LoquiChannelClass *parent_class = NULL; /* static guint loqui_channel_irc_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_channel_irc_class_init(LoquiChannelIRCClass *klass); static void loqui_channel_irc_init(LoquiChannelIRC *channel); static void loqui_channel_irc_finalize(GObject *object); static void loqui_channel_irc_dispose(GObject *object); static void loqui_channel_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_channel_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); GType loqui_channel_irc_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiChannelIRCClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_channel_irc_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiChannelIRC), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_channel_irc_init }; type = g_type_register_static(LOQUI_TYPE_CHANNEL, "LoquiChannelIRC", &our_info, 0); } return type; } static void loqui_channel_irc_finalize(GObject *object) { LoquiChannelIRC *channel; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_IRC(object)); channel = LOQUI_CHANNEL_IRC(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(channel->priv); } static void loqui_channel_irc_dispose(GObject *object) { LoquiChannelIRC *channel; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_CHANNEL_IRC(object)); channel = LOQUI_CHANNEL_IRC(object); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_channel_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiChannelIRC *channel; channel = LOQUI_CHANNEL_IRC(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiChannelIRC *channel; channel = LOQUI_CHANNEL_IRC(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_channel_irc_class_init(LoquiChannelIRCClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_channel_irc_finalize; object_class->dispose = loqui_channel_irc_dispose; object_class->get_property = loqui_channel_irc_get_property; object_class->set_property = loqui_channel_irc_set_property; } static void loqui_channel_irc_init(LoquiChannelIRC *channel) { LoquiChannelIRCPrivate *priv; priv = g_new0(LoquiChannelIRCPrivate, 1); channel->priv = priv; } LoquiChannelIRC* loqui_channel_irc_new(LoquiAccount *account, const gchar *name, gboolean is_joined, gboolean is_private_talk) { LoquiChannelIRC *channel; LoquiChannelIRCPrivate *priv; channel = g_object_new(loqui_channel_irc_get_type(), "account", account, "name", name, "identifier", name, "is_private_talk", is_private_talk, "is_joined", is_joined, NULL); priv = channel->priv; return channel; } LoquiMember * loqui_channel_irc_add_member_by_nick(LoquiChannelIRC *channel_irc, const gchar *nick, gboolean parse_power, gboolean is_channel_operator, gboolean speakable) { gchar *tmp_nick; LoquiMember *member; LoquiUser *user; gboolean is_o, is_v; LoquiChannel *channel; g_return_val_if_fail(channel_irc != NULL, NULL); g_return_val_if_fail(LOQUI_IS_CHANNEL_IRC(channel_irc), NULL); g_return_val_if_fail(nick != NULL, NULL); g_return_val_if_fail(*nick != '\0', NULL); channel = LOQUI_CHANNEL(channel_irc); if (parse_power) { loqui_utils_irc_parse_nick(nick, &is_o, &is_v, &tmp_nick); nick = tmp_nick; is_channel_operator = is_o; speakable = is_v; } user = LOQUI_USER(loqui_account_irc_fetch_user(LOQUI_ACCOUNT_IRC(channel->account), nick)); member = loqui_member_new(user); g_object_unref(user); /* member has reference count */ if (is_channel_operator) loqui_member_set_is_channel_operator(member, TRUE); else if (speakable) loqui_member_set_speakable(member, TRUE); loqui_channel_entry_add_member(LOQUI_CHANNEL_ENTRY(channel), member); g_object_unref(member); /* channel entry has reference count */ return member; } loqui-0.5.5/libloqui/loqui-generic-profile-factory.h0000664000175000017500000000576612121605231017443 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_GENERIC_PROFILE_FACTORY_H__ #define __LOQUI_GENERIC_PROFILE_FACTORY_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define LOQUI_TYPE_GENERIC_PROFILE_FACTORY (loqui_generic_profile_factory_get_type()) #define LOQUI_GENERIC_PROFILE_FACTORY(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_generic_profile_factory_get_type(), LoquiGenericProfileFactory) #define LOQUI_GENERIC_PROFILE_FACTORY_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_generic_profile_factory_get_type(), LoquiGenericProfileFactory const) #define LOQUI_GENERIC_PROFILE_FACTORY_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_generic_profile_factory_get_type(), LoquiGenericProfileFactoryClass) #define LOQUI_IS_GENERIC_PROFILE_FACTORY(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_generic_profile_factory_get_type ()) #define LOQUI_GENERIC_PROFILE_FACTORY_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_generic_profile_factory_get_type(), LoquiGenericProfileFactoryClass) /* Private structure type */ typedef struct _LoquiGenericProfileFactoryPrivate LoquiGenericProfileFactoryPrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_GENERIC_PROFILE_FACTORY__ #define __TYPEDEF_LOQUI_GENERIC_PROFILE_FACTORY__ typedef struct _LoquiGenericProfileFactory LoquiGenericProfileFactory; #endif struct _LoquiGenericProfileFactory { GObject __parent__; /*< private >*/ LoquiGenericProfileFactoryPrivate *_priv; }; /* * Class definition */ typedef struct _LoquiGenericProfileFactoryClass LoquiGenericProfileFactoryClass; struct _LoquiGenericProfileFactoryClass { GObjectClass __parent__; }; /* * Public methods */ GType loqui_generic_profile_factory_get_type (void) G_GNUC_CONST; #line 39 "loqui-generic-profile-factory.gob" LoquiGenericProfileFactory * loqui_generic_profile_factory_new (const gchar * name, GType type); #line 83 "loqui-generic-profile-factory.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui-receiver-ipmsg.h0000664000175000017500000000540112121605231015627 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_RECEIVER_IPMSG_H__ #define __LOQUI_RECEIVER_IPMSG_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include "loqui_account.h" #include "ipmsg_packet.h" /* * Type checking and casting macros */ #define LOQUI_TYPE_RECEIVER_IPMSG (loqui_receiver_ipmsg_get_type()) #define LOQUI_RECEIVER_IPMSG(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_receiver_ipmsg_get_type(), LoquiReceiverIPMsg) #define LOQUI_RECEIVER_IPMSG_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_receiver_ipmsg_get_type(), LoquiReceiverIPMsg const) #define LOQUI_RECEIVER_IPMSG_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_receiver_ipmsg_get_type(), LoquiReceiverIPMsgClass) #define LOQUI_IS_RECEIVER_IPMSG(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_receiver_ipmsg_get_type ()) #define LOQUI_RECEIVER_IPMSG_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_receiver_ipmsg_get_type(), LoquiReceiverIPMsgClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_RECEIVER_IPMSG__ #define __TYPEDEF_LOQUI_RECEIVER_IPMSG__ typedef struct _LoquiReceiverIPMsg LoquiReceiverIPMsg; #endif struct _LoquiReceiverIPMsg { LoquiReceiver __parent__; }; /* * Class definition */ typedef struct _LoquiReceiverIPMsgClass LoquiReceiverIPMsgClass; struct _LoquiReceiverIPMsgClass { LoquiReceiverClass __parent__; }; /* * Public methods */ GType loqui_receiver_ipmsg_get_type (void) G_GNUC_CONST; #line 359 "loqui-receiver-ipmsg.gob" void loqui_receiver_ipmsg_handle (LoquiReceiverIPMsg * self, IPMsgPacket * packet); #line 80 "loqui-receiver-ipmsg.h" #line 401 "loqui-receiver-ipmsg.gob" LoquiReceiverIPMsg * loqui_receiver_ipmsg_new (LoquiAccount * account); #line 83 "loqui-receiver-ipmsg.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui-message-text.gob0000664000175000017500000002016712121600532015641 00000000000000requires 2.0.0 %alltop{ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ %} %h{ #include #ifndef __TYPEDEF_LOQUI_MESSAGE_TEXT_REGION__ #define __TYPEDEF_LOQUI_MESSAGE_TEXT_REGION__ typedef struct _LoquiMessageTextRegion LoquiMessageTextRegion; #endif #include typedef enum { LOQUI_TEXT_TYPE_NORMAL, LOQUI_TEXT_TYPE_NOTICE, LOQUI_TEXT_TYPE_ACTION, LOQUI_TEXT_TYPE_INFO, LOQUI_TEXT_TYPE_ERROR, /* private */ LOQUI_TEXT_TYPE_TIME, LOQUI_TEXT_TYPE_URI, LOQUI_TEXT_TYPE_EMPHASIS, LOQUI_TEXT_TYPE_TRANSPARENT, } LoquiTextType; %} %{ #include #include "loqui-utils.h" LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, text); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, nick); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, account_name); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, channel_name); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_priv, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_self, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_remark, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_ignored, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, text_type, LoquiTextType); %} class Loqui:Message:Text from G:Object { public LoquiTextType text_type; public gchar *text = NULL unrefwith g_free; public gchar *channel_name = NULL unrefwith g_free; public gchar *account_name = NULL unrefwith g_free; public gchar *nick = NULL unrefwith g_free; public gboolean is_self = FALSE; public gboolean is_priv = FALSE; public gboolean is_remark = FALSE; public gboolean is_ignored = FALSE; public GList *highlight_region_list = NULL unrefwith loqui_utils_free_list_and_elements_unref; public GList *uri_region_list = NULL unrefwith loqui_utils_free_list_and_elements_unref; property STRING text ( nick = _("Text"), blurb = _("Text"), default_value = NULL) get { g_value_set_string(VAL, loqui_message_text_get_text(self)); } set { loqui_message_text_set_text(self, g_value_get_string(VAL)); }; property STRING channel_name ( nick = _("Channel name"), blurb = _("Channel name"), default_value = NULL) get { g_value_set_string(VAL, loqui_message_text_get_channel_name(self)); } set { loqui_message_text_set_channel_name(self, g_value_get_string(VAL)); }; property STRING account_name ( nick = _("Account name"), blurb = _("Account name"), default_value = NULL) get { g_value_set_string(VAL, loqui_message_text_get_account_name(self)); } set { loqui_message_text_set_account_name(self, g_value_get_string(VAL)); }; property STRING nick ( nick = _("Nick"), blurb = _("Nickname"), default_value = NULL) get { g_value_set_string(VAL, loqui_message_text_get_nick(self)); } set { loqui_message_text_set_nick(self, g_value_get_string(VAL)); }; property BOOLEAN is_self ( nick = _("Self?"), blurb = _("Whether or not the message is by myself"), default_value = FALSE) get { g_value_set_boolean(VAL, loqui_message_text_get_is_self(self)); } set { loqui_message_text_set_is_self(self, g_value_get_boolean(VAL)); }; property BOOLEAN is_priv ( nick = _("Priv?"), blurb = _("Whether or not private message"), default_value = FALSE) get { g_value_set_boolean(VAL, loqui_message_text_get_is_priv(self)); } set { loqui_message_text_set_is_priv(self, g_value_get_boolean(VAL)); }; property BOOLEAN is_remark ( nick = _("Remark?"), blurb = _("Remark?"), default_value = FALSE) get { g_value_set_boolean(VAL, loqui_message_text_get_is_remark(self)); } set { loqui_message_text_set_is_remark(self, g_value_get_boolean(VAL)); }; property BOOLEAN is_ignored ( nick = _("Is ignored"), blurb = _("Is ignored or not"), default_value = FALSE) get { g_value_set_boolean(VAL, loqui_message_text_get_is_ignored(self)); } set { loqui_message_text_set_is_ignored(self, g_value_get_boolean(VAL)); }; property UINT text_type ( nick = _("Text type"), blurb = _("Text type"), default_value = 0) get { g_value_set_uint(VAL, loqui_message_text_get_text_type(self)); } set { loqui_message_text_set_text_type(self, g_value_get_uint(VAL)); }; public gchar * get_nick_string(self, gboolean with_channel_name) { gchar *nick_str; g_return_val_if_fail(LOQUI_IS_MESSAGE_TEXT(self), NULL); if(self->is_priv) { if(self->is_self) nick_str = g_strdup_printf(">%s< ", self->nick); else nick_str = g_strdup_printf("=%s= ", self->nick); } else if (with_channel_name && self->channel_name) { if(self->is_self) nick_str = g_strdup_printf(">%s:%s< ", self->channel_name, self->nick); else nick_str = g_strdup_printf("<%s:%s> ", self->channel_name, self->nick); } else { if(self->is_self) nick_str = g_strdup_printf(">%s< ", self->nick); else nick_str = g_strdup_printf("<%s> ", self->nick); } return nick_str; } public gchar * get_detail(self, gboolean show_account, gboolean show_channel_name) { gchar *nick_string; GString *str; str = g_string_new(NULL); if (show_account) { g_string_append_printf(str, "[%s] ", loqui_message_text_get_account_name(self)); } nick_string = loqui_message_text_get_nick_string(self, show_channel_name); g_string_append(str, nick_string); g_free(nick_string); g_string_append(str, loqui_message_text_get_text(self)); return g_string_free(str, FALSE); } public Loqui:Message:Text * new(void) { Self *self; self = GET_NEW; return self; } public gboolean get_has_highlight_keyword(self) { return self->highlight_region_list != NULL ? TRUE : FALSE; } } %h{ LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiMessageText, loqui_message_text, text); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiMessageText, loqui_message_text, nick); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiMessageText, loqui_message_text, account_name); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiMessageText, loqui_message_text, channel_name); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiMessageText, loqui_message_text, is_self, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiMessageText, loqui_message_text, is_priv, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiMessageText, loqui_message_text, is_remark, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiMessageText, loqui_message_text, is_ignored, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiMessageText, loqui_message_text, text_type, LoquiTextType); %} loqui-0.5.5/libloqui/loqui-pref-partial.c0000664000175000017500000006225212121605231015276 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-pref-partial.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-pref-partial.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-pref-partial.h" #include "loqui-pref-partial-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 25 "loqui-pref-partial.gob" #include #include "loqui-utils.h" #line 55 "loqui-pref-partial.c" /* self casting macros */ #define SELF(x) LOQUI_PREF_PARTIAL(x) #define SELF_CONST(x) LOQUI_PREF_PARTIAL_CONST(x) #define IS_SELF(x) LOQUI_IS_PREF_PARTIAL(x) #define TYPE_SELF LOQUI_TYPE_PREF_PARTIAL #define SELF_CLASS(x) LOQUI_PREF_PARTIAL_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_PREF_PARTIAL_GET_CLASS(x) /* self typedefs */ typedef LoquiPrefPartial Self; typedef LoquiPrefPartialClass SelfClass; /* here are local prototypes */ static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec); static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec); #line 0 "loqui-pref-partial.gob" static void loqui_pref_partial_init (LoquiPrefPartial * o) G_GNUC_UNUSED; #line 74 "loqui-pref-partial.c" #line 0 "loqui-pref-partial.gob" static void loqui_pref_partial_class_init (LoquiPrefPartialClass * c) G_GNUC_UNUSED; #line 77 "loqui-pref-partial.c" #line 174 "loqui-pref-partial.gob" static void loqui_pref_partial_pref_changed_cb (LoquiPref * pref, gchar * group, gchar * key, Self * self) G_GNUC_UNUSED; #line 80 "loqui-pref-partial.c" /* * Signal connection wrapper macro shortcuts */ #define self_connect__changed_partial(object,func,data) loqui_pref_partial_connect__changed_partial((object),(func),(data)) #define self_connect_after__changed_partial(object,func,data) loqui_pref_partial_connect_after__changed_partial((object),(func),(data)) #define self_connect_data__changed_partial(object,func,data,destroy_data,flags) loqui_pref_partial_connect_data__changed_partial((object),(func),(data),(destroy_data),(flags)) typedef void (*___Sig1) (LoquiPrefPartial *, gchar *, gpointer); static void ___marshal_Sig1 (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { register ___Sig1 callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 2); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (___Sig1) (marshal_data != NULL ? marshal_data : cc->callback); callback ((LoquiPrefPartial *)data1, (gchar *) g_value_get_string (param_values + 1), data2); } enum { CHANGED_PARTIAL_SIGNAL, LAST_SIGNAL }; enum { PROP_0, PROP_PREF, PROP_GROUP_NAME }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_pref_partial_new #define self_set_pref loqui_pref_partial_set_pref #define self_get_pref loqui_pref_partial_get_pref #define self_foreach loqui_pref_partial_foreach #define self_changed_partial loqui_pref_partial_changed_partial #define self_get_group_name loqui_pref_partial_get_group_name #define self_set_group_name loqui_pref_partial_set_group_name #define self_get_string loqui_pref_partial_get_string #define self_get_integer loqui_pref_partial_get_integer #define self_get_boolean loqui_pref_partial_get_boolean #define self_get_string_list loqui_pref_partial_get_string_list #define self_set_string loqui_pref_partial_set_string #define self_set_integer loqui_pref_partial_set_integer #define self_set_boolean loqui_pref_partial_set_boolean #define self_set_string_list loqui_pref_partial_set_string_list #define self_set_default_string loqui_pref_partial_set_default_string #define self_set_default_integer loqui_pref_partial_set_default_integer #define self_set_default_boolean loqui_pref_partial_set_default_boolean #define self_has_key loqui_pref_partial_has_key #define self_pref_changed_cb loqui_pref_partial_pref_changed_cb #define self_set_id loqui_pref_partial_set_id #define self_get_id loqui_pref_partial_get_id GType loqui_pref_partial_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiPrefPartialClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_pref_partial_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiPrefPartial), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_pref_partial_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiPrefPartial", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiPrefPartial *)g_object_new(loqui_pref_partial_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiPrefPartial * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiPrefPartial * GET_NEW_VARG (const char *first, ...) { LoquiPrefPartial *ret; va_list ap; va_start (ap, first); ret = (LoquiPrefPartial *)g_object_new_valist (loqui_pref_partial_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Pref:Partial::dispose" LoquiPrefPartial *self G_GNUC_UNUSED = LOQUI_PREF_PARTIAL (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #define pref (self->pref) #define VAR pref { #line 50 "loqui-pref-partial.gob" self_set_pref(self, NULL); } #line 217 "loqui-pref-partial.c" memset(&pref, 0, sizeof(pref)); #undef VAR #undef pref #line 96 "loqui-pref-partial.gob" if(self->group_name) { g_free ((gpointer) self->group_name); self->group_name = NULL; } #line 223 "loqui-pref-partial.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Pref:Partial::finalize" LoquiPrefPartial *self G_GNUC_UNUSED = LOQUI_PREF_PARTIAL (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_pref_partial_init (LoquiPrefPartial * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Pref:Partial::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_PREF_PARTIAL,LoquiPrefPartialPrivate); #line 56 "loqui-pref-partial.gob" o->_priv->watcher_signal_id = 0; #line 246 "loqui-pref-partial.c" } #undef __GOB_FUNCTION__ static void loqui_pref_partial_class_init (LoquiPrefPartialClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Pref:Partial::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiPrefPartialPrivate)); parent_class = g_type_class_ref (G_TYPE_OBJECT); object_signals[CHANGED_PARTIAL_SIGNAL] = g_signal_new ("changed_partial", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiPrefPartialClass, changed_partial), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 1, G_TYPE_STRING); if ___GOB_UNLIKELY(sizeof(const gchar * ) != sizeof(gchar *) || parent_class == NULL /* avoid warning */) { g_error("loqui-pref-partial.gob line 93: Type mismatch of \"changed_partial\" signal signature"); } c->changed_partial = NULL; g_object_class->dispose = ___dispose; g_object_class->finalize = ___finalize; g_object_class->get_property = ___object_get_property; g_object_class->set_property = ___object_set_property; { GParamSpec *param_spec; param_spec = g_param_spec_object ("pref" /* name */, _("Pref") /* nick */, _("Pref Object") /* blurb */, LOQUI_TYPE_PREF /* object_type */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_PREF, param_spec); param_spec = g_param_spec_string ("group_name" /* name */, _("Group name") /* nick */, _("Group name") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_GROUP_NAME, param_spec); } } #undef __GOB_FUNCTION__ static void ___object_set_property (GObject *object, guint property_id, const GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_property" { LoquiPrefPartial *self G_GNUC_UNUSED; self = LOQUI_PREF_PARTIAL (object); switch (property_id) { case PROP_PREF: { #line 56 "loqui-pref-partial.gob" self_set_pref(self, g_value_get_object(VAL)); #line 318 "loqui-pref-partial.c" } break; case PROP_GROUP_NAME: { #line 97 "loqui-pref-partial.gob" { char *old = self->group_name; self->group_name = g_value_dup_string (VAL); g_free (old); } #line 325 "loqui-pref-partial.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ static void ___object_get_property (GObject *object, guint property_id, GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_property" { LoquiPrefPartial *self G_GNUC_UNUSED; self = LOQUI_PREF_PARTIAL (object); switch (property_id) { case PROP_PREF: { #line 55 "loqui-pref-partial.gob" g_value_set_object(VAL, self_get_pref(self)); #line 356 "loqui-pref-partial.c" } break; case PROP_GROUP_NAME: { #line 97 "loqui-pref-partial.gob" g_value_set_string (VAL, self->group_name); #line 363 "loqui-pref-partial.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ #line 44 "loqui-pref-partial.gob" LoquiPrefPartial * loqui_pref_partial_new (void) { #line 384 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::new" { #line 44 "loqui-pref-partial.gob" LoquiPrefPartial *ret = GET_NEW; return ret; }} #line 392 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 59 "loqui-pref-partial.gob" void loqui_pref_partial_set_pref (LoquiPrefPartial * self, LoquiPref * pref) { #line 399 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_pref" #line 59 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 59 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 405 "loqui-pref-partial.c" { #line 59 "loqui-pref-partial.gob" if (self->pref) { g_signal_handler_disconnect(self->pref, selfp->watcher_signal_id); selfp->watcher_signal_id = 0; } LOQUI_G_OBJECT_UNREF_UNLESS_NULL(self->pref); if (pref) { self->pref = g_object_ref(pref); selfp->watcher_signal_id = g_signal_connect(pref, "changed", G_CALLBACK(self_pref_changed_cb), self); } }} #line 420 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 72 "loqui-pref-partial.gob" LoquiPref * loqui_pref_partial_get_pref (LoquiPrefPartial * self) { #line 427 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_pref" #line 72 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (LoquiPref * )0); #line 72 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (LoquiPref * )0); #line 433 "loqui-pref-partial.c" { #line 72 "loqui-pref-partial.gob" return self->pref; }} #line 439 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 76 "loqui-pref-partial.gob" void loqui_pref_partial_foreach (LoquiPrefPartial * self, LoquiPrefPartialForeachFunc func, gpointer data) { #line 446 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::foreach" #line 76 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 76 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 452 "loqui-pref-partial.c" { #line 76 "loqui-pref-partial.gob" gchar **keys; int j; g_return_if_fail(self->group_name); g_return_if_fail(self->pref); if (!(keys = loqui_pref_get_keys(self->pref, self->group_name, NULL, NULL))) return; for (j = 0; keys[j] != NULL; j++) { func(self, keys[j], data); } g_strfreev(keys); }} #line 471 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 93 "loqui-pref-partial.gob" void loqui_pref_partial_changed_partial (LoquiPrefPartial * self, const gchar * key) { #line 478 "loqui-pref-partial.c" GValue ___param_values[2]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 93 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 93 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 489 "loqui-pref-partial.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_STRING); g_value_set_static_string (&___param_values[1], (gchar *) key); g_signal_emitv (___param_values, object_signals[CHANGED_PARTIAL_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); } #line 102 "loqui-pref-partial.gob" const gchar * loqui_pref_partial_get_group_name (LoquiPrefPartial * self) { #line 512 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_group_name" #line 102 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (const gchar * )0); #line 102 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (const gchar * )0); #line 518 "loqui-pref-partial.c" { #line 102 "loqui-pref-partial.gob" return self->group_name; }} #line 524 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 105 "loqui-pref-partial.gob" void loqui_pref_partial_set_group_name (LoquiPrefPartial * self, const gchar * group_name) { #line 531 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_group_name" #line 105 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 105 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 537 "loqui-pref-partial.c" { #line 105 "loqui-pref-partial.gob" g_object_set(self, "group_name", group_name, NULL); }} #line 543 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 109 "loqui-pref-partial.gob" gchar * loqui_pref_partial_get_string (LoquiPrefPartial * self, const gchar * key, GError ** error) { #line 550 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_string" #line 109 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 109 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (gchar * )0); #line 556 "loqui-pref-partial.c" { #line 109 "loqui-pref-partial.gob" g_return_val_if_fail(self->group_name, NULL); return loqui_pref_get_string(LOQUI_PREF(self->pref), self->group_name, key, error); }} #line 564 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 114 "loqui-pref-partial.gob" gint loqui_pref_partial_get_integer (LoquiPrefPartial * self, const gchar * key, GError ** error) { #line 571 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_integer" #line 114 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (gint )0); #line 114 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (gint )0); #line 577 "loqui-pref-partial.c" { #line 114 "loqui-pref-partial.gob" g_return_val_if_fail(self->group_name, 0); return loqui_pref_get_integer(LOQUI_PREF(self->pref), self->group_name, key, error); }} #line 585 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 119 "loqui-pref-partial.gob" gboolean loqui_pref_partial_get_boolean (LoquiPrefPartial * self, const gchar * key, GError ** error) { #line 592 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_boolean" #line 119 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 119 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (gboolean )0); #line 598 "loqui-pref-partial.c" { #line 119 "loqui-pref-partial.gob" g_return_val_if_fail(self->group_name, FALSE); return loqui_pref_get_boolean(LOQUI_PREF(self->pref), self->group_name, key, error); }} #line 606 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 124 "loqui-pref-partial.gob" gchar ** loqui_pref_partial_get_string_list (LoquiPrefPartial * self, const gchar * key, gsize * length, GError ** error) { #line 613 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_string_list" #line 124 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (gchar ** )0); #line 124 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (gchar ** )0); #line 619 "loqui-pref-partial.c" { #line 124 "loqui-pref-partial.gob" g_return_val_if_fail(self->group_name, NULL); return loqui_pref_get_string_list(LOQUI_PREF(self->pref), self->group_name, key, length, error); }} #line 627 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 130 "loqui-pref-partial.gob" void loqui_pref_partial_set_string (LoquiPrefPartial * self, const gchar * key, const gchar * value) { #line 634 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_string" #line 130 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 130 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 640 "loqui-pref-partial.c" { #line 130 "loqui-pref-partial.gob" g_return_if_fail(self->group_name); loqui_pref_set_string(LOQUI_PREF(self->pref), self->group_name, key, value); }} #line 648 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 135 "loqui-pref-partial.gob" void loqui_pref_partial_set_integer (LoquiPrefPartial * self, const gchar * key, gint value) { #line 655 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_integer" #line 135 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 135 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 661 "loqui-pref-partial.c" { #line 135 "loqui-pref-partial.gob" g_return_if_fail(self->group_name); loqui_pref_set_integer(LOQUI_PREF(self->pref), self->group_name, key, value); }} #line 669 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 140 "loqui-pref-partial.gob" void loqui_pref_partial_set_boolean (LoquiPrefPartial * self, const gchar * key, gboolean value) { #line 676 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_boolean" #line 140 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 140 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 682 "loqui-pref-partial.c" { #line 140 "loqui-pref-partial.gob" g_return_if_fail(self->group_name); loqui_pref_set_boolean(LOQUI_PREF(self->pref), self->group_name, key, value); }} #line 690 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 145 "loqui-pref-partial.gob" void loqui_pref_partial_set_string_list (LoquiPrefPartial * self, const gchar * key, gchar ** value, gsize length) { #line 697 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_string_list" #line 145 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 145 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 703 "loqui-pref-partial.c" { #line 145 "loqui-pref-partial.gob" g_return_if_fail(self->group_name); loqui_pref_set_string_list(LOQUI_PREF(self->pref), self->group_name, key, value, length); }} #line 711 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 151 "loqui-pref-partial.gob" void loqui_pref_partial_set_default_string (LoquiPrefPartial * self, const gchar * key, const gchar * default_value) { #line 718 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_default_string" #line 151 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 151 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 724 "loqui-pref-partial.c" { #line 151 "loqui-pref-partial.gob" g_return_if_fail(self->group_name); loqui_pref_set_default_string(LOQUI_PREF(self->pref), self->group_name, key, default_value); }} #line 732 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 156 "loqui-pref-partial.gob" void loqui_pref_partial_set_default_integer (LoquiPrefPartial * self, const gchar * key, gint default_value) { #line 739 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_default_integer" #line 156 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 156 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 745 "loqui-pref-partial.c" { #line 156 "loqui-pref-partial.gob" g_return_if_fail(self->group_name); loqui_pref_set_default_integer(LOQUI_PREF(self->pref), self->group_name, key, default_value); }} #line 753 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 161 "loqui-pref-partial.gob" void loqui_pref_partial_set_default_boolean (LoquiPrefPartial * self, const gchar * key, gboolean default_value) { #line 760 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_default_boolean" #line 161 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 161 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 766 "loqui-pref-partial.c" { #line 161 "loqui-pref-partial.gob" g_return_if_fail(self->group_name); loqui_pref_set_default_boolean(LOQUI_PREF(self->pref), self->group_name, key, default_value); }} #line 774 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 167 "loqui-pref-partial.gob" gboolean loqui_pref_partial_has_key (LoquiPrefPartial * self, const gchar * key, GError ** error) { #line 781 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::has_key" #line 167 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 167 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (gboolean )0); #line 787 "loqui-pref-partial.c" { #line 167 "loqui-pref-partial.gob" g_return_val_if_fail(self->group_name, FALSE); return loqui_pref_has_key(LOQUI_PREF(self->pref), self->group_name, key, error); }} #line 795 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 174 "loqui-pref-partial.gob" static void loqui_pref_partial_pref_changed_cb (LoquiPref * pref, gchar * group, gchar * key, Self * self) { #line 802 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::pref_changed_cb" { #line 174 "loqui-pref-partial.gob" if (!self->group_name) return; if (strcmp(group, self->group_name) != 0) return; self_changed_partial(self, key); }} #line 815 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 184 "loqui-pref-partial.gob" void loqui_pref_partial_set_id (LoquiPrefPartial * self, gint id) { #line 822 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::set_id" #line 184 "loqui-pref-partial.gob" g_return_if_fail (self != NULL); #line 184 "loqui-pref-partial.gob" g_return_if_fail (LOQUI_IS_PREF_PARTIAL (self)); #line 828 "loqui-pref-partial.c" { #line 184 "loqui-pref-partial.gob" self->id = id; }} #line 834 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ #line 187 "loqui-pref-partial.gob" gint loqui_pref_partial_get_id (LoquiPrefPartial * self) { #line 841 "loqui-pref-partial.c" #define __GOB_FUNCTION__ "Loqui:Pref:Partial::get_id" #line 187 "loqui-pref-partial.gob" g_return_val_if_fail (self != NULL, (gint )0); #line 187 "loqui-pref-partial.gob" g_return_val_if_fail (LOQUI_IS_PREF_PARTIAL (self), (gint )0); #line 847 "loqui-pref-partial.c" { #line 187 "loqui-pref-partial.gob" return self->id; }} #line 853 "loqui-pref-partial.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/loqui-profile.c0000664000175000017500000000412012121600532014335 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui-profile.h" #include "loqui-gobject-utils.h" enum { LAST_SIGNAL }; /* static guint loqui_profile_signals[LAST_SIGNAL] = { 0 }; */ LOQUI_DEFINE_INTERFACE(LoquiProfile, loqui_profile); static void loqui_profile_base_init(gpointer object_class) { static gboolean initialized = FALSE; if (!initialized) { initialized = TRUE; } } LOQUI_DEFINE_INTERFACE_METHOD_CALLER_ARG1(LoquiProfile, loqui_profile, set_profile_type_name, const gchar *) LOQUI_DEFINE_INTERFACE_METHOD_CALLER_ARG0_WITH_RETURN(LoquiProfile, loqui_profile, get_profile_type_name, gchar *) LOQUI_DEFINE_INTERFACE_METHOD_CALLER_ARG2(LoquiProfile, loqui_profile, set_profile_value, const gchar *, const GValue *) LOQUI_DEFINE_INTERFACE_METHOD_CALLER_ARG2(LoquiProfile, loqui_profile, get_profile_value, const gchar *, GValue *) LOQUI_DEFINE_INTERFACE_METHOD_CALLER_ARG2_WITH_RETURN(LoquiProfile, loqui_profile, get_profile_value_spec, GParamSpec *, const gchar *, const gchar *) LOQUI_DEFINE_INTERFACE_METHOD_CALLER_ARG0_WITH_RETURN(LoquiProfile, loqui_profile, get_profile_key_list, GList *) loqui-0.5.5/libloqui/loqui-utils-ipmsg.h0000664000175000017500000000225112121600532015162 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_UTILS_IPMSG_H__ #define __LOQUI_UTILS_IPMSG_H__ #include gchar *loqui_utils_ipmsg_create_identifier(const gchar *ip_addr, gint port); #endif /* __LOQUI_UTILS_IPMSG_H__ */ loqui-0.5.5/libloqui/loqui_sender_irc.c0000664000175000017500000006025212121600532015104 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui_sender_irc.h" #include "ctcp_message.h" #include #include "loqui_utils_irc.h" #include "loqui_account_irc.h" #include "loqui_channel_irc.h" #include "loqui_receiver_irc.h" #include "loqui-static-core.h" #include #include "loqui-general-pref-default.h" #include "loqui-general-pref-groups.h" enum { LAST_SIGNAL }; enum { LAST_PROP }; struct _LoquiSenderIRCPrivate { }; static LoquiSenderClass *parent_class = NULL; /* static guint loqui_sender_irc_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_sender_irc_class_init(LoquiSenderIRCClass *klass); static void loqui_sender_irc_init(LoquiSenderIRC *sender); static void loqui_sender_irc_finalize(GObject *object); static void loqui_sender_irc_dispose(GObject *object); static void loqui_sender_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_sender_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_sender_irc_say(LoquiSender *sender, LoquiChannel *channel, const gchar *text); static void loqui_sender_irc_notice(LoquiSender *sender, LoquiChannel *channel, const gchar *text); static void loqui_sender_irc_nick(LoquiSender *sender, const gchar *text); static void loqui_sender_irc_away(LoquiSender *sender, LoquiAwayType away_type, const gchar *away_message); static void loqui_sender_irc_whois(LoquiSender *sender, LoquiUser *user); static void loqui_sender_irc_join(LoquiSender *sender, LoquiChannel *channel); static void loqui_sender_irc_part(LoquiSender *sender, LoquiChannel *channel, const gchar *part_message); static void loqui_sender_irc_topic(LoquiSender *sender, LoquiChannel *channel, const gchar *topic); static void loqui_sender_irc_start_private_talk(LoquiSender *sender, LoquiUser *user); static void loqui_sender_irc_end_private_talk(LoquiSender *sender, LoquiChannel *channel); static void loqui_sender_irc_refresh(LoquiSender *sender, LoquiChannel *channel); static void loqui_sender_irc_quit(LoquiSender *sender, const gchar *quit_message); static void loqui_sender_irc_join_raw(LoquiSender *sender, const gchar *target, const gchar *key); static void loqui_sender_irc_start_private_talk_raw(LoquiSender *sender, const gchar *target); static void loqui_sender_irc_sent_quit(LoquiSenderIRC *sender, IRCMessage *msg); static void loqui_sender_irc_sent_privmsg_notice(LoquiSenderIRC *sender, IRCMessage *msg); /* helper */ static void loqui_sender_irc_send_irc_message(LoquiSenderIRC *sender, IRCMessage *msg); static void loqui_sender_irc_speak(LoquiSenderIRC *sender, LoquiChannel *channel, const gchar *text, gboolean is_notice); static gboolean check_target_valid(LoquiAccount *account, const gchar *str); #define WARN_AND_RETURN_UNLESS_CONNECTED(sender) { \ LoquiAccount *ac; \ ac = loqui_sender_get_account(LOQUI_SENDER(sender)); \ if (!loqui_account_get_is_connected(ac)) { \ loqui_account_warning(ac, _("Not connected")); \ return; \ } \ } static gboolean check_target_valid(LoquiAccount *account, const gchar *str) { if(str == NULL || strlen(str) == 0) { loqui_account_warning(account, _("No characters exist.")); return FALSE; } if(strchr(str, ' ') != NULL) { loqui_account_warning(account, _("Error: space contains")); return FALSE; } return TRUE; } GType loqui_sender_irc_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiSenderIRCClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_sender_irc_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiSenderIRC), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_sender_irc_init }; type = g_type_register_static(LOQUI_TYPE_SENDER, "LoquiSenderIRC", &our_info, 0); } return type; } static void loqui_sender_irc_finalize(GObject *object) { LoquiSenderIRC *sender; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(object)); sender = LOQUI_SENDER_IRC(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(sender->priv); } static void loqui_sender_irc_dispose(GObject *object) { LoquiSenderIRC *sender; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(object)); sender = LOQUI_SENDER_IRC(object); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_sender_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiSenderIRC *sender; sender = LOQUI_SENDER_IRC(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_sender_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiSenderIRC *sender; sender = LOQUI_SENDER_IRC(object); switch (param_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_sender_irc_class_init(LoquiSenderIRCClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); LoquiSenderClass *sender_class = LOQUI_SENDER_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_sender_irc_finalize; object_class->dispose = loqui_sender_irc_dispose; object_class->get_property = loqui_sender_irc_get_property; object_class->set_property = loqui_sender_irc_set_property; sender_class->say = loqui_sender_irc_say; sender_class->notice = loqui_sender_irc_notice; sender_class->nick = loqui_sender_irc_nick; sender_class->away = loqui_sender_irc_away; sender_class->whois = loqui_sender_irc_whois; sender_class->join = loqui_sender_irc_join; sender_class->part = loqui_sender_irc_part; sender_class->topic = loqui_sender_irc_topic; sender_class->start_private_talk = loqui_sender_irc_start_private_talk; sender_class->end_private_talk = loqui_sender_irc_end_private_talk; sender_class->refresh = loqui_sender_irc_refresh; sender_class->quit = loqui_sender_irc_quit; sender_class->join_raw = loqui_sender_irc_join_raw; sender_class->start_private_talk_raw = loqui_sender_irc_start_private_talk_raw; } static void loqui_sender_irc_init(LoquiSenderIRC *sender) { LoquiSenderIRCPrivate *priv; priv = g_new0(LoquiSenderIRCPrivate, 1); sender->priv = priv; sender->sent_quit = FALSE; } LoquiSenderIRC* loqui_sender_irc_new(LoquiAccount *account) { LoquiSenderIRC *sender; LoquiSenderIRCPrivate *priv; sender = g_object_new(loqui_sender_irc_get_type(), NULL); priv = sender->priv; LOQUI_SENDER(sender)->account = account; return sender; } void loqui_sender_irc_reset(LoquiSenderIRC *sender) { sender->sent_quit = FALSE; } /* helper */ static void loqui_sender_irc_send_irc_message(LoquiSenderIRC *sender, IRCMessage *msg) { loqui_account_irc_push_message(LOQUI_ACCOUNT_IRC(loqui_sender_get_account(LOQUI_SENDER(sender))), msg); } /* helper */ static void loqui_sender_irc_speak(LoquiSenderIRC *sender, LoquiChannel *channel, const gchar *text, gboolean is_notice) { gchar *buf; gchar **array; int i; buf = g_strdup(text); loqui_utils_remove_return_code(buf); /* remove last return code */ array = g_strsplit(buf, "\n", -1); g_free(buf); for(i = 0; array[i] != NULL; i++) { if(strlen(array[i]) == 0) continue; if (is_notice) loqui_sender_irc_notice_raw(sender, loqui_channel_get_identifier(channel), array[i]); else loqui_sender_irc_say_raw(sender, loqui_channel_get_identifier(channel), array[i]); } g_strfreev(array); } static void loqui_sender_irc_say(LoquiSender *sender, LoquiChannel *channel, const gchar *text) { g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); loqui_sender_irc_speak(LOQUI_SENDER_IRC(sender), channel, text, FALSE); } static void loqui_sender_irc_notice(LoquiSender *sender, LoquiChannel *channel, const gchar *text) { g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); loqui_sender_irc_speak(LOQUI_SENDER_IRC(sender), channel, text, TRUE); } static void loqui_sender_irc_nick(LoquiSender *sender, const gchar *text) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); if (!check_target_valid(loqui_sender_get_account(sender), text)) return; msg = irc_message_create(IRCCommandNick, text, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_away(LoquiSender *sender, LoquiAwayType away_type, const gchar *away_message) { const gchar *text; IRCMessage *msg = NULL; gchar *away_message_pref; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); away_message_pref = loqui_pref_get_with_default_string(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_MESSAGES, "AwayMessage", LOQUI_GENERAL_PREF_DEFAULT_MESSAGES_AWAY_MESSAGE, NULL); if (away_type == LOQUI_AWAY_TYPE_AWAY) { text = away_message == NULL ? away_message_pref : away_message; msg = irc_message_create(IRCCommandAway, text, NULL); } else if (away_type == LOQUI_AWAY_TYPE_ONLINE) { msg = irc_message_create(IRCCommandAway, NULL); } else { g_warning("Invalid away_type is specified."); g_free(away_message_pref); return; } g_free(away_message_pref); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_whois(LoquiSender *sender, LoquiUser *user) { IRCMessage *msg = NULL; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandWhois, loqui_user_get_nick(user), loqui_user_get_nick(user), NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_join(LoquiSender *sender, LoquiChannel *channel) { g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); /* FIXME: handle key */ loqui_sender_irc_join_raw(sender, loqui_channel_get_identifier(channel), NULL); } static void loqui_sender_irc_part(LoquiSender *sender, LoquiChannel *channel, const gchar *part_message) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); if (loqui_channel_get_is_private_talk(channel)) { loqui_account_warning(loqui_sender_get_account(sender), _("This is a private talk")); return; } WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandPart, loqui_channel_get_identifier(channel), part_message, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_topic(LoquiSender *sender, LoquiChannel *channel, const gchar *topic) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); if (loqui_channel_get_is_private_talk(channel)) { loqui_account_warning(loqui_sender_get_account(sender), "This is a private talk"); return; } WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandTopic, loqui_channel_get_identifier(channel), topic, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_start_private_talk(LoquiSender *sender, LoquiUser *user) { g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); loqui_account_open_private_talk(loqui_sender_get_account(sender), loqui_user_get_nick(user), user); } static void loqui_sender_irc_end_private_talk(LoquiSender *sender, LoquiChannel *channel) { g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); loqui_account_remove_channel(loqui_sender_get_account(sender), channel); } static void loqui_sender_irc_refresh(LoquiSender *sender, LoquiChannel *channel) { IRCMessage *msg; LoquiReceiverIRC *receiver; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); receiver = LOQUI_RECEIVER_IRC(loqui_account_get_receiver(loqui_sender_get_account(sender))); receiver->prevent_print_who_reply_count++; msg = irc_message_create(IRCCommandWho, loqui_channel_get_identifier(channel), NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_quit(LoquiSender *sender, const gchar *quit_message) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandQuit, quit_message, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_join_raw(LoquiSender *sender, const gchar *target, const gchar *key) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); if (!check_target_valid(loqui_sender_get_account(sender), target)) return; if (!LOQUI_UTILS_IRC_STRING_IS_CHANNEL(target)) { loqui_account_warning(loqui_sender_get_account(sender), _("This name seems not to be a channel.")); return; } if (key == NULL || strlen(key) == 0) key = NULL; msg = irc_message_create(IRCCommandJoin, target, key, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } static void loqui_sender_irc_start_private_talk_raw(LoquiSender *sender, const gchar *target) { LoquiUser *user; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); if (!check_target_valid(loqui_sender_get_account(sender), target)) return; if (LOQUI_UTILS_IRC_STRING_IS_CHANNEL(target)) { loqui_account_warning(loqui_sender_get_account(sender), _("This name seems not to be a nick.")); return; } user = LOQUI_USER(loqui_account_irc_fetch_user(LOQUI_ACCOUNT_IRC(loqui_sender_get_account(sender)), target)); if (!user) { g_warning("Can't fetch user for private talk"); return; } loqui_sender_start_private_talk(sender, user); g_object_unref(user); } void loqui_sender_irc_pong_raw(LoquiSenderIRC *sender, const gchar *target) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandPong, target, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_say_raw(LoquiSenderIRC *sender, const gchar *target, const gchar *text) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandPrivmsg, target, text, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_notice_raw(LoquiSenderIRC *sender, const gchar *target, const gchar *text) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandNotice, target, text, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_send_raw(LoquiSenderIRC *sender, const gchar *str) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_parse_line(str); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_get_channel_mode(LoquiSender *sender, LoquiChannel *channel) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); msg = irc_message_create(IRCCommandMode, loqui_channel_get_identifier(channel), NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_ctcp_request_raw(LoquiSenderIRC *sender, const gchar *target, const gchar *command) { IRCMessage *msg; CTCPMessage *ctcp_msg; gchar *buf; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); if (!check_target_valid(loqui_sender_get_account(LOQUI_SENDER(sender)), target)) return; ctcp_msg = ctcp_message_new(command, NULL); buf = ctcp_message_to_str(ctcp_msg); g_object_unref(ctcp_msg); msg = irc_message_create(IRCCommandPrivmsg, target, buf, NULL); g_free(buf); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_change_member_mode(LoquiSenderIRC *sender, LoquiChannel *channel, gboolean is_give, IRCModeFlag flag, GList *str_list) { IRCMessage *msg; guint i, p, list_num; gchar flag_str[IRC_MESSAGE_PARAMETER_MAX + 10]; gchar *param_array[IRC_MESSAGE_PARAMETER_MAX + 10]; GList *cur; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); list_num = g_list_length(str_list); if (list_num > IRC_MESSAGE_PARAMETER_MAX) { g_warning(_("Too many users in change mode request!")); return; } p = 0; /* MODE #Channel +? user1 user2 user3 */ param_array[p] = (gchar *) loqui_channel_get_identifier(channel); p++; if(is_give) flag_str[0] = '+'; else flag_str[0] = '-'; for (i = 0; i < list_num; i++) flag_str[i+1] = (gchar) flag; flag_str[i+1] = '\0'; param_array[p] = flag_str; p++; for (cur = str_list; cur != NULL; cur = cur->next) { param_array[p] = cur->data; p++; } param_array[p] = NULL; msg = irc_message_createv(IRCCommandMode, param_array); loqui_debug_puts("Sending MODE command.\n"); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_user_raw(LoquiSenderIRC *sender, const gchar *username, const gchar *realname) { IRCMessage *msg; LoquiAccount *account; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); account = loqui_sender_get_account(LOQUI_SENDER(sender)); if (username == NULL || strlen(username) == 0) { loqui_account_warning(account, _("Username is not specified.")); return; } if (strchr(username, ' ')) { loqui_account_warning(account, _("Username must not include space(s).")); return; } if (realname == NULL || strlen(realname) == 0) { loqui_account_warning(account, _("Realname is not specified.")); return; } msg = irc_message_create(IRCCommandUser, username, "0", "*", realname, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_pass(LoquiSenderIRC *sender, const gchar *password) { IRCMessage *msg; LoquiAccount *account; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); account = loqui_sender_get_account(LOQUI_SENDER(sender)); if (password == NULL || strlen(password) == 0) { loqui_account_warning(account, _("Password is not specified.")); return; } if (strchr(password, ' ')) { loqui_account_warning(account, _("Password must not contain space(s).")); return; } msg = irc_message_create(IRCCommandPass, password, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } void loqui_sender_irc_ping_raw(LoquiSenderIRC *sender, const gchar *target) { IRCMessage *msg; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); msg = irc_message_create(IRCCommandPing, target, NULL); loqui_sender_irc_send_irc_message(LOQUI_SENDER_IRC(sender), msg); g_object_unref(msg); } /* the function receives the message sent by AccountIRC */ void loqui_sender_irc_message_sent(LoquiSenderIRC *sender, IRCMessage *msg) { g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); WARN_AND_RETURN_UNLESS_CONNECTED(sender); switch (msg->response) { case IRC_COMMAND_QUIT: loqui_sender_irc_sent_quit(sender, msg); break; case IRC_COMMAND_PRIVMSG: case IRC_COMMAND_NOTICE: loqui_sender_irc_sent_privmsg_notice(sender, msg); break; default: break; } } static void loqui_sender_irc_sent_quit(LoquiSenderIRC *sender, IRCMessage *msg) { LoquiAccount *account; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); account = loqui_sender_get_account(LOQUI_SENDER(sender)); LOQUI_SENDER_IRC(sender)->sent_quit = TRUE; } static void loqui_sender_irc_sent_privmsg_notice(LoquiSenderIRC *sender, IRCMessage *msg) { LoquiAccount *account; LoquiChannel *channel; gchar *target; gchar *remark; CTCPMessage *ctcp_msg; LoquiTextType type; gboolean is_self; LoquiUser *user_self; gboolean is_notice; gchar *buf; LoquiMember *member; g_return_if_fail(sender != NULL); g_return_if_fail(LOQUI_IS_SENDER_IRC(sender)); account = loqui_sender_get_account(LOQUI_SENDER(sender)); target = irc_message_get_target(msg); remark = irc_message_get_param(msg, 1); if (remark == NULL) { loqui_account_warning(account, _("This PRIVMSG/NOTICE message doesn't contain a remark.")); return; } if (ctcp_message_parse_line(remark, &ctcp_msg)) { gchar *tmp; if (ctcp_msg->argument) tmp = g_strdup_printf("%s %s", ctcp_msg->command, ctcp_msg->argument); else tmp = g_strdup(ctcp_msg->command); buf = g_strdup_printf(_("Sent CTCP %1$s to %2$s: %3$s"), msg->response == IRC_COMMAND_PRIVMSG ? _("request") : _("reply"), target, tmp); g_free(tmp); loqui_account_append_text(account, NULL, LOQUI_TEXT_TYPE_INFO, buf); g_free(buf); return; } is_notice = (msg->response == IRC_COMMAND_NOTICE) ? TRUE : FALSE; type = is_notice ? LOQUI_TEXT_TYPE_NOTICE : LOQUI_TEXT_TYPE_NORMAL; is_self = TRUE; user_self = loqui_account_get_user_self(account); channel = loqui_account_irc_fetch_channel(LOQUI_ACCOUNT_IRC(account), is_self, loqui_user_get_nick(user_self), target); loqui_channel_append_remark(channel, type, is_self, loqui_user_get_nick(user_self), remark); member = loqui_channel_entry_get_member_by_user(LOQUI_CHANNEL_ENTRY(channel), user_self); /* You may not have joined to the channel */ if (member) { loqui_member_set_last_message_time(member, time(NULL)); } if (loqui_channel_get_is_private_talk(channel)) { loqui_channel_set_is_joined(channel, TRUE); } } loqui-0.5.5/libloqui/loqui-profile-handle-private.h0000664000175000017500000000332312121605231017250 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 3 "loqui-profile-handle.gob" #line 27 "loqui-profile-handle-private.h" #ifndef __LOQUI_PROFILE_HANDLE_PRIVATE_H__ #define __LOQUI_PROFILE_HANDLE_PRIVATE_H__ #include "loqui-profile-handle.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ struct _LoquiProfileHandlePrivate { #line 82 "loqui-profile-handle.gob" GMarkupParseContext * context; #line 84 "loqui-profile-handle.gob" int skip_profile_count; #line 85 "loqui-profile-handle.gob" int skip_param_count; #line 87 "loqui-profile-handle.gob" GQueue * element_queue; #line 88 "loqui-profile-handle.gob" GList * profile_list; #line 89 "loqui-profile-handle.gob" GList * profile_factory_list; #line 50 "loqui-profile-handle-private.h" }; #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui_account.c0000664000175000017500000007660512121600532014434 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include #include "loqui_account.h" #include "loqui-utils.h" #include "loqui_user.h" #include "loqui_sender.h" #include "loqui-pref.h" #include "loqui-general-pref-groups.h" #include "loqui-general-pref-default.h" #include "loqui-static-core.h" enum { SIGNAL_CONNECT, SIGNAL_DISCONNECT, SIGNAL_TERMINATE, SIGNAL_CLOSED, SIGNAL_ADD_CHANNEL, SIGNAL_REMOVE_CHANNEL, SIGNAL_WARN, SIGNAL_INFO, LAST_SIGNAL }; enum { PROP_0, PROP_USER_SELF, PROP_PROFILE, PROP_SENDER, PROP_RECEIVER, PROP_IS_CONNECTED, PROP_IS_PENDING_RECONNECTING, LAST_PROP }; struct _LoquiAccountPrivate { gint reconnect_timer; LoquiProfileAccount *profile; }; static LoquiChannelEntryClass *parent_class = NULL; #define PARENT_TYPE LOQUI_TYPE_CHANNEL_ENTRY static guint account_signals[LAST_SIGNAL] = { 0 }; static void loqui_account_class_init(LoquiAccountClass *klass); static void loqui_account_init(LoquiAccount *account); static void loqui_account_finalize(GObject *object); static void loqui_account_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_account_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static void loqui_account_warn_real(LoquiAccount *account, const gchar *str); static void loqui_account_info_real(LoquiAccount *account, const gchar *str); static void loqui_account_disconnect_real(LoquiAccount *account); static void loqui_account_terminate_real(LoquiAccount *account); static void loqui_account_closed_real(LoquiAccount *account, gboolean is_success); static void loqui_account_set_profile(LoquiAccount *account, LoquiProfileAccount *profile); static void loqui_account_user_notify_identifier_cb(LoquiUser *user, GParamSpec *pspec, LoquiAccount *account); static void loqui_account_profile_notify_name_cb(LoquiProfileAccount *profile, GParamSpec *pspec, LoquiAccount *account); static void loqui_account_channel_notify_identifier_cb(LoquiChannel *channel, GParamSpec *pspec, LoquiAccount *account); static void loqui_account_remove_channel_real(LoquiAccount *account, LoquiChannel *channel); GType loqui_account_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiAccountClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_account_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiAccount), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_account_init }; type = g_type_register_static(PARENT_TYPE, "LoquiAccount", &our_info, 0); } return type; } static void loqui_account_class_init(LoquiAccountClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_account_finalize; object_class->set_property = loqui_account_set_property; object_class->get_property = loqui_account_get_property; klass->remove_channel = loqui_account_remove_channel_real; klass->warn = loqui_account_warn_real; klass->info = loqui_account_info_real; klass->disconnect = loqui_account_disconnect_real; klass->terminate = loqui_account_terminate_real; klass->closed = loqui_account_closed_real; g_object_class_install_property(object_class, PROP_USER_SELF, g_param_spec_object("user_self", _("Myself"), _("user self"), LOQUI_TYPE_USER, G_PARAM_READABLE)); g_object_class_install_property(object_class, PROP_PROFILE, g_param_spec_object("profile", _("Profile"), _("Profile of this account"), LOQUI_TYPE_PROFILE_ACCOUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_object_class_install_property(object_class, PROP_SENDER, g_param_spec_object("sender", _("Sender"), _("Command sender"), LOQUI_TYPE_SENDER, G_PARAM_READABLE)); g_object_class_install_property(object_class, PROP_RECEIVER, g_param_spec_object("receiver", _("Receiver"), _("Command receiver"), LOQUI_TYPE_RECEIVER, G_PARAM_READABLE)); g_object_class_install_property(object_class, PROP_IS_CONNECTED, g_param_spec_boolean("is_connected", _("IsConnected"), _("Connected or not"), FALSE, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_IS_PENDING_RECONNECTING, g_param_spec_boolean("is_pending_reconnecting", _("IsPending_Reconnecting"), _("Pending_Reconnecting or not"), FALSE, G_PARAM_READWRITE)); account_signals[SIGNAL_CONNECT] = g_signal_new("connect", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, connect), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); account_signals[SIGNAL_DISCONNECT] = g_signal_new("disconnect", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, disconnect), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); account_signals[SIGNAL_TERMINATE] = g_signal_new("terminate", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, terminate), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); account_signals[SIGNAL_ADD_CHANNEL] = g_signal_new("add-channel", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, add_channel), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, LOQUI_TYPE_CHANNEL); account_signals[SIGNAL_REMOVE_CHANNEL] = g_signal_new("remove-channel", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, remove_channel), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, LOQUI_TYPE_CHANNEL); account_signals[SIGNAL_WARN] = g_signal_new("warn", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, warn), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); account_signals[SIGNAL_INFO] = g_signal_new("info", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, info), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); account_signals[SIGNAL_CLOSED] = g_signal_new("closed", G_OBJECT_CLASS_TYPE(object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(LoquiAccountClass, closed), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); } static void loqui_account_init(LoquiAccount *account) { LoquiAccountPrivate *priv; priv = g_new0(LoquiAccountPrivate, 1); account->priv = priv; /* FIXME: identifier should be case sensitive */ account->channel_list = NULL; account->identifier_channel_table = g_hash_table_new_full(loqui_utils_strcase_hash, loqui_utils_strcase_equal, g_free, NULL); account->user_identifier_table = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free); account->identifier_user_table = g_hash_table_new_full(loqui_utils_strcase_hash, loqui_utils_strcase_equal, g_free, NULL); account->is_connected = FALSE; account->is_pending_reconnecting = FALSE; account->reconnect_try_count = 0; } static void loqui_account_finalize(GObject *object) { LoquiAccount *account; LoquiAccountPrivate *priv; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(object)); account = LOQUI_ACCOUNT(object); priv = account->priv; LOQUI_G_OBJECT_UNREF_UNLESS_NULL(priv->profile); loqui_account_remove_all_channel(account); #define DESTROY_HASH_TABLE(table) { \ if (table) { \ g_hash_table_destroy(table); \ table = NULL; \ } \ } if (account->user_self) { g_object_set_data(G_OBJECT(account->user_self), LOQUI_ACCOUNT_USER_SELF_ACCOUNT_KEY, NULL); } LOQUI_G_OBJECT_UNREF_UNLESS_NULL(account->user_self); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(account->sender); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(account->receiver); DESTROY_HASH_TABLE(account->identifier_channel_table); DESTROY_HASH_TABLE(account->user_identifier_table); DESTROY_HASH_TABLE(account->identifier_user_table); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(account->priv); } static void loqui_account_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiAccount *account; account = LOQUI_ACCOUNT(object); switch(param_id) { case PROP_USER_SELF: loqui_account_set_user_self(account, g_value_get_object(value)); break; case PROP_PROFILE: loqui_account_set_profile(account, g_value_get_object(value)); break; case PROP_SENDER: loqui_account_set_sender(account, g_value_get_object(value)); break; case PROP_RECEIVER: loqui_account_set_receiver(account, g_value_get_object(value)); break; case PROP_IS_CONNECTED: loqui_account_set_is_connected(account, g_value_get_boolean(value)); break; case PROP_IS_PENDING_RECONNECTING: loqui_account_set_is_pending_reconnecting(account, g_value_get_boolean(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); break; } } static void loqui_account_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiAccount *account; account = LOQUI_ACCOUNT(object); switch(param_id) { case PROP_USER_SELF: g_value_set_object(value, account->user_self); break; case PROP_PROFILE: g_value_set_object(value, account->priv->profile); break; case PROP_SENDER: g_value_set_object(value, account->sender); break; case PROP_RECEIVER: g_value_set_object(value, account->receiver); break; case PROP_IS_CONNECTED: g_value_set_boolean(value, account->is_connected); break; case PROP_IS_PENDING_RECONNECTING: g_value_set_boolean(value, account->is_pending_reconnecting); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); break; } } static void loqui_account_warn_real(LoquiAccount *account, const gchar *str) { gchar *tmp; tmp = g_strconcat("+++ ", str, NULL); loqui_account_append_text(account, NULL, LOQUI_TEXT_TYPE_ERROR, tmp); g_free(tmp); } static void loqui_account_info_real(LoquiAccount *account, const gchar *str) { gchar *tmp; tmp = g_strconcat("+++ ", str, NULL); loqui_account_append_text(account, NULL, LOQUI_TEXT_TYPE_INFO, tmp); g_free(tmp); } static void loqui_account_disconnect_real(LoquiAccount *account) { account->reconnect_try_count = 0; } static void loqui_account_terminate_real(LoquiAccount *account) { account->reconnect_try_count = 0; } static gboolean loqui_account_reconnect_timeout_cb(LoquiAccount *account) { loqui_account_information(LOQUI_ACCOUNT(account), _("Trying to reconnect...")); account->priv->reconnect_timer = 0; loqui_account_set_is_pending_reconnecting(account, FALSE); loqui_account_connect(account); return FALSE; } static void loqui_account_closed_real(LoquiAccount *account, gboolean is_success) { LoquiAccountPrivate *priv; priv = account->priv; if (!is_success && loqui_pref_get_with_default_boolean(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_ACCOUNT, "AutoReconnect", LOQUI_GENERAL_PREF_DEFAULT_ACCOUNT_AUTO_RECONNECT, NULL)) { if (account->reconnect_try_count <= LOQUI_ACCOUNT_RECONNECT_COUNT_MAX) { loqui_account_information(LOQUI_ACCOUNT(account), _("Waiting to reconnect...")); loqui_account_set_is_pending_reconnecting(account, TRUE); priv->reconnect_timer = g_timeout_add(LOQUI_ACCOUNT_RECONNECT_INTERVAL, (GSourceFunc) loqui_account_reconnect_timeout_cb, account); account->reconnect_try_count++; } else { loqui_account_information(LOQUI_ACCOUNT(account), _("Reconnecting count is reached to the limit.")); account->reconnect_try_count = 0; } } } LoquiAccount* loqui_account_new(LoquiProfileAccount *profile) { LoquiAccount *account; LoquiUser *user; user = loqui_user_new(); account = g_object_new(loqui_account_get_type(), "profile", profile, "user_self", user, NULL); return account; } LoquiProfileAccount * loqui_account_get_profile(LoquiAccount *account) { g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); return account->priv->profile; } static void loqui_account_set_profile(LoquiAccount *account, LoquiProfileAccount *profile) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(account->priv->profile); g_object_ref(profile); account->priv->profile = profile; loqui_channel_entry_set_name(LOQUI_CHANNEL_ENTRY(account), loqui_profile_account_get_name(profile)); g_signal_connect(G_OBJECT(profile), "notify::name", G_CALLBACK(loqui_account_profile_notify_name_cb), account); g_object_notify(G_OBJECT(account), "profile"); } static void loqui_account_profile_notify_name_cb(LoquiProfileAccount *profile, GParamSpec *pspec, LoquiAccount *account) { loqui_channel_entry_set_name(LOQUI_CHANNEL_ENTRY(account), loqui_profile_account_get_name(profile)); } LoquiUser * loqui_account_get_user_self(LoquiAccount *account) { g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); return account->user_self; } void loqui_account_set_user_self(LoquiAccount *account, LoquiUser *user_self) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); if (account->user_self) { g_object_set_data(G_OBJECT(account->user_self), LOQUI_ACCOUNT_USER_SELF_ACCOUNT_KEY, NULL); } LOQUI_G_OBJECT_UNREF_UNLESS_NULL(account->user_self); g_object_ref(user_self); account->user_self = user_self; g_object_set_data(G_OBJECT(user_self), LOQUI_ACCOUNT_USER_SELF_ACCOUNT_KEY, account); loqui_account_add_user(account, user_self); g_object_notify(G_OBJECT(account), "user_self"); } LoquiSender * loqui_account_get_sender(LoquiAccount *account) { g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); return account->sender; } void loqui_account_set_sender(LoquiAccount *account, LoquiSender *sender) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(account->sender); g_object_ref(sender); account->sender = sender; } LoquiReceiver * loqui_account_get_receiver(LoquiAccount *account) { g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); return account->receiver; } void loqui_account_set_receiver(LoquiAccount *account, LoquiReceiver *receiver) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); LOQUI_G_OBJECT_UNREF_UNLESS_NULL(account->receiver); g_object_ref(receiver); account->receiver = receiver; } void loqui_account_connect(LoquiAccount *account) { LoquiAccountPrivate *priv; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); priv = account->priv; if (!LOQUI_ACCOUNT_GET_CLASS(account)->connect) { g_warning("LoquiAccount#connect is not implemented."); return; } if (loqui_account_get_is_pending_reconnecting(account)) loqui_account_cancel_pending_reconnecting(account); g_signal_emit(G_OBJECT(account), account_signals[SIGNAL_CONNECT], 0); } void loqui_account_disconnect(LoquiAccount *account) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_signal_emit(G_OBJECT(account), account_signals[SIGNAL_DISCONNECT], 0); } void loqui_account_terminate(LoquiAccount *account) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_signal_emit(G_OBJECT(account), account_signals[SIGNAL_TERMINATE], 0); } static void loqui_account_force_reconnect_notify_is_connected_cb(LoquiAccount *account, GParamSpec *param, gpointer data) { g_signal_handlers_disconnect_by_func(account, loqui_account_force_reconnect_notify_is_connected_cb, data); loqui_account_connect(account); } void loqui_account_force_reconnect(LoquiAccount *account) { LoquiAccountPrivate *priv; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); priv = account->priv; if (loqui_account_get_is_connected(account)) { g_signal_connect(G_OBJECT(account), "notify::is-connected", G_CALLBACK(loqui_account_force_reconnect_notify_is_connected_cb), account); loqui_account_disconnect(account); } else { loqui_account_connect(account); } } void loqui_account_cancel_pending_reconnecting(LoquiAccount *account) { LoquiAccountPrivate *priv; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); priv = account->priv; if (priv->reconnect_timer != 0) { g_source_remove(priv->reconnect_timer); priv->reconnect_timer = 0; loqui_account_information(account, _("Canceled pended reconnecting.")); } loqui_account_set_is_pending_reconnecting(account, FALSE); } void loqui_account_closed(LoquiAccount *account, gboolean is_success) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_signal_emit(G_OBJECT(account), account_signals[SIGNAL_CLOSED], 0, is_success); } static void loqui_account_channel_notify_identifier_cb(LoquiChannel *channel, GParamSpec *pspec, LoquiAccount *account) { GList *l; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_hash_table_foreach_remove(account->identifier_channel_table, loqui_utils_return_true_if_data_of_list_equals_data, channel); l = g_list_find(account->channel_list, channel); g_hash_table_insert(account->identifier_channel_table, g_strdup(loqui_channel_get_identifier(channel)), l); } void loqui_account_add_channel(LoquiAccount *account, LoquiChannel *channel) { GList *l; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_object_ref(channel); l = g_list_alloc(); l->data = channel; account->channel_list = g_list_concat(account->channel_list, l); g_hash_table_insert(account->identifier_channel_table, g_strdup(loqui_channel_get_identifier(channel)), l); g_signal_connect_object(G_OBJECT(channel), "notify::identifier", G_CALLBACK(loqui_account_channel_notify_identifier_cb), account, 0); g_signal_emit(account, account_signals[SIGNAL_ADD_CHANNEL], 0, channel); } static void loqui_account_remove_channel_real(LoquiAccount *account, LoquiChannel *channel) { g_hash_table_remove(account->identifier_channel_table, loqui_channel_get_identifier(channel)); account->channel_list = g_list_remove(account->channel_list, channel); g_object_unref(channel); } void loqui_account_remove_channel(LoquiAccount *account, LoquiChannel *channel) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_signal_emit(account, account_signals[SIGNAL_REMOVE_CHANNEL], 0, channel); } void loqui_account_remove_all_channel(LoquiAccount *account) { GList *list, *cur; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); list = g_list_copy(account->channel_list); for (cur = list; cur != NULL; cur = cur->next) { loqui_account_remove_channel(account, cur->data); } g_list_free(list); } GList * loqui_account_get_channel_list(LoquiAccount *account) { g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); return account->channel_list; } LoquiChannel* loqui_account_get_channel_by_identifier(LoquiAccount *account, const gchar *identifier) { GList *l; g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); g_return_val_if_fail(identifier != NULL, NULL); l = g_hash_table_lookup(account->identifier_channel_table, identifier); if (l) return l->data; return NULL; } /** @param channel_list if NULL, fallback to the console. */ void loqui_account_append_text(LoquiAccount *account, GList *channel_list, LoquiTextType text_type, gchar *text) { LoquiMessageText *msgtext; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); msgtext = loqui_message_text_new(); g_object_set(G_OBJECT(msgtext), "is_remark", FALSE, "account_name", loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account)), "text_type", text_type, "text", text, NULL); if (channel_list) { g_list_foreach(channel_list, (GFunc) loqui_channel_entry_append_message_text, msgtext); } else { loqui_channel_entry_append_message_text(LOQUI_CHANNEL_ENTRY(account), msgtext); } g_object_unref(msgtext); } void loqui_account_append_text_printf(LoquiAccount *account, GList *channel_list, LoquiTextType text_type, const gchar *format, ...) { va_list args; gchar *str; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); loqui_account_append_text(account, channel_list, text_type, str); g_free(str); } void loqui_account_append_text_to_joined_channels(LoquiAccount *account, LoquiUser *user, gboolean fallback_console, LoquiTextType text_type, gchar *text) { GList *list; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); list = loqui_account_search_joined_channel(account, user); if (list != NULL || fallback_console) loqui_account_append_text(account, list, text_type, text); g_list_free(list); } GList * loqui_account_search_joined_channel(LoquiAccount *account, LoquiUser *user) { GList *cur; GList *joined_list = NULL; LoquiChannelEntry *chent; g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); if (user == NULL) return NULL; for (cur = account->channel_list; cur != NULL; cur = cur->next) { chent = LOQUI_CHANNEL_ENTRY(cur->data); if (loqui_channel_entry_get_member_by_user(chent, user)) joined_list = g_list_prepend(joined_list, chent); } joined_list = g_list_reverse(joined_list); return joined_list; } GList * loqui_account_search_joined_channel_by_identifier(LoquiAccount *account, gchar *user_identifier) { g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); if (!user_identifier) return NULL; return loqui_account_search_joined_channel(account, loqui_account_peek_user(account, user_identifier)); } void loqui_account_get_updated_number(LoquiAccount *account, gint *updated_private_talk_number, gint *updated_channel_number) { LoquiChannel *channel; GList *cur; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_return_if_fail(updated_private_talk_number != NULL); g_return_if_fail(updated_channel_number != NULL); *updated_private_talk_number = 0; *updated_channel_number = 0; for(cur = account->channel_list; cur != NULL; cur = cur->next) { channel = LOQUI_CHANNEL(cur->data); if (loqui_channel_entry_get_is_updated(LOQUI_CHANNEL_ENTRY(channel))) { if(loqui_channel_get_is_private_talk(channel)) { (*updated_private_talk_number)++; } else { (*updated_channel_number)++; } } } } static void loqui_account_user_disposed_cb(LoquiAccount *account, LoquiUser *user) { gchar *identifier; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); identifier = g_hash_table_lookup(account->user_identifier_table, user); g_hash_table_remove(account->identifier_user_table, identifier); g_hash_table_remove(account->user_identifier_table, user); } static void loqui_account_user_notify_identifier_cb(LoquiUser *user, GParamSpec *pspec, LoquiAccount *account) { const gchar *identifier_old, *identifier_new; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); identifier_old = g_hash_table_lookup(account->user_identifier_table, user); identifier_new = loqui_user_get_identifier(user); g_hash_table_remove(account->identifier_user_table, identifier_old); g_hash_table_insert(account->identifier_user_table, g_strdup(identifier_new), user); g_hash_table_replace(account->user_identifier_table, user, g_strdup(identifier_new)); } void loqui_account_add_user(LoquiAccount *account, LoquiUser *user) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_signal_connect(G_OBJECT(user), "notify::identifier", G_CALLBACK(loqui_account_user_notify_identifier_cb), account); g_object_weak_ref(G_OBJECT(user), (GWeakNotify) loqui_account_user_disposed_cb, account); g_hash_table_insert(account->identifier_user_table, g_strdup(loqui_user_get_identifier(user)), user); g_hash_table_insert(account->user_identifier_table, user, g_strdup(loqui_user_get_identifier(user))); } LoquiUser * loqui_account_peek_user(LoquiAccount *account, const gchar *identifier) { g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); return g_hash_table_lookup(account->identifier_user_table, identifier); } void loqui_account_remove_user_from_all(LoquiAccount *account, LoquiUser *user, gboolean include_account_channel_entry, GList **removed_channel_entry_list) { GList *list; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); g_return_if_fail(user != NULL); g_return_if_fail(LOQUI_IS_USER(user)); list = loqui_account_search_joined_channel(account, user); g_list_foreach(list, (GFunc) loqui_channel_entry_remove_member_by_user, user); if (include_account_channel_entry && loqui_channel_entry_get_member_by_user(LOQUI_CHANNEL_ENTRY(account), user)) { list = g_list_prepend(list, account); loqui_channel_entry_remove_member_by_user(LOQUI_CHANNEL_ENTRY(account), user); } if (removed_channel_entry_list) { *removed_channel_entry_list = list; } else { g_list_free(list); } } void loqui_account_remove_all_user(LoquiAccount *account) { GList *list, *cur; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); list = loqui_utils_get_key_list_from_hash(account->user_identifier_table); for (cur = list; cur != NULL; cur = cur->next) { loqui_account_remove_user_from_all(account, cur->data, TRUE, NULL); } } LoquiChannel * loqui_account_open_private_talk(LoquiAccount *account, const gchar *identifier, LoquiUser *user) { LoquiProtocol *protocol; LoquiChannel *channel; LoquiUser *user_self; LoquiMember *member; g_return_val_if_fail(account != NULL, NULL); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), NULL); protocol = loqui_account_get_profile(account)->protocol; if ((channel = loqui_account_get_channel_by_identifier(account, identifier)) == NULL) { /* FIXME: priv should not have a identifier? */ channel = loqui_protocol_create_channel(protocol, account, loqui_user_get_nick(user), identifier, TRUE, TRUE); loqui_account_add_channel(account, channel); /* account has reference */ g_object_unref(channel); } loqui_channel_set_is_joined(channel, TRUE); user_self = loqui_account_get_user_self(account); if (!loqui_channel_entry_get_member_by_user(LOQUI_CHANNEL_ENTRY(channel), user_self)) { member = loqui_member_new(user_self); loqui_channel_entry_add_member(LOQUI_CHANNEL_ENTRY(channel), member); g_object_unref(member); } if (user_self != user && !loqui_channel_entry_get_member_by_user(LOQUI_CHANNEL_ENTRY(channel), user)) { member = loqui_member_new(user); loqui_channel_entry_add_member(LOQUI_CHANNEL_ENTRY(channel), member); g_object_unref(member); } return channel; } void loqui_account_warning(LoquiAccount *account, const gchar *format, ...) { va_list args; gchar *str; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); g_signal_emit(G_OBJECT(account), account_signals[SIGNAL_WARN], 0, str); g_free(str); } void loqui_account_information(LoquiAccount *account, const gchar *format, ...) { va_list args; gchar *str; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); g_signal_emit(G_OBJECT(account), account_signals[SIGNAL_INFO], 0, str); g_free(str); } void loqui_account_set_is_connected(LoquiAccount *account, gboolean is_connected) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); if (account->is_connected == is_connected) return; account->is_connected = is_connected; g_object_notify(G_OBJECT(account), "is_connected"); } gboolean loqui_account_get_is_connected(LoquiAccount *account) { g_return_val_if_fail(account != NULL, 0); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), 0); return account->is_connected; } void loqui_account_set_is_pending_reconnecting(LoquiAccount *account, gboolean is_pending_reconnecting) { g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); if (account->is_pending_reconnecting == is_pending_reconnecting) return; account->is_pending_reconnecting = is_pending_reconnecting; g_object_notify(G_OBJECT(account), "is-pending-reconnecting"); } gboolean loqui_account_get_is_pending_reconnecting(LoquiAccount *account) { g_return_val_if_fail(account != NULL, 0); g_return_val_if_fail(LOQUI_IS_ACCOUNT(account), 0); return account->is_pending_reconnecting; } void loqui_account_set_all_channel_unjoined(LoquiAccount *account) { GList *cur; g_return_if_fail(account != NULL); g_return_if_fail(LOQUI_IS_ACCOUNT(account)); for (cur = account->channel_list; cur != NULL; cur = cur->next) { loqui_channel_set_is_joined(LOQUI_CHANNEL(cur->data), FALSE); } } void loqui_account_print_communication(LoquiAccount *account, gboolean receive, gchar *str) { const gchar *receive_mark = "<<"; const gchar *send_mark = ">>"; g_print("[%s] %s %s\n", loqui_channel_entry_get_name(LOQUI_CHANNEL_ENTRY(account)), receive ? receive_mark : send_mark, str); } loqui-0.5.5/libloqui/loqui-utils.h0000664000175000017500000000773512121600532014061 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __UTILS_H__ #define __UTILS_H__ #include #include #define LOQUI_G_FREE_UNLESS_NULL(str) { \ if(str != NULL) { \ g_free(str); \ str = NULL; \ } \ } #define LOQUI_G_OBJECT_UNREF_UNLESS_NULL(obj) { \ if(obj != NULL) { \ g_object_unref(obj); \ obj = NULL; \ } \ } #define LOQUI_G_LIST_FREE_WITH_ELEMENT_FREE_UNLESS_NULL(list) { \ if(list != NULL) { \ g_list_foreach(list, (GFunc) g_free, NULL); \ g_list_free(list); \ list = NULL; \ } \ } #define LOQUI_DEBUG_TIMER_START(timer) { \ timer = g_timer_new(); \ g_timer_start(timer); \ } #define LOQUI_DEBUG_TIMER_STOP(timer, name) { \ g_timer_stop(timer); \ g_print("elapsed(%s): %.7f s\n", name, g_timer_elapsed(timer, NULL)); \ g_timer_destroy(timer); \ } #define LOQUI_UTILS_MASK_BIT(src,field,is_add) ((is_add) ? (src | field) : (src & ~field)) #define LOQUI_UTILS_EMPTY_IF_NULL(str) (str == NULL ? "" : str) void loqui_debug_puts(const gchar *format, ...) G_GNUC_PRINTF(1, 2); void loqui_debug_print(const gchar *format, ...) G_GNUC_PRINTF(1, 2); /* modify itself */ G_CONST_RETURN gchar *loqui_utils_remove_return_code(gchar *str); GList *loqui_utils_line_separated_text_to_list(gchar *str); gchar *loqui_utils_line_separated_text_from_list(GList *list); gchar *loqui_utils_get_iso8601_date_string(time_t t); gchar *loqui_utils_strftime(const gchar *format, struct tm *time); gchar *loqui_utils_strftime_epoch(const gchar *format, time_t t); /* pairs of flag and characters, terminated with -1 */ gchar *loqui_utils_format(const gchar *format, ...); GList *loqui_utils_get_key_list_from_hash(GHashTable *hash_table); GList *loqui_utils_get_value_list_from_hash(GHashTable *hash_table); gpointer utils_get_key_from_value(GHashTable *hash_table); gboolean loqui_utils_search_uri(const gchar *buf, gchar **got_uri, const gchar **start_uri, const gchar **end_uri); void loqui_utils_g_list_foreach_swapped(GList *list, GFunc func, gpointer user_data); gboolean loqui_utils_strcase_equal(gconstpointer a, gconstpointer b); guint loqui_utils_strcase_hash(gconstpointer v); void loqui_utils_g_ptr_array_insert_sort(GPtrArray *array, gint sort_start_pos, GCompareFunc sort_func); gboolean loqui_utils_return_true_if_value_equals_data(gpointer key, gpointer value, gpointer data); gboolean loqui_utils_return_true_if_data_of_list_equals_data(gpointer key, gpointer value, gpointer data); G_CONST_RETURN gchar* loqui_utils_remove_ipv6_prefix_ffff(const gchar *str); gboolean loqui_utils_mkdir_and_chmod(const gchar *path); gsize loqui_utils_count_strarray(const gchar **strarray); GList *loqui_utils_string_array_to_list(gchar **strarray, gboolean free_original); gchar **loqui_utils_list_to_string_array(GList *list, gboolean free_original); void loqui_utils_free_list_and_elements(GList *list); void loqui_utils_free_list_and_elements_unref(GList *list); gchar *loqui_utils_get_lc_ctype(void); gchar *loqui_utils_url_encode(const gchar *str); gchar *loqui_utils_url_decode(const gchar *str); #endif /* __UTILS_H__ */ loqui-0.5.5/libloqui/loqui_codeconv_tools.h0000664000175000017500000000255612121600532016017 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_CODECONV_TOOLS_H__ #define __LOQUI_CODECONV_TOOLS_H__ #include gchar *loqui_codeconv_tools_jis_to_utf8(LoquiCodeConv *codeconv, gboolean is_to_server, const gchar *input, GError **error); gchar *loqui_codeconv_tools_utf8_from_ms_table(const gchar *str); gchar *loqui_codeconv_tools_utf8_to_ms_table(const gchar *str); #endif /* __LOQUI_CODECONV_TOOLS_H__ */ loqui-0.5.5/libloqui/loqui_channel.h0000664000175000017500000000720512121600532014403 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_CHANNEL_H__ #define __LOQUI_CHANNEL_H__ #include #include "loqui_channel_entry.h" #include "irc_constants.h" #include G_BEGIN_DECLS #define LOQUI_TYPE_CHANNEL (loqui_channel_get_type ()) #define LOQUI_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_CHANNEL, LoquiChannel)) #define LOQUI_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_CHANNEL, LoquiChannelClass)) #define LOQUI_IS_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_CHANNEL)) #define LOQUI_IS_CHANNEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_CHANNEL)) #define LOQUI_CHANNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_CHANNEL, LoquiChannelClass)) typedef struct _LoquiChannel LoquiChannel; typedef struct _LoquiChannelClass LoquiChannelClass; typedef struct _LoquiChannelPrivate LoquiChannelPrivate; #include "loqui_account.h" struct _LoquiChannel { LoquiChannelEntry parent; LoquiAccount *account; gboolean is_joined; gboolean is_private_talk; gchar *identifier; gboolean end_names; LoquiModeManager *channel_mode_manager; LoquiChannelPrivate *priv; }; struct _LoquiChannelClass { LoquiChannelEntryClass parent_class; }; GType loqui_channel_get_type(void) G_GNUC_CONST; LoquiChannel* loqui_channel_new(LoquiAccount *account, const gchar *name, const gchar *identifier, gboolean is_joined, gboolean is_private_talk); void loqui_channel_set_account(LoquiChannel *channel, LoquiAccount *account); LoquiAccount *loqui_channel_get_account(LoquiChannel *channel); void loqui_channel_set_is_private_talk(LoquiChannel *channel, gboolean is_private_talk); gboolean loqui_channel_get_is_private_talk(LoquiChannel *channel); void loqui_channel_set_is_joined(LoquiChannel *channel, gboolean is_joined); gboolean loqui_channel_get_is_joined(LoquiChannel *channel); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiChannel, loqui_channel, identifier); void loqui_channel_push_user_mode_queue(LoquiChannel *channel, gboolean is_give, IRCModeFlag flag, const gchar *nick); void loqui_channel_flush_user_mode_queue(LoquiChannel *channel); LoquiMessageText *loqui_channel_create_remark_message_text(LoquiChannel *channel, LoquiTextType type, gboolean is_self, const gchar *nick, const gchar *remark); void loqui_channel_append_remark(LoquiChannel *channel, LoquiTextType type, gboolean is_self, const gchar *nick, const gchar *remark); void loqui_channel_append_text(LoquiChannel *channel, LoquiTextType type, gchar *str); G_END_DECLS #endif /* __LOQUI_CHANNEL_H__ */ loqui-0.5.5/libloqui/loqui-notifier-private.h0000664000175000017500000000235512121605231016202 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 3 "loqui-notifier.gob" #line 27 "loqui-notifier-private.h" #ifndef __LOQUI_NOTIFIER_PRIVATE_H__ #define __LOQUI_NOTIFIER_PRIVATE_H__ #include "loqui-notifier.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui-notifier.gob0000664000175000017500000001111412121600532015042 00000000000000requires 2.0.0 %alltop{ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ %} %h{ #include #include %} %{ #include "libloqui-intl.h" #include "loqui-utils.h" #include "loqui-core.h" #include "loqui.h" #define HIGHLIGHT_WORD_RE_PREIX "re:" #define HIGHLIGHT_WORD_PLAIN_PREFIX "plain:" %} class Loqui:Notifier from G:Object { public Loqui:Notifier * new(void) { LoquiNotifier *ret; ret = GET_NEW; return ret; } /* caution: 'notify' signal is used by GObject. */ signal last NONE (OBJECT) void notify_highlight(self, LoquiMessageText *msgtext); signal last NONE (OBJECT) void notify_uri(self, LoquiMessageText *msgtext); public virtual void process_message_text(self, LoquiMessageText *msgtext) { if (loqui_message_text_get_is_remark(msgtext) && self_search_highlight_regions(self, msgtext)) self_notify_highlight(self, msgtext); if (self_search_uri_regions(self, msgtext)) self_notify_uri(self, msgtext); } private void search_highlight_word_regexp(self, LoquiMessageText *msgtext, gchar *regexp_str) { GRegex *regex; GMatchInfo *match_info; GError *error; const gchar *text; gssize string_len; gint start_pos, end_pos; LoquiMessageTextRegion *region; error = NULL; if ((regex = g_regex_new(regexp_str, 0, 0, &error)) == NULL) { g_warning("Regex compile error: %s", error->message); g_error_free(error); return; } text = loqui_message_text_get_text(msgtext); string_len = strlen(text); g_regex_match(regex, text, 0, &match_info); while (g_match_info_matches(match_info)) { g_match_info_fetch_pos(match_info, 0, &start_pos, &end_pos); region = loqui_message_text_region_create(msgtext, start_pos, end_pos); msgtext->highlight_region_list = g_list_append(msgtext->highlight_region_list, region); g_match_info_next(match_info, NULL); } g_match_info_free(match_info); g_regex_unref(regex); } public gboolean search_highlight_regions(self, LoquiMessageText *msgtext) { const gchar *remark; LoquiMessageTextRegion *region; gchar **highlight_array; gboolean matched; gchar *word, *raw; gsize len; const gchar *tmp, *cur; int i; matched = FALSE; remark = loqui_message_text_get_text(msgtext); highlight_array = loqui_pref_get_string_list(loqui_get_general_pref(), LOQUI_GENERAL_PREF_GROUP_NOTIFICATION, "HighlightList", NULL, NULL); if (highlight_array == NULL) return FALSE; for (i = 0; (raw = highlight_array[i]) != NULL; i++) { if (g_str_has_prefix(raw, HIGHLIGHT_WORD_RE_PREIX)) { self_search_highlight_word_regexp(self, msgtext, raw + strlen(HIGHLIGHT_WORD_RE_PREIX)); continue; } if (g_str_has_prefix(raw, HIGHLIGHT_WORD_PLAIN_PREFIX)) { word = raw + strlen(HIGHLIGHT_WORD_PLAIN_PREFIX); } else { word = raw; } len = strlen(word); for (cur = remark; (tmp = strstr(cur, word)) != NULL; cur = tmp + len) { region = loqui_message_text_region_create_from_offset(msgtext, tmp - remark, len); msgtext->highlight_region_list = g_list_append(msgtext->highlight_region_list, region); matched = TRUE; } } g_strfreev(highlight_array); return matched; } public gboolean search_uri_regions(self, LoquiMessageText *msgtext) { const gchar *text; const gchar *cur; const gchar *start_uri, *end_uri; LoquiMessageTextRegion *region; gboolean matched = FALSE; text = loqui_message_text_get_text(msgtext); cur = text; while (*cur && loqui_utils_search_uri(cur, NULL, &start_uri, &end_uri)) { region = loqui_message_text_region_create(msgtext, start_uri - text, end_uri - text); msgtext->uri_region_list = g_list_append(msgtext->uri_region_list, region); matched = TRUE; cur = end_uri; } return matched; } } loqui-0.5.5/libloqui/loqui-mode-item.gob0000664000175000017500000000351712121600532015113 00000000000000requires 2.0.0 %alltop{ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ %} %{ #include #include "loqui-utils.h" %} %h{ typedef struct _LoquiModeTableItem { gint mode_id; gchar mode_char; gboolean require_data_str_to_set; gboolean require_data_str_to_unset; gchar *name; gchar *nick; gchar *description; } LoquiModeTableItem; %} class Loqui:Mode:Item from G:Object { public gboolean is_change; public gboolean is_set; public gchar* data_str = NULL unrefwith g_free; public LoquiModeTableItem *table_item; public Loqui:Mode:Item * new(gboolean is_change, gboolean is_set, LoquiModeTableItem *table_item, gchar *data_str) { Self *self; self = GET_NEW; self->is_change = is_change; self->is_set = is_set; self->table_item = table_item; if (data_str) self->data_str = g_strdup(data_str); return self; } public void set_data_str(self, gchar *str) { LOQUI_G_FREE_UNLESS_NULL(self->data_str); if (str) self->data_str = g_strdup(str); } } loqui-0.5.5/libloqui/loqui_channel_entry_utils.c0000664000175000017500000000340512121600532017035 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui_channel_entry_utils.h" /* chent: null -> account = null, channel = null chent: channel -> account = channel->account, channel = channel chent: account -> account = account, channel = null */ gboolean loqui_channel_entry_utils_separate(LoquiChannelEntry *chent, LoquiAccount **account, LoquiChannel **channel) { LoquiAccount *ac = NULL; LoquiChannel *ch = NULL; if (chent == NULL) { } else if (LOQUI_IS_CHANNEL(chent)) { ch = LOQUI_CHANNEL(chent); ac = loqui_channel_get_account(ch); } else if (LOQUI_IS_ACCOUNT(chent)) { ch = NULL; ac = LOQUI_ACCOUNT(chent); } else { if (account) *account = NULL; if (channel) *channel = NULL; return FALSE; } if (account) *account = ac; if (channel) *channel = ch; return TRUE; } loqui-0.5.5/libloqui/loqui_profile_account.h0000664000175000017500000001012412121600532016141 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_PROFILE_ACCOUNT_H__ #define __LOQUI_PROFILE_ACCOUNT_H__ #include #include #include G_BEGIN_DECLS #define LOQUI_TYPE_PROFILE_ACCOUNT (loqui_profile_account_get_type ()) #define LOQUI_PROFILE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_PROFILE_ACCOUNT, LoquiProfileAccount)) #define LOQUI_PROFILE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_PROFILE_ACCOUNT, LoquiProfileAccountClass)) #define LOQUI_IS_PROFILE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_PROFILE_ACCOUNT)) #define LOQUI_IS_PROFILE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_PROFILE_ACCOUNT)) #define LOQUI_PROFILE_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_PROFILE_ACCOUNT, LoquiProfileAccountClass)) typedef struct _LoquiProfileAccount LoquiProfileAccount; typedef struct _LoquiProfileAccountClass LoquiProfileAccountClass; typedef struct _LoquiProfileAccountPrivate LoquiProfileAccountPrivate; #include #include "loqui_codeconv.h" struct _LoquiProfileAccount { LoquiPropertyProfile parent; LoquiProtocol *protocol; gchar *name; gboolean use; gchar *servername; gint port; gchar *username; gchar *password; gchar *nick; LoquiCodeConvMode codeconv_mode; gchar *codeconv_item_name; gchar *codeset; GList *nick_list; LoquiProfileAccountPrivate *priv; }; struct _LoquiProfileAccountClass { LoquiPropertyProfileClass parent_class; }; GType loqui_profile_account_get_type(void) G_GNUC_CONST; LoquiProfileAccount* loqui_profile_account_new(LoquiProtocol *protocol); LoquiProtocol* loqui_profile_account_get_protocol(LoquiProfileAccount *profile); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, use, gboolean); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, name); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, nick); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, servername); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, port, int); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, username); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, password); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, codeconv_mode, int); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, codeconv_item_name); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccount, loqui_profile_account, codeset); void loqui_profile_account_set_nick_list(LoquiProfileAccount *profile, GList *nick_list); GList *loqui_profile_account_get_nick_list(LoquiProfileAccount *profile); void loqui_profile_account_print(LoquiProfileAccount *profile); G_END_DECLS #endif /* __LOQUI_PROFILE_ACCOUNT_H__ */ loqui-0.5.5/libloqui/loqui-profile.h0000664000175000017500000000552612121600532014355 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_PROFILE_H__ #define __LOQUI_PROFILE_H__ /* this is interface */ #include G_BEGIN_DECLS #define LOQUI_TYPE_PROFILE (loqui_profile_get_type ()) #define LOQUI_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_PROFILE, LoquiProfile)) #define LOQUI_IS_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_PROFILE)) #define LOQUI_PROFILE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LOQUI_TYPE_PROFILE, LoquiProfileIface)) typedef struct _LoquiProfile LoquiProfile; /* dummy */ typedef struct _LoquiProfileIface LoquiProfileIface; struct _LoquiProfileIface { GTypeInterface parent; void (* set_profile_type_name) (LoquiProfile *self, const gchar *type_name); gchar * (* get_profile_type_name) (LoquiProfile *self); /* dynamic */ void (* set_profile_value) (LoquiProfile *self, const gchar *key, const GValue *value); void (* get_profile_value) (LoquiProfile *self, const gchar *key, GValue *value); GParamSpec * (* get_profile_value_spec) (LoquiProfile *self, const gchar *key, const gchar *type_hint); GList * (* get_profile_key_list) (LoquiProfile *self); }; GType loqui_profile_get_type(void) G_GNUC_CONST; void loqui_profile_set_profile_type_name(LoquiProfile *self, const gchar *type_name); gchar *loqui_profile_get_profile_type_name(LoquiProfile *self); void loqui_profile_set_profile_value(LoquiProfile *self, const gchar *key, const GValue *value); void loqui_profile_get_profile_value(LoquiProfile *self, const gchar *key, GValue *value); GParamSpec *loqui_profile_get_profile_value_spec(LoquiProfile *self, const gchar *key, const gchar *type_hint); /* type_hint: reserved for the future */ GList *loqui_profile_get_profile_key_list(LoquiProfile *self); /* List and strings are dynamically generated */ G_END_DECLS #endif /* __LOQUI_PROFILE_H__ */ loqui-0.5.5/libloqui/loqui_profile_account_irc.h0000664000175000017500000000607612121600532017011 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_PROFILE_ACCOUNT_IRC_H__ #define __LOQUI_PROFILE_ACCOUNT_IRC_H__ #include #include "loqui_profile_account.h" G_BEGIN_DECLS #define LOQUI_TYPE_PROFILE_ACCOUNT_IRC (loqui_profile_account_irc_get_type ()) #define LOQUI_PROFILE_ACCOUNT_IRC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_PROFILE_ACCOUNT_IRC, LoquiProfileAccountIRC)) #define LOQUI_PROFILE_ACCOUNT_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_PROFILE_ACCOUNT_IRC, LoquiProfileAccountIRCClass)) #define LOQUI_IS_PROFILE_ACCOUNT_IRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_PROFILE_ACCOUNT_IRC)) #define LOQUI_IS_PROFILE_ACCOUNT_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_PROFILE_ACCOUNT_IRC)) #define LOQUI_PROFILE_ACCOUNT_IRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_PROFILE_ACCOUNT_IRC, LoquiProfileAccountIRCClass)) typedef struct _LoquiProfileAccountIRC LoquiProfileAccountIRC; typedef struct _LoquiProfileAccountIRCClass LoquiProfileAccountIRCClass; typedef struct _LoquiProfileAccountIRCPrivate LoquiProfileAccountIRCPrivate; struct _LoquiProfileAccountIRC { LoquiProfileAccount parent; gchar *realname; gchar *userinfo; gchar *autojoin; gchar *quit_message; GList *nick_list; /* list of gchar * */ LoquiProfileAccountIRCPrivate *priv; }; struct _LoquiProfileAccountIRCClass { LoquiProfileAccountClass parent_class; }; GType loqui_profile_account_irc_get_type(void) G_GNUC_CONST; LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccountIRC, loqui_profile_account_irc, realname); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccountIRC, loqui_profile_account_irc, userinfo); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccountIRC, loqui_profile_account_irc, autojoin); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiProfileAccountIRC, loqui_profile_account_irc, quit_message); LoquiProfileAccountIRC* loqui_profile_account_irc_new(void); G_END_DECLS #endif /* __LOQUI_PROFILE_ACCOUNT_IRC_H__ */ loqui-0.5.5/libloqui/loqui_receiver_irc.h0000664000175000017500000000507112121600532015433 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_RECEIVER_IRC_H__ #define __LOQUI_RECEIVER_IRC_H__ #include "irc_message.h" #include "loqui_receiver.h" G_BEGIN_DECLS #define LOQUI_TYPE_RECEIVER_IRC (loqui_receiver_irc_get_type ()) #define LOQUI_RECEIVER_IRC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_RECEIVER_IRC, LoquiReceiverIRC)) #define LOQUI_RECEIVER_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_RECEIVER_IRC, LoquiReceiverIRCClass)) #define LOQUI_IS_RECEIVER_IRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_RECEIVER_IRC)) #define LOQUI_IS_RECEIVER_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_RECEIVER_IRC)) #define LOQUI_RECEIVER_IRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_RECEIVER_IRC, LoquiReceiverIRCClass)) typedef struct _LoquiReceiverIRC LoquiReceiverIRC; typedef struct _LoquiReceiverIRCClass LoquiReceiverIRCClass; typedef struct _LoquiReceiverIRCPrivate LoquiReceiverIRCPrivate; #include "loqui_account.h" struct _LoquiReceiverIRC { LoquiReceiver parent; guint prevent_print_who_reply_count; gboolean passed_welcome; LoquiReceiverIRCPrivate *priv; }; struct _LoquiReceiverIRCClass { LoquiReceiverClass parent_class; }; GType loqui_receiver_irc_get_type(void) G_GNUC_CONST; LoquiReceiverIRC* loqui_receiver_irc_new(LoquiAccount *account); void loqui_receiver_irc_response(LoquiReceiverIRC *receiver, IRCMessage *msg); void loqui_receiver_irc_reset(LoquiReceiverIRC *receiver); G_END_DECLS #endif /* __LOQUI_RECEIVER_IRC_H__ */ loqui-0.5.5/libloqui/loqui-pref-sequence.h0000664000175000017500000001055012121605231015451 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_PREF_SEQUENCE_H__ #define __LOQUI_PREF_SEQUENCE_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define LOQUI_TYPE_PREF_SEQUENCE (loqui_pref_sequence_get_type()) #define LOQUI_PREF_SEQUENCE(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_pref_sequence_get_type(), LoquiPrefSequence) #define LOQUI_PREF_SEQUENCE_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_pref_sequence_get_type(), LoquiPrefSequence const) #define LOQUI_PREF_SEQUENCE_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_pref_sequence_get_type(), LoquiPrefSequenceClass) #define LOQUI_IS_PREF_SEQUENCE(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_pref_sequence_get_type ()) #define LOQUI_PREF_SEQUENCE_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_pref_sequence_get_type(), LoquiPrefSequenceClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_PREF_SEQUENCE__ #define __TYPEDEF_LOQUI_PREF_SEQUENCE__ typedef struct _LoquiPrefSequence LoquiPrefSequence; #endif struct _LoquiPrefSequence { GObject __parent__; /*< public >*/ LoquiPref * pref; gchar * prefix; }; /* * Class definition */ typedef struct _LoquiPrefSequenceClass LoquiPrefSequenceClass; struct _LoquiPrefSequenceClass { GObjectClass __parent__; }; /* * Public methods */ GType loqui_pref_sequence_get_type (void) G_GNUC_CONST; #line 47 "loqui-pref-sequence.gob" void loqui_pref_sequence_set_pref (LoquiPrefSequence * self, LoquiPref * pref); #line 81 "loqui-pref-sequence.h" #line 56 "loqui-pref-sequence.gob" LoquiPref * loqui_pref_sequence_get_pref (LoquiPrefSequence * self); #line 84 "loqui-pref-sequence.h" #line 61 "loqui-pref-sequence.gob" void loqui_pref_sequence_set_prefix (LoquiPrefSequence * self, const gchar * prefix); #line 88 "loqui-pref-sequence.h" #line 68 "loqui-pref-sequence.gob" const gchar * loqui_pref_sequence_get_prefix (LoquiPrefSequence * self); #line 91 "loqui-pref-sequence.h" #line 73 "loqui-pref-sequence.gob" gchar * loqui_pref_sequence_create_group_name (LoquiPrefSequence * self, gint id); #line 95 "loqui-pref-sequence.h" #line 80 "loqui-pref-sequence.gob" gboolean loqui_pref_sequence_has_id (LoquiPrefSequence * self, gint id); #line 99 "loqui-pref-sequence.h" #line 101 "loqui-pref-sequence.gob" gint loqui_pref_sequence_get_new_id (LoquiPrefSequence * self); #line 102 "loqui-pref-sequence.h" #line 127 "loqui-pref-sequence.gob" GList * loqui_pref_sequence_get_id_list (LoquiPrefSequence * self); #line 105 "loqui-pref-sequence.h" #line 154 "loqui-pref-sequence.gob" LoquiPrefPartial * loqui_pref_sequence_get_pref_partial (LoquiPrefSequence * self, gint id); #line 109 "loqui-pref-sequence.h" #line 174 "loqui-pref-sequence.gob" LoquiPrefSequence * loqui_pref_sequence_new (void); #line 112 "loqui-pref-sequence.h" /* * Argument wrapping macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define LOQUI_PREF_SEQUENCE_PROP_PREF(arg) "pref", __extension__ ({GObject *z = (arg); z;}) #define LOQUI_PREF_SEQUENCE_GET_PROP_PREF(arg) "pref", __extension__ ({GObject **z = (arg); z;}) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define LOQUI_PREF_SEQUENCE_PROP_PREF(arg) "pref",(GObject *)(arg) #define LOQUI_PREF_SEQUENCE_GET_PROP_PREF(arg) "pref",(GObject **)(arg) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/Makefile.in0000664000175000017500000010311112121622350013451 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libloqui DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libloqui_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__objects_1 = loqui-utils.lo loqui_webutils.lo \ loqui-gobject-utils.lo loqui_string_tokenizer.lo \ loqui_title_format.lo loqui_marshalers.lo am__objects_2 = loqui_channel_entry.lo loqui_codeconv_tools.lo \ loqui_codeconv.lo loqui_channel_buffer.lo \ loqui_channel_entry_utils.lo loqui-profile.lo \ loqui-profile-factory.lo loqui-generic-profile-factory.lo \ loqui-property-profile.lo loqui-message-text.lo \ loqui-message-text-region.lo am__objects_3 = loqui_user.lo loqui_profile_account.lo \ loqui_channel.lo loqui_sender.lo loqui_receiver.lo \ loqui_account.lo loqui_message.lo loqui_member.lo \ loqui-protocol.lo loqui-mode-item.lo loqui-mode-manager.lo \ loqui-transfer-item.lo am__objects_4 = loqui_protocol_irc.lo loqui_user_irc.lo \ loqui_utils_irc.lo loqui_channel_irc.lo \ loqui_profile_account_irc.lo loqui_sender_irc.lo \ loqui_receiver_irc.lo loqui_account_irc.lo irc_message.lo \ ctcp_message.lo ctcp_handle.lo am__objects_5 = loqui_protocol_ipmsg.lo loqui_user_ipmsg.lo \ loqui-utils-ipmsg.lo loqui_profile_account_ipmsg.lo \ ipmsg_packet.lo loqui-account-ipmsg.lo loqui-receiver-ipmsg.lo \ loqui-sender-ipmsg.lo loqui-socket-ipmsg.lo am__objects_6 = loqui_protocol_manager.lo loqui_member_sort_funcs.lo \ loqui_account_manager_iter.lo loqui-static-core.lo \ loqui-core.lo loqui-pref.lo loqui-pref-partial.lo \ loqui-pref-sequence.lo loqui-profile-handle.lo \ loqui-account-manager.lo loqui-notifier.lo am_libloqui_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) $(am__objects_5) \ $(am__objects_6) libloqui_la_OBJECTS = $(am_libloqui_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libloqui_la_SOURCES) DIST_SOURCES = $(libloqui_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNET_CFLAGS = @GNET_CFLAGS@ GNET_LIBS = @GNET_LIBS@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . protocols INCLUDES = $(GLIB_CFLAGS) $(GNET_CFLAGS) $(EXTRA_WARNING_CFLAGS) -I$(includedir) -I$(top_srcdir) -DG_LOG_DOMAIN=\"libloqui\" AM_CFLAGS = -g -Wall -Wredundant-decls -Wmissing-declarations -Wmissing-prototypes SRC_BASE_UTILITIES = \ loqui-utils.c loqui-utils.h \ loqui_webutils.c loqui_webutils.h \ loqui-gobject-utils.c loqui-gobject-utils.h \ loqui_string_tokenizer.c loqui_string_tokenizer.h \ loqui_title_format.c loqui_title_format.h \ loqui_marshalers.c loqui_marshalers.h SRC_PROTOCOL_BASE_BASE = \ loqui_channel_entry.c loqui_channel_entry.h \ loqui_codeconv_tools.c loqui_codeconv_tools.h \ loqui_codeconv.c loqui_codeconv.h \ loqui_channel_buffer.c loqui_channel_buffer.h \ loqui_channel_entry_utils.c loqui_channel_entry_utils.h \ loqui-profile.c loqui-profile.h \ loqui-profile-factory.c loqui-profile-factory.h \ loqui-generic-profile-factory.gob loqui-property-profile.gob loqui-message-text.gob loqui-message-text-region.gob loqui-generic-profile-factory.c loqui-property-profile.c loqui-message-text.c loqui-message-text-region.c \ loqui-generic-profile-factory.h loqui-property-profile.h loqui-message-text.h loqui-message-text-region.h \ loqui-generic-profile-factory-private.h loqui-property-profile-private.h loqui-message-text-private.h loqui-message-text-region-private.h SRC_PROTOCOL_BASE = \ loqui_user.c loqui_user.h \ loqui_profile_account.c loqui_profile_account.h \ loqui_channel.c loqui_channel.h \ loqui_sender.c loqui_sender.h \ loqui_receiver.c loqui_receiver.h \ loqui_account.c loqui_account.h \ loqui_message.c loqui_message.h \ loqui_member.c loqui_member.h \ loqui-protocol.gob loqui-mode-item.gob loqui-mode-manager.gob loqui-transfer-item.gob loqui-protocol.c loqui-mode-item.c loqui-mode-manager.c loqui-transfer-item.c \ loqui-protocol.h loqui-mode-item.h loqui-mode-manager.h loqui-transfer-item.h \ loqui-protocol-private.h loqui-mode-item-private.h loqui-mode-manager-private.h loqui-transfer-item-private.h SRC_PROTOCOL_IRC = \ loqui_protocol_irc.c loqui_protocol_irc.h \ loqui_user_irc.c loqui_user_irc.h \ loqui_utils_irc.c loqui_utils_irc.h \ loqui_channel_irc.c loqui_channel_irc.h \ loqui_profile_account_irc.c loqui_profile_account_irc.h \ loqui_sender_irc.c loqui_sender_irc.h \ loqui_receiver_irc.c loqui_receiver_irc.h \ loqui_account_irc.c loqui_account_irc.h \ irc_constants.h \ irc_message.c irc_message.h \ ctcp_message.c ctcp_message.h \ ctcp_handle.c ctcp_handle.h SRC_PROTOCOL_IPMSG = \ loqui_protocol_ipmsg.c loqui_protocol_ipmsg.h \ loqui_user_ipmsg.c loqui_user_ipmsg.h \ loqui-utils-ipmsg.c loqui-utils-ipmsg.h \ loqui_profile_account_ipmsg.c loqui_profile_account_ipmsg.h \ ipmsg.h \ ipmsg_packet.c ipmsg_packet.h \ loqui-account-ipmsg.gob loqui-receiver-ipmsg.gob loqui-sender-ipmsg.gob loqui-socket-ipmsg.gob loqui-account-ipmsg.c loqui-receiver-ipmsg.c loqui-sender-ipmsg.c loqui-socket-ipmsg.c \ loqui-account-ipmsg.h loqui-receiver-ipmsg.h loqui-sender-ipmsg.h loqui-socket-ipmsg.h \ loqui-account-ipmsg-private.h loqui-receiver-ipmsg-private.h loqui-sender-ipmsg-private.h loqui-socket-ipmsg-private.h SRC_LIBRARY_CORE = \ libloqui-intl.h \ loqui_protocol_manager.c loqui_protocol_manager.h \ loqui_member_sort_funcs.c loqui_member_sort_funcs.h \ loqui-general-pref-groups.h loqui-general-pref-default.h \ loqui_account_manager_iter.c loqui_account_manager_iter.h \ loqui-static-core.c loqui-static-core.h \ loqui.h \ loqui-core.gob loqui-pref.gob loqui-pref-partial.gob loqui-pref-sequence.gob loqui-profile-handle.gob loqui-account-manager.gob loqui-notifier.gob \ loqui-core.c loqui-pref.c loqui-pref-partial.c loqui-pref-sequence.c loqui-profile-handle.c loqui-account-manager.c loqui-notifier.c \ loqui-core.h loqui-pref.h loqui-pref-partial.h loqui-pref-sequence.h loqui-profile-handle.h loqui-account-manager.h loqui-notifier.h \ loqui-core-private.h loqui-pref-private.h loqui-pref-partial-private.h loqui-pref-sequence-private.h loqui-profile-handle-private.h loqui-account-manager-private.h loqui-notifier-private.h BUILT_SOURCES := loqui_marshalers.c loqui_marshalers.h \ loqui-core.c loqui-pref.c loqui-pref-partial.c loqui-pref-sequence.c loqui-profile-handle.c loqui-account-manager.c loqui-notifier.c \ loqui-core.h loqui-pref.h loqui-pref-partial.h loqui-pref-sequence.h loqui-profile-handle.h loqui-account-manager.h loqui-notifier.h \ loqui-core-private.h loqui-pref-private.h loqui-pref-partial-private.h loqui-pref-sequence-private.h loqui-profile-handle-private.h loqui-account-manager-private.h loqui-notifier-private.h \ loqui-generic-profile-factory.c loqui-property-profile.c loqui-message-text.c loqui-message-text-region.c \ loqui-generic-profile-factory.h loqui-property-profile.h loqui-message-text.h loqui-message-text-region.h \ loqui-generic-profile-factory-private.h loqui-property-profile-private.h loqui-message-text-private.h loqui-message-text-region-private.h \ loqui-protocol.c loqui-mode-item.c loqui-mode-manager.c loqui-transfer-item.c \ loqui-protocol.h loqui-mode-item.h loqui-mode-manager.h loqui-transfer-item.h \ loqui-protocol-private.h loqui-mode-item-private.h loqui-mode-manager-private.h loqui-transfer-item-private.h \ loqui-account-ipmsg.c loqui-receiver-ipmsg.c loqui-sender-ipmsg.c loqui-socket-ipmsg.c \ loqui-account-ipmsg.h loqui-receiver-ipmsg.h loqui-sender-ipmsg.h loqui-socket-ipmsg.h \ loqui-account-ipmsg-private.h loqui-receiver-ipmsg-private.h loqui-sender-ipmsg-private.h loqui-socket-ipmsg-private.h noinst_LTLIBRARIES = libloqui.la libloqui_la_SOURCES = \ $(SRC_BASE_UTILITIES) \ $(SRC_PROTOCOL_BASE_BASE) \ $(SRC_PROTOCOL_BASE) \ $(SRC_PROTOCOL_IRC) \ $(SRC_PROTOCOL_IPMSG) \ $(SRC_LIBRARY_CORE) libloqui_la_LIBADD = \ $(GLIB_LIBS) \ $(GNET_LIBS) EXTRA_DIST = \ loqui_marshalers.list all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libloqui/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libloqui/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libloqui.la: $(libloqui_la_OBJECTS) $(libloqui_la_DEPENDENCIES) $(EXTRA_libloqui_la_DEPENDENCIES) $(LINK) $(libloqui_la_OBJECTS) $(libloqui_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctcp_handle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctcp_message.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipmsg_packet.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/irc_message.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-account-ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-account-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-generic-profile-factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-gobject-utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-message-text-region.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-message-text.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-mode-item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-mode-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-notifier.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-pref-partial.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-pref-sequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-pref.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-profile-factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-profile-handle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-property-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-protocol.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-receiver-ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-sender-ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-socket-ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-static-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-transfer-item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-utils-ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui-utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_account.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_account_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_account_manager_iter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_entry.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_entry_utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_channel_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_codeconv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_codeconv_tools.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_marshalers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_member.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_member_sort_funcs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_message.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_profile_account.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_profile_account_ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_profile_account_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_protocol_ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_protocol_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_protocol_manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_receiver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_receiver_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_sender.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_sender_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_string_tokenizer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_title_format.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_user.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_user_ipmsg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_user_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_utils_irc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loqui_webutils.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-noinstLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am @MAINTAINER_MODE_TRUE@Makefile.am: %: %.m4 $(top_srcdir)/loqui-am-macros.m4 @MAINTAINER_MODE_TRUE@ m4 -I$(top_srcdir) $< > $@ show-needless-svn-ignore: all-am @svn propget svn:ignore . | while read line; do \ [ ! -z "$$(find . -maxdepth 1 -name "$$line" -print)" ] || \ echo "$$line"; \ done add-built-sources-to-bzr-ignore: @set -e;tmpname=$$(mktemp -t bzr-ignore-temp.XXXXXX) && ( \ ((cat "$(top_srcdir)/.bzrignore"; \ echo -n "$(BUILT_SOURCES)" | tr " " "\n" | sed -e "s|^|$(subdir)/|") | \ sort | uniq > "$$tmpname") && \ if cmp -s "$(top_srcdir)/.bzrignore" "$$tmpname"; then \ rm "$$tmpname"; \ else \ mv "$$tmpname" "$(top_srcdir)/.bzrignore"; \ fi; \ ) %.c %.h %-private.h: %.gob gob2 --always-private-header $< loqui_marshalers.h : loqui_marshalers.list $(GLIB_GENMARSHAL) $(GLIB_GENMARSHAL) $< --header --prefix=_loqui_marshal > $@ loqui_marshalers.c : loqui_marshalers.list $(GLIB_GENMARSHAL) $(GLIB_GENMARSHAL) $< --body --prefix=_loqui_marshal > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: loqui-0.5.5/libloqui/loqui-static-core.c0000664000175000017500000000255112121600532015120 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui-static-core.h" static LoquiCore *loqui_core = NULL; void loqui_init(LoquiCore *core) { if (core) loqui_core = core; else loqui_core = loqui_core_new(); loqui_core_initialize(loqui_core); } LoquiCore * loqui_get_core(void) { return loqui_core; } LoquiPref * loqui_get_general_pref(void) { return loqui_core_get_general_pref(loqui_get_core()); } loqui-0.5.5/libloqui/loqui-sender-ipmsg.h0000664000175000017500000000736312121605231015314 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_SENDER_IPMSG_H__ #define __LOQUI_SENDER_IPMSG_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "loqui_sender.h" #include "loqui_account.h" #include /* * Type checking and casting macros */ #define LOQUI_TYPE_SENDER_IPMSG (loqui_sender_ipmsg_get_type()) #define LOQUI_SENDER_IPMSG(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_sender_ipmsg_get_type(), LoquiSenderIPMsg) #define LOQUI_SENDER_IPMSG_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_sender_ipmsg_get_type(), LoquiSenderIPMsg const) #define LOQUI_SENDER_IPMSG_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_sender_ipmsg_get_type(), LoquiSenderIPMsgClass) #define LOQUI_IS_SENDER_IPMSG(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_sender_ipmsg_get_type ()) #define LOQUI_SENDER_IPMSG_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_sender_ipmsg_get_type(), LoquiSenderIPMsgClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_SENDER_IPMSG__ #define __TYPEDEF_LOQUI_SENDER_IPMSG__ typedef struct _LoquiSenderIPMsg LoquiSenderIPMsg; #endif struct _LoquiSenderIPMsg { LoquiSender __parent__; /*< public >*/ GList * retring_sendmsg_list; }; /* * Class definition */ typedef struct _LoquiSenderIPMsgClass LoquiSenderIPMsgClass; struct _LoquiSenderIPMsgClass { LoquiSenderClass __parent__; }; /* * Public methods */ GType loqui_sender_ipmsg_get_type (void) G_GNUC_CONST; #line 155 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_nooperation (LoquiSenderIPMsg * self); #line 82 "loqui-sender-ipmsg.h" #line 216 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_br_entry (LoquiSenderIPMsg * self); #line 85 "loqui-sender-ipmsg.h" #line 219 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_br_absence (LoquiSenderIPMsg * self); #line 88 "loqui-sender-ipmsg.h" #line 222 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_ansentry (LoquiSenderIPMsg * self); #line 91 "loqui-sender-ipmsg.h" #line 225 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_br_exit (LoquiSenderIPMsg * self); #line 94 "loqui-sender-ipmsg.h" #line 229 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_send_sendmsg (LoquiSenderIPMsg * self, LoquiUser * user, const gchar * text); #line 99 "loqui-sender-ipmsg.h" #line 253 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_send_recvmsg (LoquiSenderIPMsg * self, gint orig_packet_num, GInetSocketAddress * dest_inetaddr); #line 104 "loqui-sender-ipmsg.h" #line 267 "loqui-sender-ipmsg.gob" void loqui_sender_ipmsg_sendinfo (LoquiSenderIPMsg * self, GInetSocketAddress * dest_inetaddr); #line 108 "loqui-sender-ipmsg.h" #line 282 "loqui-sender-ipmsg.gob" LoquiSenderIPMsg * loqui_sender_ipmsg_new (LoquiAccount * account); #line 111 "loqui-sender-ipmsg.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui_channel_buffer.h0000664000175000017500000000416412121600532015735 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_CHANNEL_BUFFER_H__ #define __LOQUI_CHANNEL_BUFFER_H__ /* this is interface */ #include #include G_BEGIN_DECLS #define LOQUI_TYPE_CHANNEL_BUFFER (loqui_channel_buffer_get_type ()) #define LOQUI_CHANNEL_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_CHANNEL_BUFFER, LoquiChannelBuffer)) #define LOQUI_IS_CHANNEL_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_CHANNEL_BUFFER)) #define LOQUI_CHANNEL_BUFFER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LOQUI_TYPE_CHANNEL_BUFFER, LoquiChannelBufferIface)) typedef struct _LoquiChannelBuffer LoquiChannelBuffer; /* dummy */ typedef struct _LoquiChannelBufferIface LoquiChannelBufferIface; struct _LoquiChannelBufferIface { GTypeInterface parent; void (* append_message_text) (LoquiChannelBuffer *chbuf, LoquiMessageText *msgtext); }; GType loqui_channel_buffer_get_type(void) G_GNUC_CONST; void loqui_channel_buffer_append_message_text(LoquiChannelBuffer *chbuf, LoquiMessageText *msgtext); G_END_DECLS #endif /* __LOQUI_CHANNEL_BUFFER_H__ */ loqui-0.5.5/libloqui/loqui_user_irc.c0000664000175000017500000001567412121600532014612 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui_user_irc.h" #include enum { LAST_SIGNAL }; enum { PROP_0, PROP_HOP_COUNT, PROP_SERVER_INFO, PROP_JOINED_CHANNELS_STRING, PROP_IS_IRC_OPERATOR, LAST_PROP }; static LoquiUserClass *parent_class = NULL; /* static guint loqui_user_irc_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_user_irc_class_init(LoquiUserIRCClass *klass); static void loqui_user_irc_init(LoquiUserIRC *user); static void loqui_user_irc_finalize(GObject *object); static void loqui_user_irc_dispose(GObject *object); static void loqui_user_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_user_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); static gchar* loqui_user_irc_get_identifier(LoquiUser *user); static void loqui_user_notify_nick_cb(GObject *object, GParamSpec *pspec, gpointer data); GType loqui_user_irc_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiUserIRCClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_user_irc_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiUserIRC), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_user_irc_init }; type = g_type_register_static(LOQUI_TYPE_USER, "LoquiUserIRC", &our_info, 0); } return type; } static void loqui_user_irc_finalize(GObject *object) { LoquiUserIRC *user; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_USER_IRC(object)); user = LOQUI_USER_IRC(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); } static void loqui_user_irc_dispose(GObject *object) { LoquiUserIRC *user; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_USER_IRC(object)); user = LOQUI_USER_IRC(object); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_user_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiUserIRC *user; user = LOQUI_USER_IRC(object); switch (param_id) { case PROP_SERVER_INFO: g_value_set_string(value, user->server_info); break; case PROP_JOINED_CHANNELS_STRING: g_value_set_string(value, user->joined_channels_string); break; case PROP_IS_IRC_OPERATOR: g_value_set_boolean(value, user->is_irc_operator); break; case PROP_HOP_COUNT: g_value_set_uint(value, user->hop_count); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_user_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiUserIRC *user; user = LOQUI_USER_IRC(object); switch (param_id) { case PROP_SERVER_INFO: loqui_user_irc_set_server_info(user, g_value_get_string(value)); break; case PROP_JOINED_CHANNELS_STRING: loqui_user_irc_set_joined_channels_string(user, g_value_get_string(value)); break; case PROP_IS_IRC_OPERATOR: loqui_user_irc_set_is_irc_operator(user, g_value_get_boolean(value)); break; case PROP_HOP_COUNT: loqui_user_irc_set_hop_count(user, g_value_get_uint(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_user_irc_class_init(LoquiUserIRCClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_user_irc_finalize; object_class->dispose = loqui_user_irc_dispose; object_class->get_property = loqui_user_irc_get_property; object_class->set_property = loqui_user_irc_set_property; LOQUI_USER_CLASS(klass)->get_identifier = loqui_user_irc_get_identifier; g_object_class_install_property(object_class, PROP_SERVER_INFO, g_param_spec_string("server_info", _("ServerInfo"), _("Server information"), NULL, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_JOINED_CHANNELS_STRING, g_param_spec_string("joined_channels_string", _("Joined channels string"), _("Joined channels string"), NULL, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_HOP_COUNT, g_param_spec_uint("hop_count", _("Hop Count"), _("Hop count"), 0, G_MAXUINT, 0, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_IS_IRC_OPERATOR, g_param_spec_boolean("is_irc_operator", _("IsIRCOperator"), _("Is IRC Operator"), FALSE, G_PARAM_READWRITE)); } static void loqui_user_notify_nick_cb(GObject *object, GParamSpec *pspec, gpointer data) { g_object_notify(object, "identifier"); } static void loqui_user_irc_init(LoquiUserIRC *user) { g_signal_connect(G_OBJECT(user), "notify::nick", G_CALLBACK(loqui_user_notify_nick_cb), NULL); } static gchar * loqui_user_irc_get_identifier(LoquiUser *user) { g_return_val_if_fail(user != NULL, NULL); g_return_val_if_fail(LOQUI_IS_USER_IRC(user), NULL); return user->nick ? g_strdup(user->nick) : NULL; } LoquiUserIRC* loqui_user_irc_new(void) { LoquiUserIRC *user; user = g_object_new(loqui_user_irc_get_type(), NULL); return user; } LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiUserIRC, loqui_user_irc, hop_count, guint); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiUserIRC, loqui_user_irc, is_irc_operator, gboolean); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiUserIRC, loqui_user_irc, server_info); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiUserIRC, loqui_user_irc, joined_channels_string); loqui-0.5.5/libloqui/loqui_account_manager_iter.h0000664000175000017500000000443712121600532017150 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_ACCOUNT_MANAGER_ITER_H__ #define __LOQUI_ACCOUNT_MANAGER_ITER_H__ #include #include "loqui-account-manager.h" typedef struct { GList *cur_ac; GList *account_list; GList *cur_ch; GList *channel_list; } LoquiAccountManagerIter; void loqui_account_manager_iter_init(LoquiAccountManager *manager, LoquiAccountManagerIter *iter); gboolean loqui_account_manager_iter_equal(LoquiAccountManagerIter *a, LoquiAccountManagerIter *b); LoquiAccountManagerIter* loqui_account_manager_iter_new(LoquiAccountManager *manager); void loqui_account_manager_iter_free(LoquiAccountManagerIter *iter); void loqui_account_manager_iter_set_first_channel_entry(LoquiAccountManagerIter *iter); void loqui_account_manager_iter_set_last_channel_entry(LoquiAccountManagerIter *iter); gboolean loqui_account_manager_iter_set_channel_entry(LoquiAccountManagerIter *iter, LoquiChannelEntry *chent); LoquiChannelEntry * loqui_account_manager_iter_get_current_channel_entry(LoquiAccountManagerIter *iter); /* this method doesn't not return next in reality. return current and go next/prev */ LoquiChannelEntry *loqui_account_manager_iter_channel_entry_next(LoquiAccountManagerIter *iter); LoquiChannelEntry *loqui_account_manager_iter_channel_entry_previous(LoquiAccountManagerIter *iter); #endif /* __LOQUI_ACCOUNT_MANAGER_ITER_H__ */ loqui-0.5.5/libloqui/loqui-profile-handle.h0000664000175000017500000000706012121605231015602 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_PROFILE_HANDLE_H__ #define __LOQUI_PROFILE_HANDLE_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "loqui_profile_account.h" #include "loqui_protocol_manager.h" /* * Type checking and casting macros */ #define LOQUI_TYPE_PROFILE_HANDLE (loqui_profile_handle_get_type()) #define LOQUI_PROFILE_HANDLE(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_profile_handle_get_type(), LoquiProfileHandle) #define LOQUI_PROFILE_HANDLE_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_profile_handle_get_type(), LoquiProfileHandle const) #define LOQUI_PROFILE_HANDLE_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_profile_handle_get_type(), LoquiProfileHandleClass) #define LOQUI_IS_PROFILE_HANDLE(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_profile_handle_get_type ()) #define LOQUI_PROFILE_HANDLE_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_profile_handle_get_type(), LoquiProfileHandleClass) /* Private structure type */ typedef struct _LoquiProfileHandlePrivate LoquiProfileHandlePrivate; /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_PROFILE_HANDLE__ #define __TYPEDEF_LOQUI_PROFILE_HANDLE__ typedef struct _LoquiProfileHandle LoquiProfileHandle; #endif struct _LoquiProfileHandle { GObject __parent__; /*< public >*/ LoquiProtocolManager * protocol_manager; /*< private >*/ LoquiProfileHandlePrivate *_priv; }; /* * Class definition */ typedef struct _LoquiProfileHandleClass LoquiProfileHandleClass; struct _LoquiProfileHandleClass { GObjectClass __parent__; }; /* * Public methods */ GType loqui_profile_handle_get_type (void) G_GNUC_CONST; #line 582 "loqui-profile-handle.gob" LoquiProfileHandle * loqui_profile_handle_new (GList * profile_factory_list); #line 85 "loqui-profile-handle.h" #line 592 "loqui-profile-handle.gob" gboolean loqui_profile_handle_read_from_buffer (LoquiProfileHandle * self, GList ** profiles, const gchar * buf); #line 90 "loqui-profile-handle.h" #line 626 "loqui-profile-handle.gob" gboolean loqui_profile_handle_read_from_file (LoquiProfileHandle * self, GList ** profiles, const gchar * path); #line 95 "loqui-profile-handle.h" #line 766 "loqui-profile-handle.gob" gboolean loqui_profile_handle_write_to_buffer (LoquiProfileHandle * self, GList * profile_list, gchar ** buf); #line 100 "loqui-profile-handle.h" #line 791 "loqui-profile-handle.gob" gboolean loqui_profile_handle_write_to_file (LoquiProfileHandle * self, GList * profile_list, const gchar * path); #line 105 "loqui-profile-handle.h" #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui-generic-profile-factory.c0000664000175000017500000002054012121605231017421 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-generic-profile-factory.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-generic-profile-factory.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-generic-profile-factory.h" #include "loqui-generic-profile-factory-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 29 "loqui-generic-profile-factory.gob" #include #include "loqui-utils.h" #line 55 "loqui-generic-profile-factory.c" /* self casting macros */ #define SELF(x) LOQUI_GENERIC_PROFILE_FACTORY(x) #define SELF_CONST(x) LOQUI_GENERIC_PROFILE_FACTORY_CONST(x) #define IS_SELF(x) LOQUI_IS_GENERIC_PROFILE_FACTORY(x) #define TYPE_SELF LOQUI_TYPE_GENERIC_PROFILE_FACTORY #define SELF_CLASS(x) LOQUI_GENERIC_PROFILE_FACTORY_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_GENERIC_PROFILE_FACTORY_GET_CLASS(x) /* self typedefs */ typedef LoquiGenericProfileFactory Self; typedef LoquiGenericProfileFactoryClass SelfClass; /* here are local prototypes */ #line 0 "loqui-generic-profile-factory.gob" static void loqui_generic_profile_factory_init (LoquiGenericProfileFactory * o) G_GNUC_UNUSED; #line 72 "loqui-generic-profile-factory.c" #line 0 "loqui-generic-profile-factory.gob" static void loqui_generic_profile_factory_class_init (LoquiGenericProfileFactoryClass * c) G_GNUC_UNUSED; #line 75 "loqui-generic-profile-factory.c" #line 51 "loqui-generic-profile-factory.gob" static const gchar * loqui_generic_profile_factory_get_profile_type_name_static (LoquiProfileFactory * factory) G_GNUC_UNUSED; #line 78 "loqui-generic-profile-factory.c" #line 61 "loqui-generic-profile-factory.gob" static LoquiProfile * loqui_generic_profile_factory_create_profile (LoquiProfileFactory * factory) G_GNUC_UNUSED; #line 81 "loqui-generic-profile-factory.c" /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_generic_profile_factory_new #define self_get_profile_type_name_static loqui_generic_profile_factory_get_profile_type_name_static #define self_create_profile loqui_generic_profile_factory_create_profile static void ___Loqui_Profile_Factory_init (LoquiProfileFactoryIface *iface) { #line 51 "loqui-generic-profile-factory.gob" iface->get_profile_type_name_static = self_get_profile_type_name_static; #line 61 "loqui-generic-profile-factory.gob" iface->create_profile = self_create_profile; #line 99 "loqui-generic-profile-factory.c" } GType loqui_generic_profile_factory_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiGenericProfileFactoryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_generic_profile_factory_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiGenericProfileFactory), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_generic_profile_factory_init, NULL }; static const GInterfaceInfo Loqui_Profile_Factory_info = { (GInterfaceInitFunc) ___Loqui_Profile_Factory_init, NULL, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiGenericProfileFactory", &info, (GTypeFlags)0); g_type_add_interface_static (type, LOQUI_TYPE_PROFILE_FACTORY, &Loqui_Profile_Factory_info); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiGenericProfileFactory *)g_object_new(loqui_generic_profile_factory_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiGenericProfileFactory * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiGenericProfileFactory * GET_NEW_VARG (const char *first, ...) { LoquiGenericProfileFactory *ret; va_list ap; va_start (ap, first); ret = (LoquiGenericProfileFactory *)g_object_new_valist (loqui_generic_profile_factory_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Generic:Profile:Factory::dispose" LoquiGenericProfileFactory *self G_GNUC_UNUSED = LOQUI_GENERIC_PROFILE_FACTORY (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #line 36 "loqui-generic-profile-factory.gob" if(self->_priv->name) { g_free ((gpointer) self->_priv->name); self->_priv->name = NULL; } #line 163 "loqui-generic-profile-factory.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Generic:Profile:Factory::finalize" LoquiGenericProfileFactory *self G_GNUC_UNUSED = LOQUI_GENERIC_PROFILE_FACTORY (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_generic_profile_factory_init (LoquiGenericProfileFactory * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Generic:Profile:Factory::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_GENERIC_PROFILE_FACTORY,LoquiGenericProfileFactoryPrivate); #line 29 "loqui-generic-profile-factory.gob" o->_priv->name = NULL; #line 186 "loqui-generic-profile-factory.c" } #undef __GOB_FUNCTION__ static void loqui_generic_profile_factory_class_init (LoquiGenericProfileFactoryClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Generic:Profile:Factory::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiGenericProfileFactoryPrivate)); parent_class = g_type_class_ref (G_TYPE_OBJECT); g_object_class->dispose = ___dispose; g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 39 "loqui-generic-profile-factory.gob" LoquiGenericProfileFactory * loqui_generic_profile_factory_new (const gchar * name, GType type) { #line 210 "loqui-generic-profile-factory.c" #define __GOB_FUNCTION__ "Loqui:Generic:Profile:Factory::new" { #line 40 "loqui-generic-profile-factory.gob" Self *self; self = GET_NEW; selfp->name = g_strdup(name); selfp->type = type; return self; }} #line 223 "loqui-generic-profile-factory.c" #undef __GOB_FUNCTION__ #line 51 "loqui-generic-profile-factory.gob" static const gchar * loqui_generic_profile_factory_get_profile_type_name_static (LoquiProfileFactory * factory) { #line 230 "loqui-generic-profile-factory.c" #define __GOB_FUNCTION__ "Loqui:Generic:Profile:Factory::get_profile_type_name_static" { #line 52 "loqui-generic-profile-factory.gob" Self *self; self = SELF(factory); return selfp->name; }} #line 241 "loqui-generic-profile-factory.c" #undef __GOB_FUNCTION__ #line 61 "loqui-generic-profile-factory.gob" static LoquiProfile * loqui_generic_profile_factory_create_profile (LoquiProfileFactory * factory) { #line 248 "loqui-generic-profile-factory.c" #define __GOB_FUNCTION__ "Loqui:Generic:Profile:Factory::create_profile" { #line 62 "loqui-generic-profile-factory.gob" Self *self; LoquiProfile *profile; self = SELF(factory); profile = LOQUI_PROFILE(g_object_new(selfp->type, NULL)); loqui_profile_set_profile_type_name(profile, selfp->name); return profile; }} #line 261 "loqui-generic-profile-factory.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/ipmsg_packet.h0000664000175000017500000000577212121600532014237 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __IPMSG_PACKET_H__ #define __IPMSG_PACKET_H__ #include #include G_BEGIN_DECLS #define TYPE_IPMSG_PACKET (ipmsg_packet_get_type ()) #define IPMSG_PACKET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IPMSG_PACKET, IPMsgPacket)) #define IPMSG_PACKET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IPMSG_PACKET, IPMsgPacketClass)) #define IS_IPMSG_PACKET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IPMSG_PACKET)) #define IS_IPMSG_PACKET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IPMSG_PACKET)) #define IPMSG_PACKET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IPMSG_PACKET, IPMsgPacketClass)) typedef struct _IPMsgPacket IPMsgPacket; typedef struct _IPMsgPacketClass IPMsgPacketClass; typedef struct _IPMsgPacketPrivate IPMsgPacketPrivate; struct _IPMsgPacket { GObject parent; gint version; gint packet_num; gchar *username; gchar *hostname; gint command_num; gchar *extra; gchar *group_name; GInetSocketAddress *inetaddr; IPMsgPacketPrivate *priv; }; struct _IPMsgPacketClass { GObjectClass parent_class; }; GType ipmsg_packet_get_type(void) G_GNUC_CONST; IPMsgPacket* ipmsg_packet_new(void); IPMsgPacket* ipmsg_packet_parse(const gchar *str, gint len); void ipmsg_packet_to_string(IPMsgPacket *packet, gchar **body, gchar **group_name); gchar * ipmsg_packet_inspect(IPMsgPacket *packet); void ipmsg_packet_print(IPMsgPacket *packet); void ipmsg_packet_set_inetaddr(IPMsgPacket *packet, GInetSocketAddress *inetaddr); GInetSocketAddress *ipmsg_packet_get_inetaddr(IPMsgPacket *packet); gchar *ipmsg_packet_get_ip_addr(IPMsgPacket *packet); gint ipmsg_packet_get_port(IPMsgPacket *packet); gchar *ipmsg_packet_get_identifier(IPMsgPacket *packet); IPMsgPacket *ipmsg_packet_create(gint version, gint packet_num, const gchar *username, const gchar *hostname, gint command_num, const gchar *extra, const gchar *group_name); G_END_DECLS #endif /* __IPMSG_PACKET_H__ */ loqui-0.5.5/libloqui/loqui_marshalers.h0000664000175000017500000000122512121600532015130 00000000000000 #ifndef ___loqui_marshal_MARSHAL_H__ #define ___loqui_marshal_MARSHAL_H__ #include G_BEGIN_DECLS /* VOID:OBJECT,INT (loqui_marshalers.list:1) */ extern void _loqui_marshal_VOID__OBJECT_INT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); G_END_DECLS #endif /* ___loqui_marshal_MARSHAL_H__ */ loqui-0.5.5/libloqui/loqui_protocol_manager.h0000664000175000017500000000550212121600532016324 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_PROTOCOL_MANAGER_H__ #define __LOQUI_PROTOCOL_MANAGER_H__ #include #include G_BEGIN_DECLS #define LOQUI_TYPE_PROTOCOL_MANAGER (loqui_protocol_manager_get_type ()) #define LOQUI_PROTOCOL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_PROTOCOL_MANAGER, LoquiProtocolManager)) #define LOQUI_PROTOCOL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_PROTOCOL_MANAGER, LoquiProtocolManagerClass)) #define LOQUI_IS_PROTOCOL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_PROTOCOL_MANAGER)) #define LOQUI_IS_PROTOCOL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_PROTOCOL_MANAGER)) #define LOQUI_PROTOCOL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_PROTOCOL_MANAGER, LoquiProtocolManagerClass)) typedef struct _LoquiProtocolManager LoquiProtocolManager; typedef struct _LoquiProtocolManagerClass LoquiProtocolManagerClass; typedef struct _LoquiProtocolManagerPrivate LoquiProtocolManagerPrivate; struct _LoquiProtocolManager { GObject parent; /* key: identifier (gchar *), value: protocol (LoquiProtocol *) */ GHashTable *protocol_table; LoquiProtocolManagerPrivate *priv; }; struct _LoquiProtocolManagerClass { GObjectClass parent_class; }; GType loqui_protocol_manager_get_type(void) G_GNUC_CONST; LoquiProtocolManager* loqui_protocol_manager_new(void); void loqui_protocol_manager_register(LoquiProtocolManager *manager, LoquiProtocol *protocol); LoquiProtocol *loqui_protocol_manager_get_protocol(LoquiProtocolManager *manager, const gchar *identifier); GList *loqui_protocol_manager_get_protocol_list(LoquiProtocolManager *manager); /* must be freed */ G_END_DECLS #endif /* __LOQUI_PROTOCOL_MANAGER_H__ */ loqui-0.5.5/libloqui/loqui_profile_account_irc.c0000664000175000017500000001707512121600532017005 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include #include "loqui_codeconv.h" #include "loqui_profile_account_irc.h" #include "loqui_protocol_irc.h" enum { LAST_SIGNAL }; enum { PROP_0, PROP_REALNAME, PROP_USERINFO, PROP_AUTOJOIN, PROP_QUIT_MESSAGE, LAST_PROP }; struct _LoquiProfileAccountIRCPrivate { }; #define IRC_DEFAULT_PORT 6667 static LoquiProfileAccountClass *parent_class = NULL; /* static guint loqui_profile_account_irc_signals[LAST_SIGNAL] = { 0 }; */ static void loqui_profile_account_irc_class_init(LoquiProfileAccountIRCClass *klass); static void loqui_profile_account_irc_init(LoquiProfileAccountIRC *profile); static void loqui_profile_account_irc_finalize(GObject *object); static void loqui_profile_account_irc_dispose(GObject *object); static void loqui_profile_account_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec); static void loqui_profile_account_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); GType loqui_profile_account_irc_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(LoquiProfileAccountIRCClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) loqui_profile_account_irc_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(LoquiProfileAccountIRC), 0, /* n_preallocs */ (GInstanceInitFunc) loqui_profile_account_irc_init }; type = g_type_register_static(LOQUI_TYPE_PROFILE_ACCOUNT, "LoquiProfileAccountIRC", &our_info, 0); } return type; } static void loqui_profile_account_irc_finalize(GObject *object) { LoquiProfileAccountIRC *profile; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_PROFILE_ACCOUNT_IRC(object)); profile = LOQUI_PROFILE_ACCOUNT_IRC(object); if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize)(object); g_free(profile->priv); } static void loqui_profile_account_irc_dispose(GObject *object) { LoquiProfileAccountIRC *profile; g_return_if_fail(object != NULL); g_return_if_fail(LOQUI_IS_PROFILE_ACCOUNT_IRC(object)); profile = LOQUI_PROFILE_ACCOUNT_IRC(object); LOQUI_G_FREE_UNLESS_NULL(profile->realname); LOQUI_G_FREE_UNLESS_NULL(profile->userinfo); LOQUI_G_FREE_UNLESS_NULL(profile->autojoin); if (G_OBJECT_CLASS(parent_class)->dispose) (* G_OBJECT_CLASS(parent_class)->dispose)(object); } static void loqui_profile_account_irc_get_property(GObject *object, guint param_id, GValue *value, GParamSpec *pspec) { LoquiProfileAccountIRC *profile; profile = LOQUI_PROFILE_ACCOUNT_IRC(object); switch (param_id) { case PROP_REALNAME: g_value_set_string(value, loqui_profile_account_irc_get_realname(profile)); break; case PROP_USERINFO: g_value_set_string(value, loqui_profile_account_irc_get_userinfo(profile)); break; case PROP_AUTOJOIN: g_value_set_string(value, loqui_profile_account_irc_get_autojoin(profile)); break; case PROP_QUIT_MESSAGE: g_value_set_string(value, loqui_profile_account_irc_get_quit_message(profile)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_profile_account_irc_set_property(GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { LoquiProfileAccountIRC *profile; profile = LOQUI_PROFILE_ACCOUNT_IRC(object); switch (param_id) { case PROP_REALNAME: loqui_profile_account_irc_set_realname(profile, g_value_get_string(value)); break; case PROP_USERINFO: loqui_profile_account_irc_set_userinfo(profile, g_value_get_string(value)); break; case PROP_AUTOJOIN: loqui_profile_account_irc_set_autojoin(profile, g_value_get_string(value)); break; case PROP_QUIT_MESSAGE: loqui_profile_account_irc_set_quit_message(profile, g_value_get_string(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); break; } } static void loqui_profile_account_irc_class_init(LoquiProfileAccountIRCClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = loqui_profile_account_irc_finalize; object_class->dispose = loqui_profile_account_irc_dispose; object_class->get_property = loqui_profile_account_irc_get_property; object_class->set_property = loqui_profile_account_irc_set_property; g_object_class_install_property(object_class, PROP_REALNAME, g_param_spec_string("realname", _("Realname"), _("Realname"), NULL, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_USERINFO, g_param_spec_string("userinfo", _("User information"), _("User information used with CTCP USERINFO"), NULL, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_AUTOJOIN, g_param_spec_string("autojoin", _("Autojoin channels"), _("Channels which are joined automatically"), NULL, G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_QUIT_MESSAGE, g_param_spec_string("quit_message", _("Quit Message"), _("Default quit message"), NULL, G_PARAM_READWRITE)); } static void loqui_profile_account_irc_init(LoquiProfileAccountIRC *profile) { LoquiProfileAccountIRCPrivate *priv; priv = g_new0(LoquiProfileAccountIRCPrivate, 1); profile->priv = priv; /* set default */ g_object_set(profile, "port", 6667, "username", "loqui", "quit_message", "Loqui", NULL); } LoquiProfileAccountIRC* loqui_profile_account_irc_new(void) { LoquiProfileAccountIRC *profile; LoquiProfileAccountIRCPrivate *priv; profile = g_object_new(loqui_profile_account_irc_get_type(), NULL); priv = profile->priv; LOQUI_PROFILE_ACCOUNT(profile)->protocol = loqui_protocol_irc_get(); return profile; } LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiProfileAccountIRC, loqui_profile_account_irc, realname); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiProfileAccountIRC, loqui_profile_account_irc, userinfo); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiProfileAccountIRC, loqui_profile_account_irc, autojoin); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiProfileAccountIRC, loqui_profile_account_irc, quit_message); loqui-0.5.5/libloqui/loqui-protocol.gob0000664000175000017500000001241012121600532015064 00000000000000requires 2.0.0 %alltop{ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ %} %{ #include "config.h" #include #include "loqui-utils.h" #include "loqui-protocol.h" #include "loqui-protocol-private.h" %} %h{ #ifndef __TYPEDEF_LOQUI_PROTOCOL__ #define __TYPEDEF_LOQUI_PROTOCOL__ typedef struct _LoquiProtocol LoquiProtocol; #endif #include #include #include #include #include #include #include #include #include %} /* Abstract Factory */ class Loqui:Protocol from G:Object (interface Loqui:Profile:Factory) { public gchar *identifier; public LoquiCodeConvTableItem *codeconv_table; public GType type_account; public GType type_channel; public GType type_sender; public GType type_receiver; public GType type_user; public GType type_profile_account; public LoquiProtocol* new(void) { Self *self; self = GET_NEW; return self; } interface Loqui:Profile:Factory private const gchar * get_profile_type_name_static(Loqui:Profile:Factory *factory) { Self *self; self = SELF(factory); return self->identifier; } interface Loqui:Profile:Factory private Loqui:Profile * create_profile(Loqui:Profile:Factory *factory) { Self *self; LoquiProfile *profile; self = SELF(factory); profile = LOQUI_PROFILE(self_create_profile_account(self)); loqui_profile_set_profile_type_name(profile, self->identifier); return profile; } public void set_identifier(self, const gchar *identifier) { LOQUI_G_FREE_UNLESS_NULL(self->identifier); if (identifier) self->identifier = g_strdup(identifier); } public const gchar * get_identifier(self) { return self->identifier; } public void set_codeconv_table(self, LoquiCodeConvTableItem *codeconv_table) { self->codeconv_table = codeconv_table; } public LoquiCodeConvTableItem * get_codeconv_table(self) { return self->codeconv_table; } public LoquiAccountClass * get_account_class(self) { return g_type_class_ref(self->type_account); } public LoquiChannelClass * get_channel_class(self) { return g_type_class_ref(self->type_channel); } public LoquiSenderClass * get_sender_class(self) { return g_type_class_ref(self->type_sender); } public LoquiReceiverClass * get_receiver_class(self) { return g_type_class_ref(self->type_receiver); } public LoquiUserClass * get_user_class(self) { return g_type_class_ref(self->type_user); } public LoquiProfileAccountClass * get_profile_account_class(self) { return g_type_class_ref(self->type_profile_account); } public LoquiProfileAccount * create_profile_account(self) { LoquiProfileAccount *profile; /* FIXME: this should be done with argument of g_object_new, but it can't because a property will be serialized. */ profile = LOQUI_PROFILE_ACCOUNT(g_object_new(self->type_profile_account, NULL)); loqui_profile_set_profile_type_name(LOQUI_PROFILE(profile), loqui_protocol_get_identifier(self)); profile->protocol = self; return profile; } public LoquiUser * create_user(self) { return LOQUI_USER(g_object_new(self->type_user, NULL)); } public LoquiAccount * create_account(self, LoquiProfileAccount *profile) { return LOQUI_ACCOUNT(g_object_new(self->type_account, "profile", profile, NULL)); } public LoquiChannel * create_channel(self, LoquiAccount *account, const gchar *name, const gchar *identifier, gboolean is_joined, gboolean is_private_talk) { LoquiChannel *channel; channel = g_object_new(self->type_channel, "account", account, "name", name, "identifier", identifier, "is_private_talk", is_private_talk, "is_joined", is_joined, NULL); return channel; } } loqui-0.5.5/libloqui/loqui-message-text-region-private.h0000664000175000017500000000244412121605231020251 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2005 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 3 "loqui-message-text-region.gob" #line 27 "loqui-message-text-region-private.h" #ifndef __LOQUI_MESSAGE_TEXT_REGION_PRIVATE_H__ #define __LOQUI_MESSAGE_TEXT_REGION_PRIVATE_H__ #include "loqui-message-text-region.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui-message-text.c0000664000175000017500000004376612121605231015327 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-message-text.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-message-text.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-message-text.h" #include "loqui-message-text-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 49 "loqui-message-text.gob" #include #include "loqui-utils.h" LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, text); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, nick); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, account_name); LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiMessageText, loqui_message_text, channel_name); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_priv, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_self, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_remark, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, is_ignored, gboolean); LOQUI_DEFINE_ACCESSOR_GENERIC(LoquiMessageText, loqui_message_text, text_type, LoquiTextType); #line 68 "loqui-message-text.c" /* self casting macros */ #define SELF(x) LOQUI_MESSAGE_TEXT(x) #define SELF_CONST(x) LOQUI_MESSAGE_TEXT_CONST(x) #define IS_SELF(x) LOQUI_IS_MESSAGE_TEXT(x) #define TYPE_SELF LOQUI_TYPE_MESSAGE_TEXT #define SELF_CLASS(x) LOQUI_MESSAGE_TEXT_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_MESSAGE_TEXT_GET_CLASS(x) /* self typedefs */ typedef LoquiMessageText Self; typedef LoquiMessageTextClass SelfClass; /* here are local prototypes */ static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec); static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec); #line 0 "loqui-message-text.gob" static void loqui_message_text_init (LoquiMessageText * o) G_GNUC_UNUSED; #line 87 "loqui-message-text.c" #line 0 "loqui-message-text.gob" static void loqui_message_text_class_init (LoquiMessageTextClass * c) G_GNUC_UNUSED; #line 90 "loqui-message-text.c" enum { PROP_0, PROP_TEXT, PROP_CHANNEL_NAME, PROP_ACCOUNT_NAME, PROP_NICK, PROP_IS_SELF, PROP_IS_PRIV, PROP_IS_REMARK, PROP_IS_IGNORED, PROP_TEXT_TYPE }; /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_get_nick_string loqui_message_text_get_nick_string #define self_get_detail loqui_message_text_get_detail #define self_new loqui_message_text_new #define self_get_has_highlight_keyword loqui_message_text_get_has_highlight_keyword GType loqui_message_text_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiMessageTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_message_text_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiMessageText), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_message_text_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiMessageText", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiMessageText *)g_object_new(loqui_message_text_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiMessageText * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiMessageText * GET_NEW_VARG (const char *first, ...) { LoquiMessageText *ret; va_list ap; va_start (ap, first); ret = (LoquiMessageText *)g_object_new_valist (loqui_message_text_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Message:Text::dispose" LoquiMessageText *self G_GNUC_UNUSED = LOQUI_MESSAGE_TEXT (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #line 71 "loqui-message-text.gob" if(self->text) { g_free ((gpointer) self->text); self->text = NULL; } #line 165 "loqui-message-text.c" #line 72 "loqui-message-text.gob" if(self->channel_name) { g_free ((gpointer) self->channel_name); self->channel_name = NULL; } #line 168 "loqui-message-text.c" #line 73 "loqui-message-text.gob" if(self->account_name) { g_free ((gpointer) self->account_name); self->account_name = NULL; } #line 171 "loqui-message-text.c" #line 74 "loqui-message-text.gob" if(self->nick) { g_free ((gpointer) self->nick); self->nick = NULL; } #line 174 "loqui-message-text.c" #line 80 "loqui-message-text.gob" if(self->highlight_region_list) { loqui_utils_free_list_and_elements_unref ((gpointer) self->highlight_region_list); self->highlight_region_list = NULL; } #line 177 "loqui-message-text.c" #line 81 "loqui-message-text.gob" if(self->uri_region_list) { loqui_utils_free_list_and_elements_unref ((gpointer) self->uri_region_list); self->uri_region_list = NULL; } #line 180 "loqui-message-text.c" } #undef __GOB_FUNCTION__ static void loqui_message_text_init (LoquiMessageText * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Message:Text::init" #line 49 "loqui-message-text.gob" o->text = NULL; #line 190 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->channel_name = NULL; #line 193 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->account_name = NULL; #line 196 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->nick = NULL; #line 199 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->is_self = FALSE; #line 202 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->is_priv = FALSE; #line 205 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->is_remark = FALSE; #line 208 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->is_ignored = FALSE; #line 211 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->highlight_region_list = NULL; #line 214 "loqui-message-text.c" #line 49 "loqui-message-text.gob" o->uri_region_list = NULL; #line 217 "loqui-message-text.c" } #undef __GOB_FUNCTION__ static void loqui_message_text_class_init (LoquiMessageTextClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Message:Text::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; parent_class = g_type_class_ref (G_TYPE_OBJECT); g_object_class->dispose = ___dispose; g_object_class->get_property = ___object_get_property; g_object_class->set_property = ___object_set_property; { GParamSpec *param_spec; param_spec = g_param_spec_string ("text" /* name */, _("Text") /* nick */, _("Text") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_TEXT, param_spec); param_spec = g_param_spec_string ("channel_name" /* name */, _("Channel name") /* nick */, _("Channel name") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_CHANNEL_NAME, param_spec); param_spec = g_param_spec_string ("account_name" /* name */, _("Account name") /* nick */, _("Account name") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_ACCOUNT_NAME, param_spec); param_spec = g_param_spec_string ("nick" /* name */, _("Nick") /* nick */, _("Nickname") /* blurb */, NULL /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_NICK, param_spec); param_spec = g_param_spec_boolean ("is_self" /* name */, _("Self?") /* nick */, _("Whether or not the message is by myself") /* blurb */, FALSE /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_IS_SELF, param_spec); param_spec = g_param_spec_boolean ("is_priv" /* name */, _("Priv?") /* nick */, _("Whether or not private message") /* blurb */, FALSE /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_IS_PRIV, param_spec); param_spec = g_param_spec_boolean ("is_remark" /* name */, _("Remark?") /* nick */, _("Remark?") /* blurb */, FALSE /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_IS_REMARK, param_spec); param_spec = g_param_spec_boolean ("is_ignored" /* name */, _("Is ignored") /* nick */, _("Is ignored or not") /* blurb */, FALSE /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_IS_IGNORED, param_spec); param_spec = g_param_spec_uint ("text_type" /* name */, _("Text type") /* nick */, _("Text type") /* blurb */, 0 /* minimum */, G_MAXUINT /* maximum */, 0 /* default_value */, (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (g_object_class, PROP_TEXT_TYPE, param_spec); } } #undef __GOB_FUNCTION__ static void ___object_set_property (GObject *object, guint property_id, const GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Message:Text::set_property" { LoquiMessageText *self G_GNUC_UNUSED; self = LOQUI_MESSAGE_TEXT (object); switch (property_id) { case PROP_TEXT: { #line 88 "loqui-message-text.gob" loqui_message_text_set_text(self, g_value_get_string(VAL)); #line 337 "loqui-message-text.c" } break; case PROP_CHANNEL_NAME: { #line 95 "loqui-message-text.gob" loqui_message_text_set_channel_name(self, g_value_get_string(VAL)); #line 344 "loqui-message-text.c" } break; case PROP_ACCOUNT_NAME: { #line 102 "loqui-message-text.gob" loqui_message_text_set_account_name(self, g_value_get_string(VAL)); #line 351 "loqui-message-text.c" } break; case PROP_NICK: { #line 109 "loqui-message-text.gob" loqui_message_text_set_nick(self, g_value_get_string(VAL)); #line 358 "loqui-message-text.c" } break; case PROP_IS_SELF: { #line 116 "loqui-message-text.gob" loqui_message_text_set_is_self(self, g_value_get_boolean(VAL)); #line 365 "loqui-message-text.c" } break; case PROP_IS_PRIV: { #line 123 "loqui-message-text.gob" loqui_message_text_set_is_priv(self, g_value_get_boolean(VAL)); #line 372 "loqui-message-text.c" } break; case PROP_IS_REMARK: { #line 130 "loqui-message-text.gob" loqui_message_text_set_is_remark(self, g_value_get_boolean(VAL)); #line 379 "loqui-message-text.c" } break; case PROP_IS_IGNORED: { #line 137 "loqui-message-text.gob" loqui_message_text_set_is_ignored(self, g_value_get_boolean(VAL)); #line 386 "loqui-message-text.c" } break; case PROP_TEXT_TYPE: { #line 144 "loqui-message-text.gob" loqui_message_text_set_text_type(self, g_value_get_uint(VAL)); #line 393 "loqui-message-text.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ static void ___object_get_property (GObject *object, guint property_id, GValue *VAL G_GNUC_UNUSED, GParamSpec *pspec G_GNUC_UNUSED) #define __GOB_FUNCTION__ "Loqui:Message:Text::get_property" { LoquiMessageText *self G_GNUC_UNUSED; self = LOQUI_MESSAGE_TEXT (object); switch (property_id) { case PROP_TEXT: { #line 87 "loqui-message-text.gob" g_value_set_string(VAL, loqui_message_text_get_text(self)); #line 424 "loqui-message-text.c" } break; case PROP_CHANNEL_NAME: { #line 94 "loqui-message-text.gob" g_value_set_string(VAL, loqui_message_text_get_channel_name(self)); #line 431 "loqui-message-text.c" } break; case PROP_ACCOUNT_NAME: { #line 101 "loqui-message-text.gob" g_value_set_string(VAL, loqui_message_text_get_account_name(self)); #line 438 "loqui-message-text.c" } break; case PROP_NICK: { #line 108 "loqui-message-text.gob" g_value_set_string(VAL, loqui_message_text_get_nick(self)); #line 445 "loqui-message-text.c" } break; case PROP_IS_SELF: { #line 115 "loqui-message-text.gob" g_value_set_boolean(VAL, loqui_message_text_get_is_self(self)); #line 452 "loqui-message-text.c" } break; case PROP_IS_PRIV: { #line 122 "loqui-message-text.gob" g_value_set_boolean(VAL, loqui_message_text_get_is_priv(self)); #line 459 "loqui-message-text.c" } break; case PROP_IS_REMARK: { #line 129 "loqui-message-text.gob" g_value_set_boolean(VAL, loqui_message_text_get_is_remark(self)); #line 466 "loqui-message-text.c" } break; case PROP_IS_IGNORED: { #line 136 "loqui-message-text.gob" g_value_set_boolean(VAL, loqui_message_text_get_is_ignored(self)); #line 473 "loqui-message-text.c" } break; case PROP_TEXT_TYPE: { #line 143 "loqui-message-text.gob" g_value_set_uint(VAL, loqui_message_text_get_text_type(self)); #line 480 "loqui-message-text.c" } break; default: /* Apparently in g++ this is needed, glib is b0rk */ #ifndef __PRETTY_FUNCTION__ # undef G_STRLOC # define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) #endif G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } #undef __GOB_FUNCTION__ #line 146 "loqui-message-text.gob" gchar * loqui_message_text_get_nick_string (LoquiMessageText * self, gboolean with_channel_name) { #line 501 "loqui-message-text.c" #define __GOB_FUNCTION__ "Loqui:Message:Text::get_nick_string" #line 146 "loqui-message-text.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 146 "loqui-message-text.gob" g_return_val_if_fail (LOQUI_IS_MESSAGE_TEXT (self), (gchar * )0); #line 507 "loqui-message-text.c" { #line 147 "loqui-message-text.gob" gchar *nick_str; g_return_val_if_fail(LOQUI_IS_MESSAGE_TEXT(self), NULL); if(self->is_priv) { if(self->is_self) nick_str = g_strdup_printf(">%s< ", self->nick); else nick_str = g_strdup_printf("=%s= ", self->nick); } else if (with_channel_name && self->channel_name) { if(self->is_self) nick_str = g_strdup_printf(">%s:%s< ", self->channel_name, self->nick); else nick_str = g_strdup_printf("<%s:%s> ", self->channel_name, self->nick); } else { if(self->is_self) nick_str = g_strdup_printf(">%s< ", self->nick); else nick_str = g_strdup_printf("<%s> ", self->nick); } return nick_str; }} #line 534 "loqui-message-text.c" #undef __GOB_FUNCTION__ #line 172 "loqui-message-text.gob" gchar * loqui_message_text_get_detail (LoquiMessageText * self, gboolean show_account, gboolean show_channel_name) { #line 541 "loqui-message-text.c" #define __GOB_FUNCTION__ "Loqui:Message:Text::get_detail" #line 172 "loqui-message-text.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 172 "loqui-message-text.gob" g_return_val_if_fail (LOQUI_IS_MESSAGE_TEXT (self), (gchar * )0); #line 547 "loqui-message-text.c" { #line 173 "loqui-message-text.gob" gchar *nick_string; GString *str; str = g_string_new(NULL); if (show_account) { g_string_append_printf(str, "[%s] ", loqui_message_text_get_account_name(self)); } nick_string = loqui_message_text_get_nick_string(self, show_channel_name); g_string_append(str, nick_string); g_free(nick_string); g_string_append(str, loqui_message_text_get_text(self)); return g_string_free(str, FALSE); }} #line 568 "loqui-message-text.c" #undef __GOB_FUNCTION__ #line 192 "loqui-message-text.gob" LoquiMessageText * loqui_message_text_new (void) { #line 575 "loqui-message-text.c" #define __GOB_FUNCTION__ "Loqui:Message:Text::new" { #line 193 "loqui-message-text.gob" Self *self; self = GET_NEW; return self; }} #line 585 "loqui-message-text.c" #undef __GOB_FUNCTION__ #line 200 "loqui-message-text.gob" gboolean loqui_message_text_get_has_highlight_keyword (LoquiMessageText * self) { #line 592 "loqui-message-text.c" #define __GOB_FUNCTION__ "Loqui:Message:Text::get_has_highlight_keyword" #line 200 "loqui-message-text.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 200 "loqui-message-text.gob" g_return_val_if_fail (LOQUI_IS_MESSAGE_TEXT (self), (gboolean )0); #line 598 "loqui-message-text.c" { #line 201 "loqui-message-text.gob" return self->highlight_region_list != NULL ? TRUE : FALSE; }} #line 604 "loqui-message-text.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/loqui-protocol.c0000664000175000017500000003711312121605231014547 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-protocol.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-protocol.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 25 "loqui-protocol.gob" #include "config.h" #include #include "loqui-utils.h" #include "loqui-protocol.h" #include "loqui-protocol-private.h" #line 57 "loqui-protocol.c" /* self casting macros */ #define SELF(x) LOQUI_PROTOCOL(x) #define SELF_CONST(x) LOQUI_PROTOCOL_CONST(x) #define IS_SELF(x) LOQUI_IS_PROTOCOL(x) #define TYPE_SELF LOQUI_TYPE_PROTOCOL #define SELF_CLASS(x) LOQUI_PROTOCOL_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_PROTOCOL_GET_CLASS(x) /* self typedefs */ typedef LoquiProtocol Self; typedef LoquiProtocolClass SelfClass; /* here are local prototypes */ #line 0 "loqui-protocol.gob" static void loqui_protocol_init (LoquiProtocol * o) G_GNUC_UNUSED; #line 74 "loqui-protocol.c" #line 0 "loqui-protocol.gob" static void loqui_protocol_class_init (LoquiProtocolClass * c) G_GNUC_UNUSED; #line 77 "loqui-protocol.c" #line 77 "loqui-protocol.gob" static const gchar * loqui_protocol_get_profile_type_name_static (LoquiProfileFactory * factory) G_GNUC_UNUSED; #line 80 "loqui-protocol.c" #line 87 "loqui-protocol.gob" static LoquiProfile * loqui_protocol_create_profile (LoquiProfileFactory * factory) G_GNUC_UNUSED; #line 83 "loqui-protocol.c" /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_protocol_new #define self_get_profile_type_name_static loqui_protocol_get_profile_type_name_static #define self_create_profile loqui_protocol_create_profile #define self_set_identifier loqui_protocol_set_identifier #define self_get_identifier loqui_protocol_get_identifier #define self_set_codeconv_table loqui_protocol_set_codeconv_table #define self_get_codeconv_table loqui_protocol_get_codeconv_table #define self_get_account_class loqui_protocol_get_account_class #define self_get_channel_class loqui_protocol_get_channel_class #define self_get_sender_class loqui_protocol_get_sender_class #define self_get_receiver_class loqui_protocol_get_receiver_class #define self_get_user_class loqui_protocol_get_user_class #define self_get_profile_account_class loqui_protocol_get_profile_account_class #define self_create_profile_account loqui_protocol_create_profile_account #define self_create_user loqui_protocol_create_user #define self_create_account loqui_protocol_create_account #define self_create_channel loqui_protocol_create_channel static void ___Loqui_Profile_Factory_init (LoquiProfileFactoryIface *iface) { #line 77 "loqui-protocol.gob" iface->get_profile_type_name_static = self_get_profile_type_name_static; #line 87 "loqui-protocol.gob" iface->create_profile = self_create_profile; #line 115 "loqui-protocol.c" } GType loqui_protocol_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiProtocolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_protocol_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiProtocol), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_protocol_init, NULL }; static const GInterfaceInfo Loqui_Profile_Factory_info = { (GInterfaceInitFunc) ___Loqui_Profile_Factory_init, NULL, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiProtocol", &info, (GTypeFlags)0); g_type_add_interface_static (type, LOQUI_TYPE_PROFILE_FACTORY, &Loqui_Profile_Factory_info); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiProtocol *)g_object_new(loqui_protocol_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiProtocol * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiProtocol * GET_NEW_VARG (const char *first, ...) { LoquiProtocol *ret; va_list ap; va_start (ap, first); ret = (LoquiProtocol *)g_object_new_valist (loqui_protocol_get_type (), first, ap); va_end (ap); return ret; } static void loqui_protocol_init (LoquiProtocol * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Protocol::init" } #undef __GOB_FUNCTION__ static void loqui_protocol_class_init (LoquiProtocolClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Protocol::class_init" parent_class = g_type_class_ref (G_TYPE_OBJECT); } #undef __GOB_FUNCTION__ #line 67 "loqui-protocol.gob" LoquiProtocol * loqui_protocol_new (void) { #line 191 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::new" { #line 68 "loqui-protocol.gob" Self *self; self = GET_NEW; return self; }} #line 202 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 77 "loqui-protocol.gob" static const gchar * loqui_protocol_get_profile_type_name_static (LoquiProfileFactory * factory) { #line 209 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_profile_type_name_static" { #line 78 "loqui-protocol.gob" Self *self; self = SELF(factory); return self->identifier; }} #line 220 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 87 "loqui-protocol.gob" static LoquiProfile * loqui_protocol_create_profile (LoquiProfileFactory * factory) { #line 227 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::create_profile" { #line 88 "loqui-protocol.gob" Self *self; LoquiProfile *profile; self = SELF(factory); profile = LOQUI_PROFILE(self_create_profile_account(self)); loqui_profile_set_profile_type_name(profile, self->identifier); return profile; }} #line 242 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 100 "loqui-protocol.gob" void loqui_protocol_set_identifier (LoquiProtocol * self, const gchar * identifier) { #line 249 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::set_identifier" #line 100 "loqui-protocol.gob" g_return_if_fail (self != NULL); #line 100 "loqui-protocol.gob" g_return_if_fail (LOQUI_IS_PROTOCOL (self)); #line 255 "loqui-protocol.c" { #line 101 "loqui-protocol.gob" LOQUI_G_FREE_UNLESS_NULL(self->identifier); if (identifier) self->identifier = g_strdup(identifier); }} #line 263 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 107 "loqui-protocol.gob" const gchar * loqui_protocol_get_identifier (LoquiProtocol * self) { #line 270 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_identifier" #line 107 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (const gchar * )0); #line 107 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (const gchar * )0); #line 276 "loqui-protocol.c" { #line 108 "loqui-protocol.gob" return self->identifier; }} #line 282 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 112 "loqui-protocol.gob" void loqui_protocol_set_codeconv_table (LoquiProtocol * self, LoquiCodeConvTableItem * codeconv_table) { #line 289 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::set_codeconv_table" #line 112 "loqui-protocol.gob" g_return_if_fail (self != NULL); #line 112 "loqui-protocol.gob" g_return_if_fail (LOQUI_IS_PROTOCOL (self)); #line 295 "loqui-protocol.c" { #line 113 "loqui-protocol.gob" self->codeconv_table = codeconv_table; }} #line 301 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 117 "loqui-protocol.gob" LoquiCodeConvTableItem * loqui_protocol_get_codeconv_table (LoquiProtocol * self) { #line 308 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_codeconv_table" #line 117 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiCodeConvTableItem * )0); #line 117 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiCodeConvTableItem * )0); #line 314 "loqui-protocol.c" { #line 118 "loqui-protocol.gob" return self->codeconv_table; }} #line 320 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 122 "loqui-protocol.gob" LoquiAccountClass * loqui_protocol_get_account_class (LoquiProtocol * self) { #line 327 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_account_class" #line 122 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiAccountClass * )0); #line 122 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiAccountClass * )0); #line 333 "loqui-protocol.c" { #line 123 "loqui-protocol.gob" return g_type_class_ref(self->type_account); }} #line 339 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 127 "loqui-protocol.gob" LoquiChannelClass * loqui_protocol_get_channel_class (LoquiProtocol * self) { #line 346 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_channel_class" #line 127 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiChannelClass * )0); #line 127 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiChannelClass * )0); #line 352 "loqui-protocol.c" { #line 128 "loqui-protocol.gob" return g_type_class_ref(self->type_channel); }} #line 358 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 132 "loqui-protocol.gob" LoquiSenderClass * loqui_protocol_get_sender_class (LoquiProtocol * self) { #line 365 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_sender_class" #line 132 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiSenderClass * )0); #line 132 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiSenderClass * )0); #line 371 "loqui-protocol.c" { #line 133 "loqui-protocol.gob" return g_type_class_ref(self->type_sender); }} #line 377 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 137 "loqui-protocol.gob" LoquiReceiverClass * loqui_protocol_get_receiver_class (LoquiProtocol * self) { #line 384 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_receiver_class" #line 137 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiReceiverClass * )0); #line 137 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiReceiverClass * )0); #line 390 "loqui-protocol.c" { #line 138 "loqui-protocol.gob" return g_type_class_ref(self->type_receiver); }} #line 396 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 142 "loqui-protocol.gob" LoquiUserClass * loqui_protocol_get_user_class (LoquiProtocol * self) { #line 403 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_user_class" #line 142 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiUserClass * )0); #line 142 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiUserClass * )0); #line 409 "loqui-protocol.c" { #line 143 "loqui-protocol.gob" return g_type_class_ref(self->type_user); }} #line 415 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 147 "loqui-protocol.gob" LoquiProfileAccountClass * loqui_protocol_get_profile_account_class (LoquiProtocol * self) { #line 422 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::get_profile_account_class" #line 147 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiProfileAccountClass * )0); #line 147 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiProfileAccountClass * )0); #line 428 "loqui-protocol.c" { #line 148 "loqui-protocol.gob" return g_type_class_ref(self->type_profile_account); }} #line 434 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 152 "loqui-protocol.gob" LoquiProfileAccount * loqui_protocol_create_profile_account (LoquiProtocol * self) { #line 441 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::create_profile_account" #line 152 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiProfileAccount * )0); #line 152 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiProfileAccount * )0); #line 447 "loqui-protocol.c" { #line 153 "loqui-protocol.gob" LoquiProfileAccount *profile; /* FIXME: this should be done with argument of g_object_new, but it can't because a property will be serialized. */ profile = LOQUI_PROFILE_ACCOUNT(g_object_new(self->type_profile_account, NULL)); loqui_profile_set_profile_type_name(LOQUI_PROFILE(profile), loqui_protocol_get_identifier(self)); profile->protocol = self; return profile; }} #line 461 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 165 "loqui-protocol.gob" LoquiUser * loqui_protocol_create_user (LoquiProtocol * self) { #line 468 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::create_user" #line 165 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiUser * )0); #line 165 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiUser * )0); #line 474 "loqui-protocol.c" { #line 166 "loqui-protocol.gob" return LOQUI_USER(g_object_new(self->type_user, NULL)); }} #line 480 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 170 "loqui-protocol.gob" LoquiAccount * loqui_protocol_create_account (LoquiProtocol * self, LoquiProfileAccount * profile) { #line 487 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::create_account" #line 170 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiAccount * )0); #line 170 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiAccount * )0); #line 493 "loqui-protocol.c" { #line 171 "loqui-protocol.gob" return LOQUI_ACCOUNT(g_object_new(self->type_account, "profile", profile, NULL)); }} #line 501 "loqui-protocol.c" #undef __GOB_FUNCTION__ #line 177 "loqui-protocol.gob" LoquiChannel * loqui_protocol_create_channel (LoquiProtocol * self, LoquiAccount * account, const gchar * name, const gchar * identifier, gboolean is_joined, gboolean is_private_talk) { #line 508 "loqui-protocol.c" #define __GOB_FUNCTION__ "Loqui:Protocol::create_channel" #line 177 "loqui-protocol.gob" g_return_val_if_fail (self != NULL, (LoquiChannel * )0); #line 177 "loqui-protocol.gob" g_return_val_if_fail (LOQUI_IS_PROTOCOL (self), (LoquiChannel * )0); #line 514 "loqui-protocol.c" { #line 178 "loqui-protocol.gob" LoquiChannel *channel; channel = g_object_new(self->type_channel, "account", account, "name", name, "identifier", identifier, "is_private_talk", is_private_talk, "is_joined", is_joined, NULL); return channel; }} #line 529 "loqui-protocol.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/loqui-message-text-private.h0000664000175000017500000000240112121605231016761 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 3 "loqui-message-text.gob" #line 27 "loqui-message-text-private.h" #ifndef __LOQUI_MESSAGE_TEXT_PRIVATE_H__ #define __LOQUI_MESSAGE_TEXT_PRIVATE_H__ #include "loqui-message-text.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui_user_irc.h0000664000175000017500000000516012121600532014604 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_USER_IRC_H__ #define __LOQUI_USER_IRC_H__ #include #include "loqui_user.h" G_BEGIN_DECLS #define LOQUI_TYPE_USER_IRC (loqui_user_irc_get_type ()) #define LOQUI_USER_IRC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_USER_IRC, LoquiUserIRC)) #define LOQUI_USER_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_USER_IRC, LoquiUserIRCClass)) #define LOQUI_IS_USER_IRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_USER_IRC)) #define LOQUI_IS_USER_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_USER_IRC)) #define LOQUI_USER_IRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_USER_IRC, LoquiUserIRCClass)) typedef struct _LoquiUserIRC LoquiUserIRC; typedef struct _LoquiUserIRCClass LoquiUserIRCClass; typedef struct _LoquiUserIRCPrivate LoquiUserIRCPrivate; struct _LoquiUserIRC { LoquiUser parent; gchar *server_info; gchar *joined_channels_string; gboolean is_irc_operator; guint hop_count; }; struct _LoquiUserIRCClass { LoquiUserClass parent_class; }; GType loqui_user_irc_get_type(void) G_GNUC_CONST; LoquiUserIRC* loqui_user_irc_new(void); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiUserIRC, loqui_user_irc, hop_count, guint); LOQUI_DEFINE_ACCESSOR_GENERIC_PROTOTYPE(LoquiUserIRC, loqui_user_irc, is_irc_operator, gboolean); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiUserIRC, loqui_user_irc, server_info); LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiUserIRC, loqui_user_irc, joined_channels_string); G_END_DECLS #endif /* __LOQUI_USER_IRC_H__ */ loqui-0.5.5/libloqui/loqui-mode-manager.h0000664000175000017500000001300312121605231015237 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_MODE_MANAGER_H__ #define __LOQUI_MODE_MANAGER_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "loqui-mode-item.h" typedef enum { LOQUI_MODE_MANAGER_ERROR_PARSE_LACK_ARGUMENT, LOQUI_MODE_MANAGER_ERROR_PARSE_INVALID_MODE_CHAR } LoquiModeManagerError; #define LOQUI_TYPE_MODE_MANAGER_ERROR loqui_mode_manager_error_get_type () GType loqui_mode_manager_error_get_type (void) G_GNUC_CONST; #define LOQUI_MODE_MANAGER_ERROR loqui_mode_manager_error_quark () GQuark loqui_mode_manager_error_quark (void); /* * Type checking and casting macros */ #define LOQUI_TYPE_MODE_MANAGER (loqui_mode_manager_get_type()) #define LOQUI_MODE_MANAGER(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_mode_manager_get_type(), LoquiModeManager) #define LOQUI_MODE_MANAGER_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_mode_manager_get_type(), LoquiModeManager const) #define LOQUI_MODE_MANAGER_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_mode_manager_get_type(), LoquiModeManagerClass) #define LOQUI_IS_MODE_MANAGER(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_mode_manager_get_type ()) #define LOQUI_MODE_MANAGER_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_mode_manager_get_type(), LoquiModeManagerClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_MODE_MANAGER__ #define __TYPEDEF_LOQUI_MODE_MANAGER__ typedef struct _LoquiModeManager LoquiModeManager; #endif struct _LoquiModeManager { GObject __parent__; /*< public >*/ LoquiModeTableItem * table; GList * mode_item_list; }; /* * Class definition */ typedef struct _LoquiModeManagerClass LoquiModeManagerClass; struct _LoquiModeManagerClass { GObjectClass __parent__; /*signal*/void (* changed) (LoquiModeManager * self); }; /* * Public methods */ GType loqui_mode_manager_get_type (void) G_GNUC_CONST; #line 51 "loqui-mode-manager.gob" void loqui_mode_manager_changed (LoquiModeManager * self); #line 92 "loqui-mode-manager.h" #line 53 "loqui-mode-manager.gob" GList * loqui_mode_manager_parse (LoquiModeManager * self, GList * argument_list, GError ** error); #line 97 "loqui-mode-manager.h" #line 132 "loqui-mode-manager.gob" void loqui_mode_manager_add (LoquiModeManager * self, LoquiModeItem * mode_item); #line 101 "loqui-mode-manager.h" #line 138 "loqui-mode-manager.gob" void loqui_mode_manager_clear (LoquiModeManager * self); #line 104 "loqui-mode-manager.h" #line 145 "loqui-mode-manager.gob" void loqui_mode_manager_apply (LoquiModeManager * self, GList * mode_item_list); #line 108 "loqui-mode-manager.h" #line 177 "loqui-mode-manager.gob" gchar * loqui_mode_manager_to_string (LoquiModeManager * self); #line 111 "loqui-mode-manager.h" #line 225 "loqui-mode-manager.gob" LoquiModeManager * loqui_mode_manager_new (LoquiModeTableItem * table); #line 114 "loqui-mode-manager.h" /* * Signal connection wrapper macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define loqui_mode_manager_connect__changed(object,func,data) g_signal_connect(LOQUI_MODE_MANAGER(__extension__ ({LoquiModeManager *___object = (object); ___object; })),"changed",(GCallback) __extension__ ({void (* ___changed) (LoquiModeManager * ___fake___self, gpointer ___data ) = (func); ___changed; }), (data)) #define loqui_mode_manager_connect_after__changed(object,func,data) g_signal_connect_after(LOQUI_MODE_MANAGER(__extension__ ({LoquiModeManager *___object = (object); ___object; })),"changed",(GCallback) __extension__ ({void (* ___changed) (LoquiModeManager * ___fake___self, gpointer ___data ) = (func); ___changed; }), (data)) #define loqui_mode_manager_connect_data__changed(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_MODE_MANAGER(__extension__ ({LoquiModeManager *___object = (object); ___object; })),"changed",(GCallback) __extension__ ({void (* ___changed) (LoquiModeManager * ___fake___self, gpointer ___data ) = (func); ___changed; }), (data), (destroy_data), (GConnectFlags)(flags)) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define loqui_mode_manager_connect__changed(object,func,data) g_signal_connect(LOQUI_MODE_MANAGER(object),"changed",(GCallback)(func),(data)) #define loqui_mode_manager_connect_after__changed(object,func,data) g_signal_connect_after(LOQUI_MODE_MANAGER(object),"changed",(GCallback)(func),(data)) #define loqui_mode_manager_connect_data__changed(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_MODE_MANAGER(object),"changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui_member.h0000664000175000017500000000534712121600532014247 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_MEMBER_H__ #define __LOQUI_MEMBER_H__ #include #include #include "loqui_user.h" G_BEGIN_DECLS #define LOQUI_TYPE_MEMBER (loqui_member_get_type ()) #define LOQUI_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_MEMBER, LoquiMember)) #define LOQUI_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_MEMBER, LoquiMemberClass)) #define LOQUI_IS_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_MEMBER)) #define LOQUI_IS_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_MEMBER)) #define LOQUI_MEMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_MEMBER, LoquiMemberClass)) typedef struct _LoquiMember LoquiMember; typedef struct _LoquiMemberClass LoquiMemberClass; struct _LoquiMember { GObject parent; LoquiUser *user; gboolean is_channel_operator; gboolean speakable; glong last_message_time; }; struct _LoquiMemberClass { GObjectClass parent_class; }; GType loqui_member_get_type(void) G_GNUC_CONST; LoquiMember* loqui_member_new(LoquiUser *user); void loqui_member_set_user(LoquiMember *member, LoquiUser *user); LoquiUser* loqui_member_get_user(LoquiMember *member); void loqui_member_set_is_channel_operator(LoquiMember *member, gboolean is_channel_operator); gboolean loqui_member_get_is_channel_operator(LoquiMember *member); void loqui_member_set_speakable(LoquiMember *member, gboolean speakable); gboolean loqui_member_get_speakable(LoquiMember *member); void loqui_member_set_last_message_time(LoquiMember *member, time_t last_message_time); time_t loqui_member_get_last_message_time(LoquiMember *member); G_END_DECLS #endif /* __LOQUI_MEMBER_H__ */ loqui-0.5.5/libloqui/loqui-pref.c0000664000175000017500000006755012121605231013652 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #line 3 "loqui-pref.gob" /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #line 29 "loqui-pref.c" #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 #define GOB_VERSION_PATCHLEVEL 18 #define selfp (self->_priv) #include /* memset() */ #include "loqui-pref.h" #include "loqui-pref-private.h" #ifdef G_LIKELY #define ___GOB_LIKELY(expr) G_LIKELY(expr) #define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr) #else /* ! G_LIKELY */ #define ___GOB_LIKELY(expr) (expr) #define ___GOB_UNLIKELY(expr) (expr) #endif /* G_LIKELY */ #line 35 "loqui-pref.gob" #define IS_NOT_FOUND_ERROR(tmp_err) (tmp_err->domain == G_KEY_FILE_ERROR && (tmp_err->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND || tmp_err->code == G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) #define GET_WITH_DEFAULT_MACRO(_tmp, _return_type, _get_func, _group_name, _key, _default_value, _error) { \ GError *tmp_err = NULL; \ _tmp = _get_func(self, group_name, key, &tmp_err); \ if (tmp_err != NULL) { \ if (IS_NOT_FOUND_ERROR(tmp_err)) { \ g_error_free(tmp_err); \ _tmp = (_return_type) _default_value; \ } else { \ g_propagate_error(_error, tmp_err); \ } \ } \ } #line 66 "loqui-pref.c" /* self casting macros */ #define SELF(x) LOQUI_PREF(x) #define SELF_CONST(x) LOQUI_PREF_CONST(x) #define IS_SELF(x) LOQUI_IS_PREF(x) #define TYPE_SELF LOQUI_TYPE_PREF #define SELF_CLASS(x) LOQUI_PREF_CLASS(x) #define SELF_GET_CLASS(x) LOQUI_PREF_GET_CLASS(x) /* self typedefs */ typedef LoquiPref Self; typedef LoquiPrefClass SelfClass; /* here are local prototypes */ #line 0 "loqui-pref.gob" static void loqui_pref_init (LoquiPref * o) G_GNUC_UNUSED; #line 83 "loqui-pref.c" #line 0 "loqui-pref.gob" static void loqui_pref_class_init (LoquiPrefClass * c) G_GNUC_UNUSED; #line 86 "loqui-pref.c" /* * Signal connection wrapper macro shortcuts */ #define self_connect__changed(object,func,data) loqui_pref_connect__changed((object),(func),(data)) #define self_connect_after__changed(object,func,data) loqui_pref_connect_after__changed((object),(func),(data)) #define self_connect_data__changed(object,func,data,destroy_data,flags) loqui_pref_connect_data__changed((object),(func),(data),(destroy_data),(flags)) typedef void (*___Sig1) (LoquiPref *, gchar *, gchar *, gpointer); static void ___marshal_Sig1 (GClosure *closure, GValue *return_value G_GNUC_UNUSED, guint n_param_values, const GValue *param_values, gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data) { register ___Sig1 callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (___Sig1) (marshal_data != NULL ? marshal_data : cc->callback); callback ((LoquiPref *)data1, (gchar *) g_value_get_string (param_values + 1), (gchar *) g_value_get_string (param_values + 2), data2); } enum { CHANGED_SIGNAL, LAST_SIGNAL }; static guint object_signals[LAST_SIGNAL] = {0}; /* pointer to the class of our parent */ static GObjectClass *parent_class = NULL; /* Short form macros */ #define self_new loqui_pref_new #define self_changed loqui_pref_changed #define self_get_keys loqui_pref_get_keys #define self_get_groups loqui_pref_get_groups #define self_foreach loqui_pref_foreach #define self_load_from_file loqui_pref_load_from_file #define self_save_to_file loqui_pref_save_to_file #define self_to_data loqui_pref_to_data #define self_get_string loqui_pref_get_string #define self_get_integer loqui_pref_get_integer #define self_get_boolean loqui_pref_get_boolean #define self_get_string_list loqui_pref_get_string_list #define self_get_integer_list loqui_pref_get_integer_list #define self_get_boolean_list loqui_pref_get_boolean_list #define self_set_string loqui_pref_set_string #define self_set_integer loqui_pref_set_integer #define self_set_boolean loqui_pref_set_boolean #define self_set_string_list loqui_pref_set_string_list #define self_set_integer_list loqui_pref_set_integer_list #define self_set_boolean_list loqui_pref_set_boolean_list #define self_has_key loqui_pref_has_key #define self_has_group loqui_pref_has_group #define self_set_default_string loqui_pref_set_default_string #define self_set_default_integer loqui_pref_set_default_integer #define self_set_default_boolean loqui_pref_set_default_boolean #define self_set_default_string_list loqui_pref_set_default_string_list #define self_set_default_integer_list loqui_pref_set_default_integer_list #define self_set_default_boolean_list loqui_pref_set_default_boolean_list #define self_get_with_default_string loqui_pref_get_with_default_string #define self_get_with_default_integer loqui_pref_get_with_default_integer #define self_get_with_default_boolean loqui_pref_get_with_default_boolean GType loqui_pref_get_type (void) { static GType type = 0; if ___GOB_UNLIKELY(type == 0) { static const GTypeInfo info = { sizeof (LoquiPrefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) loqui_pref_class_init, (GClassFinalizeFunc) NULL, NULL /* class_data */, sizeof (LoquiPref), 0 /* n_preallocs */, (GInstanceInitFunc) loqui_pref_init, NULL }; type = g_type_register_static (G_TYPE_OBJECT, "LoquiPref", &info, (GTypeFlags)0); } return type; } /* a macro for creating a new object of our type */ #define GET_NEW ((LoquiPref *)g_object_new(loqui_pref_get_type(), NULL)) /* a function for creating a new object of our type */ #include static LoquiPref * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED; static LoquiPref * GET_NEW_VARG (const char *first, ...) { LoquiPref *ret; va_list ap; va_start (ap, first); ret = (LoquiPref *)g_object_new_valist (loqui_pref_get_type (), first, ap); va_end (ap); return ret; } static void ___dispose (GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Pref::dispose" LoquiPref *self G_GNUC_UNUSED = LOQUI_PREF (obj_self); if (G_OBJECT_CLASS (parent_class)->dispose) \ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self); #line 54 "loqui-pref.gob" if(self->_priv->keyfile) { g_key_file_free ((gpointer) self->_priv->keyfile); self->_priv->keyfile = NULL; } #line 222 "loqui-pref.c" } #undef __GOB_FUNCTION__ static void ___finalize(GObject *obj_self) { #define __GOB_FUNCTION__ "Loqui:Pref::finalize" LoquiPref *self G_GNUC_UNUSED = LOQUI_PREF (obj_self); gpointer priv G_GNUC_UNUSED = self->_priv; if(G_OBJECT_CLASS(parent_class)->finalize) \ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self); } #undef __GOB_FUNCTION__ static void loqui_pref_init (LoquiPref * o G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Pref::init" o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,LOQUI_TYPE_PREF,LoquiPrefPrivate); #line 53 "loqui-pref.gob" o->_priv->keyfile = g_key_file_new() ; #line 245 "loqui-pref.c" } #undef __GOB_FUNCTION__ static void loqui_pref_class_init (LoquiPrefClass * c G_GNUC_UNUSED) { #define __GOB_FUNCTION__ "Loqui:Pref::class_init" GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c; g_type_class_add_private(c,sizeof(LoquiPrefPrivate)); parent_class = g_type_class_ref (G_TYPE_OBJECT); object_signals[CHANGED_SIGNAL] = g_signal_new ("changed", G_TYPE_FROM_CLASS (g_object_class), (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_STRUCT_OFFSET (LoquiPrefClass, changed), NULL, NULL, ___marshal_Sig1, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); if ___GOB_UNLIKELY(sizeof(const gchar * ) != sizeof(gchar *) || sizeof(const gchar * ) != sizeof(gchar *) || parent_class == NULL /* avoid warning */) { g_error("loqui-pref.gob line 61: Type mismatch of \"changed\" signal signature"); } c->changed = NULL; g_object_class->dispose = ___dispose; g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ #line 56 "loqui-pref.gob" LoquiPref * loqui_pref_new (void) { #line 284 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::new" { #line 56 "loqui-pref.gob" LoquiPref *ret = GET_NEW; return ret; }} #line 292 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 61 "loqui-pref.gob" void loqui_pref_changed (LoquiPref * self, const gchar * group_name, const gchar * key) { #line 299 "loqui-pref.c" GValue ___param_values[3]; GValue ___return_val; memset (&___return_val, 0, sizeof (___return_val)); memset (&___param_values, 0, sizeof (___param_values)); #line 61 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 61 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 310 "loqui-pref.c" ___param_values[0].g_type = 0; g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self)); g_value_set_instance (&___param_values[0], (gpointer) self); ___param_values[1].g_type = 0; g_value_init (&___param_values[1], G_TYPE_STRING); g_value_set_static_string (&___param_values[1], (gchar *) group_name); ___param_values[2].g_type = 0; g_value_init (&___param_values[2], G_TYPE_STRING); g_value_set_static_string (&___param_values[2], (gchar *) key); g_signal_emitv (___param_values, object_signals[CHANGED_SIGNAL], 0 /* detail */, &___return_val); g_value_unset (&___param_values[0]); g_value_unset (&___param_values[1]); g_value_unset (&___param_values[2]); } #line 64 "loqui-pref.gob" gchar ** loqui_pref_get_keys (LoquiPref * self, const gchar * group_name, gsize * length, GError ** error) { #line 338 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_keys" #line 64 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gchar ** )0); #line 64 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gchar ** )0); #line 344 "loqui-pref.c" { #line 64 "loqui-pref.gob" return g_key_file_get_keys(selfp->keyfile, group_name, length, error); }} #line 350 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 67 "loqui-pref.gob" gchar ** loqui_pref_get_groups (LoquiPref * self, gsize * length) { #line 357 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_groups" #line 67 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gchar ** )0); #line 67 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gchar ** )0); #line 363 "loqui-pref.c" { #line 67 "loqui-pref.gob" return g_key_file_get_groups(selfp->keyfile, length); }} #line 369 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 71 "loqui-pref.gob" void loqui_pref_foreach (LoquiPref * self, LoquiPrefForeachFunc func, gpointer data) { #line 376 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::foreach" #line 71 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 71 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 382 "loqui-pref.c" { #line 71 "loqui-pref.gob" gchar **groups; gchar **keys; int i, j; groups = g_key_file_get_groups(selfp->keyfile, NULL); for (i = 0; groups[i] != NULL; i++) { /* the group should be exist, but continue if can't find */ if (!(keys = g_key_file_get_keys(selfp->keyfile, groups[i], NULL, NULL))) continue; for (j = 0; keys[j] != NULL; j++) { func(self, groups[i], keys[j], data); } g_strfreev(keys); } g_strfreev(groups); }} #line 402 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 89 "loqui-pref.gob" gboolean loqui_pref_load_from_file (LoquiPref * self, const gchar * file, GKeyFileFlags flags, GError ** error) { #line 409 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::load_from_file" #line 89 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 89 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gboolean )0); #line 415 "loqui-pref.c" { #line 89 "loqui-pref.gob" return g_key_file_load_from_file(selfp->keyfile, file, flags, error); }} #line 421 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 92 "loqui-pref.gob" gboolean loqui_pref_save_to_file (LoquiPref * self, const gchar * file, GError ** error) { #line 428 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::save_to_file" #line 92 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 92 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gboolean )0); #line 434 "loqui-pref.c" { #line 92 "loqui-pref.gob" gchar *buf; GIOChannel *io; if ((io = g_io_channel_new_file(file, "w", error)) == NULL) { return FALSE; } if ((buf = g_key_file_to_data(selfp->keyfile, NULL, error)) == NULL) { g_io_channel_unref(io); return FALSE; } if (g_io_channel_write_chars(io, buf, -1, NULL, error) == 0) { g_free(buf); g_io_channel_unref(io); return FALSE; } g_free(buf); g_io_channel_unref(io); return TRUE; }} #line 459 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 115 "loqui-pref.gob" gchar * loqui_pref_to_data (LoquiPref * self, gsize * length, GError ** error) { #line 466 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::to_data" #line 115 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 115 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gchar * )0); #line 472 "loqui-pref.c" { #line 115 "loqui-pref.gob" return g_key_file_to_data(selfp->keyfile, length, error); }} #line 478 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 119 "loqui-pref.gob" gchar * loqui_pref_get_string (LoquiPref * self, const gchar * group_name, const gchar * key, GError ** error) { #line 485 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_string" #line 119 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gchar * )0); #line 119 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gchar * )0); #line 491 "loqui-pref.c" { #line 119 "loqui-pref.gob" return g_key_file_get_string(selfp->keyfile, group_name, key, error); }} #line 497 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 122 "loqui-pref.gob" gint loqui_pref_get_integer (LoquiPref * self, const gchar * group_name, const gchar * key, GError ** error) { #line 504 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_integer" #line 122 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gint )0); #line 122 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gint )0); #line 510 "loqui-pref.c" { #line 122 "loqui-pref.gob" return g_key_file_get_integer(selfp->keyfile, group_name, key, error); }} #line 516 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 125 "loqui-pref.gob" gboolean loqui_pref_get_boolean (LoquiPref * self, const gchar * group_name, const gchar * key, GError ** error) { #line 523 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_boolean" #line 125 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 125 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gboolean )0); #line 529 "loqui-pref.c" { #line 125 "loqui-pref.gob" return g_key_file_get_boolean(selfp->keyfile, group_name, key, error); }} #line 535 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 128 "loqui-pref.gob" gchar ** loqui_pref_get_string_list (LoquiPref * self, const gchar * group_name, const gchar * key, gsize * length, GError ** error) { #line 542 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_string_list" #line 128 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gchar ** )0); #line 128 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gchar ** )0); #line 548 "loqui-pref.c" { #line 128 "loqui-pref.gob" return g_key_file_get_string_list(selfp->keyfile, group_name, key, length, error); }} #line 554 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 131 "loqui-pref.gob" gint * loqui_pref_get_integer_list (LoquiPref * self, const gchar * group_name, const gchar * key, gsize * length, GError ** error) { #line 561 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_integer_list" #line 131 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gint * )0); #line 131 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gint * )0); #line 567 "loqui-pref.c" { #line 131 "loqui-pref.gob" return g_key_file_get_integer_list(selfp->keyfile, group_name, key, length, error); }} #line 573 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 134 "loqui-pref.gob" gboolean * loqui_pref_get_boolean_list (LoquiPref * self, const gchar * group_name, const gchar * key, gsize * length, GError ** error) { #line 580 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_boolean_list" #line 134 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gboolean * )0); #line 134 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gboolean * )0); #line 586 "loqui-pref.c" { #line 134 "loqui-pref.gob" return g_key_file_get_boolean_list(selfp->keyfile, group_name, key, length, error); }} #line 592 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 138 "loqui-pref.gob" void loqui_pref_set_string (LoquiPref * self, const gchar * group_name, const gchar * key, const gchar * value) { #line 599 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_string" #line 138 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 138 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 605 "loqui-pref.c" { #line 138 "loqui-pref.gob" g_key_file_set_string(selfp->keyfile, group_name, key, value); self_changed(self, group_name, key); }} #line 612 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 142 "loqui-pref.gob" void loqui_pref_set_integer (LoquiPref * self, const gchar * group_name, const gchar * key, gint value) { #line 619 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_integer" #line 142 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 142 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 625 "loqui-pref.c" { #line 142 "loqui-pref.gob" g_key_file_set_integer(selfp->keyfile, group_name, key, value); self_changed(self, group_name, key); }} #line 632 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 146 "loqui-pref.gob" void loqui_pref_set_boolean (LoquiPref * self, const gchar * group_name, const gchar * key, gboolean value) { #line 639 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_boolean" #line 146 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 146 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 645 "loqui-pref.c" { #line 146 "loqui-pref.gob" g_key_file_set_boolean(selfp->keyfile, group_name, key, value); self_changed(self, group_name, key); }} #line 652 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 150 "loqui-pref.gob" void loqui_pref_set_string_list (LoquiPref * self, const gchar * group_name, const gchar * key, gchar ** value, gsize length) { #line 659 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_string_list" #line 150 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 150 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 665 "loqui-pref.c" { #line 150 "loqui-pref.gob" g_key_file_set_string_list(selfp->keyfile, group_name, key, (const gchar **) value, length); self_changed(self, group_name, key); }} #line 672 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 154 "loqui-pref.gob" void loqui_pref_set_integer_list (LoquiPref * self, const gchar * group_name, const gchar * key, gint * value, gsize length) { #line 679 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_integer_list" #line 154 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 154 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 685 "loqui-pref.c" { #line 154 "loqui-pref.gob" g_key_file_set_integer_list(selfp->keyfile, group_name, key, value, length); self_changed(self, group_name, key); }} #line 692 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 158 "loqui-pref.gob" void loqui_pref_set_boolean_list (LoquiPref * self, const gchar * group_name, const gchar * key, gboolean * value, gsize length) { #line 699 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_boolean_list" #line 158 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 158 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 705 "loqui-pref.c" { #line 158 "loqui-pref.gob" g_key_file_set_boolean_list(selfp->keyfile, group_name, key, value, length); self_changed(self, group_name, key); }} #line 712 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 163 "loqui-pref.gob" gboolean loqui_pref_has_key (LoquiPref * self, const gchar * group_name, const gchar * key, GError ** error) { #line 719 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::has_key" #line 163 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 163 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gboolean )0); #line 725 "loqui-pref.c" { #line 163 "loqui-pref.gob" return g_key_file_has_key(selfp->keyfile, group_name, key, error); }} #line 731 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 166 "loqui-pref.gob" gboolean loqui_pref_has_group (LoquiPref * self, const gchar * group_name) { #line 738 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::has_group" #line 166 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 166 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gboolean )0); #line 744 "loqui-pref.c" { #line 166 "loqui-pref.gob" return g_key_file_has_group(selfp->keyfile, group_name); }} #line 750 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 170 "loqui-pref.gob" void loqui_pref_set_default_string (LoquiPref * self, const gchar * group_name, const gchar * key, const gchar * default_value) { #line 757 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_default_string" #line 170 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 170 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 763 "loqui-pref.c" { #line 170 "loqui-pref.gob" if (self_has_key(self, group_name, key, NULL)) return; self_set_string(self, group_name, key, default_value); }} #line 771 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 175 "loqui-pref.gob" void loqui_pref_set_default_integer (LoquiPref * self, const gchar * group_name, const gchar * key, gint default_value) { #line 778 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_default_integer" #line 175 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 175 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 784 "loqui-pref.c" { #line 175 "loqui-pref.gob" if (self_has_key(self, group_name, key, NULL)) return; self_set_integer(self, group_name, key, default_value); }} #line 792 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 180 "loqui-pref.gob" void loqui_pref_set_default_boolean (LoquiPref * self, const gchar * group_name, const gchar * key, gboolean default_value) { #line 799 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_default_boolean" #line 180 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 180 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 805 "loqui-pref.c" { #line 180 "loqui-pref.gob" if (self_has_key(self, group_name, key, NULL)) return; self_set_boolean(self, group_name, key, default_value); }} #line 813 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 185 "loqui-pref.gob" void loqui_pref_set_default_string_list (LoquiPref * self, const gchar * group_name, const gchar * key, gchar ** default_value, gsize length) { #line 820 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_default_string_list" #line 185 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 185 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 826 "loqui-pref.c" { #line 185 "loqui-pref.gob" if (self_has_key(self, group_name, key, NULL)) return; self_set_string_list(self, group_name, key, default_value, length); }} #line 834 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 190 "loqui-pref.gob" void loqui_pref_set_default_integer_list (LoquiPref * self, const gchar * group_name, const gchar * key, gint * default_value, gsize length) { #line 841 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_default_integer_list" #line 190 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 190 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 847 "loqui-pref.c" { #line 190 "loqui-pref.gob" if (self_has_key(self, group_name, key, NULL)) return; self_set_integer_list(self, group_name, key, default_value, length); }} #line 855 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 195 "loqui-pref.gob" void loqui_pref_set_default_boolean_list (LoquiPref * self, const gchar * group_name, const gchar * key, gboolean * default_value, gsize length) { #line 862 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::set_default_boolean_list" #line 195 "loqui-pref.gob" g_return_if_fail (self != NULL); #line 195 "loqui-pref.gob" g_return_if_fail (LOQUI_IS_PREF (self)); #line 868 "loqui-pref.c" { #line 195 "loqui-pref.gob" if (self_has_key(self, group_name, key, NULL)) return; self_set_boolean_list(self, group_name, key, default_value, length); }} #line 876 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 201 "loqui-pref.gob" gchar * loqui_pref_get_with_default_string (LoquiPref * self, const gchar * group_name, const gchar * key, const gchar * default_value, GError ** error) { #line 883 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_with_default_string" #line 201 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gchar * )NULL); #line 201 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gchar * )NULL); #line 201 "loqui-pref.gob" g_return_val_if_fail (group_name != NULL, (gchar * )NULL); #line 201 "loqui-pref.gob" g_return_val_if_fail (key != NULL, (gchar * )NULL); #line 893 "loqui-pref.c" { #line 201 "loqui-pref.gob" gchar *tmp; GET_WITH_DEFAULT_MACRO(tmp, gchar *, self_get_string, group_name, key, default_value, error); if (tmp) return g_strdup(tmp); return tmp; }} #line 903 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 208 "loqui-pref.gob" gint loqui_pref_get_with_default_integer (LoquiPref * self, const gchar * group_name, const gchar * key, gint default_value, GError ** error) { #line 910 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_with_default_integer" #line 208 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gint )0); #line 208 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gint )0); #line 208 "loqui-pref.gob" g_return_val_if_fail (group_name != NULL, (gint )0); #line 208 "loqui-pref.gob" g_return_val_if_fail (key != NULL, (gint )0); #line 920 "loqui-pref.c" { #line 208 "loqui-pref.gob" gint tmp; GET_WITH_DEFAULT_MACRO(tmp, gint, self_get_integer, group_name, key, default_value, error); return tmp; }} #line 928 "loqui-pref.c" #undef __GOB_FUNCTION__ #line 213 "loqui-pref.gob" gboolean loqui_pref_get_with_default_boolean (LoquiPref * self, const gchar * group_name, const gchar * key, gboolean default_value, GError ** error) { #line 935 "loqui-pref.c" #define __GOB_FUNCTION__ "Loqui:Pref::get_with_default_boolean" #line 213 "loqui-pref.gob" g_return_val_if_fail (self != NULL, (gboolean )0); #line 213 "loqui-pref.gob" g_return_val_if_fail (LOQUI_IS_PREF (self), (gboolean )0); #line 213 "loqui-pref.gob" g_return_val_if_fail (group_name != NULL, (gboolean )0); #line 213 "loqui-pref.gob" g_return_val_if_fail (key != NULL, (gboolean )0); #line 945 "loqui-pref.c" { #line 213 "loqui-pref.gob" gboolean tmp; GET_WITH_DEFAULT_MACRO(tmp, gboolean, self_get_boolean, group_name, key, default_value, error); return tmp; }} #line 953 "loqui-pref.c" #undef __GOB_FUNCTION__ loqui-0.5.5/libloqui/loqui_string_tokenizer.h0000664000175000017500000000645212121600532016376 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Loqui StringTokenizer Utility * Copyright (C) 2004 Yoichi Imai * * You can use LoquiStringTokenizer on these conditions. * (in GPL/LGPL program, LoquiStringTokenizer follows GPL/LGPL.) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University 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 REGENTS 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 REGENTS 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 __LOQUI_STRING_TOKENIZER_H__ #define __LOQUI_STRING_TOKENIZER_H__ /* Caution: This is not GObject */ #include typedef struct _LoquiStringTokenizer LoquiStringTokenizer; struct _LoquiStringTokenizer { gchar *cur; gchar *cur_peeked; gchar *orig_ptr; gchar *next_token_peek; gchar delimiter_peek; gchar *next_token; gchar delimiter; gchar *delimiters; gboolean skip_whitespaces_after_delimiter; }; #define LOQUI_STRING_TOKENIZER_WHITESPACE " \t\r\n" LoquiStringTokenizer *loqui_string_tokenizer_new(const gchar *str, const gchar *delimiters); void loqui_string_tokenizer_free(LoquiStringTokenizer *st); void loqui_string_tokenizer_set_delimiters(LoquiStringTokenizer *st, const gchar *delimiters); void loqui_string_tokenizer_set_skip_whitespaces_after_delimiter(LoquiStringTokenizer *st, gboolean skip_whitespaces); G_CONST_RETURN gchar *loqui_string_tokenizer_next_token(LoquiStringTokenizer *st, gchar *delimiter_ptr); G_CONST_RETURN gchar *loqui_string_tokenizer_peek_next_token(LoquiStringTokenizer *st, gchar *delimiter_ptr); G_CONST_RETURN gchar *loqui_string_tokenizer_get_original_string(LoquiStringTokenizer *st); G_CONST_RETURN gchar *loqui_string_tokenizer_get_remains(LoquiStringTokenizer *st); void loqui_string_tokenizer_skip_char(LoquiStringTokenizer *st); gchar loqui_string_tokenizer_peek_cur_char(LoquiStringTokenizer *st); gboolean loqui_string_tokenizer_has_more_tokens(LoquiStringTokenizer *st); gint loqui_string_tokenizer_count_tokens(LoquiStringTokenizer *st); #endif /* __LOQUI_STRING_TOKENIZER_H__ */ loqui-0.5.5/libloqui/loqui-property-profile.gob0000664000175000017500000000467512121600532016563 00000000000000requires 2.0.0 %alltop{ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ %} %h{ #include %} %{ #include "libloqui-intl.h" #include "loqui-utils.h" %} class Loqui:Property:Profile from G:Object (interface Loqui:Profile) { public gchar *type_name = NULL unrefwith g_free; interface Loqui:Profile private gchar * get_profile_type_name(Loqui:Profile *profile) { Self *self = SELF(profile); return self->type_name; } interface Loqui:Profile private void set_profile_type_name(Loqui:Profile *profile, const gchar *type_name) { Self *self = SELF(profile); LOQUI_G_FREE_UNLESS_NULL(self->type_name); self->type_name = g_strdup(type_name); } interface Loqui:Profile private void set_profile_value(Loqui:Profile *profile, const gchar *key, const GValue *value) { g_object_set_property(G_OBJECT(profile), key, value); } interface Loqui:Profile private void get_profile_value(Loqui:Profile *profile, const gchar *key, GValue *value) { g_object_get_property(G_OBJECT(profile), key, value); } interface Loqui:Profile private const GParamSpec *get_profile_value_spec(LoquiProfile *profile, const gchar *key, const gchar *type_hint) { return g_object_class_find_property(G_OBJECT_GET_CLASS(profile), key); } interface Loqui:Profile private GList * get_profile_key_list(LoquiProfile *profile) { GParamSpec **pspec_array; guint n; int i; GList *list = NULL; pspec_array = g_object_class_list_properties(G_OBJECT_GET_CLASS(profile), &n); for (i = 0; i < n; i++) { list = g_list_prepend(list, g_strdup(pspec_array[i]->name)); } return list; } } loqui-0.5.5/libloqui/loqui-transfer-item.gob0000664000175000017500000000652012121600532016010 00000000000000requires 2.0.0 %alltop{ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ %} %h{ #include %} %{ #include #include "loqui-utils.h" LOQUI_DEFINE_ACCESSOR_CONST_STRING(LoquiTransferItem, loqui_transfer_item, filename); %} class Loqui:Transfer:Item from G:Object { public gchar *dirname = NULL unrefwith g_free; public gchar *filename = NULL unrefwith g_free; public gboolean is_upload; public gchar *address = NULL unrefwith g_free; public gint port; public gint size; public gdouble percent; property STRING dirname ( nick = _("dirname"), blurb = _("Directory Name"), export, link); property STRING filename ( nick = _("filename"), blurb = _("Filename")) set { loqui_transfer_item_set_filename(self, g_value_get_string(VAL)); } get { g_value_set_string(VAL, loqui_transfer_item_get_filename(self)); }; property BOOLEAN is_upload ( nick = _("is_upload"), blurb = _("Is upload"), default_value = FALSE, export, link); property INT port ( nick = _("port"), blurb = _("Port"), export, link); property STRING address ( nick = _("address"), blurb = _("Address"), export, link); property INT size ( nick = _("size"), blurb = _("Size"), export, link); property DOUBLE percent( nick = _("percent"), blurb = _("Percent"), export, link); public Loqui:Transfer:Item * new(void) { Self *self; self = GET_NEW; return self; } signal last NONE (NONE) void start(self); signal last NONE (NONE) void cancel(self); signal first NONE (NONE) void completed(self); signal last NONE (STRING) void info(self, const gchar *text) { } signal last NONE (STRING) void warn(self, const gchar *text) { } public void information(self, const gchar *format, ...) { va_list args; gchar *str; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); self_info(self, str); g_free(str); } public void warning(self, const gchar *format, ...) { va_list args; gchar *str; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); self_warn(self, str); g_free(str); } public gchar * get_path_local(self) { /* TODO: convertion ? */ return self_get_path_raw(self); } public gchar * get_path_raw(self) { gchar *tmp; tmp = g_strconcat(self->dirname, G_DIR_SEPARATOR_S, self->filename, NULL); return tmp; } } %h{ LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiTransferItem, loqui_transfer_item, filename); %} loqui-0.5.5/libloqui/loqui_receiver.h0000664000175000017500000000450612121600532014600 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_RECEIVER_H__ #define __LOQUI_RECEIVER_H__ #include G_BEGIN_DECLS #define LOQUI_TYPE_RECEIVER (loqui_receiver_get_type ()) #define LOQUI_RECEIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_RECEIVER, LoquiReceiver)) #define LOQUI_RECEIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_RECEIVER, LoquiReceiverClass)) #define LOQUI_IS_RECEIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_RECEIVER)) #define LOQUI_IS_RECEIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_RECEIVER)) #define LOQUI_RECEIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_RECEIVER, LoquiReceiverClass)) typedef struct _LoquiReceiver LoquiReceiver; typedef struct _LoquiReceiverClass LoquiReceiverClass; typedef struct _LoquiReceiverPrivate LoquiReceiverPrivate; #include "loqui_account.h" struct _LoquiReceiver { GObject parent; /* < protected > */ LoquiAccount *account; LoquiReceiverPrivate *priv; }; struct _LoquiReceiverClass { GObjectClass parent_class; }; GType loqui_receiver_get_type(void) G_GNUC_CONST; LoquiReceiver* loqui_receiver_new(LoquiAccount *account); LoquiAccount* loqui_receiver_get_account(LoquiReceiver *receiver); G_END_DECLS #endif /* __LOQUI_RECEIVER_H__ */ loqui-0.5.5/libloqui/loqui-utils.c0000664000175000017500000003027012121600532014042 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui-utils.h" #include #include #include #include #include #include #include #include #include #include "loqui-static-core.h" const gchar* uri_prefix_list[] = { "http://", "https://", "ftp://", "mailto:", "ttp://", NULL }; void loqui_debug_print(const gchar *format, ...) { va_list args; gchar *str; if(!loqui_core_get_debug_mode(loqui_get_core())) return; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); g_free(str); } void loqui_debug_puts(const gchar *format, ...) { va_list args; gchar *str; if(!loqui_core_get_debug_mode(loqui_get_core())) return; va_start(args, format); str = g_strdup_vprintf(format, args); va_end(args); g_print("%s\n", str); g_free(str); } G_CONST_RETURN gchar * loqui_utils_remove_return_code(gchar *str) { register gchar *s; if (!*str) return str; for (s = str + strlen(str) - 1; s >= str && (*s == '\n' || *s == '\r'); s--) *s = '\0'; return str; } GList *loqui_utils_line_separated_text_to_list(gchar *str) { gchar **str_array; GList *list = NULL; gint i; str_array = g_strsplit(str, "\n", -1); for(i = 0; str_array[i] != NULL; i++) { if(strlen(str_array[i]) == 0) continue; list = g_list_append(list, g_strdup(str_array[i])); } g_strfreev(str_array); return list; } gchar *loqui_utils_line_separated_text_from_list(GList *list) { GString *string; GList *cur; gchar *str; g_return_val_if_fail(list != NULL, NULL); string = g_string_new(NULL); for(cur = list; cur != NULL; cur = cur->next) { g_string_append_printf(string, "%s\n", (gchar *) cur->data); } str = string->str; g_string_free(string, FALSE); return str; } gchar *loqui_utils_format(const gchar *format, ...) { va_list args; GString *string; GQueue *curly_queue; const gchar *cur, *tmp; gchar *str; gint i; const gchar *str_cache[CHAR_MAX]; gint invisible = 0; g_return_val_if_fail(format != NULL, NULL); memset(str_cache, 0, CHAR_MAX); va_start(args, format); while((i = va_arg(args, gint)) != -1) { g_return_val_if_fail(i <= CHAR_MAX, NULL); str = va_arg(args, gchar *); str_cache[i] = str; } va_end(args); string = g_string_new_len(NULL, strlen(format)); curly_queue = g_queue_new(); cur = format; while(*cur != '\0' && ((tmp = strpbrk(cur, "%?}\\")) != NULL)) { if(tmp > cur) { if(!invisible) string = g_string_append_len(string, cur, tmp - cur); cur = tmp; } switch(*cur) { case '%': cur++; if(*cur == '%') { string = g_string_append_c(string, '%'); break; } i = *cur; if(str_cache[i] != NULL) string = g_string_append(string, str_cache[i]); break; case '?': if(*cur++ == '\0') break; i = *cur; cur++; if(*cur != '{') { g_warning(_("?x flag doesn't have { in '%s'"), format); break; } if(str_cache[i] == NULL) invisible++; g_queue_push_tail(curly_queue, GINT_TO_POINTER(i)); break; case '}': if(g_queue_is_empty(curly_queue)) break; i = GPOINTER_TO_INT(g_queue_pop_tail(curly_queue)); /* should free string/queue before this g_return_*, but it's needless because it should not be called. */ g_return_val_if_fail(i < CHAR_MAX, NULL); if(str_cache[i] == NULL) invisible--; break; case '\\': if(*cur++ == '\0') break; string = g_string_append_c(string, *cur); break; default: g_assert_not_reached(); } if(*cur == '\0') break; cur++; } str = string->str; g_string_free(string, FALSE); g_queue_free(curly_queue); return str; } gchar * loqui_utils_get_iso8601_date_string(time_t t) { return loqui_utils_strftime_epoch("%Y-%m-%d %H:%M:%S", t); } static void add_key_to_list_func(gpointer key, gpointer value, gpointer user_data) { GList **list_ptr; list_ptr = (GList **) user_data; *list_ptr = g_list_append(*list_ptr, key); } static void add_value_to_list_func(gpointer key, gpointer value, gpointer user_data) { GList **list_ptr; list_ptr = (GList **) user_data; *list_ptr = g_list_append(*list_ptr, value); } GList * loqui_utils_get_key_list_from_hash(GHashTable *hash_table) { GList *list = NULL; g_return_val_if_fail(hash_table != NULL, NULL); g_hash_table_foreach(hash_table, add_key_to_list_func, &list); return list; } GList * loqui_utils_get_value_list_from_hash(GHashTable *hash_table) { GList *list = NULL; g_return_val_if_fail(hash_table != NULL, NULL); g_hash_table_foreach(hash_table, add_value_to_list_func, &list); return list; } /** * loqui_utils_search_uri: * * @buf: Buffer * @got_uri: newly-allocated uri string * @start_uri: The position that uri starts. * @end_uri: The position of the next character that uri ends. * @returns: Whether found or not. */ gboolean loqui_utils_search_uri(const gchar *buf, gchar **got_uri, const gchar **start_uri, const gchar **end_uri) { int i; const gchar *tmp = NULL, *tmp_start_uri = NULL, *cur, *prefix = NULL, *used_prefix = NULL; const gchar *start_uri_ptr; int parenCount; cur = buf; for(i = 0; prefix = uri_prefix_list[i], prefix != NULL; i++) { tmp = strstr(cur, prefix); if(tmp != NULL && (tmp_start_uri == NULL || tmp_start_uri > tmp)) { used_prefix = prefix; tmp_start_uri = tmp; } } if(tmp_start_uri == NULL || used_prefix == NULL) return FALSE; cur = start_uri_ptr = tmp_start_uri; cur += strlen(used_prefix); parenCount = 0; while (*cur) { /* special handler for () in url. ex. mypage is here (http://url(aa(bbb)a)) */ if (*cur == '(') { parenCount++; } else if (parenCount > 0 && *cur == ')') { parenCount--; } else if (!isascii(*cur) || !g_ascii_isgraph(*cur) || strchr("()<>\"", *cur)) { break; } cur++; } if(start_uri != NULL) *start_uri = start_uri_ptr; if(end_uri != NULL) *end_uri = cur; if(got_uri != NULL) { *got_uri = g_malloc0(cur - start_uri_ptr + 2); memcpy(*got_uri, start_uri_ptr, cur - start_uri_ptr + 1); } return TRUE; } gchar * loqui_utils_strftime_epoch(const gchar *format, time_t t) { struct tm tm; struct tm *tm_p; tm_p = &tm; /* cygwin's localtime_r ignores timezone! */ #if defined(HAVE_LOCALTIME_R) && !defined(__CYGWIN__) localtime_r(&t, tm_p); #else tm_p = localtime(&t); #endif return loqui_utils_strftime(format, tm_p); } #define TIME_DEFAULT_BUFSIZE 128 gchar * loqui_utils_strftime(const gchar *format, struct tm *time) { gchar *buf, *buf2; gint len, format_len; gint size; if(format == NULL) return NULL; format_len = strlen(format); if (format_len == 0) return NULL; size = TIME_DEFAULT_BUFSIZE; do { buf = g_malloc(size + 1); buf[0] = '.'; len = strftime(buf, size, format, time); if (buf[0] == '\0') return buf; if (len > 0) { buf2 = g_locale_to_utf8(buf, -1, NULL, NULL, NULL); g_free(buf); return buf2; } g_free(buf); size *= 2; /* tricky way ... it assumes len is not 1024 times bigger than format_len */ } while (size < 1024 * format_len); return NULL; } void loqui_utils_g_list_foreach_swapped(GList *list, GFunc func, gpointer user_data) { GList *cur; for (cur = list; cur != NULL; cur = cur->next) (*func)(user_data, cur->data); } gboolean loqui_utils_strcase_equal(gconstpointer a, gconstpointer b) { return (g_ascii_strcasecmp(a, b) == 0); } guint loqui_utils_strcase_hash(gconstpointer v) { gchar *s; gulong l; s = g_ascii_strdown(v, -1); l = g_str_hash(s); g_free(s); return l; } void loqui_utils_g_ptr_array_insert_sort(GPtrArray *array, gint sort_start_pos, GCompareFunc sort_func) { gint i, j; gpointer *pdata = array->pdata; gpointer tmp; for (i = sort_start_pos; i < array->len; i++) { for (j = 0; j < i; j++) { if (sort_func(&pdata[j], &pdata[i]) > 0) break; } if (i != j) { tmp = pdata[i]; g_memmove(pdata + j + 1, pdata + j, (i - j) * sizeof(gpointer)); pdata[j] = tmp; } } } gboolean loqui_utils_return_true_if_value_equals_data(gpointer key, gpointer value, gpointer data) { return (value == data); } gboolean loqui_utils_return_true_if_data_of_list_equals_data(gpointer key, gpointer value, gpointer data) { GList *l; l = value; return (l && l->data == data); } /* ::ffff:127.0.0.1 -> 127.0.0.1 */ G_CONST_RETURN gchar * loqui_utils_remove_ipv6_prefix_ffff(const gchar *str) { if (strncmp(str, "::ffff:", 7) == 0) { return str + 7; } return str; } gboolean loqui_utils_mkdir_and_chmod(const gchar *path) { if (mkdir(path, S_IRWXU) < 0) { g_warning("Failed to mkdir (%s)", g_strerror(errno)); return FALSE; } if (chmod(path, S_IRWXU) < 0) { g_warning("Failed to chmod (%s)", g_strerror(errno)); return FALSE; } return TRUE; } gsize loqui_utils_count_strarray(const gchar **strarray) { gsize i; if (strarray == NULL) return 0; for (i = 0; strarray[i] != NULL; i++); return i; } /* This function should not be used for the place required performance! */ GList * loqui_utils_string_array_to_list(gchar **strarray, gboolean free_original) { GList *list = NULL; int i; if (strarray == NULL) return NULL; for (i = 0; strarray[i] != NULL; i++) list = g_list_prepend(list, g_strdup(strarray[i])); if (free_original) g_strfreev(strarray); return g_list_reverse(list); } gchar ** loqui_utils_list_to_string_array(GList *list, gboolean free_original) { gchar **strarray; GList *cur; int i; strarray = g_new(gchar *, g_list_length(list) + 1); i = 0; for (cur = list; cur != NULL; cur = cur->next) { strarray[i] = g_strdup(cur->data); i++; } strarray[i] = NULL; if (free_original) loqui_utils_free_list_and_elements(list); return strarray; } void loqui_utils_free_list_and_elements(GList *list) { g_list_foreach(list, (GFunc) g_free, NULL); g_list_free(list); } void loqui_utils_free_list_and_elements_unref(GList *list) { g_list_foreach(list, (GFunc) g_object_unref, NULL); g_list_free(list); } gchar * loqui_utils_get_lc_ctype(void) { #ifdef G_OS_WIN32 const gchar *tmp; if ((tmp = g_getenv("LANG")) != NULL || (tmp = g_getenv("LC_CTYPE")) != NULL) { return g_strdup(tmp); } else { return g_win32_getlocale(); } #else return g_strdup(setlocale(LC_CTYPE, NULL)); #endif } gchar * loqui_utils_url_encode(const gchar *str) { GString *string; const gchar *c; string = g_string_sized_new(strlen(str)); for (c = str; *c != '\0'; c++) { if (*c == ' ') { g_string_append_c(string, '+'); } else if (g_ascii_isalnum(*c) || strchr("-._", *c) != NULL) { g_string_append_c(string, *c); } else { g_string_append_printf(string, "%%%X", (guchar) *c); } } return g_string_free(string, FALSE); } gchar * loqui_utils_url_decode(const gchar *str) { GString *string; const gchar *ptr; unsigned char c, c1, c2; string = g_string_sized_new(strlen(str)); ptr = str; while (*ptr != '\0') { if (*ptr == '+') { g_string_append_c(string, ' '); } else if (*ptr == '%') { c1 = *(ptr+1); c2 = *(ptr+2); if (c1 == '\0' || c2 == '\0' || !g_ascii_isxdigit(c1) || !g_ascii_isxdigit(c2)) { loqui_debug_puts("Failed to decode url: %s", str); break; } else { c = (g_ascii_xdigit_value(c1) << 4) + g_ascii_xdigit_value(c2); g_string_append_c(string, c); ptr += 2; } } else { g_string_append_c(string, *ptr); } ptr++; } return g_string_free(string, FALSE); } loqui-0.5.5/libloqui/irc_message.c0000664000175000017500000003174712121600532014046 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2002-2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "irc_message.h" #include "loqui-utils.h" #include "irc_constants.h" #include #include #include typedef struct { gchar *command; IRCResponse response; } CommandItem; static CommandItem command_table[] = { {IRCCommandPing, IRC_COMMAND_PING}, {IRCCommandPrivmsg, IRC_COMMAND_PRIVMSG}, {IRCCommandJoin, IRC_COMMAND_JOIN}, {IRCCommandNotice, IRC_COMMAND_NOTICE}, {IRCCommandTopic, IRC_COMMAND_TOPIC}, {IRCCommandMode, IRC_COMMAND_MODE}, {IRCCommandNick, IRC_COMMAND_NICK}, {IRCCommandPart, IRC_COMMAND_PART}, {IRCCommandQuit, IRC_COMMAND_QUIT}, {IRCCommandKick, IRC_COMMAND_KICK}, {IRCCommandInvite, IRC_COMMAND_INVITE}, {IRCCommandError, IRC_COMMAND_ERROR}, {IRCCommandPass, IRC_COMMAND_PASS}, {IRCCommandNick, IRC_COMMAND_NICK}, {IRCCommandUser, IRC_COMMAND_USER}, {IRCCommandOper, IRC_COMMAND_OPER}, {IRCCommandSQuit, IRC_COMMAND_SQUIT}, {IRCCommandStats, IRC_COMMAND_STATS}, {IRCCommandLinks, IRC_COMMAND_LINKS}, {IRCCommandTime, IRC_COMMAND_TIME}, {IRCCommandConnect, IRC_COMMAND_CONNECT}, {IRCCommandTrace, IRC_COMMAND_TRACE}, {IRCCommandAdmin, IRC_COMMAND_ADMIN}, {IRCCommandInfo, IRC_COMMAND_INFO}, {IRCCommandNotice, IRC_COMMAND_NOTICE}, {IRCCommandWho, IRC_COMMAND_WHO}, {IRCCommandWhois, IRC_COMMAND_WHOIS}, {IRCCommandWhowas, IRC_COMMAND_WHOWAS}, {IRCCommandKill, IRC_COMMAND_KILL}, {IRCCommandPing, IRC_COMMAND_PING}, {IRCCommandPong, IRC_COMMAND_PONG}, {IRCCommandAway, IRC_COMMAND_AWAY}, {IRCCommandRehash, IRC_COMMAND_REHASH}, {IRCCommandRestart, IRC_COMMAND_RESTART}, {IRCCommandSummon, IRC_COMMAND_SUMMON}, {IRCCommandUsers, IRC_COMMAND_USERS}, {IRCCommandUserhost, IRC_COMMAND_USERHOST}, {IRCCommandIson, IRC_COMMAND_ISON}, {IRCCommandObject, IRC_COMMAND_OBJECT}, {NULL, 0} }; struct _IRCMessagePrivate { }; static GObjectClass *parent_class = NULL; #define PARENT_TYPE G_TYPE_OBJECT static void irc_message_class_init(IRCMessageClass *klass); static void irc_message_init(IRCMessage *irc_message); static void irc_message_finalize(GObject *object); /* this function returns TRUE if str is nick!user@host Then nick, user and host must be freed. */ static gboolean irc_message_parse_prefix(const gchar *str, gchar **nick, gchar **user, gchar **host); GType irc_message_get_type(void) { static GType type = 0; if (type == 0) { static const GTypeInfo our_info = { sizeof(IRCMessageClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) irc_message_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(IRCMessage), 0, /* n_preallocs */ (GInstanceInitFunc) irc_message_init }; type = g_type_register_static(PARENT_TYPE, "IRCMessage", &our_info, 0); } return type; } static void irc_message_class_init(IRCMessageClass *klass) { int i; GObjectClass *object_class = G_OBJECT_CLASS(klass); parent_class = g_type_class_peek_parent(klass); object_class->finalize = irc_message_finalize; klass->command_hash = g_hash_table_new(g_str_hash, g_str_equal); for(i = 0; command_table[i].command != NULL; i++) { g_hash_table_insert(klass->command_hash, (gpointer) command_table[i].command, GINT_TO_POINTER(command_table[i].response)); } } static void irc_message_init(IRCMessage *irc_message) { IRCMessagePrivate *priv; priv = g_new0(IRCMessagePrivate, 1); irc_message->priv = priv; } static void irc_message_finalize(GObject *object) { IRCMessage *msg; g_return_if_fail(object != NULL); g_return_if_fail(IS_IRC_MESSAGE(object)); msg = IRC_MESSAGE(object); LOQUI_G_FREE_UNLESS_NULL(msg->prefix); LOQUI_G_FREE_UNLESS_NULL(msg->command); LOQUI_G_FREE_UNLESS_NULL(msg->nick); LOQUI_G_FREE_UNLESS_NULL(msg->user); LOQUI_G_FREE_UNLESS_NULL(msg->host); if (msg->parameter) { g_strfreev(msg->parameter); msg->parameter = NULL; } if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); g_free(msg->priv); } static gboolean irc_message_parse_prefix(const gchar *str, gchar **nick, gchar **user, gchar **host) { gchar *s, *t, *buf; g_return_val_if_fail(str != NULL, FALSE); g_return_val_if_fail(nick != NULL, FALSE); g_return_val_if_fail(user != NULL, FALSE); g_return_val_if_fail(host != NULL, FALSE); *nick = NULL; *user = NULL; *host = NULL; buf = t = g_strdup(str); s = strchr(t, '!'); if(!s) { g_free(buf); return FALSE; } *s = '\0'; *nick = g_strdup(t); t = ++s; s = strchr(t, '@'); if(!s) { g_free(*nick); *nick = NULL; g_free(buf); return FALSE; } *s = '\0'; *user = g_strdup(t); t = ++s; *host = g_strdup(t); return TRUE; } IRCMessage* irc_message_new(const gchar *prefix, const gchar *command, gchar **parameter) { IRCMessage *msg; IRCMessageClass *klass; g_return_val_if_fail(command != NULL, NULL); g_return_val_if_fail(parameter != NULL, NULL); msg = g_object_new(irc_message_get_type(), NULL); if(prefix) { msg->prefix = g_strdup(prefix); irc_message_parse_prefix(prefix, &msg->nick, &msg->user, &msg->host); } else msg->prefix = NULL; msg->command = g_utf8_strup(command, -1); msg->parameter = g_strdupv(parameter); msg->response = (int) g_ascii_strtoull(command, NULL, 10); if(msg->response == 0) { klass = IRC_MESSAGE_GET_CLASS(msg); msg->response = GPOINTER_TO_INT(g_hash_table_lookup(klass->command_hash, msg->command)); } return msg; } gchar * irc_message_inspect(IRCMessage *msg) { int i; GString *string; gchar *str; g_return_val_if_fail(msg != NULL, NULL); g_return_val_if_fail(IS_IRC_MESSAGE(msg), NULL); string = g_string_new(NULL); g_string_printf(string, "command: %s(%d), prefix: %s", msg->command, msg->response, msg->prefix); if(msg->prefix != NULL) { if(msg->nick) { g_string_append_printf(string, "(nick: %s, user: %s, host: %s)", msg->nick, msg->user, msg->host); } else { g_string_append_printf(string, "(server: %s)", msg->prefix); } } g_string_append(string, ", args: ["); for(i = 0; msg->parameter[i] != NULL; i++) { g_string_append_printf(string, "'%s'", msg->parameter[i]); if(msg->parameter[i+1] != NULL) g_string_append_printf(string, ", "); } g_string_append(string, "]"); str = string->str; g_string_free(string, FALSE); return str; } void irc_message_print(IRCMessage *msg) { gchar *str; g_return_if_fail(msg != NULL); g_return_if_fail(IS_IRC_MESSAGE(msg)); str = irc_message_inspect(msg); g_print("%s\n", str); g_free(str); } IRCMessage* irc_message_parse_line(const gchar *line) { IRCMessage *msg; gchar *array[20]; gchar *prefix = NULL, *command = NULL, *parameter[16]; int i = 0, num, start; gchar *buf; gchar *cur, *tmp; g_return_val_if_fail(line != NULL, NULL); buf = g_strdup(line); loqui_utils_remove_return_code(buf); if(buf == NULL || *buf == '\0') { loqui_debug_puts("Empty line was sent by server."); return NULL; } cur = buf; while((tmp = strchr(cur, ' ')) != NULL) { while(*tmp == ' ') { *tmp = '\0'; tmp++; } if(*tmp == '\0') break; array[i++] = cur; cur = tmp; /* FIXME: if the message has prefix, this can parse IRC_MESSAGE_PARAMETER_MAX - 1 */ if(i >= IRC_MESSAGE_PARAMETER_MAX) break; if(*cur == ':') { cur++; break; } } array[i++] = cur; num = i; if(num < 1) { loqui_debug_puts("No prefix/command/parameters given: '%s'.", line); g_free(buf); return NULL; } if(*array[0] == ':') { prefix = array[0]+1; command = array[1]; start = 2; } else { prefix = NULL; command = array[0]; start = 1; } for(i = start; i < num; i++) { parameter[i-start] = array[i]; } parameter[i-start] = NULL; msg = irc_message_new(prefix, command, parameter); g_free(buf); return msg; } IRCMessage * irc_message_create(const gchar *command, const gchar *param, ...) { IRCMessage *msg; va_list args; gint num, i; gchar **strings; va_start(args, param); for(num = 0; va_arg(args, gchar *); num++); /* count numbers */ va_end(args); strings = g_new(gchar *, num + 2); strings[0] = (gchar *) param; /* FIXME: originally this needn't cast */ va_start(args, param); for(i = 1; i < num+1; i++) { strings[i] = va_arg(args, gchar *); } strings[i] = NULL; va_end(args); msg = irc_message_new(NULL, command, strings); g_free(strings); return msg; } IRCMessage * irc_message_createv(const gchar *command, gchar *param_array[]) { return irc_message_new(NULL, command, param_array); } gchar * irc_message_to_string(IRCMessage *msg) { GString *string; gchar *str; gint i, num; g_return_val_if_fail(msg != NULL, NULL); g_return_val_if_fail(IS_IRC_MESSAGE(msg), NULL); g_return_val_if_fail(msg->command != NULL, NULL); g_return_val_if_fail(msg->parameter != NULL, NULL); num = irc_message_count_parameters(msg); string = g_string_new(msg->command); if(num > 0) { for(i = 0; i < num - 1; i++) { g_string_append_c(string, ' '); g_string_append(string, msg->parameter[i]); } // only if the last parameter has (' ') or empty (""), add ':' (for madoka) if (strlen(msg->parameter[i]) > 0 && strchr(msg->parameter[i], ' ') == NULL) { g_string_append_printf(string, " %s", msg->parameter[i]); } else { g_string_append_printf(string, " :%s", msg->parameter[i]); } } str = string->str; g_string_free(string, FALSE); return str; } gint irc_message_count_parameters(IRCMessage *msg) { gint num; for(num = 0; msg->parameter[num] != NULL; num++); return num; } gchar * irc_message_get_target(IRCMessage *msg) { if (irc_message_count_parameters(msg) == 0) return 0; return msg->parameter[IRC_MESSAGE_PARAM_INDEX_TARGET]; } gchar * irc_message_get_last_param(IRCMessage *msg) { guint num; num = irc_message_count_parameters(msg); if (num < 1) return NULL; return msg->parameter[num-1]; } gchar * irc_message_get_param(IRCMessage *msg, guint i) { int num; g_return_val_if_fail(0 <= i && i < IRC_MESSAGE_PARAMETER_MAX, NULL); num = irc_message_count_parameters(msg); if (num < i) { g_warning(_("Invalid parameter number")); return NULL; } return msg->parameter[i]; } gchar * irc_message_format(IRCMessage *msg, const gchar *format) { GString *string; const gchar *cur; gchar *tmp, *buf, *s; guint64 i, end; g_return_val_if_fail(msg != NULL, NULL); g_return_val_if_fail(IS_IRC_MESSAGE(msg), NULL); g_return_val_if_fail(format != NULL, NULL); string = g_string_new_len(NULL, strlen(format)); cur = format; while((tmp = strchr(cur, '%')) != NULL) { if(tmp > cur) { string = g_string_append_len(string, cur, tmp - cur); cur = tmp; } cur++; if(*cur == '\0') break; if((i = g_ascii_strtoull(cur, &tmp, 10)) != 0) { buf = irc_message_get_param(msg, i); string = g_string_append(string, buf); cur = tmp; continue; } switch(*cur) { case '*': /* %*n : all params after n */ cur++; i = g_ascii_strtoull(cur, &tmp, 10); if (cur == tmp) break; cur = tmp; end = irc_message_count_parameters(msg) - 1; for(; i < end; i++) { string = g_string_append(string, irc_message_get_param(msg, i)); string = g_string_append_c(string, ' '); } string = g_string_append(string, irc_message_get_param(msg, i)); /* not to append space at last */ break; case 'n': /* nick */ string = g_string_append(string, msg->nick); cur++; break; case 'u': /* user */ string = g_string_append(string, msg->user); cur++; break; case 'h': /* host */ string = g_string_append(string, msg->host); cur++; break; case 'L': /* last */ s = irc_message_get_last_param(msg); if (s != NULL) string = g_string_append(string, s); cur++; break; case 't': /* target,msgto */ s = irc_message_get_target(msg); if (s != NULL) string = g_string_append(string, s); cur++; break; case '%': /* %% */ string = g_string_append_c(string, '%'); cur++; break; default: cur++; break; } } string = g_string_append(string, cur); tmp = string->str; g_string_free(string, FALSE); return tmp; } loqui-0.5.5/libloqui/loqui-transfer-item.h0000664000175000017500000004055612121605231015500 00000000000000/* Generated by GOB (v2.0.18) (do not edit directly) */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include #include #ifndef __LOQUI_TRANSFER_ITEM_H__ #define __LOQUI_TRANSFER_ITEM_H__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include /* * Type checking and casting macros */ #define LOQUI_TYPE_TRANSFER_ITEM (loqui_transfer_item_get_type()) #define LOQUI_TRANSFER_ITEM(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_transfer_item_get_type(), LoquiTransferItem) #define LOQUI_TRANSFER_ITEM_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), loqui_transfer_item_get_type(), LoquiTransferItem const) #define LOQUI_TRANSFER_ITEM_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), loqui_transfer_item_get_type(), LoquiTransferItemClass) #define LOQUI_IS_TRANSFER_ITEM(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), loqui_transfer_item_get_type ()) #define LOQUI_TRANSFER_ITEM_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), loqui_transfer_item_get_type(), LoquiTransferItemClass) /* * Main object structure */ #ifndef __TYPEDEF_LOQUI_TRANSFER_ITEM__ #define __TYPEDEF_LOQUI_TRANSFER_ITEM__ typedef struct _LoquiTransferItem LoquiTransferItem; #endif struct _LoquiTransferItem { GObject __parent__; /*< public >*/ gchar * dirname; gchar * filename; gboolean is_upload; gchar * address; gint port; gint size; gdouble percent; }; /* * Class definition */ typedef struct _LoquiTransferItemClass LoquiTransferItemClass; struct _LoquiTransferItemClass { GObjectClass __parent__; /*signal*/void (* start) (LoquiTransferItem * self); /*signal*/void (* cancel) (LoquiTransferItem * self); /*signal*/void (* completed) (LoquiTransferItem * self); /*signal*/void (* info) (LoquiTransferItem * self, const gchar * text); /*signal*/void (* warn) (LoquiTransferItem * self, const gchar * text); }; /* * Public methods */ GType loqui_transfer_item_get_type (void) G_GNUC_CONST; #line 46 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_dirname (LoquiTransferItem * self); #line 90 "loqui-transfer-item.h" #line 46 "loqui-transfer-item.gob" void loqui_transfer_item_set_dirname (LoquiTransferItem * self, gchar * val); #line 94 "loqui-transfer-item.h" #line 56 "loqui-transfer-item.gob" gboolean loqui_transfer_item_get_is_upload (LoquiTransferItem * self); #line 97 "loqui-transfer-item.h" #line 56 "loqui-transfer-item.gob" void loqui_transfer_item_set_is_upload (LoquiTransferItem * self, gboolean val); #line 101 "loqui-transfer-item.h" #line 61 "loqui-transfer-item.gob" gint loqui_transfer_item_get_port (LoquiTransferItem * self); #line 104 "loqui-transfer-item.h" #line 61 "loqui-transfer-item.gob" void loqui_transfer_item_set_port (LoquiTransferItem * self, gint val); #line 108 "loqui-transfer-item.h" #line 65 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_address (LoquiTransferItem * self); #line 111 "loqui-transfer-item.h" #line 65 "loqui-transfer-item.gob" void loqui_transfer_item_set_address (LoquiTransferItem * self, gchar * val); #line 115 "loqui-transfer-item.h" #line 69 "loqui-transfer-item.gob" gint loqui_transfer_item_get_size (LoquiTransferItem * self); #line 118 "loqui-transfer-item.h" #line 69 "loqui-transfer-item.gob" void loqui_transfer_item_set_size (LoquiTransferItem * self, gint val); #line 122 "loqui-transfer-item.h" #line 73 "loqui-transfer-item.gob" gdouble loqui_transfer_item_get_percent (LoquiTransferItem * self); #line 125 "loqui-transfer-item.h" #line 73 "loqui-transfer-item.gob" void loqui_transfer_item_set_percent (LoquiTransferItem * self, gdouble val); #line 129 "loqui-transfer-item.h" #line 78 "loqui-transfer-item.gob" LoquiTransferItem * loqui_transfer_item_new (void); #line 132 "loqui-transfer-item.h" #line 87 "loqui-transfer-item.gob" void loqui_transfer_item_start (LoquiTransferItem * self); #line 135 "loqui-transfer-item.h" #line 91 "loqui-transfer-item.gob" void loqui_transfer_item_cancel (LoquiTransferItem * self); #line 138 "loqui-transfer-item.h" #line 95 "loqui-transfer-item.gob" void loqui_transfer_item_completed (LoquiTransferItem * self); #line 141 "loqui-transfer-item.h" #line 99 "loqui-transfer-item.gob" void loqui_transfer_item_info (LoquiTransferItem * self, const gchar * text); #line 145 "loqui-transfer-item.h" #line 105 "loqui-transfer-item.gob" void loqui_transfer_item_warn (LoquiTransferItem * self, const gchar * text); #line 149 "loqui-transfer-item.h" #line 111 "loqui-transfer-item.gob" void loqui_transfer_item_information (LoquiTransferItem * self, const gchar * format, ...); #line 154 "loqui-transfer-item.h" #line 125 "loqui-transfer-item.gob" void loqui_transfer_item_warning (LoquiTransferItem * self, const gchar * format, ...); #line 159 "loqui-transfer-item.h" #line 139 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_path_local (LoquiTransferItem * self); #line 162 "loqui-transfer-item.h" #line 145 "loqui-transfer-item.gob" gchar * loqui_transfer_item_get_path_raw (LoquiTransferItem * self); #line 165 "loqui-transfer-item.h" /* * Signal connection wrapper macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define loqui_transfer_item_connect__start(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"start",(GCallback) __extension__ ({void (* ___start) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___start; }), (data)) #define loqui_transfer_item_connect_after__start(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"start",(GCallback) __extension__ ({void (* ___start) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___start; }), (data)) #define loqui_transfer_item_connect_data__start(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"start",(GCallback) __extension__ ({void (* ___start) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___start; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_transfer_item_connect__cancel(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"cancel",(GCallback) __extension__ ({void (* ___cancel) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___cancel; }), (data)) #define loqui_transfer_item_connect_after__cancel(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"cancel",(GCallback) __extension__ ({void (* ___cancel) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___cancel; }), (data)) #define loqui_transfer_item_connect_data__cancel(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"cancel",(GCallback) __extension__ ({void (* ___cancel) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___cancel; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_transfer_item_connect__completed(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"completed",(GCallback) __extension__ ({void (* ___completed) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___completed; }), (data)) #define loqui_transfer_item_connect_after__completed(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"completed",(GCallback) __extension__ ({void (* ___completed) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___completed; }), (data)) #define loqui_transfer_item_connect_data__completed(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"completed",(GCallback) __extension__ ({void (* ___completed) (LoquiTransferItem * ___fake___self, gpointer ___data ) = (func); ___completed; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_transfer_item_connect__info(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"info",(GCallback) __extension__ ({void (* ___info) (LoquiTransferItem * ___fake___self, const gchar * ___fake___text, gpointer ___data ) = (func); ___info; }), (data)) #define loqui_transfer_item_connect_after__info(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"info",(GCallback) __extension__ ({void (* ___info) (LoquiTransferItem * ___fake___self, const gchar * ___fake___text, gpointer ___data ) = (func); ___info; }), (data)) #define loqui_transfer_item_connect_data__info(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"info",(GCallback) __extension__ ({void (* ___info) (LoquiTransferItem * ___fake___self, const gchar * ___fake___text, gpointer ___data ) = (func); ___info; }), (data), (destroy_data), (GConnectFlags)(flags)) #define loqui_transfer_item_connect__warn(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"warn",(GCallback) __extension__ ({void (* ___warn) (LoquiTransferItem * ___fake___self, const gchar * ___fake___text, gpointer ___data ) = (func); ___warn; }), (data)) #define loqui_transfer_item_connect_after__warn(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"warn",(GCallback) __extension__ ({void (* ___warn) (LoquiTransferItem * ___fake___self, const gchar * ___fake___text, gpointer ___data ) = (func); ___warn; }), (data)) #define loqui_transfer_item_connect_data__warn(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(__extension__ ({LoquiTransferItem *___object = (object); ___object; })),"warn",(GCallback) __extension__ ({void (* ___warn) (LoquiTransferItem * ___fake___self, const gchar * ___fake___text, gpointer ___data ) = (func); ___warn; }), (data), (destroy_data), (GConnectFlags)(flags)) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define loqui_transfer_item_connect__start(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(object),"start",(GCallback)(func),(data)) #define loqui_transfer_item_connect_after__start(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(object),"start",(GCallback)(func),(data)) #define loqui_transfer_item_connect_data__start(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(object),"start",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_transfer_item_connect__cancel(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(object),"cancel",(GCallback)(func),(data)) #define loqui_transfer_item_connect_after__cancel(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(object),"cancel",(GCallback)(func),(data)) #define loqui_transfer_item_connect_data__cancel(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(object),"cancel",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_transfer_item_connect__completed(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(object),"completed",(GCallback)(func),(data)) #define loqui_transfer_item_connect_after__completed(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(object),"completed",(GCallback)(func),(data)) #define loqui_transfer_item_connect_data__completed(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(object),"completed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_transfer_item_connect__info(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(object),"info",(GCallback)(func),(data)) #define loqui_transfer_item_connect_after__info(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(object),"info",(GCallback)(func),(data)) #define loqui_transfer_item_connect_data__info(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(object),"info",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #define loqui_transfer_item_connect__warn(object,func,data) g_signal_connect(LOQUI_TRANSFER_ITEM(object),"warn",(GCallback)(func),(data)) #define loqui_transfer_item_connect_after__warn(object,func,data) g_signal_connect_after(LOQUI_TRANSFER_ITEM(object),"warn",(GCallback)(func),(data)) #define loqui_transfer_item_connect_data__warn(object,func,data,destroy_data,flags) g_signal_connect_data(LOQUI_TRANSFER_ITEM(object),"warn",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags)) #endif /* __GNUC__ && !__STRICT_ANSI__ */ /* * Argument wrapping macros */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) #define LOQUI_TRANSFER_ITEM_PROP_DIRNAME(arg) "dirname", __extension__ ({gchar *z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_GET_PROP_DIRNAME(arg) "dirname", __extension__ ({gchar **z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_PROP_FILENAME(arg) "filename", __extension__ ({gchar *z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_GET_PROP_FILENAME(arg) "filename", __extension__ ({gchar **z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_PROP_IS_UPLOAD(arg) "is_upload", __extension__ ({gboolean z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_GET_PROP_IS_UPLOAD(arg) "is_upload", __extension__ ({gboolean *z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_PROP_PORT(arg) "port", __extension__ ({gint z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_GET_PROP_PORT(arg) "port", __extension__ ({gint *z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_PROP_ADDRESS(arg) "address", __extension__ ({gchar *z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_GET_PROP_ADDRESS(arg) "address", __extension__ ({gchar **z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_PROP_SIZE(arg) "size", __extension__ ({gint z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_GET_PROP_SIZE(arg) "size", __extension__ ({gint *z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_PROP_PERCENT(arg) "percent", __extension__ ({gdouble z = (arg); z;}) #define LOQUI_TRANSFER_ITEM_GET_PROP_PERCENT(arg) "percent", __extension__ ({gdouble *z = (arg); z;}) #else /* __GNUC__ && !__STRICT_ANSI__ */ #define LOQUI_TRANSFER_ITEM_PROP_DIRNAME(arg) "dirname",(gchar *)(arg) #define LOQUI_TRANSFER_ITEM_GET_PROP_DIRNAME(arg) "dirname",(gchar **)(arg) #define LOQUI_TRANSFER_ITEM_PROP_FILENAME(arg) "filename",(gchar *)(arg) #define LOQUI_TRANSFER_ITEM_GET_PROP_FILENAME(arg) "filename",(gchar **)(arg) #define LOQUI_TRANSFER_ITEM_PROP_IS_UPLOAD(arg) "is_upload",(gboolean )(arg) #define LOQUI_TRANSFER_ITEM_GET_PROP_IS_UPLOAD(arg) "is_upload",(gboolean *)(arg) #define LOQUI_TRANSFER_ITEM_PROP_PORT(arg) "port",(gint )(arg) #define LOQUI_TRANSFER_ITEM_GET_PROP_PORT(arg) "port",(gint *)(arg) #define LOQUI_TRANSFER_ITEM_PROP_ADDRESS(arg) "address",(gchar *)(arg) #define LOQUI_TRANSFER_ITEM_GET_PROP_ADDRESS(arg) "address",(gchar **)(arg) #define LOQUI_TRANSFER_ITEM_PROP_SIZE(arg) "size",(gint )(arg) #define LOQUI_TRANSFER_ITEM_GET_PROP_SIZE(arg) "size",(gint *)(arg) #define LOQUI_TRANSFER_ITEM_PROP_PERCENT(arg) "percent",(gdouble )(arg) #define LOQUI_TRANSFER_ITEM_GET_PROP_PERCENT(arg) "percent",(gdouble *)(arg) #endif /* __GNUC__ && !__STRICT_ANSI__ */ LOQUI_DEFINE_ACCESSOR_CONST_STRING_PROTOTYPE(LoquiTransferItem, loqui_transfer_item, filename); #ifdef __cplusplus } #endif /* __cplusplus */ #endif loqui-0.5.5/libloqui/loqui_marshalers.list0000664000175000017500000000002012121600532015644 00000000000000VOID:OBJECT,INT loqui-0.5.5/libloqui/loqui_protocol_irc.h0000664000175000017500000000431412121600532015467 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #ifndef __LOQUI_PROTOCOL_IRC_H__ #define __LOQUI_PROTOCOL_IRC_H__ #include #include G_BEGIN_DECLS #define LOQUI_TYPE_PROTOCOL_IRC (loqui_protocol_irc_get_type ()) #define LOQUI_PROTOCOL_IRC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOQUI_TYPE_PROTOCOL_IRC, LoquiProtocolIRC)) #define LOQUI_PROTOCOL_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOQUI_TYPE_PROTOCOL_IRC, LoquiProtocolIRCClass)) #define LOQUI_IS_PROTOCOL_IRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOQUI_TYPE_PROTOCOL_IRC)) #define LOQUI_IS_PROTOCOL_IRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOQUI_TYPE_PROTOCOL_IRC)) #define LOQUI_PROTOCOL_IRC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOQUI_TYPE_PROTOCOL_IRC, LoquiProtocolIRCClass)) typedef struct _LoquiProtocolIRC LoquiProtocolIRC; typedef struct _LoquiProtocolIRCClass LoquiProtocolIRCClass; struct _LoquiProtocolIRC { LoquiProtocol parent; }; struct _LoquiProtocolIRCClass { LoquiProtocolClass parent_class; }; GType loqui_protocol_irc_get_type(void) G_GNUC_CONST; LoquiProtocol* loqui_protocol_irc_get(void); G_END_DECLS #endif /* __LOQUI_PROTOCOL_IRC_H__ */ loqui-0.5.5/libloqui/loqui_utils_irc.c0000664000175000017500000000277612121600532014773 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * libloqui -- Chat/IM client library for GLib * Copyright (C) 2004 Yoichi Imai * * This Library 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 the Gnome 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. */ #include "config.h" #include "loqui_utils_irc.h" void loqui_utils_irc_parse_nick(const gchar *nick, gboolean *is_channel_operator, gboolean *speakable, gchar **nick_ptr) { const gchar *tmp_nick; gboolean is_o = FALSE, is_v = FALSE; if(*nick == '@') { tmp_nick = nick+1; is_o = TRUE; } else if (*nick == '+') { tmp_nick = nick+1; is_v = TRUE; } else { tmp_nick = nick; } if (nick_ptr) *nick_ptr = (gchar *) tmp_nick; if (is_channel_operator) *is_channel_operator = is_o; if (speakable) *speakable = is_v; } loqui-0.5.5/libloqui/loqui-general-pref-default.h0000664000175000017500000000133112121600532016674 00000000000000#define LOQUI_GENERAL_PREF_DEFAULT_ACCOUNT_AUTO_RECONNECT TRUE #define LOQUI_GENERAL_PREF_DEFAULT_IGNORE_USE_NORMAL_IGNORE TRUE #define LOQUI_GENERAL_PREF_DEFAULT_IGNORE_USE_TRANSPARENT_IGNORE TRUE #define LOQUI_GENERAL_PREF_DEFAULT_MESSAGES_AWAY_MESSAGE "Gone." #define LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_EXEC_NOTIFICATION_BY_NOTICE FALSE #define LOQUI_GENERAL_PREF_DEFAULT_NOTIFICATION_USE_NOTIFICATION TRUE #define LOQUI_GENERAL_PREF_DEFAULT_PROXY_TREAT_AS_RECENT_LOG_UNTIL_FIRST_PONG_RECEIVED FALSE #define LOQUI_GENERAL_PREF_DEFAULT_PROXY_PARSE_PLUM_RECENT FALSE #define LOQUI_GENERAL_PREF_DEFAULT_PROXY_RECENT_LOG_REGEXP "^(?P