parent
163cfef3b8
commit
59b6ae468a
|
@ -0,0 +1,208 @@
|
|||
Gajim 0.11 (XX October 2006)
|
||||
|
||||
* Put your stuff here [each dev put their own please; next time we do this everytime we commit sth major and not in the end]
|
||||
|
||||
* We can now operate on more than one contact in one in time in roster (#1514)
|
||||
* Connection lost is now a non-intrusive popup
|
||||
* Try to get contact desired nick when we add him to roster aka User Nickname (JEP-0172)
|
||||
* Better design of User Profile window, with a progress bar
|
||||
* New Add User dialog, with possibility to register to transport directly from it
|
||||
* Completion for "Start Chat" input dialog
|
||||
* We can now have a different spellchecking language in each chat window. (#2383 and #746)
|
||||
* Support for Privacy Lists
|
||||
* Forbid to run multiple instances (but you can use differents profiles)
|
||||
* We can save avatar with right click on avatar in chat banner
|
||||
* Use differents colors for nickname colors of occupants in groupchats.
|
||||
* Ability to show only Join/Leave in groupchats instead of all status changes
|
||||
* New possibilities to insert nickname of an occupant in groupchats conversations : Tab in an empty line now cycle through nicks, maj+right click->insert nickname, maj+click on name in gc-roster, /names command to show all users presents
|
||||
|
||||
* Fixed bugs when removing or renaming an account with tabs open (#2369 and #2370)
|
||||
|
||||
* FIXME : Ad-Hoc for 0.11 ?
|
||||
* FIXME : does that work ? not tested : Metacontacts across accounts (#1596)
|
||||
* Gajim now requires Python 2.4 to run
|
||||
|
||||
Gajim 0.10.1 (06 June 2006)
|
||||
|
||||
* Freeze and lost contacts in roster (#1953)
|
||||
* Popup menus are correctly placed
|
||||
* High CPU usage on FreeBSD (#1963)
|
||||
* Nickname can contain '|' (#1913)
|
||||
* Update pl, cs, fr translations
|
||||
* Don't play sound, when no event is shown (#1970)
|
||||
* Set gajim icon for history manager
|
||||
* gajim.desktop is generated with translation (#834)
|
||||
* Preventing several TBs and annoyances (r6273, r6275, r6279, r6301,
|
||||
r6308, r6311, r6323, r6326, r6327, r6335, r6342, r6346, r6348)
|
||||
|
||||
Gajim 0.10 (01 May 2006)
|
||||
|
||||
* One Messages Window ability (default to it) with tab reordering ability
|
||||
* Non blocking socket connections. Gajim no longer remains unresponsive.
|
||||
* Gajim now uses less memory
|
||||
* File Transfer improvements (now should work out of the box for all)
|
||||
* Meta Contacts ability (relationships between contacts)
|
||||
* Support for legacy composing event (JEP-0022). Now 'Contact is composing a message' will always work
|
||||
* Gajim now defaults to theme that uses GTK colors
|
||||
* Roster Management Improvements (f.e. editablity of transport names, extended Drag and Drop Functionality)
|
||||
* History (chat logs) Manager (search globally, delete, etc)
|
||||
* Animated Emoticons ability
|
||||
* Support for GTalk email notifications for GMail
|
||||
* Room administrators can modify room ban list
|
||||
* Gajim no longer optionally depends on pydns or dnspython. Requires
|
||||
dnsutils (or whatever package provides the nslookup binary)
|
||||
* gajim-remote has extended functionality
|
||||
* Improved Preset Status Messages Experience
|
||||
* Detection for CRUX as user's operating system
|
||||
* New art included, appropriate sizes of icons used where available
|
||||
* Translations under Windows now work okay
|
||||
* Tons of fixes for bugs and annoyances: http://trac.gajim.org/query?status=closed&milestone=0.10
|
||||
|
||||
|
||||
Gajim 0.9.1 (27 December 2005)
|
||||
|
||||
* Fix bug when joining a Groupchat
|
||||
* Fix bug when starting Gajim without old logs
|
||||
|
||||
Gajim 0.9 (23 December 2005)
|
||||
|
||||
* Avatars and status messages in roster window
|
||||
* Improved service discovery window
|
||||
* Emoticons selector, Cooler Popup Windows (notification-daemon). Read more information in case you did not notice something different in http://trac.gajim.org/wiki/GajimDBus#notif_daemon
|
||||
* Caching of Avatars, Less UI freezing
|
||||
* New Account creation wizard
|
||||
* Better History Window with searching capabilities
|
||||
* Gajim now tries to reconnect to a jabber server if connection is lost
|
||||
* Queue for all events (File Transfer, private messages, etc)
|
||||
* A lot of new irc-like commands in group chat. Do for example /help invite
|
||||
* X11 Session Management support
|
||||
* Gajim registers and handles xmpp: and xmpp:// (GNOME/gconfd only)
|
||||
* Use pysqlite for conversation history. Automigration for old logs
|
||||
* New translations: Italian, Swedish, Slovak, Basque
|
||||
|
||||
Gajim 0.8.2 (06 Sep 2005)
|
||||
|
||||
* Fix so Gajim runs in pygtk2.8.x
|
||||
* Gajim can use pydns too (apart from dnspython) to do SRV lookup
|
||||
* Other minor fixes
|
||||
|
||||
Gajim 0.8.1 (02 Sep 2005)
|
||||
|
||||
* Systray icon for windows
|
||||
* Gajim is available in Dutch
|
||||
* Gajim can use gpg-agent
|
||||
|
||||
Gajim 0.8 (18 Aug 2005)
|
||||
|
||||
* Avatars (JEP-0153)
|
||||
* Chat state notifications aka. typing notification (JEP-0085)
|
||||
* Bookmark storage (JEP-0048)
|
||||
* File Transfer (JEP-0096)
|
||||
* Major changes to adhere to GNOME HIG
|
||||
* Complete vcard fields support
|
||||
* New and better user interface for chat and groupchat windows
|
||||
* SRV capabilities and custom hostname/port
|
||||
* Many improvements in group chat and IRC emulation (eg. nick autocompletation and cycling)
|
||||
* Gajim can now send and receive single messages
|
||||
* New iconsets and new dialog for customizing the user interface
|
||||
* Mouseover information for contacts in the roster window (aka tooltips)
|
||||
* DBus Capabilities. Now Gajim can be remote controlled
|
||||
* Authenticating HTTP Requests via XMPP (JEP-0070)
|
||||
* Now you can lookup a word in Wikipedia, dictionary or in search engine
|
||||
* XML Console
|
||||
* Gajim is now also available in norwegian and czech language
|
||||
|
||||
|
||||
Gajim 0.7.1 (5 Jun 2005)
|
||||
|
||||
* Transports icon as an option and error/mesage icon for transports
|
||||
* Gajim is more HIG compatible
|
||||
* Editing registration information on transports
|
||||
* Messages stanza without <body> element are not printed
|
||||
* SASL bugfix
|
||||
* GtkSpell capabilities
|
||||
* Support SSL (legacy) connection
|
||||
* Assign gpg key to specific contact
|
||||
* Contacts are sortable by status
|
||||
* Gajim remembers last lines when reopening chat
|
||||
* New translations available: German, Russian, Spanish, Bulgarian
|
||||
|
||||
Gajim 0.7 (23 May 2005)
|
||||
|
||||
* Ability for groupchat reserved rooms with full affiliations and roles support
|
||||
* Popup notification for incoming events
|
||||
* Protocol icons for contacts from transports
|
||||
* Gajim's user interface is now more HIG compliant
|
||||
* Gajim now detects and can send operating system information
|
||||
* Gajim now can inform the user about new version availability
|
||||
* Gajim jabber library migration from jabberpy to xmpppy
|
||||
* Rewrite the plugin system to remove threads and improve latency
|
||||
* Gajim now supports Nodes in Service Discovery
|
||||
* Greek and Polish translations
|
||||
|
||||
|
||||
Gajim 0.6.1 (03 April 2005)
|
||||
|
||||
* Rewrite of service discovery. It doesn't freeze Gajim anymore.
|
||||
* More HIG Compliant.
|
||||
* Gajim is faster (do not redraw preferences_window each time we open it, use
|
||||
of psyco if available)
|
||||
|
||||
Gajim 0.6 (23 March 2005)
|
||||
|
||||
* Gajim's user interface is now nicer.
|
||||
* Groupchat just got better.
|
||||
* URL, mailto and ascii formatin (* / _) detection
|
||||
* Better transports detection, group management, and many minor additions/bugfixes
|
||||
|
||||
Gajim 0.5.1 (27 February 2005)
|
||||
|
||||
* Minor bugfixes.
|
||||
|
||||
Gajim 0.5 (26 February 2005)
|
||||
|
||||
* Possibility to use tabbed chat window
|
||||
* Sound support under GNU/linux
|
||||
* Autoaway available under Microsoft Windows
|
||||
|
||||
Gajim 0.4.1 (23 January 2005)
|
||||
|
||||
* Bugfix in config file parser (fix config file parser to handle emoticons)
|
||||
* Bugfix with GPG signatures
|
||||
|
||||
Gajim 0.4 (21 January 2005)
|
||||
|
||||
* New option: regroup accounts
|
||||
* Emoticons support with a binder
|
||||
* GUI improvements
|
||||
* Bugfixes
|
||||
|
||||
Gajim 0.3 (18 December 2004)
|
||||
|
||||
* GUI improvements
|
||||
* group chat support with MUC (JEP 45)
|
||||
* New agent browser (JEP 30)
|
||||
* GnuPG support
|
||||
* Autoconnect at startup
|
||||
* New socket plugin
|
||||
|
||||
Gajim 0.2.1 (1 July 2004)
|
||||
|
||||
* bugfixes : when configfile is incomplete
|
||||
* icon in systray with popup menu (for linux)
|
||||
* "auto away even if not online" option
|
||||
* always show contacts with unread messages
|
||||
* new imageCellRenderer to show animated gifs
|
||||
* allow agents unregistration
|
||||
|
||||
Gajim 0.2 (8 June 2004)
|
||||
|
||||
* bugfix for french translation
|
||||
* multi-resource support
|
||||
* auto away support (for linux)
|
||||
* invisible support
|
||||
* priority support
|
||||
|
||||
Gajim 0.1 (21 May 2004)
|
||||
|
||||
* Initial release.
|
|
@ -0,0 +1,236 @@
|
|||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||
Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Basic 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, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
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. Run `./configure --help' for
|
||||
details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
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 support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
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' cannot figure out automatically,
|
||||
but needs to determine by the type of machine the package will run on.
|
||||
Usually, assuming the package is built to be run on the _same_
|
||||
architectures, `configure' can figure that out, but if it prints a
|
||||
message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share, you
|
||||
can create a site shell script called `config.site' that gives default
|
||||
values for variables like `CC', `cache_file', and `prefix'.
|
||||
`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.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script). Here is a another example:
|
||||
|
||||
/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
|
||||
configuration-related scripts to be executed by `/bin/bash'.
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--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.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
165
Makefile
165
Makefile
|
@ -1,165 +0,0 @@
|
|||
VERSION ?= 0.10
|
||||
|
||||
GAJIM_AP = 0 # do we build Autopackage?
|
||||
|
||||
MODULES = src src/common po
|
||||
PREFIX = /usr/local
|
||||
PYTHON = python
|
||||
DESTDIR =
|
||||
OPTFLAGS =
|
||||
export OPTFLAGS
|
||||
LIBDIR = /lib
|
||||
export LIBDIR
|
||||
MANDIR = $(DESTDIR)$(PREFIX)/share/man
|
||||
|
||||
FIND = find . \( -name '*.glade' -o -name '*.py' -o -name '*.xpm' -o -name '*.gif' -o -name '*.png' -o -name '*.wav' -o -name '*.xml' \)
|
||||
|
||||
FILES = `$(FIND)`
|
||||
DIRS = `$(FIND) -exec dirname {} \; | sort -u`
|
||||
FIND_PO = find ./po \( -name '*.mo' \)
|
||||
FILES_PO = `$(FIND_PO) | sed -e 's/^\.\/po/\./g'`
|
||||
DIRS_PO = `$(FIND_PO) -exec dirname {} \; | sort -u | sed -e 's/^\.\/po/\./g'`
|
||||
FIND_LIB = find . -name '*.so'
|
||||
FILES_LIB = `$(FIND_LIB)`
|
||||
|
||||
SCRIPTS = \
|
||||
scripts/gajim \
|
||||
scripts/gajim-remote \
|
||||
|
||||
all: translation trayicon gtkspell idle gajim.desktop
|
||||
|
||||
translation:
|
||||
${MAKE} -C po all
|
||||
|
||||
trayicon:
|
||||
${MAKE} -C src trayicon.so;
|
||||
|
||||
gtkspell:
|
||||
${MAKE} -C src gtkspell.so;
|
||||
|
||||
idle:
|
||||
${MAKE} -C src/common all;
|
||||
|
||||
distclean: clean
|
||||
-rm ./tags
|
||||
|
||||
clean:
|
||||
find . -name '*.pyc' -exec rm {} \;
|
||||
find . -name '*.pyo' -exec rm {} \;
|
||||
${MAKE} -C po clean
|
||||
rm -f gajim.desktop
|
||||
$(foreach sdir, $(MODULES), ${MAKE} -C $(sdir) clean;)
|
||||
dist:
|
||||
rm -rf gajim-$(VERSION)
|
||||
mkdir gajim-$(VERSION)
|
||||
cp -r data src po gajim-$(VERSION)/
|
||||
cp AUTHORS gajim.1 gajim-remote.1 gajim.desktop.in COPYING THANKS Makefile Changelog README launch.sh gajim-$(VERSION)
|
||||
mkdir gajim-$(VERSION)/scripts
|
||||
for s in $(SCRIPTS) ; do \
|
||||
cp $$s gajim-$(VERSION)/scripts/; \
|
||||
done
|
||||
find gajim-$(VERSION) -name '.svn' -type d | xargs rm -rf
|
||||
find gajim-$(VERSION) -name '*.pyc' -exec rm {} \;
|
||||
find gajim-$(VERSION) -name '*.pyo' -exec rm {} \;
|
||||
find gajim-$(VERSION) -name '.*' -exec rm {} \;
|
||||
@echo tarring gajim-$(VERSION) ...
|
||||
@tar czf gajim-$(VERSION).tar.gz gajim-$(VERSION)/
|
||||
@tar cjf gajim-$(VERSION).tar.bz2 gajim-$(VERSION)/
|
||||
rm -rf gajim-$(VERSION)
|
||||
|
||||
install:
|
||||
# Remove the old po folder if it exists
|
||||
if [ -d $(DESTDIR)$(PREFIX)/share/gajim/po ] ; then \
|
||||
rm -rf $(DESTDIR)$(PREFIX)/share/gajim/po; \
|
||||
fi
|
||||
for d in $(DIRS) ; do \
|
||||
if [ ! -d $(DESTDIR)$(PREFIX)/share/gajim/$$d ] ; then \
|
||||
mkdir -p "$(DESTDIR)$(PREFIX)/share/gajim/$$d"; \
|
||||
fi; \
|
||||
done
|
||||
for f in $(FILES) ; do \
|
||||
DST=`dirname "$$f"`; \
|
||||
cp "$$f" "$(DESTDIR)$(PREFIX)/share/gajim/$$DST/"; \
|
||||
done
|
||||
rm "$(DESTDIR)$(PREFIX)/share/gajim/src/systraywin32.py"
|
||||
for d in $(DIRS_PO) ; do \
|
||||
if [ ! -d $(DESTDIR)$(PREFIX)/share/locale/$$d ] ; then \
|
||||
mkdir -p "$(DESTDIR)$(PREFIX)/share/locale/$$d"; \
|
||||
fi; \
|
||||
done
|
||||
if [[ -n $$(find po -name *.mo) ]]; then \
|
||||
${MAKE} -C po install PREFIX=$(PREFIX) ; \
|
||||
fi
|
||||
cp COPYING "$(DESTDIR)$(PREFIX)/share/gajim/";
|
||||
cp THANKS "$(DESTDIR)$(PREFIX)/share/gajim/";
|
||||
cp AUTHORS "$(DESTDIR)$(PREFIX)/share/gajim/";
|
||||
mkdir -p "$(DESTDIR)$(PREFIX)/share/pixmaps";
|
||||
cp data/pixmaps/gajim.png "$(DESTDIR)$(PREFIX)/share/pixmaps/";
|
||||
cp data/pixmaps/gajim_about.png "$(DESTDIR)$(PREFIX)/share/pixmaps/";
|
||||
mkdir -p "$(DESTDIR)$(PREFIX)/share/applications";
|
||||
if [ -f gajim.desktop ]; then \
|
||||
cp gajim.desktop "$(DESTDIR)$(PREFIX)/share/applications/"; \
|
||||
fi;
|
||||
mkdir -p "$(MANDIR)/man1";
|
||||
cp gajim.1 "$(MANDIR)/man1";
|
||||
cp gajim-remote.1 "$(MANDIR)/man1";
|
||||
mkdir -p "$(DESTDIR)$(PREFIX)$(LIBDIR)/gajim";
|
||||
for f in $(FILES_LIB) ; do \
|
||||
cp "$$f" "$(DESTDIR)$(PREFIX)$(LIBDIR)/gajim/"; \
|
||||
done
|
||||
mkdir -p "$(DESTDIR)$(PREFIX)/bin";
|
||||
for s in $(SCRIPTS) ; do \
|
||||
BASE=`basename "$$s"`; \
|
||||
if [ $(GAJIM_AP) -ne 0 ] ; then \
|
||||
F=`cat "$$s" | sed -e 's!LIB!$(LIBDIR)!g' -e 's!PYTHON_EXEC!$(PYTHON)!g'`; \
|
||||
else \
|
||||
F=`cat "$$s" | sed -e 's!PREFIX!$(PREFIX)!g' -e 's!LIB!$(LIBDIR)!g' -e 's!PYTHON_EXEC!$(PYTHON)!g'`; \
|
||||
fi; \
|
||||
echo "$$F" > "$(DESTDIR)$(PREFIX)/bin/$$BASE"; \
|
||||
chmod +x "$(DESTDIR)$(PREFIX)/bin/$$BASE"; \
|
||||
done
|
||||
|
||||
gajim.desktop: gajim.desktop.in
|
||||
intltool-merge -d po gajim.desktop.in gajim.desktop
|
||||
|
||||
#
|
||||
# show make params we accept
|
||||
#
|
||||
help:
|
||||
@echo Usage:
|
||||
@echo make - builds all modules
|
||||
@echo make clean - delete built modules and object files
|
||||
@echo make distclean - clean plus deletion of all other non-repository files
|
||||
@echo make install - install binaries into the official directories
|
||||
@echo make uninstall - uninstall binaries from the official directories
|
||||
@echo make help - prints this help
|
||||
@echo
|
||||
@echo make trayicon - makes only trayicon module
|
||||
@echo make idle - makes only idle detection module
|
||||
@echo make translation - makes only translation \(mo files\)
|
||||
@echo make gtkspell - makes only gtkspell detection module
|
||||
@echo make tags - makes 'tags' file for use with ctags
|
||||
@echo
|
||||
|
||||
#
|
||||
# uninstall application from official directories
|
||||
#
|
||||
uninstall:
|
||||
rm -rf "$(DESTDIR)$(PREFIX)/share/gajim" # the main files are here
|
||||
rm -rf "$(DESTDIR)$(PREFIX)/lib/gajim" # the .so files are here
|
||||
rm -f "$(DESTDIR)$(PREFIX)/bin/gajim" # the bash script
|
||||
rm -f "$(DESTDIR)$(PREFIX)/bin/gajim-remote" # remote-control script
|
||||
rm -f "$(MANDIR)/man1/gajim.1" # the man page
|
||||
rm -f "$(MANDIR)/man1/gajim-remote.1" # the man page
|
||||
rm -f "$(DESTDIR)$(PREFIX)/share/pixmaps/gajim.png" # the icon
|
||||
rm -f "$(DESTDIR)$(PREFIX)/share/pixmaps/gajim_about.png" # the icon
|
||||
rm -f "$(DESTDIR)$(PREFIX)/share/applications/gajim.desktop" #the desktop
|
||||
find "$(DESTDIR)$(PREFIX)/share/locale" -name 'gajim.mo' -exec rm {} \; #the .mo files
|
||||
@echo done uninstalling
|
||||
|
||||
tags:
|
||||
-rm tags
|
||||
exuberant-ctags -R
|
||||
|
||||
.PHONY: all translation trayicon gtkspell idle clean dist distclean install help\
|
||||
uninstall tags
|
|
@ -0,0 +1,19 @@
|
|||
SUBDIRS = po src data
|
||||
bin_SCRIPTS = scripts/gajim
|
||||
|
||||
EXTRA_DIST = \
|
||||
autogen.sh \
|
||||
COPYING \
|
||||
ChangeLog \
|
||||
README \
|
||||
THANKS \
|
||||
intltool-extract.in \
|
||||
intltool-merge.in \
|
||||
intltool-update.in \
|
||||
scripts/gajim.in
|
||||
|
||||
DISTCLEANFILES = \
|
||||
intltool-extract \
|
||||
intltool-merge \
|
||||
intltool-update \
|
||||
scripts/gajim
|
|
@ -0,0 +1,730 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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@
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure $(top_srcdir)/scripts/gajim.in AUTHORS \
|
||||
COPYING ChangeLog INSTALL NEWS THANKS compile config.guess \
|
||||
config.sub depcomp install-sh ltmain.sh missing mkinstalldirs
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 configure.status.lineno
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES = scripts/gajim
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
SCRIPTS = $(bin_SCRIPTS)
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
SUBDIRS = po src data
|
||||
bin_SCRIPTS = scripts/gajim
|
||||
EXTRA_DIST = \
|
||||
autogen.sh \
|
||||
COPYING \
|
||||
ChangeLog \
|
||||
README \
|
||||
THANKS \
|
||||
intltool-extract.in \
|
||||
intltool-merge.in \
|
||||
intltool-update.in \
|
||||
scripts/gajim.in
|
||||
|
||||
DISTCLEANFILES = \
|
||||
intltool-extract \
|
||||
intltool-merge \
|
||||
intltool-update \
|
||||
scripts/gajim
|
||||
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(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) --gnu '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu 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)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) 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)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
scripts/gajim: $(top_builddir)/config.status $(top_srcdir)/scripts/gajim.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f $$d$$p; then \
|
||||
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binSCRIPTS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
|
||||
# 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):
|
||||
@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; \
|
||||
(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"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@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; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
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 || \
|
||||
tags="$$tags $$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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
$(mkdir_p) $(distdir)/data $(distdir)/m4 $(distdir)/po $(distdir)/scripts
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -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 $(SHELL) $(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 -9 -c >$(distdir).tar.bz2
|
||||
$(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) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(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)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(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
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { 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 $(SCRIPTS) config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(bindir)"; 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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
|
||||
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
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am: install-binSCRIPTS
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
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-binSCRIPTS uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||
check-am clean clean-generic clean-libtool clean-recursive \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-recursive distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-binSCRIPTS install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic maintainer-clean-recursive \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool \
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-binSCRIPTS uninstall-info-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:
|
2
README
2
README
|
@ -25,7 +25,7 @@ Optionally:
|
|||
dnsutils (or whatever package provides the nslookup binary) for SRV support; if you don't know what that is, you don't need it
|
||||
gtkspell and aspell-LANG where lang is your locale eg. en, fr etc
|
||||
GnomePythonExtras 2.10 or above so you can avoid compiling trayicon and gtkspell
|
||||
notification-daemon (and D-Bus) to get cooler popups
|
||||
notification-daemon or notify-python (and D-Bus) to get cooler popups
|
||||
D-Bus to have gajim-remote working
|
||||
|
||||
NOTE TO PACKAGERS:
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
aclocal -I ./m4 --force
|
||||
autoconf
|
||||
autoheader
|
||||
automake --add-missing
|
|
@ -0,0 +1,142 @@
|
|||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2005-05-14.22
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand `-c -o'.
|
||||
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file `INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
eat=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||
# So we strip `-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no `-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# `.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# 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-end: "$"
|
||||
# End:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,85 @@
|
|||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* always defined to indicate that i18n is enabled */
|
||||
#undef ENABLE_NLS
|
||||
|
||||
/* Gettext package */
|
||||
#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 <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define if the GNU gettext() function is already present or preinstalled. */
|
||||
#undef HAVE_GETTEXT
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
||||
#undef HAVE_LC_MESSAGES
|
||||
|
||||
/* Define to 1 if you have the `X11' library (-lX11). */
|
||||
#undef HAVE_LIBX11
|
||||
|
||||
/* Define to 1 if you have the `Xext' library (-lXext). */
|
||||
#undef HAVE_LIBXEXT
|
||||
|
||||
/* Define to 1 if you have the `Xss' library (-lXss). */
|
||||
#undef HAVE_LIBXSS
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#undef HAVE_LOCALE_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* 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 version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,78 @@
|
|||
AC_INIT([Gajim],[0.11.0],[http://trac.gajim.org/newticket],[gajim])
|
||||
AM_INIT_AUTOMAKE([1.9])
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
IT_PROG_INTLTOOL([0.35.0])
|
||||
|
||||
|
||||
AM_DISABLE_STATIC
|
||||
AC_ENABLE_SHARED(yes)
|
||||
AC_ENABLE_STATIC(no)
|
||||
|
||||
AC_ISC_POSIX
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
GETTEXT_PACKAGE=gajim
|
||||
AC_SUBST([GETTEXT_PACKAGE])
|
||||
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"], [Gettext package])
|
||||
ALL_LINGUAS="fr pt el pl es ru bg de nb cs nl pt_BR sv it eu sk no zh_CN br eo"
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
|
||||
AC_PATH_X
|
||||
|
||||
PKG_CHECK_MODULES([DBUS], [dbus-1 >= 0.61 dbus-glib-1 >= 0.61])
|
||||
AC_SUBST(DBUS_CFLAGS)
|
||||
AC_SUBST(DBUS_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES([PYGTK], [gtk+-2.0 >= 2.6.0 pygtk-2.0 >= 2.6.0])
|
||||
AC_SUBST(PYGTK_CFLAGS)
|
||||
AC_SUBST(PYGTK_LIBS)
|
||||
PYGTK_DEFS=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
|
||||
AC_SUBST(PYGTK_DEFS)
|
||||
|
||||
|
||||
PKG_CHECK_MODULES([GTKSPELL], [gtkspell-2.0])
|
||||
AC_SUBST(GTKSPELL_CFLAGS)
|
||||
AC_SUBST(GTKSPELL_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES([XSCRNSAVER], xscrnsaver)
|
||||
dnl AC_SUBST(XSCRNSAVER_LIBS)
|
||||
|
||||
# Checks for libraries.
|
||||
# FIXME: Replace `main' with a function in `-lX11':
|
||||
AC_CHECK_LIB([X11], [main])
|
||||
# FIXME: Replace `main' with a function in `-lXext':
|
||||
AC_CHECK_LIB([Xext], [main])
|
||||
# FIXME: Replace `main' with a function in `-lXss':
|
||||
AC_CHECK_LIB([Xss], [main])
|
||||
|
||||
|
||||
AM_PATH_PYTHON([2.4])
|
||||
if test "x$PYTHON" = "x:"; then
|
||||
AC_MSG_ERROR([Python not found])
|
||||
fi
|
||||
|
||||
AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])
|
||||
|
||||
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
data/Makefile
|
||||
data/glade/Makefile
|
||||
data/emoticons/Makefile
|
||||
data/pixmaps/Makefile
|
||||
data/iconsets/Makefile
|
||||
data/gajim.desktop.in
|
||||
src/Makefile
|
||||
src/common/Makefile
|
||||
scripts/gajim
|
||||
po/Makefile.in
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
SUBDIRS = glade emoticons pixmaps iconsets
|
||||
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_in_files = gajim.desktop.in.in
|
||||
desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop)
|
||||
|
||||
soundsdir = $(pkgdatadir)/data/sounds
|
||||
sounds_DATA = sounds/*.wav
|
||||
|
||||
otherdir = $(pkgdatadir)/data/others
|
||||
other_DATA = other/servers.xml
|
||||
|
||||
man_MANS = gajim.1 gajim-remote.1
|
||||
|
||||
@INTLTOOL_DESKTOP_RULE@
|
||||
|
||||
EXTRA_DIST = $(desktop_in_files) \
|
||||
$(sounds_DATA) \
|
||||
$(other_DATA) \
|
||||
$(man_MANS)
|
||||
|
||||
DISTCLEANFILES = $(desktop_DATA)
|
||||
|
|
@ -0,0 +1,682 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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 = data
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/gajim.desktop.in.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 = gajim.desktop.in
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
man1dir = $(mandir)/man1
|
||||
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" \
|
||||
"$(DESTDIR)$(otherdir)" "$(DESTDIR)$(soundsdir)"
|
||||
NROFF = nroff
|
||||
MANS = $(man_MANS)
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
desktopDATA_INSTALL = $(INSTALL_DATA)
|
||||
otherDATA_INSTALL = $(INSTALL_DATA)
|
||||
soundsDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(desktop_DATA) $(other_DATA) $(sounds_DATA)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
SUBDIRS = glade emoticons pixmaps iconsets
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_in_files = gajim.desktop.in.in
|
||||
desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop)
|
||||
soundsdir = $(pkgdatadir)/data/sounds
|
||||
sounds_DATA = sounds/*.wav
|
||||
otherdir = $(pkgdatadir)/data/others
|
||||
other_DATA = other/servers.xml
|
||||
man_MANS = gajim.1 gajim-remote.1
|
||||
EXTRA_DIST = $(desktop_in_files) \
|
||||
$(sounds_DATA) \
|
||||
$(other_DATA) \
|
||||
$(man_MANS)
|
||||
|
||||
DISTCLEANFILES = $(desktop_DATA)
|
||||
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 \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu data/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
|
||||
gajim.desktop.in: $(top_builddir)/config.status $(srcdir)/gajim.desktop.in.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-man1: $(man1_MANS) $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
uninstall-man1:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
install-desktopDATA: $(desktop_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(desktopdir)" || $(mkdir_p) "$(DESTDIR)$(desktopdir)"
|
||||
@list='$(desktop_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \
|
||||
$(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-desktopDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(desktop_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(desktopdir)/$$f"; \
|
||||
done
|
||||
install-otherDATA: $(other_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(otherdir)" || $(mkdir_p) "$(DESTDIR)$(otherdir)"
|
||||
@list='$(other_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(otherDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(otherdir)/$$f'"; \
|
||||
$(otherDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(otherdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-otherDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(other_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(otherdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(otherdir)/$$f"; \
|
||||
done
|
||||
install-soundsDATA: $(sounds_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(soundsdir)" || $(mkdir_p) "$(DESTDIR)$(soundsdir)"
|
||||
@list='$(sounds_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(soundsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(soundsdir)/$$f'"; \
|
||||
$(soundsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(soundsdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-soundsDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(sounds_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(soundsdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(soundsdir)/$$f"; \
|
||||
done
|
||||
|
||||
# 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):
|
||||
@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; \
|
||||
(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"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@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; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
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 || \
|
||||
tags="$$tags $$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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(mkdir_p) $(distdir)/other $(distdir)/sounds
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(MANS) $(DATA)
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(otherdir)" "$(DESTDIR)$(soundsdir)"; 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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
|
||||
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-libtool \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-desktopDATA install-man install-otherDATA \
|
||||
install-soundsDATA
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man: install-man1
|
||||
|
||||
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: uninstall-desktopDATA uninstall-info-am uninstall-man \
|
||||
uninstall-otherDATA uninstall-soundsDATA
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
uninstall-man: uninstall-man1
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
|
||||
clean clean-generic clean-libtool clean-recursive ctags \
|
||||
ctags-recursive distclean distclean-generic distclean-libtool \
|
||||
distclean-recursive distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-desktopDATA install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-man1 install-otherDATA install-soundsDATA \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-desktopDATA uninstall-info-am uninstall-man \
|
||||
uninstall-man1 uninstall-otherDATA uninstall-soundsDATA
|
||||
|
||||
|
||||
@INTLTOOL_DESKTOP_RULE@
|
||||
# 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:
|
|
@ -0,0 +1,36 @@
|
|||
emoticonsdir = $(pkgdatadir)/data/emoticons
|
||||
|
||||
emoticons_DATA =
|
||||
|
||||
EMOTICONS_DIRS = **
|
||||
|
||||
EMOTICONS_FILES = **/{*.png,*.gif,emoticons.py}
|
||||
|
||||
# copy files recursively
|
||||
install-data-local:
|
||||
@for d in $(EMOTICONS_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkinstalldirs) $(pkgdatadir)/data/emoticons/$$d"; \
|
||||
$(mkinstalldirs) $(pkgdatadir)/data/emoticons/$$d || exit 1; \
|
||||
fi; \
|
||||
done; \
|
||||
for f in $(EMOTICONS_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " $(INSTALL_DATA) $$f $(pkgdatadir)/data/emoticons/$$f"; \
|
||||
$(INSTALL_DATA) $$f $(pkgdatadir)/data/emoticons/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
||||
|
||||
dist-hook:
|
||||
@for d in $(EMOTICONS_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkdir_p) $(distdir)/$$d"; \
|
||||
$(mkdir_p) $(distdir)/$$d || exit 1; \
|
||||
fi; \
|
||||
done; \
|
||||
for f in $(EMOTICONS_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " cp -pR $(srcdir)/$$f $(distdir)/$$f"; \
|
||||
cp -pR $(srcdir)/$$f $(distdir)/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
|
@ -0,0 +1,448 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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 = data/emoticons
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(emoticonsdir)"
|
||||
emoticonsDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(emoticons_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
emoticonsdir = $(pkgdatadir)/data/emoticons
|
||||
emoticons_DATA =
|
||||
EMOTICONS_DIRS = **
|
||||
EMOTICONS_FILES = **/{*.png,*.gif,emoticons.py}
|
||||
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 \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/emoticons/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu data/emoticons/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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-emoticonsDATA: $(emoticons_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(emoticonsdir)" || $(mkdir_p) "$(DESTDIR)$(emoticonsdir)"
|
||||
@list='$(emoticons_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(emoticonsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(emoticonsdir)/$$f'"; \
|
||||
$(emoticonsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(emoticonsdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-emoticonsDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(emoticons_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(emoticonsdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(emoticonsdir)/$$f"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(emoticonsdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-libtool
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-data-local install-emoticonsDATA
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
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: uninstall-emoticonsDATA uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
dist-hook distclean distclean-generic distclean-libtool \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-data-local \
|
||||
install-emoticonsDATA install-exec install-exec-am \
|
||||
install-info install-info-am install-man 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 \
|
||||
uninstall-emoticonsDATA uninstall-info-am
|
||||
|
||||
|
||||
# copy files recursively
|
||||
install-data-local:
|
||||
@for d in $(EMOTICONS_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkinstalldirs) $(pkgdatadir)/data/emoticons/$$d"; \
|
||||
$(mkinstalldirs) $(pkgdatadir)/data/emoticons/$$d || exit 1; \
|
||||
fi; \
|
||||
done; \
|
||||
for f in $(EMOTICONS_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " $(INSTALL_DATA) $$f $(pkgdatadir)/data/emoticons/$$f"; \
|
||||
$(INSTALL_DATA) $$f $(pkgdatadir)/data/emoticons/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
||||
|
||||
dist-hook:
|
||||
@for d in $(EMOTICONS_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkdir_p) $(distdir)/$$d"; \
|
||||
$(mkdir_p) $(distdir)/$$d || exit 1; \
|
||||
fi; \
|
||||
done; \
|
||||
for f in $(EMOTICONS_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " cp -pR $(srcdir)/$$f $(distdir)/$$f"; \
|
||||
cp -pR $(srcdir)/$$f $(distdir)/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
||||
# 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:
|
|
@ -0,0 +1,14 @@
|
|||
.\" 20050818
|
||||
.TH "Gajim-remote" "1" "August 18, 2005" "Gajim dev team" ""
|
||||
.SH "NAME"
|
||||
Gajim-remote
|
||||
.SH "SYNOPSIS"
|
||||
.B gajim-remote [help] [toggle_roster_appearance] [show_next_unread] [list_contacts] [list_accounts] [change_status] [open_chat] [send_message] [send_file] [contact_info] [account_info] [send_file] [prefs_list] [prefs_put] [prefs_del] [prefs_store] [remove_contact] [add_contact] [get_status] [get_status_message] [get_unread_msgs_number] [start_chat]
|
||||
.SH "DESCRIPTION"
|
||||
.B Gajim-remote
|
||||
is a script to control Gajim by D-Bus
|
||||
.PP
|
||||
.SH "FEEDBACK"
|
||||
You can report bugs or feature requests in http://trac.gajim.org or in the mailing list: https://lists.gajim.org/cgi\-bin/listinfo/gajim\-devel. You can also find us in our room gajim@conference.jabber.no
|
||||
.SH "AUTHORS"
|
||||
Written by Yann Le Boulanger <asterix@lagaule.org>, Nikos Kouremenos <kourem@gmail.com> and Dimitur Kirov <dkirov@gmail.com>.
|
|
@ -0,0 +1,25 @@
|
|||
.\" 20050901
|
||||
.TH "Gajim" "1" "September 01, 2005" "Gajim dev team" ""
|
||||
.SH "NAME"
|
||||
Gajim \- a jabber client
|
||||
.SH "SYNOPSIS"
|
||||
.B gajim [\-v] [\-p] [\-h]
|
||||
.SH "DESCRIPTION"
|
||||
.B Gajim
|
||||
is a jabber client written in PyGTK and released under the GNU GPL. For more information on jabber, see
|
||||
http://www.jabber.org and on Gajim see http://www.gajim.org
|
||||
.PP
|
||||
.SH "OPTIONS"
|
||||
.TP
|
||||
\fB\-p\fR, \fB\-\-profile\fR name
|
||||
Run Gajim using ~/.gajim/config.name
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
Print xml stanzas and other debug information.
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
Print this help.
|
||||
.SH "FEEDBACK"
|
||||
You can report bugs or feature requests in http://trac.gajim.org or in the mailing list: https://lists.gajim.org/cgi\-bin/listinfo/gajim\-devel. You can also find us in our room gajim@conference.gajim.org
|
||||
.SH "AUTHORS"
|
||||
Written by Yann Le Boulanger <asterix@lagaule.org>, Nikos Kouremenos <kourem@gmail.com> and Dimitur Kirov <dkirov@gmail.com>.
|
|
@ -0,0 +1,13 @@
|
|||
[Desktop Entry]
|
||||
Categories=Network;InstantMessaging;Application;GTK;GNOME;
|
||||
_Name=Gajim Instant Messenger
|
||||
_GenericName=Jabber IM Client
|
||||
_Comment=A GTK+ Jabber client
|
||||
Version=@VERSION@
|
||||
Encoding=UTF-8
|
||||
Exec=gajim
|
||||
Icon=gajim.png
|
||||
StartupNotify=true
|
||||
StartupWMClass=Gajim
|
||||
Terminal=false
|
||||
Type=Application
|
|
@ -0,0 +1,5 @@
|
|||
gladedir = $(pkgdatadir)/data/glade
|
||||
glade_DATA = *.glade
|
||||
EXTRA_DIST = $(glade_DATA)
|
||||
|
||||
DISTCLEANFILES = *.h
|
|
@ -0,0 +1,416 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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 = data/glade
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(gladedir)"
|
||||
gladeDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(glade_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
gladedir = $(pkgdatadir)/data/glade
|
||||
glade_DATA = *.glade
|
||||
EXTRA_DIST = $(glade_DATA)
|
||||
DISTCLEANFILES = *.h
|
||||
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 \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/glade/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu data/glade/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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-gladeDATA: $(glade_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(gladedir)" || $(mkdir_p) "$(DESTDIR)$(gladedir)"
|
||||
@list='$(glade_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(gladeDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gladedir)/$$f'"; \
|
||||
$(gladeDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gladedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-gladeDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(glade_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(gladedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(gladedir)/$$f"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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 $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(gladedir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||
|
||||
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-libtool
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-gladeDATA
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
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: uninstall-gladeDATA uninstall-info-am
|
||||
|
||||
.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-exec install-exec-am \
|
||||
install-gladeDATA install-info install-info-am install-man \
|
||||
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 uninstall-gladeDATA uninstall-info-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:
|
|
@ -2,6 +2,7 @@
|
|||
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
||||
|
||||
<glade-interface>
|
||||
|
||||
<widget class="GtkWindow" id="account_modification_window">
|
||||
<property name="border_width">12</property>
|
||||
<property name="title" translatable="yes">Account Modification</property>
|
||||
|
@ -16,6 +17,7 @@
|
|||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="destroy" handler="on_account_modification_window_destroy" last_modification_time="Mon, 07 Mar 2005 16:05:10 GMT"/>
|
||||
|
||||
<child>
|
||||
|
@ -331,6 +333,29 @@
|
|||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="adjust_priority_with_status_checkbutton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">_Adjust with status</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="on_adjust_priority_with_status_checkbutton_toggled" last_modification_time="Tue, 03 Oct 2006 00:04:37 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="priority_spinbutton">
|
||||
<property name="visible">True</property>
|
||||
|
@ -345,11 +370,11 @@
|
|||
<property name="adjustment">5 0 127 1 5 5</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">shrink|fill</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
@ -1197,4 +1222,5 @@
|
|||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
</glade-interface>
|
||||
|
|
|
@ -180,7 +180,7 @@
|
|||
<widget class="GtkTable" id="subscription_table">
|
||||
<property name="border_width">6</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">4</property>
|
||||
<property name="n_rows">3</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="row_spacing">6</property>
|
||||
|
@ -331,6 +331,13 @@
|
|||
<property name="x_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="auto_authorize_checkbutton">
|
||||
|
@ -344,20 +351,10 @@
|
|||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
|
|
|
@ -25,21 +25,27 @@
|
|||
<widget class="GtkVBox" id="vbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
<property name="spacing">6</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="Server-based_privacy_lists_label">
|
||||
<widget class="GtkHBox" id="hbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Server-based Privacy Lists</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">12</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Privacy Lists:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">5</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
|
@ -54,7 +60,6 @@
|
|||
|
||||
<child>
|
||||
<widget class="GtkComboBox" id="list_of_privacy_lists_combobox">
|
||||
<property name="border_width">4</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="items" translatable="yes"></property>
|
||||
<property name="add_tearoffs">False</property>
|
||||
|
@ -66,11 +71,24 @@
|
|||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="buttons_hbox">
|
||||
<widget class="GtkVBox" id="vbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">6</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
|
@ -84,11 +102,6 @@
|
|||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_delete_privacy_list_button_clicked" last_modification_time="Sun, 02 Jul 2006 16:47:54 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
|
@ -96,54 +109,26 @@
|
|||
<property name="border_width">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-open</property>
|
||||
<property name="label">gtk-edit</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_open_privacy_list_button_clicked" last_modification_time="Sun, 02 Jul 2006 16:47:34 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHSeparator" id="hseparator1">
|
||||
<widget class="GtkButton" id="new_privacy_list_button">
|
||||
<property name="border_width">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-new</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_new_privacy_list_button_clicked" last_modification_time="Sun, 02 Jul 2006 16:47:16 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">5</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="create_privacy_list_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Create your own Privacy Lists</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">5</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
|
@ -164,46 +149,24 @@
|
|||
<property name="invisible_char">●</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">4</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="new_privacy_list_button">
|
||||
<property name="border_width">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-new</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_new_privacy_list_button_clicked" last_modification_time="Sun, 02 Jul 2006 16:47:16 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHSeparator" id="hseparator2">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">5</property>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox2">
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
|
@ -217,11 +180,6 @@
|
|||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_privacy_lists_refresh_button_clicked" last_modification_time="Sun, 02 Jul 2006 16:46:48 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
|
@ -235,11 +193,6 @@
|
|||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_close_button_clicked" last_modification_time="Sun, 02 Jul 2006 20:53:03 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="default_width">150</property>
|
||||
<property name="default_width">200</property>
|
||||
<property name="default_height">400</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
|
@ -56,7 +56,7 @@
|
|||
<property name="use_underline">True</property>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1444">
|
||||
<widget class="GtkImage" id="image1605">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-jump-to</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -76,7 +76,7 @@
|
|||
<property name="use_underline">True</property>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1445">
|
||||
<widget class="GtkImage" id="image1606">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-connect</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -102,7 +102,7 @@
|
|||
<property name="use_underline">True</property>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1446">
|
||||
<widget class="GtkImage" id="image1607">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-add</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<property name="use_underline">True</property>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1447">
|
||||
<widget class="GtkImage" id="image1608">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-find</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -143,17 +143,6 @@
|
|||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckMenuItem" id="show_offline_contacts_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Show _Offline Contacts</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">False</property>
|
||||
<signal name="activate" handler="on_show_offline_contacts_menuitem_activate" last_modification_time="Tue, 01 Mar 2005 23:29:52 GMT"/>
|
||||
<accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkSeparatorMenuItem" id="separator1">
|
||||
<property name="visible">True</property>
|
||||
|
@ -169,7 +158,7 @@
|
|||
<accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1448">
|
||||
<widget class="GtkImage" id="image1609">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-quit</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -205,7 +194,7 @@
|
|||
<accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1449">
|
||||
<widget class="GtkImage" id="image1610">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-network</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -218,36 +207,14 @@
|
|||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="file_transfers_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">File _Transfers</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_file_transfers_menuitem_activate" last_modification_time="Wed, 03 Aug 2005 15:44:28 GMT"/>
|
||||
<accelerator key="T" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1450">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-file</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="profile_avatar_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Profile, Avatar</property>
|
||||
<property name="label" translatable="yes">Profile, A_vatar</property>
|
||||
<property name="use_underline">True</property>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1305">
|
||||
<widget class="GtkImage" id="image1611">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-properties</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -275,7 +242,7 @@
|
|||
<accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1451">
|
||||
<widget class="GtkImage" id="image1612">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-preferences</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
@ -292,6 +259,69 @@
|
|||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="view_menu">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_View</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_view_menu_activate" last_modification_time="Fri, 29 Sep 2006 14:56:42 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenu" id="view_menu_menu">
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckMenuItem" id="show_offline_contacts_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Show _Offline Contacts</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">False</property>
|
||||
<signal name="activate" handler="on_show_offline_contacts_menuitem_activate" last_modification_time="Tue, 01 Mar 2005 23:29:52 GMT"/>
|
||||
<accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckMenuItem" id="show_transports_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Show Trans_ports</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="active">False</property>
|
||||
<signal name="activate" handler="on_show_transports_menuitem_activate" last_modification_time="Fri, 29 Sep 2006 15:35:28 GMT"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkSeparatorMenuItem" id="separator3">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="file_transfers_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">File _Transfers</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_file_transfers_menuitem_activate" last_modification_time="Wed, 03 Aug 2005 15:44:28 GMT"/>
|
||||
<accelerator key="T" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1613">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-file</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="help_menu">
|
||||
<property name="visible">True</property>
|
||||
|
@ -310,7 +340,7 @@
|
|||
<signal name="activate" handler="on_contents_menuitem_activate" last_modification_time="Thu, 06 Oct 2005 23:29:10 GMT"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1452">
|
||||
<widget class="GtkImage" id="image1614">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-help</property>
|
||||
<property name="icon_size">1</property>
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
||||
|
||||
<glade-interface>
|
||||
|
||||
<widget class="GtkMenu" id="subscription_request_popup_menu">
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="start_chat_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Start Chat</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_start_chat_activate" last_modification_time="Sun, 01 Oct 2006 16:49:43 GMT"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-jump-to</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="information_menuitem">
|
||||
<property name="visible">True</property>
|
||||
<property name="label">gtk-info</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="activate" handler="on_contact_info_activate" last_modification_time="Sun, 01 Oct 2006 16:49:43 GMT"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
</glade-interface>
|
|
@ -2,6 +2,7 @@
|
|||
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
||||
|
||||
<glade-interface>
|
||||
|
||||
<widget class="GtkWindow" id="subscription_request_window">
|
||||
<property name="border_width">12</property>
|
||||
<property name="title" translatable="yes">Subscription Request</property>
|
||||
|
@ -16,6 +17,7 @@
|
|||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox10">
|
||||
|
@ -181,81 +183,6 @@
|
|||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="contact_info_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_contact_info_button_clicked" last_modification_time="Mon, 16 May 2005 13:51:48 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment67">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xscale">0</property>
|
||||
<property name="yscale">0</property>
|
||||
<property name="top_padding">0</property>
|
||||
<property name="bottom_padding">0</property>
|
||||
<property name="left_padding">0</property>
|
||||
<property name="right_padding">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox2961">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">2</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image585">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-justify-fill</property>
|
||||
<property name="icon_size">4</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label255">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Contact _Info</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="authorize_button">
|
||||
<property name="visible">True</property>
|
||||
|
@ -332,6 +259,97 @@
|
|||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="actions_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_actions_button_clicked" last_modification_time="Sun, 01 Oct 2006 17:53:28 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment101">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xscale">0</property>
|
||||
<property name="yscale">0</property>
|
||||
<property name="top_padding">0</property>
|
||||
<property name="bottom_padding">0</property>
|
||||
<property name="left_padding">0</property>
|
||||
<property name="right_padding">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox3009">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">2</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image1338">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-execute</property>
|
||||
<property name="icon_size">4</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label372">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes" comments="Make sure the character after "_" is not M/m (conflicts with Alt+M that is supposed to show the Emoticon Selector)">_Actions</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkArrow" id="arrow4">
|
||||
<property name="visible">True</property>
|
||||
<property name="arrow_type">GTK_ARROW_DOWN</property>
|
||||
<property name="shadow_type">GTK_SHADOW_OUT</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
|
@ -342,4 +360,5 @@
|
|||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
</glade-interface>
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
iconsetdir = $(pkgdatadir)/data/iconsets
|
||||
|
||||
iconset_DATA =
|
||||
|
||||
ICONSET_DIRS = **/{16x16,32x32,48x48} \
|
||||
transports/**/{16x16,32x32,48x48}
|
||||
|
||||
ICONSET_FILES = **/{16x16,32x32,48x48}/{*.gif,*.png} \
|
||||
transports/**/{16x16,32x32,48x48}/{*.gif,*.png}
|
||||
|
||||
install-data-local:
|
||||
@for d in $(ICONSET_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkinstalldirs) $(pkgdatadir)/data/iconsets/$$d"; \
|
||||
$(mkinstalldirs) $(pkgdatadir)/data/iconsets/$$d || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
for f in $(ICONSET_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " $(INSTALL_DATA) $$f $(pkgdatadir)/data/iconsets/$$f"; \
|
||||
$(INSTALL_DATA) $$f $(pkgdatadir)/data/iconsets/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
||||
|
||||
dist-hook:
|
||||
@for d in $(ICONSET_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkdir_p) $(distdir)/$$d"; \
|
||||
$(mkdir_p) $(distdir)/$$d || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
for f in $(ICONSET_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " cp -pR $(srcdir)/$$f $(distdir)/$$f"; \
|
||||
cp -pR $(srcdir)/$$f $(distdir)/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
|
@ -0,0 +1,451 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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 = data/iconsets
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(iconsetdir)"
|
||||
iconsetDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(iconset_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
iconsetdir = $(pkgdatadir)/data/iconsets
|
||||
iconset_DATA =
|
||||
ICONSET_DIRS = **/{16x16,32x32,48x48} \
|
||||
transports/**/{16x16,32x32,48x48}
|
||||
|
||||
ICONSET_FILES = **/{16x16,32x32,48x48}/{*.gif,*.png} \
|
||||
transports/**/{16x16,32x32,48x48}/{*.gif,*.png}
|
||||
|
||||
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 \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/iconsets/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu data/iconsets/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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-iconsetDATA: $(iconset_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(iconsetdir)" || $(mkdir_p) "$(DESTDIR)$(iconsetdir)"
|
||||
@list='$(iconset_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(iconsetDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsetdir)/$$f'"; \
|
||||
$(iconsetDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsetdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-iconsetDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(iconset_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(iconsetdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(iconsetdir)/$$f"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(iconsetdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-libtool
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-data-local install-iconsetDATA
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
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: uninstall-iconsetDATA uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
dist-hook distclean distclean-generic distclean-libtool \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-data-local \
|
||||
install-exec install-exec-am install-iconsetDATA install-info \
|
||||
install-info-am install-man 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 \
|
||||
uninstall-iconsetDATA uninstall-info-am
|
||||
|
||||
|
||||
install-data-local:
|
||||
@for d in $(ICONSET_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkinstalldirs) $(pkgdatadir)/data/iconsets/$$d"; \
|
||||
$(mkinstalldirs) $(pkgdatadir)/data/iconsets/$$d || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
for f in $(ICONSET_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " $(INSTALL_DATA) $$f $(pkgdatadir)/data/iconsets/$$f"; \
|
||||
$(INSTALL_DATA) $$f $(pkgdatadir)/data/iconsets/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
||||
|
||||
dist-hook:
|
||||
@for d in $(ICONSET_DIRS);do \
|
||||
if test -d $$d;then \
|
||||
echo " $(mkdir_p) $(distdir)/$$d"; \
|
||||
$(mkdir_p) $(distdir)/$$d || exit 1; \
|
||||
fi; \
|
||||
done
|
||||
for f in $(ICONSET_FILES);do \
|
||||
if test -f $$f; then \
|
||||
echo " cp -pR $(srcdir)/$$f $(distdir)/$$f"; \
|
||||
cp -pR $(srcdir)/$$f $(distdir)/$$f || exit 1; \
|
||||
fi; \
|
||||
done;
|
||||
# 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:
|
Binary file not shown.
After Width: | Height: | Size: 852 B |
Binary file not shown.
After Width: | Height: | Size: 744 B |
|
@ -5,373 +5,368 @@
|
|||
http://www.jabber.org/jeps/jep-0030.html
|
||||
|
||||
To add your server to the list, contact stpeter@jabber.org -->
|
||||
|
||||
<query xmlns='http://jabber.org/protocol/disco#items'>
|
||||
<item jid='12jabber.com' name='Jabber server hosted by Anywise.com'>
|
||||
<active port='5222'/>
|
||||
<query xmlns="http://jabber.org/protocol/disco#items">
|
||||
<item jid="12jabber.com" name="Jabber server hosted by Anywise.com">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='admin-networks.org' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="admin-networks.org" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='akl.lt' name='Jabber server in Lietuva (Lithuania)'>
|
||||
<active port='5222'/>
|
||||
<item jid="akl.lt" name="Jabber server in Lietuva (Lithuania)">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='amber.org.uk' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="amber.org.uk" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='amessage.at' name='Austrian Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="amessage.at" name="Austrian Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='amessage.be' name='Belgian Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="amessage.be" name="Belgian Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='amessage.ch' name='Swiss Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="amessage.ch" name="Swiss Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='amessage.de' name='German Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="amessage.de" name="German Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='amessage.info' name='Jabber server from amessage'>
|
||||
<active port='5222'/>
|
||||
<item jid="amessage.info" name="Jabber server from amessage">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='amessage.li' name='Jabber server in Liechtenstein'>
|
||||
<active port='5222'/>
|
||||
<item jid="amessage.li" name="Jabber server in Liechtenstein">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='aszlig.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="aszlig.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='bloodyxml.com' name='Hosted by Chote Networks (http://www.chote.com)'>
|
||||
<active port='5222'/>
|
||||
<item jid="bloodyxml.com" name="Hosted by Chote Networks (http://www.chote.com)">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='borderlinenormal.com' name='Hosted by Chote Networks (http://www.chote.com)'>
|
||||
<active port='5222'/>
|
||||
<item jid="borderlinenormal.com" name="Hosted by Chote Networks (http://www.chote.com)">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='bulmalug.net' name='Server hosted by the Linux Users Group of the Balearic Islands'>
|
||||
<active port='5222'/>
|
||||
<item jid="bulmalug.net" name="Server hosted by the Linux Users Group of the Balearic Islands">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='chat.mail2web.com' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="chat.mail2web.com" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='default.co.yu' name='Server in Yugoslavia'>
|
||||
<active port='5222'/>
|
||||
<item jid="default.co.yu" name="Server in Yugoslavia">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='deshalbfrei.org' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="deshalbfrei.org" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='develog.com' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="develog.com" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='dhbit.ca' name='Visit http://dhbit.ca/article.php?sid=318 for more information'>
|
||||
<active port='5222'/>
|
||||
<item jid="dotgeek.org" name="Jabber server in Switzerland">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='dotgeek.org' name='Jabber server in Switzerland'>
|
||||
<active port='5222'/>
|
||||
<item jid="es.tipic.com" name="Spanish Jabber server hosted by Tipic">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='es.tipic.com' name='Spanish Jabber server hosted by Tipic'>
|
||||
<active port='5222'/>
|
||||
<item jid="foxalpha.de" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='foxalpha.de' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="here.dk" name="Jabber server in Denmark">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='here.dk' name='Jabber server in Denmark'>
|
||||
<active port='5222'/>
|
||||
</item>
|
||||
<item jid='illx.org' name='Jabber server hosted by illx.org'>
|
||||
<active port='5222'/>
|
||||
<item jid="illx.org" name="Jabber server hosted by illx.org">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='im.apinc.org' name='French server hosted by APINC'>
|
||||
<active port='5222'/>
|
||||
</item>
|
||||
<item jid='im.flosoft.biz' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="im.flosoft.biz" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='ims.kelkoo.net' name='Server hosted by Kelkoo (France)'>
|
||||
<active port='5222'/>
|
||||
<item jid="ims.kelkoo.net" name="Server hosted by Kelkoo (France)">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber-fr.net' name='French Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber-fr.net" name="French Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber-hispano.org' name='Servidor Jabber de la comunidad hispana'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber-hispano.org" name="Servidor Jabber de la comunidad hispana">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.3gnt.org' name='Server in Portugal'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.3gnt.org" name="Server in Portugal">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.ambrero.nl' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.ambrero.nl" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.anywise.com' name='Jabber server hosted by Anywise.com'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.anywise.com" name="Jabber server hosted by Anywise.com">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.atman.pl' name='Another server in Poland'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.atman.pl" name="Another server in Poland">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.autocom.pl' name='Server associated with jabberpl.org'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.autocom.pl" name="Server associated with jabberpl.org">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.bettercom.de' name='Public server hosted by BetterCom'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.bettercom.de" name="Public server hosted by BetterCom">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.cc' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.cc" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.ccc.de' name='Service of the Chaos Computer Club'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.ccc.de" name="Service of the Chaos Computer Club">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.cd.chalmers.se' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.cd.chalmers.se" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.cn' name='Jabber server for all of China! :-)'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.cn" name="Jabber server for all of China! :-)">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.com' name='Jabber server offered by Jabber, Inc.'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.com" name="Jabber server offered by Jabber, Inc.">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.com.cn' name='Jabber server in China'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.com.cn" name="Jabber server in China">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.cz' name='Czech Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.cz" name="Czech Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.dk' name='Jabber server in Denmark'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.dk" name="Jabber server in Denmark">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.earth.li' name='Jabber server hosted by earth.li'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.earth.li" name="Jabber server hosted by earth.li">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.evilrealms.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.evilrealms.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.felisberto.net' name='Server in Portugal'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.felisberto.net" name="Server in Portugal">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.fr' name='French server hosted by APINC'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.fr" name="French server hosted by APINC">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.freenet.de' name='Server in Germany'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.freenet.de" name="Server in Germany">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.hot-chilli.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.hot-chilli.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.hu' name='Jabber server in Hungary'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.hu" name="Jabber server in Hungary">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.i-pobox.net' name='Server in Germany'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.i-pobox.net" name="Server in Germany">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.killerbees.org.uk' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.killerbees.org.uk" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.linux.it' name='Jabber server in Italy'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.linux.it" name="Jabber server in Italy">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.meta.net.nz' name='Jabber server in New Zealand'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.meta.net.nz" name="Jabber server in New Zealand">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.minus273.org' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.minus273.org" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.mulasystems.com' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.mulasystems.com" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.ngnet.it' name='Server in Italy'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.ngnet.it" name="Server in Italy">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.no' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.no" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.noxa.de' name='Server in Germany'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.noxa.de" name="Server in Germany">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.obsidian.co.za' name='Server in South Africa'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.obsidian.co.za" name="Server in South Africa">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.od.ua' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.od.ua" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.or.id' name='Indonesian Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.or.id" name="Indonesian Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.org' name='Server hosted by the Jabber Software Foundation'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.org" name="Server hosted by the Jabber Software Foundation">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.org.au' name='Server in Australia'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.org.au" name="Server in Australia">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.org.nz' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.org.nz" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.palomine.net' name='Server located in Delray Beach, Florida'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.palomine.net" name="Server located in Delray Beach, Florida">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.papla.pl' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.papla.pl" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.pilgerer.de' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.pilgerer.de" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.ru' name='Russian Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.ru" name="Russian Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.sim.pl' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.sim.pl" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.sk' name='Slovak Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.sk" name="Slovak Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.snc.ru' name='Jabber server in Russia'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.snc.ru" name="Jabber server in Russia">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.te.ua' name='Server in Ukraine'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.te.ua" name="Server in Ukraine">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.ttn.ru' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.ttn.ru" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.turk-php.com' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.turk-php.com" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.typhon.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.typhon.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.unesco.kz' name='First public server in Kazakhstan'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.unesco.kz" name="First public server in Kazakhstan">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.unixfreunde.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.unixfreunde.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.unoc.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.unoc.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.wiretrip.org' name='Jabber server from wiretrip.org'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.wiretrip.org" name="Jabber server from wiretrip.org">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.wp.pl' name='Large Jabber server in Poland'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.wp.pl" name="Large Jabber server in Poland">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.wroc.pl' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.wroc.pl" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber.xs4all.nl' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabber.xs4all.nl" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabber80.com' name='Jabber server over port 80 (SSL over port 443)'>
|
||||
<active port='80'/>
|
||||
<item jid="jabber80.com" name="Jabber server over port 80 (SSL over port 443)">
|
||||
<active port="80"/>
|
||||
</item>
|
||||
<item jid='jabberafrica.org' name='Jabber server in Africa'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabberafrica.org" name="Jabber server in Africa">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabberes.org' name='Servidor Jabber de la comunidad hispana'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabberes.org" name="Servidor Jabber de la comunidad hispana">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabberme.de' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabberme.de" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabbernet.dk' name='Jabber server in Denmark'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabbernet.dk" name="Jabber server in Denmark">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabbernuke.com' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jabbernuke.com" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jabberpl.org' name='Jabber server in Poland'>
|
||||
<active port='5222'/>
|
||||
<item jid="jabberpl.org" name="Jabber server in Poland">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='jaim.at' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="jaim.at" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='manya.urbanturban.no' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="manya.urbanturban.no" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='myjabber.net' name='The public Jabber server hosted by MyJabber'>
|
||||
<active port='5222'/>
|
||||
<item jid="myjabber.net" name="The public Jabber server hosted by MyJabber">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='nedbsd.nl' name='Jabber server in the Netherlands'>
|
||||
<active port='5222'/>
|
||||
<item jid="nedbsd.nl" name="Jabber server in the Netherlands">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='nedlinux.nl' name='Jabber server in the Netherlands'>
|
||||
<active port='5222'/>
|
||||
<item jid="nedlinux.nl" name="Jabber server in the Netherlands">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='netmindz.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="netmindz.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='njs.netlab.cz' name='Czech Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="njs.netlab.cz" name="Czech Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='nureality.ca' name='Public server provided by Nureality Networks'>
|
||||
<active port='5222'/>
|
||||
<item jid="nureality.ca" name="Public server provided by Nureality Networks">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='oborona.net' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="oborona.net" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='om.beeonline.ru' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="om.beeonline.ru" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='pan.ubishops.ca' name='Server run by the computer science club at Bishops University in Quebec.'>
|
||||
<active port='5222'/>
|
||||
<item jid="pan.ubishops.ca" name="Server run by the computer science club at Bishops University in Quebec.">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='pandion.be' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="pandion.be" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='penwritten.com' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="penwritten.com" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='piramida.slask.pl' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="piramida.slask.pl" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='pointblue.com.pl' name=''>
|
||||
<active port='5223'/>
|
||||
<item jid="pointblue.com.pl" name="">
|
||||
<active port="5223"/>
|
||||
</item>
|
||||
<item jid='pono.mauiholm.org' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="pono.mauiholm.org" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='selfnet.at' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="selfnet.at" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='sistemas.unsa.edu.ar' name='Jabber server in Argentina'>
|
||||
<active port='5222'/>
|
||||
<item jid="sistemas.unsa.edu.ar" name="Jabber server in Argentina">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='sourcecode.de' name='Server in Germany'>
|
||||
<active port='5222'/>
|
||||
<item jid="sourcecode.de" name="Server in Germany">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='sparetimegroup.net' name='Server in Romania'>
|
||||
<active port='5222'/>
|
||||
<item jid="sparetimegroup.net" name="Server in Romania">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='swissjabber.ch' name='Swiss Jabber server'>
|
||||
<active port='5222'/>
|
||||
<item jid="swissjabber.ch" name="Swiss Jabber server">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='swissjabber.de' name='Jabber server in Switzerland'>
|
||||
<active port='5222'/>
|
||||
<item jid="swissjabber.de" name="Jabber server in Switzerland">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='swissjabber.li' name='Jabber server in Liechtenstein'>
|
||||
<active port='5222'/>
|
||||
<item jid="swissjabber.li" name="Jabber server in Liechtenstein">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='swissjabber.org' name='Jabber server in Switzerland'>
|
||||
<active port='5222'/>
|
||||
<item jid="swissjabber.org" name="Jabber server in Switzerland">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='syndicon.de' name='Server in Germany'>
|
||||
<active port='5222'/>
|
||||
<item jid="syndicon.de" name="Server in Germany">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='tipic.com' name='Public server hosted by Tipic'>
|
||||
<active port='5222'/>
|
||||
<item jid="tipic.com" name="Public server hosted by Tipic">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='transactim.net' name='Server hosted by TransactIM'>
|
||||
<active port='5222'/>
|
||||
<item jid="transactim.net" name="Server hosted by TransactIM">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='unstable.nl' name='Server in the Netherlands'>
|
||||
<active port='5222'/>
|
||||
<item jid="unstable.nl" name="Server in the Netherlands">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='ursine.ca' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="ursine.ca" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='volgograd.ru' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="volgograd.ru" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='xmpp.ru' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="xmpp.ru" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
<item jid='xmpp.us' name=''>
|
||||
<active port='5222'/>
|
||||
<item jid="xmpp.us" name="">
|
||||
<active port="5222"/>
|
||||
</item>
|
||||
</query>
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
pixmapsdir = $(pkgdatadir)/data/pixmaps
|
||||
pixmaps_DATA = *.png \
|
||||
gajim.ico \
|
||||
events/*.png \
|
||||
agents/*.png
|
||||
EXTRA_DIST = $(pixmaps_DATA)
|
|
@ -0,0 +1,419 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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 = data/pixmaps
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(pixmapsdir)"
|
||||
pixmapsDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(pixmaps_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
pixmapsdir = $(pkgdatadir)/data/pixmaps
|
||||
pixmaps_DATA = *.png \
|
||||
gajim.ico \
|
||||
events/*.png \
|
||||
agents/*.png
|
||||
|
||||
EXTRA_DIST = $(pixmaps_DATA)
|
||||
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 \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/pixmaps/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu data/pixmaps/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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-pixmapsDATA: $(pixmaps_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pixmapsdir)" || $(mkdir_p) "$(DESTDIR)$(pixmapsdir)"
|
||||
@list='$(pixmaps_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(pixmapsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixmapsdir)/$$f'"; \
|
||||
$(pixmapsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixmapsdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-pixmapsDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pixmaps_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(pixmapsdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(pixmapsdir)/$$f"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(mkdir_p) $(distdir)/agents $(distdir)/events
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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 $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(pixmapsdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-libtool
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-pixmapsDATA
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
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: uninstall-info-am uninstall-pixmapsDATA
|
||||
|
||||
.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-exec install-exec-am \
|
||||
install-info install-info-am install-man install-pixmapsDATA \
|
||||
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 uninstall-info-am uninstall-pixmapsDATA
|
||||
|
||||
# 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:
|
|
@ -0,0 +1,530 @@
|
|||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2005-07-09.11
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
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 outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
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
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. 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.
|
||||
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||
tmpdepfile="$stripped.u"
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test -f "$tmpdepfile"; then :
|
||||
else
|
||||
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||
tmpdepfile="$stripped.u"
|
||||
fi
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile"; then
|
||||
outname="$stripped.o"
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
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"
|
||||
;;
|
||||
|
||||
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 mecanism 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 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"
|
||||
;;
|
||||
|
||||
#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 $1 != '--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 $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-*|$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"
|
||||
cat < "$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 $1 != '--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, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
"$@" || exit $?
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# 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-end: "$"
|
||||
# End:
|
|
@ -0,0 +1,323 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2005-05-14.22
|
||||
|
||||
# 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. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=
|
||||
chgrpcmd=
|
||||
stripcmd=
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dstarg=
|
||||
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:
|
||||
-c (ignored)
|
||||
-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.
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test -n "$1"; do
|
||||
case $1 in
|
||||
-c) shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t) dstarg=$2
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-T) no_target_directory=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
*) # When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
test -n "$dir_arg$dstarg" && break
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dstarg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dstarg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dstarg=$arg
|
||||
done
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test -z "$1"; 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
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src ;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
src=
|
||||
|
||||
if test -d "$dst"; then
|
||||
mkdircmd=:
|
||||
chmodcmd=
|
||||
else
|
||||
mkdircmd=$mkdirprog
|
||||
fi
|
||||
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 "$dstarg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dstarg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst ;;
|
||||
esac
|
||||
|
||||
# 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: $dstarg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dst=$dst/`basename "$src"`
|
||||
fi
|
||||
fi
|
||||
|
||||
# This sed command emulates the dirname command.
|
||||
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if test ! -d "$dstdir"; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-$defaultIFS}"
|
||||
|
||||
oIFS=$IFS
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
shift
|
||||
IFS=$oIFS
|
||||
|
||||
pathcomp=
|
||||
|
||||
while test $# -ne 0 ; do
|
||||
pathcomp=$pathcomp$1
|
||||
shift
|
||||
if test ! -d "$pathcomp"; then
|
||||
$mkdirprog "$pathcomp"
|
||||
# mkdir can fail with a `File exist' error in case several
|
||||
# install-sh are creating the directory concurrently. This
|
||||
# is OK.
|
||||
test -d "$pathcomp" || exit
|
||||
fi
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
$doit $mkdircmd "$dst" \
|
||||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
||||
|
||||
else
|
||||
dstfile=`basename "$dst"`
|
||||
|
||||
# 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
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
$doit $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 "$dsttmp"; } &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 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.
|
||||
{
|
||||
if test -f "$dstdir/$dstfile"; then
|
||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
||||
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
||||
|| {
|
||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
else
|
||||
:
|
||||
fi
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
}
|
||||
}
|
||||
fi || { (exit 1); exit 1; }
|
||||
done
|
||||
|
||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||
{
|
||||
(exit 0); 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-end: "$"
|
||||
# End:
|
|
@ -0,0 +1 @@
|
|||
/usr/share/intltool/intltool-extract.in
|
|
@ -0,0 +1 @@
|
|||
/usr/share/intltool/intltool-merge.in
|
|
@ -0,0 +1 @@
|
|||
/usr/share/intltool/intltool-update.in
|
|
@ -0,0 +1,398 @@
|
|||
# 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 <drepper@cygnus.com>, 1995, 1996
|
||||
#
|
||||
# Modified to never use included libintl.
|
||||
# Owen Taylor <otaylor@redhat.com>, 12/15/1998
|
||||
#
|
||||
# Major rework to remove unused code
|
||||
# Owen Taylor <otaylor@redhat.com>, 12/11/2002
|
||||
#
|
||||
# Added better handling of ALL_LINGUAS from GNU gettext version
|
||||
# written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
|
||||
#
|
||||
# Modified to require ngettext
|
||||
# Matthias Clasen <mclasen@redhat.com> 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 <locale.h>], [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 <locale.h> 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 <libintl.h>
|
||||
],
|
||||
[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 <libintl.h>
|
||||
],
|
||||
[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)
|
||||
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])
|
||||
;;
|
||||
*)
|
||||
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.in.
|
||||
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"
|
||||
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||||
test "x$exec_prefix" = xNONE && exec_prefix=$prefix
|
||||
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"
|
||||
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_in,[],[
|
||||
AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
|
||||
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
|
||||
])dnl
|
|
@ -0,0 +1,62 @@
|
|||
## this one is commonly used with AM_PATH_PYTHONDIR ...
|
||||
dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
|
||||
dnl Check if a module containing a given symbol is visible to python.
|
||||
AC_DEFUN([AM_CHECK_PYMOD],
|
||||
[AC_REQUIRE([AM_PATH_PYTHON])
|
||||
py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
|
||||
AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
|
||||
AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
|
||||
ifelse([$2],[], [prog="
|
||||
import sys
|
||||
try:
|
||||
import $1
|
||||
except ImportError:
|
||||
sys.exit(1)
|
||||
except:
|
||||
sys.exit(0)
|
||||
sys.exit(0)"], [prog="
|
||||
import $1
|
||||
$1.$2"])
|
||||
if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
|
||||
then
|
||||
eval "py_cv_mod_$py_mod_var=yes"
|
||||
else
|
||||
eval "py_cv_mod_$py_mod_var=no"
|
||||
fi
|
||||
])
|
||||
py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
|
||||
if test "x$py_val" != xno; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$3], [],, [$3
|
||||
])dnl
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
ifelse([$4], [],, [$4
|
||||
])dnl
|
||||
fi
|
||||
])
|
||||
|
||||
dnl a macro to check for ability to create python extensions
|
||||
dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
|
||||
dnl function also defines PYTHON_INCLUDES
|
||||
AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
|
||||
[AC_REQUIRE([AM_PATH_PYTHON])
|
||||
AC_MSG_CHECKING(for headers required to compile python extensions)
|
||||
dnl deduce PYTHON_INCLUDES
|
||||
py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
|
||||
py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
|
||||
PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
|
||||
if test "$py_prefix" != "$py_exec_prefix"; then
|
||||
PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
|
||||
fi
|
||||
AC_SUBST(PYTHON_INCLUDES)
|
||||
dnl check if the headers exist:
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
|
||||
AC_TRY_CPP([#include <Python.h>],dnl
|
||||
[AC_MSG_RESULT(found)
|
||||
$1],dnl
|
||||
[AC_MSG_RESULT(not found)
|
||||
$2])
|
||||
CPPFLAGS="$save_CPPFLAGS"
|
||||
])
|
|
@ -0,0 +1,360 @@
|
|||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2005-06-08.21
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
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'
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
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
|
||||
|
||||
# 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).
|
||||
case "$1" in
|
||||
lex|yacc)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
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 "$1" 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 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $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 [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f y.tab.h ]; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if [ ! -f y.tab.c ]; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $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 [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f lex.yy.c ]; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
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 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||
fi
|
||||
if [ -f "$file" ]; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
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 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
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
|
||||
;;
|
||||
|
||||
tar)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case "$firstarg" in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case "$firstarg" in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and 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-end: "$"
|
||||
# End:
|
|
@ -0,0 +1,158 @@
|
|||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
|
||||
scriptversion=2005-06-29.22
|
||||
|
||||
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
# Public domain.
|
||||
#
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
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 <bug-automake@gnu.org>."
|
||||
|
||||
# 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-end: "$"
|
||||
# End:
|
72
po/Makefile
72
po/Makefile
|
@ -1,72 +0,0 @@
|
|||
NAME = gajim
|
||||
LANGS := fr pt el pl es ru bg de nb cs nl pt_BR sv it eu sk no zh_CN br eo
|
||||
LANGS_PO:=$(foreach LANG, ${LANGS}, ${LANG}.po)
|
||||
LANGS_MO:=$(foreach LANG, ${LANGS}, ${LANG}.mo)
|
||||
DATADIR:=$(subst //,/,${DESTDIR}/${PREFIX}/share)
|
||||
|
||||
all: $(LANGS_MO)
|
||||
|
||||
%.mo: %.po
|
||||
msgfmt $< -o $@
|
||||
|
||||
%.glade.h: %.glade
|
||||
intltool-extract --type=gettext/glade $<
|
||||
|
||||
gajim.pot: ../src/*py ../src/common/*py \
|
||||
../data/glade/account_context_menu.glade.h \
|
||||
../data/glade/account_creation_wizard_window.glade.h \
|
||||
../data/glade/account_modification_window.glade.h \
|
||||
../data/glade/accounts_window.glade.h \
|
||||
../data/glade/add_new_contact_window.glade.h \
|
||||
../data/glade/advanced_configuration_window.glade.h \
|
||||
../data/glade/advanced_notifications_window.glade.h \
|
||||
../data/glade/advanced_menuitem_menu.glade.h \
|
||||
../data/glade/change_password_dialog.glade.h \
|
||||
../data/glade/change_status_message_dialog.glade.h \
|
||||
../data/glade/chat_context_menu.glade.h \
|
||||
../data/glade/chat_control_popup_menu.glade.h \
|
||||
../data/glade/choose_gpg_key_dialog.glade.h \
|
||||
../data/glade/data_form_window.glade.h \
|
||||
../data/glade/edit_groups_dialog.glade.h \
|
||||
../data/glade/filetransfers.glade.h \
|
||||
../data/glade/gajim_themes_window.glade.h \
|
||||
../data/glade/gc_control_popup_menu.glade.h \
|
||||
../data/glade/gc_occupants_menu.glade.h \
|
||||
../data/glade/history_manager.glade.h \
|
||||
../data/glade/history_window.glade.h \
|
||||
../data/glade/input_dialog.glade.h \
|
||||
../data/glade/invitation_received_dialog.glade.h \
|
||||
../data/glade/join_groupchat_window.glade.h \
|
||||
../data/glade/manage_accounts_window.glade.h \
|
||||
../data/glade/manage_bookmarks_window.glade.h \
|
||||
../data/glade/manage_proxies_window.glade.h \
|
||||
../data/glade/message_window.glade.h \
|
||||
../data/glade/passphrase_dialog.glade.h \
|
||||
../data/glade/popup_notification_window.glade.h \
|
||||
../data/glade/preferences_window.glade.h \
|
||||
../data/glade/privacy_list_edit_window.glade.h \
|
||||
../data/glade/privacy_lists_first_window.glade.h \
|
||||
../data/glade/progress_dialog.glade.h \
|
||||
../data/glade/remove_account_window.glade.h \
|
||||
../data/glade/roster_contact_context_menu.glade.h \
|
||||
../data/glade/roster_window.glade.h \
|
||||
../data/glade/service_discovery_window.glade.h \
|
||||
../data/glade/service_registration_window.glade.h \
|
||||
../data/glade/single_message_window.glade.h \
|
||||
../data/glade/subscription_request_window.glade.h \
|
||||
../data/glade/systray_context_menu.glade.h \
|
||||
../data/glade/vcard_information_window.glade.h \
|
||||
../data/glade/xml_console_window.glade.h
|
||||
intltool-update --pot --gettext-package=$(NAME)
|
||||
|
||||
install:
|
||||
for l in ${LANGS}; do\
|
||||
dir=${DATADIR}/locale/$${l}/LC_MESSAGES;\
|
||||
if test ! -d $${dir}; then\
|
||||
install -m 755 -d $${dir};\
|
||||
fi;\
|
||||
install -m 644 $${l}.mo $${dir}/${NAME}.mo;\
|
||||
done
|
||||
|
||||
clean:
|
||||
rm -f *.mo
|
|
@ -0,0 +1 @@
|
|||
/usr/share/intltool/Makefile.in.in
|
|
@ -35,8 +35,9 @@ data/glade/message_window.glade.h
|
|||
data/glade/passphrase_dialog.glade.h
|
||||
data/glade/popup_notification_window.glade.h
|
||||
data/glade/preferences_window.glade.h
|
||||
data/glade/privacy_list_edit_window.glade.h
|
||||
data/glade/privacy_lists_first_window.glade.h
|
||||
data/glade/privacy_list_window.glade.h
|
||||
data/glade/privacy_lists_window.glade.h
|
||||
data/glade/profile_window.glade.h
|
||||
data/glade/progress_dialog.glade.h
|
||||
data/glade/remove_account_window.glade.h
|
||||
data/glade/roster_contact_context_menu.glade.h
|
||||
|
|
|
@ -27,6 +27,11 @@ if [ `id -u` -eq 0 ]; then
|
|||
echo "You must not launch Gajim as root, it is INSECURE"
|
||||
fi
|
||||
|
||||
cd PREFIX/share/gajim/src
|
||||
export PYTHONPATH="$PYTHONPATH:PREFIXLIB/gajim"
|
||||
exec -a gajim PYTHON_EXEC -OO gajim.py $@
|
||||
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
PYTHON_EXEC=@PYTHON@
|
||||
|
||||
cd ${prefix}/share/gajim/src
|
||||
export PYTHONPATH="$PYTHONPATH:@libdir@/gajim"
|
||||
exec -a gajim ${PYTHON_EXEC} -OO gajim.py $@
|
35
src/Makefile
35
src/Makefile
|
@ -1,35 +0,0 @@
|
|||
# Set the C flags to include the GTK+ and Python libraries
|
||||
PYTHON ?= python
|
||||
PYTHONVER = `$(PYTHON) -c 'import sys; print sys.version[:3]'`
|
||||
gtk_CFLAGS = `pkg-config --cflags gtk+-2.0 pygtk-2.0` -fPIC -I/usr/include/python$(PYTHONVER) -I.
|
||||
gtk_LDFLAGS = `pkg-config --libs gtk+-2.0 pygtk-2.0` -lpython$(PYTHONVER)
|
||||
|
||||
all: trayicon.so gtkspell.so
|
||||
|
||||
# Build the shared objects
|
||||
trayicon.so: trayicon.o eggtrayicon.o trayiconmodule.o
|
||||
$(CC) -shared $^ -o $@ $(LDFLAGS) $(gtk_LDFLAGS)
|
||||
|
||||
gtkspell.so:
|
||||
$(CC) $(OPTFLAGS) $(CFLAGS) $(LDFLAGS) $(gtk_CFLAGS) $(gtk_LDFLAGS) `pkg-config --libs --cflags gtkspell-2.0` -shared gtkspellmodule.c $^ -o $@
|
||||
|
||||
# The path to the GTK+ python types
|
||||
DEFS=`pkg-config --variable=defsdir pygtk-2.0`
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -o $@ -c $< $(CFLAGS) $(gtk_CFLAGS)
|
||||
|
||||
# Generate the C wrapper from the defs and our override file
|
||||
trayicon.c: trayicon.defs trayicon.override
|
||||
pygtk-codegen-2.0 --prefix trayicon \
|
||||
--register $(DEFS)/gdk-types.defs \
|
||||
--register $(DEFS)/gtk-types.defs \
|
||||
--override trayicon.override \
|
||||
trayicon.defs > $@
|
||||
|
||||
|
||||
# A rule to clean the generated files
|
||||
clean:
|
||||
rm -f trayicon.so *.o trayicon.c gtkspell.so *~
|
||||
|
||||
.PHONY: clean
|
|
@ -0,0 +1,66 @@
|
|||
SUBDIRS = common
|
||||
|
||||
CLEANFILES = \
|
||||
trayicon.c
|
||||
INCLUDES = \
|
||||
$(PYTHON_INCLUDES)
|
||||
|
||||
gtkspelllib_LTLIBRARIES = gtkspell.la
|
||||
gtkspelllibdir = $(libdir)/gajim
|
||||
|
||||
gtkspell_la_LIBADD = \
|
||||
$(GTKSPELL_LIBS) $(PYGTK_LIBS)
|
||||
|
||||
gtkspell_la_SOURCES = \
|
||||
gtkspellmodule.c
|
||||
|
||||
gtkspell_la_LDFLAGS = \
|
||||
-module -avoid-version -no-undefined
|
||||
|
||||
gtkspell_la_CFLAGS = $(GTKSPELL_CFLAGS) $(PYGTK_CFLAGS)
|
||||
|
||||
trayiconlib_LTLIBRARIES = trayicon.la
|
||||
trayiconlibdir = $(libdir)/gajim
|
||||
trayicon_la_LIBADD = $(PYGTK_LIBS)
|
||||
trayicon_la_SOURCES = \
|
||||
eggtrayicon.c \
|
||||
trayiconmodule.c
|
||||
nodist_trayicon_la_SOURCES = \
|
||||
trayicon.c
|
||||
trayicon_la_LDFLAGS = \
|
||||
-module -avoid-version -no-undefined
|
||||
trayicon_la_CFLAGS = $(PYGTK_CFLAGS)
|
||||
|
||||
trayicon.c: trayicon.defs trayicon.override
|
||||
pygtk-codegen-2.0 --prefix trayicon \
|
||||
--register $(PYGTK_DEFS)/gdk-types.defs \
|
||||
--register $(PYGTK_DEFS)/gtk-types.defs \
|
||||
--override trayicon.override \
|
||||
trayicon.defs > $@
|
||||
|
||||
gajimsrcdir = $(pkgdatadir)/src
|
||||
gajimsrc_DATA = *.py
|
||||
|
||||
gajimsrc1dir = $(pkgdatadir)/src/common
|
||||
gajimsrc1_DATA = \
|
||||
common/*.py
|
||||
|
||||
gajimsrc2dir = $(pkgdatadir)/src/common/xmpp
|
||||
gajimsrc2_DATA = \
|
||||
common/xmpp/*.py
|
||||
|
||||
gajimsrc3dir = $(pkgdatadir)/src/common/zeroconf
|
||||
gajimsrc3_DATA = \
|
||||
common/zeroconf/*.py
|
||||
|
||||
EXTRA_DIST = $(gajimsrc_DATA) \
|
||||
$(gajimsrc1_DATA) \
|
||||
$(gajimsrc2_DATA) \
|
||||
$(gajimsrc3_DATA) \
|
||||
gtkspellmodule.c \
|
||||
eggtrayicon.c \
|
||||
trayiconmodule.c \
|
||||
eggtrayicon.h \
|
||||
trayicon.defs \
|
||||
trayicon.override
|
||||
|
|
@ -0,0 +1,855 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(gtkspelllibdir)" \
|
||||
"$(DESTDIR)$(trayiconlibdir)" "$(DESTDIR)$(gajimsrcdir)" \
|
||||
"$(DESTDIR)$(gajimsrc1dir)" "$(DESTDIR)$(gajimsrc2dir)" \
|
||||
"$(DESTDIR)$(gajimsrc3dir)"
|
||||
gtkspelllibLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
trayiconlibLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(gtkspelllib_LTLIBRARIES) $(trayiconlib_LTLIBRARIES)
|
||||
am__DEPENDENCIES_1 =
|
||||
gtkspell_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
||||
am_gtkspell_la_OBJECTS = gtkspell_la-gtkspellmodule.lo
|
||||
gtkspell_la_OBJECTS = $(am_gtkspell_la_OBJECTS)
|
||||
trayicon_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
am_trayicon_la_OBJECTS = trayicon_la-eggtrayicon.lo \
|
||||
trayicon_la-trayiconmodule.lo
|
||||
nodist_trayicon_la_OBJECTS = trayicon_la-trayicon.lo
|
||||
trayicon_la_OBJECTS = $(am_trayicon_la_OBJECTS) \
|
||||
$(nodist_trayicon_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(gtkspell_la_SOURCES) $(trayicon_la_SOURCES) \
|
||||
$(nodist_trayicon_la_SOURCES)
|
||||
DIST_SOURCES = $(gtkspell_la_SOURCES) $(trayicon_la_SOURCES)
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
gajimsrcDATA_INSTALL = $(INSTALL_DATA)
|
||||
gajimsrc1DATA_INSTALL = $(INSTALL_DATA)
|
||||
gajimsrc2DATA_INSTALL = $(INSTALL_DATA)
|
||||
gajimsrc3DATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(gajimsrc_DATA) $(gajimsrc1_DATA) $(gajimsrc2_DATA) \
|
||||
$(gajimsrc3_DATA)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
SUBDIRS = common
|
||||
CLEANFILES = \
|
||||
trayicon.c
|
||||
|
||||
INCLUDES = \
|
||||
$(PYTHON_INCLUDES)
|
||||
|
||||
gtkspelllib_LTLIBRARIES = gtkspell.la
|
||||
gtkspelllibdir = $(libdir)/gajim
|
||||
gtkspell_la_LIBADD = \
|
||||
$(GTKSPELL_LIBS) $(PYGTK_LIBS)
|
||||
|
||||
gtkspell_la_SOURCES = \
|
||||
gtkspellmodule.c
|
||||
|
||||
gtkspell_la_LDFLAGS = \
|
||||
-module -avoid-version -no-undefined
|
||||
|
||||
gtkspell_la_CFLAGS = $(GTKSPELL_CFLAGS) $(PYGTK_CFLAGS)
|
||||
trayiconlib_LTLIBRARIES = trayicon.la
|
||||
trayiconlibdir = $(libdir)/gajim
|
||||
trayicon_la_LIBADD = $(PYGTK_LIBS)
|
||||
trayicon_la_SOURCES = \
|
||||
eggtrayicon.c \
|
||||
trayiconmodule.c
|
||||
|
||||
nodist_trayicon_la_SOURCES = \
|
||||
trayicon.c
|
||||
|
||||
trayicon_la_LDFLAGS = \
|
||||
-module -avoid-version -no-undefined
|
||||
|
||||
trayicon_la_CFLAGS = $(PYGTK_CFLAGS)
|
||||
gajimsrcdir = $(pkgdatadir)/src
|
||||
gajimsrc_DATA = *.py
|
||||
gajimsrc1dir = $(pkgdatadir)/src/common
|
||||
gajimsrc1_DATA = \
|
||||
common/*.py
|
||||
|
||||
gajimsrc2dir = $(pkgdatadir)/src/common/xmpp
|
||||
gajimsrc2_DATA = \
|
||||
common/xmpp/*.py
|
||||
|
||||
gajimsrc3dir = $(pkgdatadir)/src/common/zeroconf
|
||||
gajimsrc3_DATA = \
|
||||
common/zeroconf/*.py
|
||||
|
||||
EXTRA_DIST = $(gajimsrc_DATA) \
|
||||
$(gajimsrc1_DATA) \
|
||||
$(gajimsrc2_DATA) \
|
||||
$(gajimsrc3_DATA) \
|
||||
gtkspellmodule.c \
|
||||
eggtrayicon.c \
|
||||
trayiconmodule.c \
|
||||
eggtrayicon.h \
|
||||
trayicon.defs \
|
||||
trayicon.override
|
||||
|
||||
all: 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 \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu 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
|
||||
install-gtkspelllibLTLIBRARIES: $(gtkspelllib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(gtkspelllibdir)" || $(mkdir_p) "$(DESTDIR)$(gtkspelllibdir)"
|
||||
@list='$(gtkspelllib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=install $(gtkspelllibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(gtkspelllibdir)/$$f'"; \
|
||||
$(LIBTOOL) --mode=install $(gtkspelllibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(gtkspelllibdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-gtkspelllibLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@set -x; list='$(gtkspelllib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(gtkspelllibdir)/$$p'"; \
|
||||
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(gtkspelllibdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-gtkspelllibLTLIBRARIES:
|
||||
-test -z "$(gtkspelllib_LTLIBRARIES)" || rm -f $(gtkspelllib_LTLIBRARIES)
|
||||
@list='$(gtkspelllib_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
|
||||
install-trayiconlibLTLIBRARIES: $(trayiconlib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(trayiconlibdir)" || $(mkdir_p) "$(DESTDIR)$(trayiconlibdir)"
|
||||
@list='$(trayiconlib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=install $(trayiconlibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(trayiconlibdir)/$$f'"; \
|
||||
$(LIBTOOL) --mode=install $(trayiconlibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(trayiconlibdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-trayiconlibLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@set -x; list='$(trayiconlib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(trayiconlibdir)/$$p'"; \
|
||||
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(trayiconlibdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-trayiconlibLTLIBRARIES:
|
||||
-test -z "$(trayiconlib_LTLIBRARIES)" || rm -f $(trayiconlib_LTLIBRARIES)
|
||||
@list='$(trayiconlib_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
|
||||
gtkspell.la: $(gtkspell_la_OBJECTS) $(gtkspell_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(gtkspelllibdir) $(gtkspell_la_LDFLAGS) $(gtkspell_la_OBJECTS) $(gtkspell_la_LIBADD) $(LIBS)
|
||||
trayicon.la: $(trayicon_la_OBJECTS) $(trayicon_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(trayiconlibdir) $(trayicon_la_LDFLAGS) $(trayicon_la_OBJECTS) $(trayicon_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkspell_la-gtkspellmodule.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trayicon_la-eggtrayicon.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trayicon_la-trayicon.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trayicon_la-trayiconmodule.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@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@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@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@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@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 $@ $<
|
||||
|
||||
gtkspell_la-gtkspellmodule.lo: gtkspellmodule.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtkspell_la_CFLAGS) $(CFLAGS) -MT gtkspell_la-gtkspellmodule.lo -MD -MP -MF "$(DEPDIR)/gtkspell_la-gtkspellmodule.Tpo" -c -o gtkspell_la-gtkspellmodule.lo `test -f 'gtkspellmodule.c' || echo '$(srcdir)/'`gtkspellmodule.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gtkspell_la-gtkspellmodule.Tpo" "$(DEPDIR)/gtkspell_la-gtkspellmodule.Plo"; else rm -f "$(DEPDIR)/gtkspell_la-gtkspellmodule.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtkspellmodule.c' object='gtkspell_la-gtkspellmodule.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtkspell_la_CFLAGS) $(CFLAGS) -c -o gtkspell_la-gtkspellmodule.lo `test -f 'gtkspellmodule.c' || echo '$(srcdir)/'`gtkspellmodule.c
|
||||
|
||||
trayicon_la-eggtrayicon.lo: eggtrayicon.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trayicon_la_CFLAGS) $(CFLAGS) -MT trayicon_la-eggtrayicon.lo -MD -MP -MF "$(DEPDIR)/trayicon_la-eggtrayicon.Tpo" -c -o trayicon_la-eggtrayicon.lo `test -f 'eggtrayicon.c' || echo '$(srcdir)/'`eggtrayicon.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/trayicon_la-eggtrayicon.Tpo" "$(DEPDIR)/trayicon_la-eggtrayicon.Plo"; else rm -f "$(DEPDIR)/trayicon_la-eggtrayicon.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eggtrayicon.c' object='trayicon_la-eggtrayicon.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trayicon_la_CFLAGS) $(CFLAGS) -c -o trayicon_la-eggtrayicon.lo `test -f 'eggtrayicon.c' || echo '$(srcdir)/'`eggtrayicon.c
|
||||
|
||||
trayicon_la-trayiconmodule.lo: trayiconmodule.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trayicon_la_CFLAGS) $(CFLAGS) -MT trayicon_la-trayiconmodule.lo -MD -MP -MF "$(DEPDIR)/trayicon_la-trayiconmodule.Tpo" -c -o trayicon_la-trayiconmodule.lo `test -f 'trayiconmodule.c' || echo '$(srcdir)/'`trayiconmodule.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/trayicon_la-trayiconmodule.Tpo" "$(DEPDIR)/trayicon_la-trayiconmodule.Plo"; else rm -f "$(DEPDIR)/trayicon_la-trayiconmodule.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trayiconmodule.c' object='trayicon_la-trayiconmodule.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trayicon_la_CFLAGS) $(CFLAGS) -c -o trayicon_la-trayiconmodule.lo `test -f 'trayiconmodule.c' || echo '$(srcdir)/'`trayiconmodule.c
|
||||
|
||||
trayicon_la-trayicon.lo: trayicon.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trayicon_la_CFLAGS) $(CFLAGS) -MT trayicon_la-trayicon.lo -MD -MP -MF "$(DEPDIR)/trayicon_la-trayicon.Tpo" -c -o trayicon_la-trayicon.lo `test -f 'trayicon.c' || echo '$(srcdir)/'`trayicon.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/trayicon_la-trayicon.Tpo" "$(DEPDIR)/trayicon_la-trayicon.Plo"; else rm -f "$(DEPDIR)/trayicon_la-trayicon.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trayicon.c' object='trayicon_la-trayicon.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trayicon_la_CFLAGS) $(CFLAGS) -c -o trayicon_la-trayicon.lo `test -f 'trayicon.c' || echo '$(srcdir)/'`trayicon.c
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-gajimsrcDATA: $(gajimsrc_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(gajimsrcdir)" || $(mkdir_p) "$(DESTDIR)$(gajimsrcdir)"
|
||||
@list='$(gajimsrc_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(gajimsrcDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gajimsrcdir)/$$f'"; \
|
||||
$(gajimsrcDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gajimsrcdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-gajimsrcDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(gajimsrc_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(gajimsrcdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(gajimsrcdir)/$$f"; \
|
||||
done
|
||||
install-gajimsrc1DATA: $(gajimsrc1_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(gajimsrc1dir)" || $(mkdir_p) "$(DESTDIR)$(gajimsrc1dir)"
|
||||
@list='$(gajimsrc1_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(gajimsrc1DATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gajimsrc1dir)/$$f'"; \
|
||||
$(gajimsrc1DATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gajimsrc1dir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-gajimsrc1DATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(gajimsrc1_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(gajimsrc1dir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(gajimsrc1dir)/$$f"; \
|
||||
done
|
||||
install-gajimsrc2DATA: $(gajimsrc2_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(gajimsrc2dir)" || $(mkdir_p) "$(DESTDIR)$(gajimsrc2dir)"
|
||||
@list='$(gajimsrc2_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(gajimsrc2DATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gajimsrc2dir)/$$f'"; \
|
||||
$(gajimsrc2DATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gajimsrc2dir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-gajimsrc2DATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(gajimsrc2_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(gajimsrc2dir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(gajimsrc2dir)/$$f"; \
|
||||
done
|
||||
install-gajimsrc3DATA: $(gajimsrc3_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(gajimsrc3dir)" || $(mkdir_p) "$(DESTDIR)$(gajimsrc3dir)"
|
||||
@list='$(gajimsrc3_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(gajimsrc3DATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gajimsrc3dir)/$$f'"; \
|
||||
$(gajimsrc3DATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gajimsrc3dir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-gajimsrc3DATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(gajimsrc3_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(gajimsrc3dir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(gajimsrc3dir)/$$f"; \
|
||||
done
|
||||
|
||||
# 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):
|
||||
@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; \
|
||||
(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"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@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; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
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 || \
|
||||
tags="$$tags $$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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(mkdir_p) $(distdir)/common $(distdir)/common/xmpp $(distdir)/common/zeroconf
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(LTLIBRARIES) $(DATA)
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(gtkspelllibdir)" "$(DESTDIR)$(trayiconlibdir)" "$(DESTDIR)$(gajimsrcdir)" "$(DESTDIR)$(gajimsrc1dir)" "$(DESTDIR)$(gajimsrc2dir)" "$(DESTDIR)$(gajimsrc3dir)"; 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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-gtkspelllibLTLIBRARIES clean-libtool \
|
||||
clean-trayiconlibLTLIBRARIES mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-gajimsrc1DATA install-gajimsrc2DATA \
|
||||
install-gajimsrc3DATA install-gajimsrcDATA \
|
||||
install-gtkspelllibLTLIBRARIES install-trayiconlibLTLIBRARIES
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
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-gajimsrc1DATA uninstall-gajimsrc2DATA \
|
||||
uninstall-gajimsrc3DATA uninstall-gajimsrcDATA \
|
||||
uninstall-gtkspelllibLTLIBRARIES uninstall-info-am \
|
||||
uninstall-trayiconlibLTLIBRARIES
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
|
||||
clean clean-generic clean-gtkspelllibLTLIBRARIES clean-libtool \
|
||||
clean-recursive clean-trayiconlibLTLIBRARIES ctags \
|
||||
ctags-recursive distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-recursive distclean-tags distdir \
|
||||
dvi dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-exec install-exec-am \
|
||||
install-gajimsrc1DATA install-gajimsrc2DATA \
|
||||
install-gajimsrc3DATA install-gajimsrcDATA \
|
||||
install-gtkspelllibLTLIBRARIES install-info install-info-am \
|
||||
install-man install-strip install-trayiconlibLTLIBRARIES \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
|
||||
pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-gajimsrc1DATA uninstall-gajimsrc2DATA \
|
||||
uninstall-gajimsrc3DATA uninstall-gajimsrcDATA \
|
||||
uninstall-gtkspelllibLTLIBRARIES uninstall-info-am \
|
||||
uninstall-trayiconlibLTLIBRARIES
|
||||
|
||||
|
||||
trayicon.c: trayicon.defs trayicon.override
|
||||
pygtk-codegen-2.0 --prefix trayicon \
|
||||
--register $(PYGTK_DEFS)/gdk-types.defs \
|
||||
--register $(PYGTK_DEFS)/gtk-types.defs \
|
||||
--override trayicon.override \
|
||||
trayicon.defs > $@
|
||||
# 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:
|
|
@ -9,7 +9,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -34,6 +34,8 @@ from message_textview import MessageTextView
|
|||
from common.contacts import GC_Contact
|
||||
from common.logger import Constants
|
||||
constants = Constants()
|
||||
from rst_xhtml_generator import create_xhtml
|
||||
from common.xmpp.protocol import NS_XHTML
|
||||
|
||||
try:
|
||||
import gtkspell
|
||||
|
@ -112,7 +114,7 @@ class ChatControlBase(MessageControl):
|
|||
acct, resource = None):
|
||||
MessageControl.__init__(self, type_id, parent_win, widget_name,
|
||||
display_names, contact, acct, resource = resource);
|
||||
# when/if we do XHTML we will but formatting buttons back
|
||||
# when/if we do XHTML we will put formatting buttons back
|
||||
widget = self.xml.get_widget('emoticons_button')
|
||||
id = widget.connect('clicked', self.on_emoticons_button_clicked)
|
||||
self.handlers[id] = widget
|
||||
|
@ -228,6 +230,11 @@ class ChatControlBase(MessageControl):
|
|||
item = gtk.SeparatorMenuItem()
|
||||
menu.prepend(item)
|
||||
|
||||
item = gtk.ImageMenuItem(gtk.STOCK_CLEAR)
|
||||
menu.prepend(item)
|
||||
id = item.connect('activate', self.msg_textview.clear)
|
||||
self.handlers[id] = item
|
||||
|
||||
if gajim.config.get('use_speller') and HAS_GTK_SPELL:
|
||||
item = gtk.MenuItem(_('Spelling language'))
|
||||
menu.prepend(item)
|
||||
|
@ -241,11 +248,6 @@ class ChatControlBase(MessageControl):
|
|||
id = item.connect('activate', _on_select_dictionary, langs[lang])
|
||||
self.handlers[id] = item
|
||||
|
||||
item = gtk.ImageMenuItem(gtk.STOCK_CLEAR)
|
||||
menu.prepend(item)
|
||||
id = item.connect('activate', self.msg_textview.clear)
|
||||
self.handlers[id] = item
|
||||
|
||||
menu.show_all()
|
||||
|
||||
# moved from ChatControl
|
||||
|
@ -424,7 +426,8 @@ class ChatControlBase(MessageControl):
|
|||
message_textview = widget
|
||||
message_buffer = message_textview.get_buffer()
|
||||
start_iter, end_iter = message_buffer.get_bounds()
|
||||
message = message_buffer.get_text(start_iter, end_iter, False).decode('utf-8')
|
||||
message = message_buffer.get_text(start_iter, end_iter, False).decode(
|
||||
'utf-8')
|
||||
|
||||
# construct event instance from binding
|
||||
event = gtk.gdk.Event(gtk.gdk.KEY_PRESS) # it's always a key-press here
|
||||
|
@ -470,7 +473,8 @@ class ChatControlBase(MessageControl):
|
|||
self.send_message(message) # send the message
|
||||
else:
|
||||
# Give the control itself a chance to process
|
||||
self.handle_message_textview_mykey_press(widget, event_keyval, event_keymod)
|
||||
self.handle_message_textview_mykey_press(widget, event_keyval,
|
||||
event_keymod)
|
||||
|
||||
def _process_command(self, message):
|
||||
if not message:
|
||||
|
@ -533,7 +537,7 @@ class ChatControlBase(MessageControl):
|
|||
def print_conversation_line(self, text, kind, name, tim,
|
||||
other_tags_for_name = [], other_tags_for_time = [],
|
||||
other_tags_for_text = [], count_as_new = True,
|
||||
subject = None, old_kind = None):
|
||||
subject = None, old_kind = None, xhtml = None):
|
||||
'''prints 'chat' type messages'''
|
||||
jid = self.contact.jid
|
||||
full_jid = self.get_full_jid()
|
||||
|
@ -543,7 +547,7 @@ class ChatControlBase(MessageControl):
|
|||
end = True
|
||||
textview.print_conversation_line(text, jid, kind, name, tim,
|
||||
other_tags_for_name, other_tags_for_time, other_tags_for_text,
|
||||
subject, old_kind)
|
||||
subject, old_kind, xhtml)
|
||||
|
||||
if not count_as_new:
|
||||
return
|
||||
|
@ -554,9 +558,15 @@ class ChatControlBase(MessageControl):
|
|||
full_jid != self.parent_win.get_active_jid() or \
|
||||
not self.parent_win.is_active() or not end) and \
|
||||
kind in ('incoming', 'incoming_queue'):
|
||||
if self.notify_on_new_messages():
|
||||
type_ = 'printed_' + self.type_id
|
||||
gc_message = False
|
||||
if self.type_id == message_control.TYPE_GC:
|
||||
gc_message = True
|
||||
if self.notify_on_new_messages() or \
|
||||
(gc_message and other_tags_for_text == ['marked']):
|
||||
# we want to have save this message in events list
|
||||
# other_tags_for_text == ['marked'] --> highlighted gc message
|
||||
type_ = 'printed_' + self.type_id
|
||||
if gc_message:
|
||||
type_ = 'printed_gc_msg'
|
||||
show_in_roster = notify.get_show_in_roster('message_received',
|
||||
self.account, self.contact)
|
||||
|
@ -759,7 +769,8 @@ class ChatControlBase(MessageControl):
|
|||
#whatever is already typed
|
||||
start_iter = conv_buf.get_start_iter()
|
||||
end_iter = conv_buf.get_end_iter()
|
||||
self.orig_msg = conv_buf.get_text(start_iter, end_iter, 0).decode('utf-8')
|
||||
self.orig_msg = conv_buf.get_text(start_iter, end_iter, 0).decode(
|
||||
'utf-8')
|
||||
self.typing_new = False
|
||||
if direction == 'up':
|
||||
if self.sent_history_pos == 0:
|
||||
|
@ -819,8 +830,8 @@ class ChatControl(ChatControlBase):
|
|||
old_msg_kind = None # last kind of the printed message
|
||||
|
||||
def __init__(self, parent_win, contact, acct, resource = None):
|
||||
ChatControlBase.__init__(self, self.TYPE_ID, parent_win, 'chat_child_vbox',
|
||||
(_('Chat'), _('Chats')), contact, acct, resource)
|
||||
ChatControlBase.__init__(self, self.TYPE_ID, parent_win,
|
||||
'chat_child_vbox', (_('Chat'), _('Chats')), contact, acct, resource)
|
||||
|
||||
# for muc use:
|
||||
# widget = self.xml.get_widget('muc_window_actions_button')
|
||||
|
@ -828,13 +839,16 @@ class ChatControl(ChatControlBase):
|
|||
id = widget.connect('clicked', self.on_actions_button_clicked)
|
||||
self.handlers[id] = widget
|
||||
|
||||
self.hide_chat_buttons_always = gajim.config.get('always_hide_chat_buttons')
|
||||
self.hide_chat_buttons_always = gajim.config.get(
|
||||
'always_hide_chat_buttons')
|
||||
self.chat_buttons_set_visible(self.hide_chat_buttons_always)
|
||||
self.widget_set_visible(self.xml.get_widget('banner_eventbox'), gajim.config.get('hide_chat_banner'))
|
||||
self.widget_set_visible(self.xml.get_widget('banner_eventbox'),
|
||||
gajim.config.get('hide_chat_banner'))
|
||||
# Initialize drag-n-drop
|
||||
self.TARGET_TYPE_URI_LIST = 80
|
||||
self.dnd_list = [ ( 'text/uri-list', 0, self.TARGET_TYPE_URI_LIST ) ]
|
||||
id = self.widget.connect('drag_data_received', self._on_drag_data_received)
|
||||
id = self.widget.connect('drag_data_received',
|
||||
self._on_drag_data_received)
|
||||
self.handlers[id] = self.widget
|
||||
self.widget.drag_dest_set(gtk.DEST_DEFAULT_MOTION |
|
||||
gtk.DEST_DEFAULT_HIGHLIGHT |
|
||||
|
@ -856,17 +870,21 @@ class ChatControl(ChatControlBase):
|
|||
self._on_window_motion_notify)
|
||||
self.handlers[id] = self.parent_win.window
|
||||
message_tv_buffer = self.msg_textview.get_buffer()
|
||||
id = message_tv_buffer.connect('changed', self._on_message_tv_buffer_changed)
|
||||
id = message_tv_buffer.connect('changed',
|
||||
self._on_message_tv_buffer_changed)
|
||||
self.handlers[id] = message_tv_buffer
|
||||
|
||||
widget = self.xml.get_widget('avatar_eventbox')
|
||||
id = widget.connect('enter-notify-event', self.on_avatar_eventbox_enter_notify_event)
|
||||
id = widget.connect('enter-notify-event',
|
||||
self.on_avatar_eventbox_enter_notify_event)
|
||||
self.handlers[id] = widget
|
||||
|
||||
id = widget.connect('leave-notify-event', self.on_avatar_eventbox_leave_notify_event)
|
||||
id = widget.connect('leave-notify-event',
|
||||
self.on_avatar_eventbox_leave_notify_event)
|
||||
self.handlers[id] = widget
|
||||
|
||||
id = widget.connect('button-press-event', self.on_avatar_eventbox_button_press_event)
|
||||
id = widget.connect('button-press-event',
|
||||
self.on_avatar_eventbox_button_press_event)
|
||||
self.handlers[id] = widget
|
||||
|
||||
widget = self.xml.get_widget('gpg_togglebutton')
|
||||
|
@ -880,8 +898,6 @@ class ChatControl(ChatControlBase):
|
|||
self.update_ui()
|
||||
# restore previous conversation
|
||||
self.restore_conversation()
|
||||
# is account displayed after nick in banner ?
|
||||
self.account_displayed= False
|
||||
|
||||
def notify_on_new_messages(self):
|
||||
return gajim.config.get('trayicon_notification_on_new_messages')
|
||||
|
@ -1000,31 +1016,28 @@ class ChatControl(ChatControlBase):
|
|||
|
||||
banner_name_label = self.xml.get_widget('banner_name_label')
|
||||
name = contact.get_shown_name()
|
||||
avoid_showing_account_too = False
|
||||
if self.resource:
|
||||
name += '/' + self.resource
|
||||
avoid_showing_account_too = True
|
||||
if self.TYPE_ID == message_control.TYPE_PM:
|
||||
room_jid = self.contact.jid.split('/')[0]
|
||||
room_ctrl = gajim.interface.msg_win_mgr.get_control(room_jid,
|
||||
self.account)
|
||||
name = _('%s from room %s') % (name, room_ctrl.name)
|
||||
name = _('%(nickname)s from room %(room_name)s') %\
|
||||
{'nickname': name, 'room_name': room_ctrl.name}
|
||||
name = gtkgui_helpers.escape_for_pango_markup(name)
|
||||
|
||||
# We know our contacts nick, but if there are any other controls
|
||||
# with the same nick we need to also display the account
|
||||
# We know our contacts nick, but if another contact has the same nick
|
||||
# in another account we need to also display the account.
|
||||
# except if we are talking to two different resources of the same contact
|
||||
acct_info = ''
|
||||
self.account_displayed = False
|
||||
for ctrl in self.parent_win.controls():
|
||||
if ctrl == self or ctrl.type_id == 'gc':
|
||||
for account in gajim.contacts.get_accounts():
|
||||
if account == self.account:
|
||||
continue
|
||||
if self.contact.get_shown_name() == ctrl.contact.get_shown_name()\
|
||||
and not avoid_showing_account_too:
|
||||
self.account_displayed = True
|
||||
if not ctrl.account_displayed:
|
||||
# do that after this instance exists
|
||||
gobject.idle_add(ctrl.draw_banner)
|
||||
if acct_info: # We already found a contact with same nick
|
||||
break
|
||||
for jid in gajim.contacts.get_jid_list(account):
|
||||
contact_ = gajim.contacts.get_first_contact_from_jid(account, jid)
|
||||
if contact_.get_shown_name() == self.contact.get_shown_name():
|
||||
acct_info = ' (%s)' % \
|
||||
gtkgui_helpers.escape_for_pango_markup(self.account)
|
||||
break
|
||||
|
@ -1165,8 +1178,8 @@ class ChatControl(ChatControlBase):
|
|||
if current_state == 'composing':
|
||||
self.send_chatstate('paused') # pause composing
|
||||
|
||||
# assume no activity and let the motion-notify or 'insert-text' make them True
|
||||
# refresh 30 seconds vars too or else it's 30 - 5 = 25 seconds!
|
||||
# assume no activity and let the motion-notify or 'insert-text' make them
|
||||
# True refresh 30 seconds vars too or else it's 30 - 5 = 25 seconds!
|
||||
self.reset_kbd_mouse_timeout_vars()
|
||||
return True # loop forever
|
||||
|
||||
|
@ -1185,11 +1198,12 @@ class ChatControl(ChatControlBase):
|
|||
if self.mouse_over_in_last_5_secs or self.kbd_activity_in_last_5_secs:
|
||||
return True # loop forever
|
||||
|
||||
if not self.mouse_over_in_last_30_secs or self.kbd_activity_in_last_30_secs:
|
||||
if not self.mouse_over_in_last_30_secs or \
|
||||
self.kbd_activity_in_last_30_secs:
|
||||
self.send_chatstate('inactive', contact)
|
||||
|
||||
# assume no activity and let the motion-notify or 'insert-text' make them True
|
||||
# refresh 30 seconds too or else it's 30 - 5 = 25 seconds!
|
||||
# assume no activity and let the motion-notify or 'insert-text' make them
|
||||
# True refresh 30 seconds too or else it's 30 - 5 = 25 seconds!
|
||||
self.reset_kbd_mouse_timeout_vars()
|
||||
return True # loop forever
|
||||
|
||||
|
@ -1200,7 +1214,7 @@ class ChatControl(ChatControlBase):
|
|||
self.kbd_activity_in_last_30_secs = False
|
||||
|
||||
def print_conversation(self, text, frm = '', tim = None,
|
||||
encrypted = False, subject = None):
|
||||
encrypted = False, subject = None, xhtml = None):
|
||||
'''Print a line in the conversation:
|
||||
if contact is set to status: it's a status message
|
||||
if contact is set to another value: it's an outgoing message
|
||||
|
@ -1239,8 +1253,10 @@ class ChatControl(ChatControlBase):
|
|||
else:
|
||||
kind = 'outgoing'
|
||||
name = gajim.nicks[self.account]
|
||||
if not xhtml and not encrypted and gajim.config.get('rst_formatting_outgoing_messages'):
|
||||
xhtml = '<body xmlns="%s">%s</body>' % (NS_XHTML, create_xhtml(text))
|
||||
ChatControlBase.print_conversation_line(self, text, kind, name, tim,
|
||||
subject = subject, old_kind = self.old_msg_kind)
|
||||
subject = subject, old_kind = self.old_msg_kind, xhtml = xhtml)
|
||||
if text.startswith('/me ') or text.startswith('/me\n'):
|
||||
self.old_msg_kind = None
|
||||
else:
|
||||
|
@ -1458,18 +1474,20 @@ class ChatControl(ChatControlBase):
|
|||
|
||||
# prevent going paused if we we were not composing (JEP violation)
|
||||
if state == 'paused' and not contact.our_chatstate == 'composing':
|
||||
MessageControl.send_message(self, None, chatstate = 'active') # go active before
|
||||
# go active before
|
||||
MessageControl.send_message(self, None, chatstate = 'active')
|
||||
contact.our_chatstate = 'active'
|
||||
self.reset_kbd_mouse_timeout_vars()
|
||||
|
||||
# if we're inactive prevent composing (JEP violation)
|
||||
elif contact.our_chatstate == 'inactive' and state == 'composing':
|
||||
MessageControl.send_message(self, None, chatstate = 'active') # go active before
|
||||
# go active before
|
||||
MessageControl.send_message(self, None, chatstate = 'active')
|
||||
contact.our_chatstate = 'active'
|
||||
self.reset_kbd_mouse_timeout_vars()
|
||||
|
||||
MessageControl.send_message(self, None, chatstate = state, msg_id = contact.msg_id,
|
||||
composing_jep = contact.composing_jep)
|
||||
MessageControl.send_message(self, None, chatstate = state,
|
||||
msg_id = contact.msg_id, composing_jep = contact.composing_jep)
|
||||
contact.our_chatstate = state
|
||||
if contact.our_chatstate == 'active':
|
||||
self.reset_kbd_mouse_timeout_vars()
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
##
|
||||
## Contributors for this file:
|
||||
## - Yann Le Boulanger <asterix@lagaule.org>
|
||||
## - Nikos Kouremenos <nkour@jabber.org>
|
||||
## - Nikos Kouremenos <kourem@gmail.com>
|
||||
##
|
||||
## Copyright (C) 2003-2004 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
# Set the C flags to include the GTK+ and Python libraries
|
||||
PYTHON ?= python
|
||||
PYTHONVER = `$(PYTHON) -c 'import sys; print sys.version[:3]'`
|
||||
|
||||
HAVE_XSCRNSAVER = $(shell pkg-config --exists xscrnsaver && echo 'YES')
|
||||
|
||||
ifeq ($(HAVE_XSCRNSAVER),YES)
|
||||
# We link with libXScrnsaver from modular X.Org X11
|
||||
gtk_and_x_CFLAGS = `pkg-config --cflags gtk+-2.0 pygtk-2.0 xscrnsaver` -fpic -I/usr/include/python$(PYTHONVER) -I.
|
||||
gtk_and_x_LDFLAGS = `pkg-config --libs gtk+-2.0 pygtk-2.0 xscrnsaver` -lpython$(PYTHONVER)
|
||||
else
|
||||
# # We link with libXScrnsaver from monolithic X.Org X11
|
||||
gtk_and_x_CFLAGS = `pkg-config --cflags gtk+-2.0 pygtk-2.0` -fpic -I/usr/include/python$(PYTHONVER) -I.
|
||||
gtk_and_x_LDFLAGS = `pkg-config --libs gtk+-2.0 pygtk-2.0` \
|
||||
-L/usr/X11R6$(LIBDIR) -lX11 -lXss -lXext -lpython$(PYTHONVER)
|
||||
endif
|
||||
|
||||
all: idle.so
|
||||
|
||||
idle.so:
|
||||
$(CC) $(OPTFLAGS) $(CFLAGS) $(LDFLAGS) $(gtk_and_x_CFLAGS) $(gtk_and_x_LDFLAGS) -shared idle.c $^ -o $@
|
||||
|
||||
clean:
|
||||
rm -f *.so
|
||||
rm -rf build
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
#CLEANFILES = \
|
||||
# trayicon.c
|
||||
|
||||
INCLUDES = \
|
||||
$(PYTHON_INCLUDES)
|
||||
|
||||
|
||||
idlelib_LTLIBRARIES = idle.la
|
||||
idlelibdir = $(libdir)/gajim
|
||||
|
||||
idle_la_LIBADD = $(XSCREENSAVER_LIBS)
|
||||
|
||||
idle_la_SOURCES = idle.c
|
||||
|
||||
idle_la_LDFLAGS = \
|
||||
-module -avoid-version -no-undefined
|
||||
|
||||
idle_la_CFLAGS = $(XSCREENSAVER_CFLAGS)
|
||||
|
|
@ -0,0 +1,540 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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@
|
||||
|
||||
#CLEANFILES = \
|
||||
# trayicon.c
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
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/common
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-gettext.m4 \
|
||||
$(top_srcdir)/m4/python.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 =
|
||||
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 = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(idlelibdir)"
|
||||
idlelibLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(idlelib_LTLIBRARIES)
|
||||
idle_la_DEPENDENCIES =
|
||||
am_idle_la_OBJECTS = idle_la-idle.lo
|
||||
idle_la_OBJECTS = $(am_idle_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(idle_la_SOURCES)
|
||||
DIST_SOURCES = $(idle_la_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALL_LINGUAS = @ALL_LINGUAS@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
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@
|
||||
DBUS_CFLAGS = @DBUS_CFLAGS@
|
||||
DBUS_LIBS = @DBUS_LIBS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
GTKSPELL_CFLAGS = @GTKSPELL_CFLAGS@
|
||||
GTKSPELL_LIBS = @GTKSPELL_LIBS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
|
||||
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
|
||||
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
|
||||
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||
INTLTOOL_ICONV = @INTLTOOL_ICONV@
|
||||
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
|
||||
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
|
||||
INTLTOOL_MERGE = @INTLTOOL_MERGE@
|
||||
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
|
||||
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
|
||||
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
|
||||
INTLTOOL_PERL = @INTLTOOL_PERL@
|
||||
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
|
||||
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
|
||||
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
|
||||
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
|
||||
INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
|
||||
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
|
||||
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
|
||||
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
|
||||
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
|
||||
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
|
||||
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
|
||||
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
|
||||
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
|
||||
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
|
||||
PYGTK_CFLAGS = @PYGTK_CFLAGS@
|
||||
PYGTK_DEFS = @PYGTK_DEFS@
|
||||
PYGTK_LIBS = @PYGTK_LIBS@
|
||||
PYTHON = @PYTHON@
|
||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
|
||||
PYTHON_INCLUDES = @PYTHON_INCLUDES@
|
||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
|
||||
PYTHON_PREFIX = @PYTHON_PREFIX@
|
||||
PYTHON_VERSION = @PYTHON_VERSION@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMKMF = @XMKMF@
|
||||
XSCRNSAVER_CFLAGS = @XSCRNSAVER_CFLAGS@
|
||||
XSCRNSAVER_LIBS = @XSCRNSAVER_LIBS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
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@
|
||||
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@
|
||||
pkgpyexecdir = @pkgpyexecdir@
|
||||
pkgpythondir = @pkgpythondir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pyexecdir = @pyexecdir@
|
||||
pythondir = @pythondir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
INCLUDES = \
|
||||
$(PYTHON_INCLUDES)
|
||||
|
||||
idlelib_LTLIBRARIES = idle.la
|
||||
idlelibdir = $(libdir)/gajim
|
||||
idle_la_LIBADD = $(XSCREENSAVER_LIBS)
|
||||
idle_la_SOURCES = idle.c
|
||||
idle_la_LDFLAGS = \
|
||||
-module -avoid-version -no-undefined
|
||||
|
||||
idle_la_CFLAGS = $(XSCREENSAVER_CFLAGS)
|
||||
all: 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 \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/common/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu src/common/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
|
||||
install-idlelibLTLIBRARIES: $(idlelib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(idlelibdir)" || $(mkdir_p) "$(DESTDIR)$(idlelibdir)"
|
||||
@list='$(idlelib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=install $(idlelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(idlelibdir)/$$f'"; \
|
||||
$(LIBTOOL) --mode=install $(idlelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(idlelibdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-idlelibLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@set -x; list='$(idlelib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(idlelibdir)/$$p'"; \
|
||||
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(idlelibdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-idlelibLTLIBRARIES:
|
||||
-test -z "$(idlelib_LTLIBRARIES)" || rm -f $(idlelib_LTLIBRARIES)
|
||||
@list='$(idlelib_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
|
||||
idle.la: $(idle_la_OBJECTS) $(idle_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(idlelibdir) $(idle_la_LDFLAGS) $(idle_la_OBJECTS) $(idle_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idle_la-idle.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@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@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@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@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@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 $@ $<
|
||||
|
||||
idle_la-idle.lo: idle.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(idle_la_CFLAGS) $(CFLAGS) -MT idle_la-idle.lo -MD -MP -MF "$(DEPDIR)/idle_la-idle.Tpo" -c -o idle_la-idle.lo `test -f 'idle.c' || echo '$(srcdir)/'`idle.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/idle_la-idle.Tpo" "$(DEPDIR)/idle_la-idle.Plo"; else rm -f "$(DEPDIR)/idle_la-idle.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='idle.c' object='idle_la-idle.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(idle_la_CFLAGS) $(CFLAGS) -c -o idle_la-idle.lo `test -f 'idle.c' || echo '$(srcdir)/'`idle.c
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
|
||||
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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
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; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& 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)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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 $(LTLIBRARIES)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(idlelibdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-idlelibLTLIBRARIES clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-idlelibLTLIBRARIES
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
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: uninstall-idlelibLTLIBRARIES uninstall-info-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-idlelibLTLIBRARIES clean-libtool 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-exec \
|
||||
install-exec-am install-idlelibLTLIBRARIES install-info \
|
||||
install-info-am install-man 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 uninstall-idlelibLTLIBRARIES \
|
||||
uninstall-info-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:
|
|
@ -7,7 +7,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -53,7 +53,8 @@ class Config:
|
|||
'autopopupaway': [ opt_bool, False ],
|
||||
'use_notif_daemon': [ opt_bool, True , _('Use D-Bus and Notification-Daemon to show notifications') ],
|
||||
'ignore_unknown_contacts': [ opt_bool, False ],
|
||||
'showoffline': [ opt_bool, False, '', True ],
|
||||
'showoffline': [ opt_bool, False ],
|
||||
'show_transports_group': [ opt_bool, True ],
|
||||
'autoaway': [ opt_bool, True ],
|
||||
'autoawaytime': [ opt_int, 5, _('Time in minutes, after which your status changes to away.') ],
|
||||
'autoaway_message': [ opt_str, _('Away as a result of being idle') ],
|
||||
|
@ -86,12 +87,14 @@ class Config:
|
|||
'use_speller': [ opt_bool, False, ],
|
||||
'speller_language': [ opt_str, '', _('Language used by speller')],
|
||||
'print_time': [ opt_str, 'always', _('\'always\' - print time for every message.\n\'sometimes\' - print time every print_ichat_every_foo_minutes minute.\n\'never\' - never print time.')],
|
||||
'print_time_fuzzy': [ opt_int, 0, _('Value of fuzziness from 1 to 4 or 0 to disable fuzzyclock. 1 is the most precise clock, 4 the less precise one.') ],
|
||||
'print_time_fuzzy': [ opt_int, 0, _('Print time in chats using Fuzzy Clock. Value of fuzziness from 1 to 4, or 0 to disable fuzzyclock. 1 is the most precise clock, 4 the less precise one. This is used only if print_time is \'sometimes\'.') ],
|
||||
'emoticons_theme': [opt_str, 'static', '', True ],
|
||||
'ascii_formatting': [ opt_bool, True,
|
||||
_('Treat * / _ pairs as possible formatting characters.'), True],
|
||||
'show_ascii_formatting_chars': [ opt_bool, True , _('If True, do not '
|
||||
'remove */_ . So *abc* will be bold but with * * not removed.')],
|
||||
'rst_formatting_outgoing_messages': [ opt_bool, False,
|
||||
_('Uses ReStructured text markup for HTML, plus ascii formatting if selected.')],
|
||||
'sounds_on': [ opt_bool, True ],
|
||||
# 'aplay', 'play', 'esdplay', 'artsplay' detected first time only
|
||||
'soundplayer': [ opt_str, '' ],
|
||||
|
@ -220,6 +223,13 @@ class Config:
|
|||
'password': [ opt_str, '' ],
|
||||
'resource': [ opt_str, 'gajim', '', True ],
|
||||
'priority': [ opt_int, 5, '', True ],
|
||||
'adjust_priority_with_status': [ opt_bool, True, _('Priority will change automatically according to your status. Priorities are defined in autopriority_* options.') ],
|
||||
'autopriority_online': [ opt_int, 50],
|
||||
'autopriority_chat': [ opt_int, 50],
|
||||
'autopriority_away': [ opt_int, 40],
|
||||
'autopriority_xa': [ opt_int, 30],
|
||||
'autopriority_dnd': [ opt_int, 20],
|
||||
'autopriority_invisible': [ opt_int, 10],
|
||||
'autoconnect': [ opt_bool, False, '', True ],
|
||||
'autoreconnect': [ opt_bool, True ],
|
||||
'active': [ opt_bool, True],
|
||||
|
@ -335,15 +345,15 @@ class Config:
|
|||
_('Movie'): _("I'm watching a movie."),
|
||||
_('Working'): _("I'm working."),
|
||||
_('Phone'): _("I'm on the phone."),
|
||||
_('Out'): _("I'm out enjoying life"),
|
||||
_('Out'): _("I'm out enjoying life."),
|
||||
}
|
||||
|
||||
defaultstatusmsg_default = {
|
||||
'online': [ False, _("I'm available") ],
|
||||
'chat': [ False, _("I'm free for chat") ],
|
||||
'away': [ False, _('Be right back') ],
|
||||
'xa': [ False, _("I'm not available") ],
|
||||
'dnd': [ False, _('Do not disturb') ],
|
||||
'online': [ False, _("I'm available.") ],
|
||||
'chat': [ False, _("I'm free for chat.") ],
|
||||
'away': [ False, _('Be right back.') ],
|
||||
'xa': [ False, _("I'm not available.") ],
|
||||
'dnd': [ False, _('Do not disturb.') ],
|
||||
'invisible': [ False, _('Bye!') ],
|
||||
'offline': [ False, _('Bye!') ],
|
||||
}
|
||||
|
|
|
@ -42,6 +42,8 @@ from common import GnuPG
|
|||
from connection_handlers import *
|
||||
USE_GPG = GnuPG.USE_GPG
|
||||
|
||||
from rst_xhtml_generator import create_xhtml
|
||||
|
||||
class Connection(ConnectionHandlers):
|
||||
'''Connection class'''
|
||||
def __init__(self, name):
|
||||
|
@ -54,6 +56,7 @@ class Connection(ConnectionHandlers):
|
|||
self.is_zeroconf = False
|
||||
self.gpg = None
|
||||
self.status = ''
|
||||
self.priority = gajim.get_priority(name, 'offline')
|
||||
self.old_show = ''
|
||||
# increase/decrease default timeout for server responses
|
||||
self.try_connecting_for_foo_secs = 45
|
||||
|
@ -119,6 +122,7 @@ class Connection(ConnectionHandlers):
|
|||
self.on_purpose = on_purpose
|
||||
self.connected = 0
|
||||
self.time_to_reconnect = None
|
||||
self.privacy_rules_supported = False
|
||||
if self.connection:
|
||||
# make sure previous connection is completely closed
|
||||
gajim.proxy65_manager.disconnect(self.connection)
|
||||
|
@ -129,8 +133,8 @@ class Connection(ConnectionHandlers):
|
|||
def _disconnectedReconnCB(self):
|
||||
'''Called when we are disconnected'''
|
||||
gajim.log.debug('disconnectedReconnCB')
|
||||
if self.connected > 1:
|
||||
# we cannot change our status to offline or connectiong
|
||||
if gajim.account_is_connected(self.name):
|
||||
# we cannot change our status to offline or connecting
|
||||
# after we auth to server
|
||||
self.old_show = STATUS_LIST[self.connected]
|
||||
self.connected = 0
|
||||
|
@ -405,8 +409,6 @@ class Connection(ConnectionHandlers):
|
|||
con.RegisterDisconnectHandler(self._disconnectedReconnCB)
|
||||
gajim.log.debug(_('Connected to server %s:%s with %s') % (self._current_host['host'],
|
||||
self._current_host['port'], con_type))
|
||||
# Ask metacontacts before roster
|
||||
self.get_metacontacts()
|
||||
self._register_handlers(con, con_type)
|
||||
return True
|
||||
|
||||
|
@ -460,7 +462,7 @@ class Connection(ConnectionHandlers):
|
|||
# END connect
|
||||
|
||||
def quit(self, kill_core):
|
||||
if kill_core and self.connected > 1:
|
||||
if kill_core and gajim.account_is_connected(self.name):
|
||||
self.disconnect(on_purpose = True)
|
||||
|
||||
def get_privacy_lists(self):
|
||||
|
@ -532,14 +534,15 @@ class Connection(ConnectionHandlers):
|
|||
# active the privacy rule
|
||||
self.privacy_rules_supported = True
|
||||
self.activate_privacy_rule('invisible')
|
||||
prio = unicode(gajim.config.get_per('accounts', self.name, 'priority'))
|
||||
p = common.xmpp.Presence(typ = ptype, priority = prio, show = show)
|
||||
priority = unicode(gajim.get_priority(self.name, show))
|
||||
p = common.xmpp.Presence(typ = ptype, priority = priority, show = show)
|
||||
p = self.add_sha(p, ptype != 'unavailable')
|
||||
if msg:
|
||||
p.setStatus(msg)
|
||||
if signed:
|
||||
p.setTag(common.xmpp.NS_SIGNED + ' x').setData(signed)
|
||||
self.connection.send(p)
|
||||
self.priority = priority
|
||||
self.dispatch('STATUS', 'invisible')
|
||||
if initial:
|
||||
#ask our VCard
|
||||
|
@ -592,8 +595,11 @@ class Connection(ConnectionHandlers):
|
|||
if self.connection:
|
||||
con.set_send_timeout(self.keepalives, self.send_keepalive)
|
||||
self.connection.onreceive(None)
|
||||
# Ask metacontacts before roster
|
||||
self.get_metacontacts()
|
||||
iq = common.xmpp.Iq('get', common.xmpp.NS_PRIVACY, xmlns = '')
|
||||
id = self.connection.getAnID()
|
||||
iq.setID(id)
|
||||
self.awaiting_answers[id] = (PRIVACY_ARRIVED, )
|
||||
self.connection.send(iq)
|
||||
|
||||
def change_status(self, show, msg, auto = False):
|
||||
if not show in STATUS_LIST:
|
||||
|
@ -647,9 +653,8 @@ class Connection(ConnectionHandlers):
|
|||
iq = self.build_privacy_rule('visible', 'allow')
|
||||
self.connection.send(iq)
|
||||
self.activate_privacy_rule('visible')
|
||||
prio = unicode(gajim.config.get_per('accounts', self.name,
|
||||
'priority'))
|
||||
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow)
|
||||
priority = unicode(gajim.get_priority(self.name, sshow))
|
||||
p = common.xmpp.Presence(typ = None, priority = priority, show = sshow)
|
||||
p = self.add_sha(p)
|
||||
if msg:
|
||||
p.setStatus(msg)
|
||||
|
@ -657,6 +662,7 @@ class Connection(ConnectionHandlers):
|
|||
p.setTag(common.xmpp.NS_SIGNED + ' x').setData(signed)
|
||||
if self.connection:
|
||||
self.connection.send(p)
|
||||
self.priority = priority
|
||||
self.dispatch('STATUS', show)
|
||||
|
||||
def _on_disconnected(self):
|
||||
|
@ -667,17 +673,22 @@ class Connection(ConnectionHandlers):
|
|||
def get_status(self):
|
||||
return STATUS_LIST[self.connected]
|
||||
|
||||
def send_motd(self, jid, subject = '', msg = ''):
|
||||
|
||||
def send_motd(self, jid, subject = '', msg = '', xhtml = None):
|
||||
if not self.connection:
|
||||
return
|
||||
msg_iq = common.xmpp.Message(to = jid, body = msg, subject = subject)
|
||||
msg_iq = common.xmpp.Message(to = jid, body = msg, subject = subject,
|
||||
xhtml = xhtml)
|
||||
|
||||
self.connection.send(msg_iq)
|
||||
|
||||
def send_message(self, jid, msg, keyID, type = 'chat', subject='',
|
||||
chatstate = None, msg_id = None, composing_jep = None, resource = None,
|
||||
user_nick = None):
|
||||
user_nick = None, xhtml = None):
|
||||
if not self.connection:
|
||||
return
|
||||
if not xhtml and gajim.config.get('rst_formatting_outgoing_messages'):
|
||||
xhtml = create_xhtml(msg)
|
||||
if not msg and chatstate is None:
|
||||
return
|
||||
fjid = jid
|
||||
|
@ -691,18 +702,24 @@ class Connection(ConnectionHandlers):
|
|||
if msgenc:
|
||||
msgtxt = '[This message is encrypted]'
|
||||
lang = os.getenv('LANG')
|
||||
if lang is not None or lang != 'en': # we're not english
|
||||
msgtxt = _('[This message is encrypted]') +\
|
||||
' ([This message is encrypted])' # one in locale and one en
|
||||
if lang is not None and lang != 'en': # we're not english
|
||||
# one in locale and one en
|
||||
msgtxt = _('[This message is *encrypted* (See :JEP:`27`]') +\
|
||||
' ([This message is *encrypted* (See :JEP:`27`])'
|
||||
if msgtxt and not xhtml and gajim.config.get(
|
||||
'rst_formatting_outgoing_messages'):
|
||||
# Generate a XHTML part using reStructured text markup
|
||||
xhtml = create_xhtml(msgtxt)
|
||||
if type == 'chat':
|
||||
msg_iq = common.xmpp.Message(to = fjid, body = msgtxt, typ = type)
|
||||
msg_iq = common.xmpp.Message(to = fjid, body = msgtxt, typ = type,
|
||||
xhtml = xhtml)
|
||||
else:
|
||||
if subject:
|
||||
msg_iq = common.xmpp.Message(to = fjid, body = msgtxt,
|
||||
typ = 'normal', subject = subject)
|
||||
typ = 'normal', subject = subject, xhtml = xhtml)
|
||||
else:
|
||||
msg_iq = common.xmpp.Message(to = fjid, body = msgtxt,
|
||||
typ = 'normal')
|
||||
typ = 'normal', xhtml = xhtml)
|
||||
if msgenc:
|
||||
msg_iq.setTag(common.xmpp.NS_ENCRYPTED + ' x').setData(msgenc)
|
||||
|
||||
|
@ -720,7 +737,8 @@ class Connection(ConnectionHandlers):
|
|||
msg_iq.setTag(chatstate, namespace = common.xmpp.NS_CHATSTATES)
|
||||
if composing_jep == 'JEP-0022' or not composing_jep:
|
||||
# JEP-0022
|
||||
chatstate_node = msg_iq.setTag('x', namespace = common.xmpp.NS_EVENT)
|
||||
chatstate_node = msg_iq.setTag('x',
|
||||
namespace = common.xmpp.NS_EVENT)
|
||||
if not msgtxt: # when no <body>, add <id>
|
||||
if not msg_id: # avoid putting 'None' in <id> tag
|
||||
msg_id = ''
|
||||
|
@ -982,10 +1000,12 @@ class Connection(ConnectionHandlers):
|
|||
last_log = 0
|
||||
self.last_history_line[jid]= last_log
|
||||
|
||||
def send_gc_message(self, jid, msg):
|
||||
def send_gc_message(self, jid, msg, xhtml = None):
|
||||
if not self.connection:
|
||||
return
|
||||
msg_iq = common.xmpp.Message(jid, msg, typ = 'groupchat')
|
||||
if not xhtml and gajim.config.get('rst_formatting_outgoing_messages'):
|
||||
xhtml = create_xhtml(msg)
|
||||
msg_iq = common.xmpp.Message(jid, msg, typ = 'groupchat', xhtml = xhtml)
|
||||
self.connection.send(msg_iq)
|
||||
self.dispatch('MSGSENT', (jid, msg))
|
||||
|
||||
|
@ -1111,11 +1131,11 @@ class Connection(ConnectionHandlers):
|
|||
self.connection.send(iq)
|
||||
|
||||
def unregister_account(self, on_remove_success):
|
||||
# no need to write this as a class method and keep the value of on_remove_success
|
||||
# as a class property as pass it as an argument
|
||||
# no need to write this as a class method and keep the value of
|
||||
# on_remove_success as a class property as pass it as an argument
|
||||
def _on_unregister_account_connect(con):
|
||||
self.on_connect_auth = None
|
||||
if self.connected > 1:
|
||||
if gajim.account_is_connected(self.name):
|
||||
hostname = gajim.config.get_per('accounts', self.name, 'hostname')
|
||||
iq = common.xmpp.Iq(typ = 'set', to = hostname)
|
||||
q = iq.setTag(common.xmpp.NS_REGISTER + ' query').setTag('remove')
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
##
|
||||
## Contributors for this file:
|
||||
## - Yann Le Boulanger <asterix@lagaule.org>
|
||||
## - Nikos Kouremenos <nkour@jabber.org>
|
||||
## - Nikos Kouremenos <kourem@gmail.com>
|
||||
## - Dimitur Kirov <dkirov@gmail.com>
|
||||
## - Travis Shirk <travis@pobox.com>
|
||||
##
|
||||
|
@ -41,6 +41,7 @@ VCARD_PUBLISHED = 'vcard_published'
|
|||
VCARD_ARRIVED = 'vcard_arrived'
|
||||
AGENT_REMOVED = 'agent_removed'
|
||||
METACONTACTS_ARRIVED = 'metacontacts_arrived'
|
||||
PRIVACY_ARRIVED = 'privacy_arrived'
|
||||
HAS_IDLE = True
|
||||
try:
|
||||
import common.idle as idle # when we launch gajim from sources
|
||||
|
@ -955,9 +956,7 @@ class ConnectionVcard:
|
|||
'invisible':
|
||||
self.vcard_sha = new_sha
|
||||
sshow = helpers.get_xmpp_show(STATUS_LIST[self.connected])
|
||||
prio = unicode(gajim.config.get_per('accounts', self.name,
|
||||
'priority'))
|
||||
p = common.xmpp.Presence(typ = None, priority = prio,
|
||||
p = common.xmpp.Presence(typ = None, priority = self.priority,
|
||||
show = sshow, status = self.status)
|
||||
p = self.add_sha(p)
|
||||
self.connection.send(p)
|
||||
|
@ -1004,6 +1003,11 @@ class ConnectionVcard:
|
|||
self.dispatch('METACONTACTS', meta_list)
|
||||
# We can now continue connection by requesting the roster
|
||||
self.connection.initRoster()
|
||||
elif self.awaiting_answers[id][0] == PRIVACY_ARRIVED:
|
||||
if iq_obj.getType() != 'error':
|
||||
self.privacy_rules_supported = True
|
||||
# Ask metacontacts before roster
|
||||
self.get_metacontacts()
|
||||
|
||||
del self.awaiting_answers[id]
|
||||
|
||||
|
@ -1083,10 +1087,8 @@ class ConnectionVcard:
|
|||
if STATUS_LIST[self.connected] == 'invisible':
|
||||
return
|
||||
sshow = helpers.get_xmpp_show(STATUS_LIST[self.connected])
|
||||
prio = unicode(gajim.config.get_per('accounts', self.name,
|
||||
'priority'))
|
||||
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow,
|
||||
status = self.status)
|
||||
p = common.xmpp.Presence(typ = None, priority = self.priority,
|
||||
show = sshow, status = self.status)
|
||||
p = self.add_sha(p)
|
||||
self.connection.send(p)
|
||||
else:
|
||||
|
@ -1115,11 +1117,11 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
|
||||
def build_http_auth_answer(self, iq_obj, answer):
|
||||
if answer == 'yes':
|
||||
iq = iq_obj.buildReply('result')
|
||||
self.connection.send(iq_obj.buildReply('result'))
|
||||
elif answer == 'no':
|
||||
iq = iq_obj.buildReply('error')
|
||||
iq.setError('not-authorized', 401)
|
||||
self.connection.send(iq)
|
||||
err = common.xmpp.Error(iq_obj,
|
||||
common.xmpp.protocol.ERR_NOT_AUTHORIZED)
|
||||
self.connection.send(err)
|
||||
|
||||
def _HttpAuthCB(self, con, iq_obj):
|
||||
gajim.log.debug('HttpAuthCB')
|
||||
|
@ -1311,6 +1313,7 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
def _messageCB(self, con, msg):
|
||||
'''Called when we receive a message'''
|
||||
msgtxt = msg.getBody()
|
||||
msghtml = msg.getXHTML()
|
||||
mtype = msg.getType()
|
||||
subject = msg.getSubject() # if not there, it's None
|
||||
tim = msg.getTimestamp()
|
||||
|
@ -1396,7 +1399,7 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
has_timestamp = False
|
||||
if msg.timestamp:
|
||||
has_timestamp = True
|
||||
self.dispatch('GC_MSG', (frm, msgtxt, tim, has_timestamp))
|
||||
self.dispatch('GC_MSG', (frm, msgtxt, tim, has_timestamp, msghtml))
|
||||
if self.name not in no_log_for and not int(float(time.mktime(tim))) <= \
|
||||
self.last_history_line[jid] and msgtxt:
|
||||
gajim.logger.write('gc_msg', frm, msgtxt, tim = tim)
|
||||
|
@ -1408,7 +1411,7 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
msg_id = gajim.logger.write('chat_msg_recv', frm, msgtxt, tim = tim,
|
||||
subject = subject)
|
||||
self.dispatch('MSG', (frm, msgtxt, tim, encrypted, mtype, subject,
|
||||
chatstate, msg_id, composing_jep, user_nick))
|
||||
chatstate, msg_id, composing_jep, user_nick, msghtml))
|
||||
else: # it's single message
|
||||
if self.name not in no_log_for and jid not in no_log_for and msgtxt:
|
||||
gajim.logger.write('single_msg_recv', frm, msgtxt, tim = tim,
|
||||
|
@ -1422,7 +1425,7 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
self.dispatch('GC_INVITATION',(frm, jid_from, reason, password))
|
||||
else:
|
||||
self.dispatch('MSG', (frm, msgtxt, tim, encrypted, 'normal',
|
||||
subject, chatstate, msg_id, composing_jep, user_nick))
|
||||
subject, chatstate, msg_id, composing_jep, user_nick, msghtml))
|
||||
# END messageCB
|
||||
|
||||
def _presenceCB(self, con, prs):
|
||||
|
@ -1439,8 +1442,8 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
# one
|
||||
who = str(prs.getFrom())
|
||||
jid_stripped, resource = gajim.get_room_and_nick_from_fjid(who)
|
||||
self.dispatch('GC_MSG', (jid_stripped, _('Nickname not allowed: %s') % \
|
||||
resource, None, False))
|
||||
self.dispatch('GC_MSG', (jid_stripped,
|
||||
_('Nickname not allowed: %s') % resource, None, False, None))
|
||||
return
|
||||
jid_stripped, resource = gajim.get_room_and_nick_from_fjid(who)
|
||||
timestamp = None
|
||||
|
@ -1796,12 +1799,11 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
if show == 'invisible':
|
||||
self.send_invisible_presence(msg, signed, True)
|
||||
return
|
||||
prio = unicode(gajim.config.get_per('accounts', self.name,
|
||||
'priority'))
|
||||
priority = gajim.get_priority(self.name, sshow)
|
||||
vcard = self.get_cached_vcard(jid)
|
||||
if vcard and vcard.has_key('PHOTO') and vcard['PHOTO'].has_key('SHA'):
|
||||
self.vcard_sha = vcard['PHOTO']['SHA']
|
||||
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow)
|
||||
p = common.xmpp.Presence(typ = None, priority = priority, show = sshow)
|
||||
p = self.add_sha(p)
|
||||
if msg:
|
||||
p.setStatus(msg)
|
||||
|
@ -1810,6 +1812,7 @@ class ConnectionHandlers(ConnectionVcard, ConnectionBytestream, ConnectionDisco)
|
|||
|
||||
if self.connection:
|
||||
self.connection.send(p)
|
||||
self.priority = priority
|
||||
self.dispatch('STATUS', show)
|
||||
# ask our VCard
|
||||
self.request_vcard(None)
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
## dbus_support.py
|
||||
##
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Copyright (C) 2005 Nikos Kouremenos <kourem@gmail.com>
|
||||
## Copyright (C) 2005 Dimitur Kirov <dkirov@gmail.com>
|
||||
## Copyright (C) 2005 Andrew Sayman <lorien420@myrealbox.com>
|
||||
##
|
||||
## 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; version 2 only.
|
||||
##
|
||||
## 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.
|
||||
##
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
from common import gajim
|
||||
from common import exceptions
|
||||
|
||||
_GAJIM_ERROR_IFACE = 'org.gajim.dbus.Error'
|
||||
|
||||
try:
|
||||
import dbus
|
||||
import dbus.service
|
||||
import dbus.glib
|
||||
supported = True # does use have D-Bus bindings?
|
||||
except ImportError:
|
||||
supported = False
|
||||
if not os.name == 'nt': # only say that to non Windows users
|
||||
print _('D-Bus python bindings are missing in this computer')
|
||||
print _('D-Bus capabilities of Gajim cannot be used')
|
||||
|
||||
class SessionBus:
|
||||
'''A Singleton for the D-Bus SessionBus'''
|
||||
def __init__(self):
|
||||
self.session_bus = None
|
||||
|
||||
def SessionBus(self):
|
||||
if not supported:
|
||||
raise exceptions.DbusNotSupported
|
||||
|
||||
if not self.present():
|
||||
raise exceptions.SessionBusNotPresent
|
||||
return self.session_bus
|
||||
|
||||
def bus(self):
|
||||
return self.SessionBus()
|
||||
|
||||
def present(self):
|
||||
if not supported:
|
||||
return False
|
||||
if self.session_bus is None:
|
||||
try:
|
||||
self.session_bus = dbus.SessionBus()
|
||||
except dbus.dbus_bindings.DBusException:
|
||||
self.session_bus = None
|
||||
return False
|
||||
if self.session_bus is None:
|
||||
return False
|
||||
return True
|
||||
|
||||
session_bus = SessionBus()
|
||||
|
||||
def get_interface(interface, path):
|
||||
'''Returns an interface on the current SessionBus. If the interface isn't
|
||||
running, it tries to start it first.'''
|
||||
if not supported:
|
||||
return None
|
||||
if session_bus.present():
|
||||
bus = session_bus.SessionBus()
|
||||
else:
|
||||
return None
|
||||
try:
|
||||
obj = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')
|
||||
dbus_iface = dbus.Interface(obj, 'org.freedesktop.DBus')
|
||||
running_services = dbus_iface.ListNames()
|
||||
started = True
|
||||
if interface not in running_services:
|
||||
# try to start the service
|
||||
if dbus_iface.StartServiceByName(interface, dbus.UInt32(0)) == 1:
|
||||
started = True
|
||||
else:
|
||||
started = False
|
||||
if not started:
|
||||
return None
|
||||
obj = bus.get_object(interface, path)
|
||||
return dbus.Interface(obj, interface)
|
||||
except Exception, e:
|
||||
gajim.log.debug(str(e))
|
||||
return None
|
||||
|
||||
|
||||
def get_notifications_interface():
|
||||
'''Returns the notifications interface.'''
|
||||
return get_interface('org.freedesktop.Notifications',
|
||||
'/org/freedesktop/Notifications')
|
||||
|
||||
if supported:
|
||||
class MissingArgument(dbus.DBusException):
|
||||
_dbus_error_name = _GAJIM_ERROR_IFACE + '.MissingArgument'
|
||||
|
||||
class InvalidArgument(dbus.DBusException):
|
||||
'''Raised when one of the provided arguments is invalid.'''
|
||||
_dbus_error_name = _GAJIM_ERROR_IFACE + '.InvalidArgument'
|
|
@ -5,7 +5,7 @@
|
|||
##
|
||||
## Copyright (C) 2006 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -2,16 +2,10 @@
|
|||
##
|
||||
## Contributors for this file:
|
||||
## - Yann Le Boulanger <asterix@lagaule.org>
|
||||
## - Nikos Kouremenos <kourem@gmail.com>
|
||||
## -
|
||||
##
|
||||
## Copyright (C) 2003-2004 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
## Copyright (C) 2005-2006 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published
|
||||
|
|
|
@ -28,7 +28,7 @@ from events import Events
|
|||
interface = None # The actual interface (the gtk one for the moment)
|
||||
config = config.Config()
|
||||
version = config.get('version')
|
||||
connections = {}
|
||||
connections = {} # 'account name': 'account (connection.Connection) instance'
|
||||
verbose = False
|
||||
|
||||
h = logging.StreamHandler()
|
||||
|
@ -122,6 +122,9 @@ SHOW_LIST = ['offline', 'connecting', 'online', 'chat', 'away', 'xa', 'dnd',
|
|||
|
||||
# zeroconf account name
|
||||
ZEROCONF_ACC_NAME = 'Local'
|
||||
priority_dict = {}
|
||||
for status in ('online', 'chat', 'away', 'xa', 'dnd', 'invisible'):
|
||||
priority_dict[status] = config.get('autopriority' + status)
|
||||
|
||||
def get_nick_from_jid(jid):
|
||||
pos = jid.find('@')
|
||||
|
@ -210,11 +213,36 @@ def get_number_of_connected_accounts(accounts_list = None):
|
|||
accounts = connections.keys()
|
||||
else:
|
||||
accounts = accounts_list
|
||||
for acct in accounts:
|
||||
if connections[acct].connected > 1:
|
||||
for account in accounts:
|
||||
if account_is_connected(account):
|
||||
connected_accounts = connected_accounts + 1
|
||||
return connected_accounts
|
||||
|
||||
def account_is_connected(account):
|
||||
if account not in connections:
|
||||
return False
|
||||
if connections[account].connected > 1: # 0 is offline, 1 is connecting
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def account_is_disconnected(account):
|
||||
return not account_is_connected(account)
|
||||
|
||||
def get_number_of_securely_connected_accounts():
|
||||
'''returns the number of the accounts that are SSL/TLS connected'''
|
||||
num_of_secured = 0
|
||||
for account in connections:
|
||||
if account_is_securely_connected(account):
|
||||
num_of_secured += 1
|
||||
return num_of_secured
|
||||
|
||||
def account_is_securely_connected(account):
|
||||
if account in con_types and con_types[account] in ('tls', 'ssl'):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def get_transport_name_from_jid(jid, use_config_setting = True):
|
||||
'''returns 'aim', 'gg', 'irc' etc
|
||||
if JID is not from transport returns None'''
|
||||
|
@ -302,3 +330,12 @@ def get_name_from_jid(account, jid):
|
|||
else:
|
||||
actor = jid
|
||||
return actor
|
||||
|
||||
def get_priority(account, show):
|
||||
'''return the priority an account must have'''
|
||||
if not show:
|
||||
show = 'online'
|
||||
if show in priority_dict and config.get_per('accounts', account,
|
||||
'adjust_priority_with_status'):
|
||||
return priority_dict[show]
|
||||
return config.get_per('accounts', account, 'priority')
|
||||
|
|
|
@ -377,9 +377,14 @@ def is_in_path(name_of_command, return_abs_path = False):
|
|||
return is_in_dir
|
||||
|
||||
def exec_command(command):
|
||||
'''command is a string that contain arguments'''
|
||||
# os.system(command)
|
||||
subprocess.Popen(command.split())
|
||||
subprocess.Popen(command, shell = True)
|
||||
|
||||
def build_command(executable, parameter):
|
||||
# we add to the parameter (can hold path with spaces)
|
||||
# "" so we have good parsing from shell
|
||||
parameter = parameter.replace('"', '\\"') # but first escape "
|
||||
command = '%s "%s"' % (executable, parameter)
|
||||
return command
|
||||
|
||||
def launch_browser_mailer(kind, uri):
|
||||
#kind = 'url' or 'mail'
|
||||
|
@ -404,7 +409,8 @@ def launch_browser_mailer(kind, uri):
|
|||
command = gajim.config.get('custommailapp')
|
||||
if command == '': # if no app is configured
|
||||
return
|
||||
command = command + ' ' + uri
|
||||
|
||||
command = build_command(command, uri)
|
||||
try:
|
||||
exec_command(command)
|
||||
except:
|
||||
|
@ -425,7 +431,7 @@ def launch_file_manager(path_to_open):
|
|||
command = gajim.config.get('custom_file_manager')
|
||||
if command == '': # if no app is configured
|
||||
return
|
||||
command = command + ' ' + path_to_open
|
||||
command = build_command(command, path_to_open)
|
||||
try:
|
||||
exec_command(command)
|
||||
except:
|
||||
|
@ -453,7 +459,7 @@ def play_sound_file(path_to_soundfile):
|
|||
if gajim.config.get('soundplayer') == '':
|
||||
return
|
||||
player = gajim.config.get('soundplayer')
|
||||
command = player + ' ' + path_to_soundfile
|
||||
command = build_command(player, path_to_soundfile)
|
||||
exec_command(command)
|
||||
|
||||
def get_file_path_from_dnd_dropped_uri(uri):
|
||||
|
@ -614,7 +620,6 @@ def get_documents_path():
|
|||
path = os.path.expanduser('~')
|
||||
return path
|
||||
|
||||
# moved from connection.py
|
||||
def get_full_jid_from_iq(iq_obj):
|
||||
'''return the full jid (with resource) from an iq as unicode'''
|
||||
return parse_jid(str(iq_obj.getFrom()))
|
||||
|
@ -741,23 +746,21 @@ def sanitize_filename(filename):
|
|||
|
||||
return filename
|
||||
|
||||
def allow_showing_notification(account, type = None, advanced_notif_num = None,
|
||||
first = True):
|
||||
def allow_showing_notification(account, type = None,
|
||||
advanced_notif_num = None, is_first_message = True):
|
||||
'''is it allowed to show nofication?
|
||||
check OUR status and if we allow notifications for that status
|
||||
type is the option that need to be True ex: notify_on_signing
|
||||
first: set it to false when it's not the first message'''
|
||||
if advanced_notif_num != None:
|
||||
type is the option that need to be True e.g.: notify_on_signing
|
||||
is_first_message: set it to false when it's not the first message'''
|
||||
if advanced_notif_num is not None:
|
||||
popup = gajim.config.get_per('notifications', str(advanced_notif_num),
|
||||
'popup')
|
||||
if popup == 'yes':
|
||||
return True
|
||||
if popup == 'no':
|
||||
return False
|
||||
if type and (not gajim.config.get(type) or not first):
|
||||
if type and (not gajim.config.get(type) or not is_first_message):
|
||||
return False
|
||||
if type and gajim.config.get(type) and first:
|
||||
return True
|
||||
if gajim.config.get('autopopupaway'): # always show notification
|
||||
return True
|
||||
if gajim.connections[account].connected in (2, 3): # we're online or chat
|
||||
|
@ -781,7 +784,7 @@ def allow_popup_window(account, advanced_notif_num = None):
|
|||
return False
|
||||
|
||||
def allow_sound_notification(sound_event, advanced_notif_num = None):
|
||||
if advanced_notif_num != None:
|
||||
if advanced_notif_num is not None:
|
||||
sound = gajim.config.get_per('notifications', str(advanced_notif_num),
|
||||
'sound')
|
||||
if sound == 'yes':
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
##
|
||||
## Contributors for this file:
|
||||
## - Yann Le Boulanger <asterix@lagaule.org>
|
||||
## - Nikos Kouremenos <nkour@jabber.org>
|
||||
## - Nikos Kouremenos <kourem@gmail.com>
|
||||
## - Dimitur Kirov <dkirov@gmail.com>
|
||||
##
|
||||
## Copyright (C) 2003-2004 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -357,10 +357,10 @@ class Protocol(Node):
|
|||
if tag.getName()=='text': return tag.getData()
|
||||
return self.getError()
|
||||
def getErrorCode(self):
|
||||
""" Return the error code. Obsolette. """
|
||||
""" Return the error code. Obsolete. """
|
||||
return self.getTagAttr('error','code')
|
||||
def setError(self,error,code=None):
|
||||
""" Set the error code. Obsolette. Use error-conditions instead. """
|
||||
""" Set the error code. Obsolete. Use error-conditions instead. """
|
||||
if code:
|
||||
if str(code) in _errorcodes.keys(): error=ErrorNode(_errorcodes[str(code)],text=error)
|
||||
else: error=ErrorNode(ERR_UNDEFINED_CONDITION,code=code,typ='cancel',text=error)
|
||||
|
@ -397,10 +397,18 @@ class Message(Protocol):
|
|||
def getBody(self):
|
||||
""" Returns text of the message. """
|
||||
return self.getTagData('body')
|
||||
def getXHTML(self):
|
||||
""" Returns serialized xhtml-im body text of the message. """
|
||||
def getXHTML(self, xmllang=None):
|
||||
""" Returns serialized xhtml-im element text of the message.
|
||||
|
||||
TODO: Returning a DOM could make rendering faster."""
|
||||
xhtml = self.getTag('html')
|
||||
return str(xhtml.getTag('body'))
|
||||
if xhtml:
|
||||
if xmllang:
|
||||
body = xhtml.getTag('body', attrs={'xml:lang':xmllang})
|
||||
else:
|
||||
body = xhtml.getTag('body')
|
||||
return str(body)
|
||||
return None
|
||||
def getSubject(self):
|
||||
""" Returns subject of the message. """
|
||||
return self.getTagData('subject')
|
||||
|
@ -410,11 +418,22 @@ class Message(Protocol):
|
|||
def setBody(self,val):
|
||||
""" Sets the text of the message. """
|
||||
self.setTagData('body',val)
|
||||
def setXHTML(self,val):
|
||||
|
||||
def setXHTML(self,val,xmllang=None):
|
||||
""" Sets the xhtml text of the message (JEP-0071).
|
||||
The parameter is the "inner html" to the body."""
|
||||
dom = NodeBuilder(val)
|
||||
self.setTag('html',namespace=NS_XHTML_IM).setTag('body',namespace=NS_XHTML).addChild(node=dom.getDom())
|
||||
try:
|
||||
if xmllang:
|
||||
dom = NodeBuilder('<body xmlns="'+NS_XHTML+'" xml:lang="'+xmllang+'" >' + val + '</body>').getDom()
|
||||
else:
|
||||
dom = NodeBuilder('<body xmlns="'+NS_XHTML+'">'+val+'</body>',0).getDom()
|
||||
if self.getTag('html'):
|
||||
self.getTag('html').addChild(node=dom)
|
||||
else:
|
||||
self.setTag('html',namespace=NS_XHTML_IM).addChild(node=dom)
|
||||
except Exception, e:
|
||||
print "Error", e
|
||||
pass #FIXME: log. we could not set xhtml (parse error, whatever)
|
||||
def setSubject(self,val):
|
||||
""" Sets the subject of the message. """
|
||||
self.setTagData('subject',val)
|
||||
|
|
|
@ -62,6 +62,7 @@ class ConnectionZeroconf(ConnectionHandlersZeroconf):
|
|||
self.privacy_rules_supported = False
|
||||
self.status = ''
|
||||
self.old_show = ''
|
||||
self.priority = 0
|
||||
|
||||
self.call_resolve_timeout = False
|
||||
|
||||
|
|
|
@ -462,9 +462,14 @@ class PreferencesWindow:
|
|||
self.xml.get_widget('send_os_info_checkbutton').set_active(st)
|
||||
|
||||
# set status msg from currently playing music track
|
||||
widget = self.xml.get_widget(
|
||||
'set_status_msg_from_current_music_track_checkbutton')
|
||||
if os.name == 'nt':
|
||||
widget.set_no_show_all(True)
|
||||
widget.hide()
|
||||
else:
|
||||
st = gajim.config.get('set_status_msg_from_current_music_track')
|
||||
self.xml.get_widget(
|
||||
'set_status_msg_from_current_music_track_checkbutton').set_active(st)
|
||||
widget.set_active(st)
|
||||
|
||||
# Notify user of new gmail e-mail messages,
|
||||
# only show checkbox if user has a gtalk account
|
||||
|
@ -1189,6 +1194,9 @@ class AccountModificationWindow:
|
|||
|
||||
self.xml.get_widget('resource_entry').set_text(gajim.config.get_per(
|
||||
'accounts', self.account, 'resource'))
|
||||
self.xml.get_widget('adjust_priority_with_status_checkbutton').set_active(
|
||||
gajim.config.get_per('accounts', self.account,
|
||||
'adjust_priority_with_status'))
|
||||
self.xml.get_widget('priority_spinbutton').set_value(gajim.config.\
|
||||
get_per('accounts', self.account, 'priority'))
|
||||
|
||||
|
@ -1253,6 +1261,10 @@ class AccountModificationWindow:
|
|||
return True
|
||||
return False
|
||||
|
||||
def on_adjust_priority_with_status_checkbutton_toggled(self, widget):
|
||||
self.xml.get_widget('priority_spinbutton').set_sensitive(
|
||||
not widget.get_active())
|
||||
|
||||
def on_save_button_clicked(self, widget):
|
||||
'''When save button is clicked: Save information in config file'''
|
||||
config = {}
|
||||
|
@ -1858,6 +1870,14 @@ class AccountsWindow:
|
|||
else:
|
||||
gajim.interface.instances[account]['remove_account'] = \
|
||||
RemoveAccountWindow(account)
|
||||
if win_opened:
|
||||
self.dialog = dialogs.ConfirmationDialog(
|
||||
_('You have opened chat in account %s') % account,
|
||||
_('All chat and groupchat windows will be closed. Do you want to '
|
||||
'continue?'),
|
||||
on_response_ok = (remove, account))
|
||||
else:
|
||||
remove(widget, account)
|
||||
|
||||
def on_modify_button_clicked(self, widget):
|
||||
'''When modify button is clicked:
|
||||
|
@ -2442,7 +2462,7 @@ class RemoveAccountWindow:
|
|||
if not res:
|
||||
return
|
||||
# Close all opened windows
|
||||
gajim.interface.roster.close_all(self.account)
|
||||
gajim.interface.roster.close_all(self.account, force = True)
|
||||
gajim.connections[self.account].disconnect(on_purpose = True)
|
||||
del gajim.connections[self.account]
|
||||
gajim.config.del_per('accounts', self.account)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
@ -39,12 +39,16 @@ from common import helpers
|
|||
from calendar import timegm
|
||||
from common.fuzzyclock import FuzzyClock
|
||||
|
||||
from htmltextview import HtmlTextView
|
||||
|
||||
|
||||
class ConversationTextview:
|
||||
'''Class for the conversation textview (where user reads already said messages)
|
||||
for chat/groupchat windows'''
|
||||
def __init__(self, account):
|
||||
# no need to inherit TextView, use it as property is safer
|
||||
self.tv = gtk.TextView()
|
||||
self.tv = HtmlTextView()
|
||||
self.tv.html_hyperlink_handler = self.html_hyperlink_handler
|
||||
|
||||
# set properties
|
||||
self.tv.set_border_width(1)
|
||||
|
@ -98,7 +102,7 @@ class ConversationTextview:
|
|||
tag.set_property('weight', pango.WEIGHT_BOLD)
|
||||
|
||||
tag = buffer.create_tag('time_sometimes')
|
||||
tag.set_property('foreground', 'grey')
|
||||
tag.set_property('foreground', 'darkgrey')
|
||||
tag.set_property('scale', pango.SCALE_SMALL)
|
||||
tag.set_property('justification', gtk.JUSTIFY_CENTER)
|
||||
|
||||
|
@ -141,6 +145,8 @@ class ConversationTextview:
|
|||
|
||||
path_to_file = os.path.join(gajim.DATA_DIR, 'pixmaps', 'muc_separator.png')
|
||||
self.focus_out_line_pixbuf = gtk.gdk.pixbuf_new_from_file(path_to_file)
|
||||
# use it for hr too
|
||||
self.tv.focus_out_line_pixbuf = self.focus_out_line_pixbuf
|
||||
|
||||
def del_handlers(self):
|
||||
for i in self.handlers.keys():
|
||||
|
@ -504,6 +510,15 @@ class ConversationTextview:
|
|||
# we launch the correct application
|
||||
helpers.launch_browser_mailer(kind, word)
|
||||
|
||||
def html_hyperlink_handler(self, texttag, widget, event, iter, kind, href):
|
||||
if event.type == gtk.gdk.BUTTON_PRESS:
|
||||
if event.button == 3: # right click
|
||||
self.make_link_menu(event, kind, href)
|
||||
else:
|
||||
# we launch the correct application
|
||||
helpers.launch_browser_mailer(kind, href)
|
||||
|
||||
|
||||
def detect_and_print_special_text(self, otext, other_tags):
|
||||
'''detects special text (emots & links & formatting)
|
||||
prints normal text before any special text it founts,
|
||||
|
@ -637,11 +652,11 @@ class ConversationTextview:
|
|||
def print_empty_line(self):
|
||||
buffer = self.tv.get_buffer()
|
||||
end_iter = buffer.get_end_iter()
|
||||
buffer.insert(end_iter, '\n')
|
||||
buffer.insert_with_tags_by_name(end_iter, '\n', 'eol')
|
||||
|
||||
def print_conversation_line(self, text, jid, kind, name, tim,
|
||||
other_tags_for_name = [], other_tags_for_time = [],
|
||||
other_tags_for_text = [], subject = None, old_kind = None):
|
||||
other_tags_for_name = [], other_tags_for_time = [], other_tags_for_text = [],
|
||||
subject = None, old_kind = None, xhtml = None):
|
||||
'''prints 'chat' type messages'''
|
||||
buffer = self.tv.get_buffer()
|
||||
buffer.begin_user_action()
|
||||
|
@ -651,7 +666,7 @@ class ConversationTextview:
|
|||
at_the_end = True
|
||||
|
||||
if buffer.get_char_count() > 0:
|
||||
buffer.insert(end_iter, '\n')
|
||||
buffer.insert_with_tags_by_name(end_iter, '\n', 'eol')
|
||||
if kind == 'incoming_queue':
|
||||
kind = 'incoming'
|
||||
if old_kind == 'incoming_queue':
|
||||
|
@ -726,7 +741,7 @@ class ConversationTextview:
|
|||
else:
|
||||
self.print_name(name, kind, other_tags_for_name)
|
||||
self.print_subject(subject)
|
||||
self.print_real_text(text, text_tags, name)
|
||||
self.print_real_text(text, text_tags, name, xhtml)
|
||||
|
||||
# scroll to the end of the textview
|
||||
if at_the_end or kind == 'outgoing':
|
||||
|
@ -763,8 +778,18 @@ class ConversationTextview:
|
|||
buffer.insert(end_iter, subject)
|
||||
self.print_empty_line()
|
||||
|
||||
def print_real_text(self, text, text_tags = [], name = None):
|
||||
def print_real_text(self, text, text_tags = [], name = None, xhtml = None):
|
||||
'''this adds normal and special text. call this to add text'''
|
||||
if xhtml:
|
||||
try:
|
||||
if name and (text.startswith('/me ') or text.startswith('/me\n')):
|
||||
xhtml = xhtml.replace('/me', '<dfn>%s</dfn>'% (name,), 1)
|
||||
self.tv.display_html(xhtml.encode('utf-8'))
|
||||
return
|
||||
except Exception, e:
|
||||
gajim.log.debug(str("Error processing xhtml")+str(e))
|
||||
gajim.log.debug(str("with |"+xhtml+"|"))
|
||||
|
||||
buffer = self.tv.get_buffer()
|
||||
# /me is replaced by name if name is given
|
||||
if name and (text.startswith('/me ') or text.startswith('/me\n')):
|
||||
|
|
148
src/dialogs.py
148
src/dialogs.py
|
@ -3,7 +3,7 @@
|
|||
##
|
||||
## Copyright (C) 2003-2006 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Copyright (C) 2003-2004 Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005-2006 Nikos Kouremenos <nkour@jabber.org>
|
||||
## Copyright (C) 2005-2006 Nikos Kouremenos <kourem@gmail.com>
|
||||
## Copyright (C) 2005 Dimitur Kirov <dkirov@gmail.com>
|
||||
## Copyright (C) 2005-2006 Travis Shirk <travis@pobox.com>
|
||||
## Copyright (C) 2005 Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
@ -405,12 +405,12 @@ class ChangeStatusMessageDialog:
|
|||
|
||||
class AddNewContactWindow:
|
||||
'''Class for AddNewContactWindow'''
|
||||
uid_labels = {'jabber': _('Jabber ID'),
|
||||
'aim': _('AIM Address'),
|
||||
'gadu-gadu': _('GG Number'),
|
||||
'icq': _('ICQ Number'),
|
||||
'msn': _('MSN Address'),
|
||||
'yahoo': _('Yahoo! Address')}
|
||||
uid_labels = {'jabber': _('Jabber ID:'),
|
||||
'aim': _('AIM Address:'),
|
||||
'gadu-gadu': _('GG Number:'),
|
||||
'icq': _('ICQ Number:'),
|
||||
'msn': _('MSN Address:'),
|
||||
'yahoo': _('Yahoo! Address:')}
|
||||
def __init__(self, account = None, jid = None, user_nick = None,
|
||||
group = None):
|
||||
self.account = account
|
||||
|
@ -441,7 +441,8 @@ class AddNewContactWindow:
|
|||
'uid_label', 'uid_entry', 'protocol_combobox', 'protocol_jid_combobox',
|
||||
'protocol_hbox', 'nickname_entry', 'message_scrolledwindow',
|
||||
'register_hbox', 'subscription_table', 'add_button',
|
||||
'message_textview', 'connected_label', 'group_comboboxentry'):
|
||||
'message_textview', 'connected_label', 'group_comboboxentry',
|
||||
'auto_authorize_checkbutton'):
|
||||
self.__dict__[w] = self.xml.get_widget(w)
|
||||
if account and len(gajim.connections) >= 2:
|
||||
prompt_text =\
|
||||
|
@ -486,8 +487,10 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
|||
liststore.append([type_, type_])
|
||||
self.protocol_combobox.set_model(liststore)
|
||||
self.protocol_combobox.set_active(0)
|
||||
self.protocol_jid_combobox.set_sensitive(False)
|
||||
self.protocol_jid_combobox.set_no_show_all(True)
|
||||
self.protocol_jid_combobox.hide()
|
||||
self.subscription_table.set_no_show_all(True)
|
||||
self.auto_authorize_checkbutton.show()
|
||||
self.message_scrolledwindow.set_no_show_all(True)
|
||||
self.register_hbox.set_no_show_all(True)
|
||||
self.register_hbox.hide()
|
||||
|
@ -497,7 +500,9 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
|||
self.protocol_jid_combobox.set_model(liststore)
|
||||
self.xml.signal_autoconnect(self)
|
||||
if jid:
|
||||
type_ = gajim.get_transport_name_from_jid(jid) or 'jabber'
|
||||
type_ = gajim.get_transport_name_from_jid(jid)
|
||||
if not type_:
|
||||
type_ = 'jabber'
|
||||
if type_ == 'jabber':
|
||||
self.uid_entry.set_text(jid)
|
||||
else:
|
||||
|
@ -515,13 +520,13 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
|||
i += 1
|
||||
|
||||
# set protocol_jid_combobox
|
||||
self.protocol_combobox.set_active(0)
|
||||
self.protocol_jid_combobox.set_active(0)
|
||||
model = self.protocol_jid_combobox.get_model()
|
||||
iter = model.get_iter_first()
|
||||
i = 0
|
||||
while iter:
|
||||
if model[iter][0] == transport:
|
||||
self.protocol_combobox.set_active(i)
|
||||
self.protocol_jid_combobox.set_active(i)
|
||||
break
|
||||
iter = model.iter_next(iter)
|
||||
i += 1
|
||||
|
@ -626,7 +631,7 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
|||
else:
|
||||
message= ''
|
||||
group = self.group_comboboxentry.child.get_text().decode('utf-8')
|
||||
auto_auth = self.xml.get_widget('auto_authorize_checkbutton').get_active()
|
||||
auto_auth = self.auto_authorize_checkbutton.get_active()
|
||||
gajim.interface.roster.req_sub(self, jid, message, self.account,
|
||||
group = group, pseudo = nickname, auto_auth = auto_auth)
|
||||
self.window.destroy()
|
||||
|
@ -641,13 +646,15 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
|||
for jid_ in self.agents[type_]:
|
||||
model.append([jid_])
|
||||
self.protocol_jid_combobox.set_active(0)
|
||||
self.protocol_jid_combobox.set_sensitive(True)
|
||||
if len(self.agents[type_]) > 1:
|
||||
self.protocol_jid_combobox.set_no_show_all(False)
|
||||
self.protocol_jid_combobox.show_all()
|
||||
else:
|
||||
self.protocol_jid_combobox.set_sensitive(False)
|
||||
self.protocol_jid_combobox.hide()
|
||||
if type_ in self.uid_labels:
|
||||
self.uid_label.set_text(self.uid_labels[type_])
|
||||
else:
|
||||
self.uid_label.set_text(_('User ID'))
|
||||
self.uid_label.set_text(_('User ID:'))
|
||||
if type_ == 'jabber':
|
||||
self.message_scrolledwindow.show()
|
||||
else:
|
||||
|
@ -655,6 +662,7 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
|||
if type_ in self.available_types:
|
||||
self.register_hbox.set_no_show_all(False)
|
||||
self.register_hbox.show_all()
|
||||
self.auto_authorize_checkbutton.hide()
|
||||
self.connected_label.hide()
|
||||
self.subscription_table.hide()
|
||||
self.add_button.set_sensitive(False)
|
||||
|
@ -668,9 +676,11 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
|||
self.subscription_table.hide()
|
||||
self.connected_label.show()
|
||||
self.add_button.set_sensitive(False)
|
||||
self.auto_authorize_checkbutton.hide()
|
||||
return
|
||||
self.subscription_table.set_no_show_all(False)
|
||||
self.subscription_table.show_all()
|
||||
self.auto_authorize_checkbutton.show()
|
||||
self.connected_label.hide()
|
||||
self.add_button.set_sensitive(True)
|
||||
|
||||
|
@ -1019,6 +1029,12 @@ class SubscriptionRequestWindow:
|
|||
xml.signal_autoconnect(self)
|
||||
self.window.show_all()
|
||||
|
||||
def prepare_popup_menu(self):
|
||||
xml = gtkgui_helpers.get_glade('subscription_request_popup_menu.glade')
|
||||
menu = xml.get_widget('subscription_request_popup_menu')
|
||||
xml.signal_autoconnect(self)
|
||||
return menu
|
||||
|
||||
def on_close_button_clicked(self, widget):
|
||||
self.window.destroy()
|
||||
|
||||
|
@ -1029,7 +1045,7 @@ class SubscriptionRequestWindow:
|
|||
if self.jid not in gajim.contacts.get_jid_list(self.account):
|
||||
AddNewContactWindow(self.account, self.jid, self.user_nick)
|
||||
|
||||
def on_contact_info_button_clicked(self, widget):
|
||||
def on_contact_info_activate(self, widget):
|
||||
'''ask vcard'''
|
||||
if gajim.interface.instances[self.account]['infos'].has_key(self.jid):
|
||||
gajim.interface.instances[self.account]['infos'][self.jid].window.present()
|
||||
|
@ -1043,11 +1059,22 @@ class SubscriptionRequestWindow:
|
|||
gajim.interface.instances[self.account]['infos'][self.jid].xml.\
|
||||
get_widget('information_notebook').remove_page(0)
|
||||
|
||||
def on_start_chat_activate(self, widget):
|
||||
'''open chat'''
|
||||
gajim.interface.roster.new_chat_from_jid(self.account, self.jid)
|
||||
|
||||
def on_deny_button_clicked(self, widget):
|
||||
'''refuse the request'''
|
||||
gajim.connections[self.account].refuse_authorization(self.jid)
|
||||
self.window.destroy()
|
||||
|
||||
def on_actions_button_clicked(self, widget):
|
||||
'''popup action menu'''
|
||||
menu = self.prepare_popup_menu()
|
||||
menu.show_all()
|
||||
gtkgui_helpers.popup_emoticons_under_button(menu, widget, self.window.window)
|
||||
|
||||
|
||||
class JoinGroupchatWindow:
|
||||
def __init__(self, account, server = '', room = '', nick = '',
|
||||
automatic = False):
|
||||
|
@ -1306,7 +1333,8 @@ class PopupNotificationWindow:
|
|||
# default image
|
||||
if not path_to_image:
|
||||
path_to_image = os.path.abspath(
|
||||
os.path.join(gajim.DATA_DIR, 'pixmaps', 'events', 'chat_msg_recv.png')) # img to display
|
||||
os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
|
||||
'chat_msg_recv.png')) # img to display
|
||||
|
||||
if event_type == _('Contact Signed In'):
|
||||
bg_color = 'limegreen'
|
||||
|
@ -1326,7 +1354,7 @@ class PopupNotificationWindow:
|
|||
bg_color = 'tan1'
|
||||
elif event_type == _('Contact Changed Status'):
|
||||
bg_color = 'thistle2'
|
||||
else: # Unknown event ! Shouldn't happen but deal with it
|
||||
else: # Unknown event! Shouldn't happen but deal with it
|
||||
bg_color = 'white'
|
||||
popup_bg_color = gtk.gdk.color_parse(bg_color)
|
||||
close_button.modify_bg(gtk.STATE_NORMAL, popup_bg_color)
|
||||
|
@ -1732,7 +1760,7 @@ class PrivacyListWindow:
|
|||
'''Window that is used for creating NEW or EDITING already there privacy
|
||||
lists'''
|
||||
def __init__(self, account, privacy_list_name, action):
|
||||
'''action is 'edit' or 'new' depending on if we create a new priv list
|
||||
'''action is 'EDIT' or 'NEW' depending on if we create a new priv list
|
||||
or edit an already existing one'''
|
||||
self.account = account
|
||||
self.privacy_list_name = privacy_list_name
|
||||
|
@ -1784,7 +1812,7 @@ class PrivacyListWindow:
|
|||
self.privacy_list_active_checkbutton.set_sensitive(False)
|
||||
self.privacy_list_default_checkbutton.set_sensitive(False)
|
||||
|
||||
if action == 'edit':
|
||||
if action == 'EDIT':
|
||||
self.refresh_rules()
|
||||
|
||||
count = 0
|
||||
|
@ -1803,11 +1831,9 @@ class PrivacyListWindow:
|
|||
self.xml.signal_autoconnect(self)
|
||||
|
||||
def on_privacy_list_edit_window_destroy(self, widget):
|
||||
'''close window'''
|
||||
if gajim.interface.instances[self.account].has_key('privacy_list_%s' % \
|
||||
self.privacy_list_name):
|
||||
del gajim.interface.instances[self.account]['privacy_list_%s' % \
|
||||
self.privacy_list_name]
|
||||
key_name = 'privacy_list_%s' % self.privacy_list_name
|
||||
if key_name in gajim.interface.instances[self.account]:
|
||||
del gajim.interface.instances[self.account][key_name]
|
||||
|
||||
def check_active_default(self, a_d_dict):
|
||||
if a_d_dict['active'] == self.privacy_list_name:
|
||||
|
@ -1824,11 +1850,10 @@ class PrivacyListWindow:
|
|||
self.global_rules = {}
|
||||
for rule in rules:
|
||||
if rule.has_key('type'):
|
||||
text_item = 'Order: %s, action: %s, type: %s, value: %s' % \
|
||||
(rule['order'], rule['action'], rule['type'],
|
||||
rule['value'])
|
||||
text_item = _('Order: %s, action: %s, type: %s, value: %s') % \
|
||||
(rule['order'], rule['action'], rule['type'], rule['value'])
|
||||
else:
|
||||
text_item = 'Order: %s, action: %s' % (rule['order'],
|
||||
text_item = _('Order: %s, action: %s') % (rule['order'],
|
||||
rule['action'])
|
||||
self.global_rules[text_item] = rule
|
||||
self.list_of_rules_combobox.append_text(text_item)
|
||||
|
@ -1856,8 +1881,7 @@ class PrivacyListWindow:
|
|||
def on_delete_rule_button_clicked(self, widget):
|
||||
tags = []
|
||||
for rule in self.global_rules:
|
||||
if rule != \
|
||||
self.list_of_rules_combobox.get_active_text().decode('utf-8'):
|
||||
if rule != self.list_of_rules_combobox.get_active_text():
|
||||
tags.append(self.global_rules[rule])
|
||||
gajim.connections[self.account].set_privacy_list(
|
||||
self.privacy_list_name, tags)
|
||||
|
@ -1924,13 +1948,15 @@ class PrivacyListWindow:
|
|||
|
||||
def on_privacy_list_active_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
gajim.connections[self.account].set_active_list(self.privacy_list_name)
|
||||
gajim.connections[self.account].set_active_list(
|
||||
self.privacy_list_name)
|
||||
else:
|
||||
gajim.connections[self.account].set_active_list(None)
|
||||
|
||||
def on_privacy_list_default_checkbutton_toggled(self, widget):
|
||||
if widget.get_active():
|
||||
gajim.connections[self.account].set_default_list(self.privacy_list_name)
|
||||
gajim.connections[self.account].set_default_list(
|
||||
self.privacy_list_name)
|
||||
else:
|
||||
gajim.connections[self.account].set_default_list(None)
|
||||
|
||||
|
@ -1956,12 +1982,10 @@ class PrivacyListWindow:
|
|||
def get_current_tags(self):
|
||||
if self.edit_type_jabberid_radiobutton.get_active():
|
||||
edit_type = 'jid'
|
||||
edit_value = \
|
||||
self.edit_type_jabberid_entry.get_text().decode('utf-8')
|
||||
edit_value = self.edit_type_jabberid_entry.get_text()
|
||||
elif self.edit_type_group_radiobutton.get_active():
|
||||
edit_type = 'group'
|
||||
edit_value = \
|
||||
self.edit_type_group_combobox.get_active_text().decode('utf-8')
|
||||
edit_value = self.edit_type_group_combobox.get_active_text()
|
||||
elif self.edit_type_subscription_radiobutton.get_active():
|
||||
edit_type = 'subscription'
|
||||
subs = ['none', 'both', 'from', 'to']
|
||||
|
@ -2000,7 +2024,8 @@ class PrivacyListWindow:
|
|||
else:
|
||||
tags.append(current_tags)
|
||||
|
||||
gajim.connections[self.account].set_privacy_list(self.privacy_list_name, tags)
|
||||
gajim.connections[self.account].set_privacy_list(
|
||||
self.privacy_list_name, tags)
|
||||
self.privacy_list_received(tags)
|
||||
self.add_edit_vbox.hide()
|
||||
|
||||
|
@ -2030,9 +2055,7 @@ class PrivacyListsWindow:
|
|||
or edit an already there one'''
|
||||
def __init__(self, account):
|
||||
self.account = account
|
||||
|
||||
self.privacy_lists = []
|
||||
|
||||
self.privacy_lists_save = []
|
||||
|
||||
self.xml = gtkgui_helpers.get_glade('privacy_lists_window.glade')
|
||||
|
@ -2040,9 +2063,10 @@ class PrivacyListsWindow:
|
|||
self.window = self.xml.get_widget('privacy_lists_first_window')
|
||||
for widget_to_add in ['list_of_privacy_lists_combobox',
|
||||
'delete_privacy_list_button', 'open_privacy_list_button',
|
||||
'new_privacy_list_button', 'new_privacy_list_entry', 'buttons_hbox',
|
||||
'new_privacy_list_button', 'new_privacy_list_entry',
|
||||
'privacy_lists_refresh_button', 'close_privacy_lists_window_button']:
|
||||
self.__dict__[widget_to_add] = self.xml.get_widget(widget_to_add)
|
||||
self.__dict__[widget_to_add] = self.xml.get_widget(
|
||||
widget_to_add)
|
||||
|
||||
self.draw_privacy_lists_in_combobox()
|
||||
self.privacy_lists_refresh()
|
||||
|
@ -2061,8 +2085,7 @@ class PrivacyListsWindow:
|
|||
self.xml.signal_autoconnect(self)
|
||||
|
||||
def on_privacy_lists_first_window_destroy(self, widget):
|
||||
'''close window'''
|
||||
if gajim.interface.instances[self.account].has_key('privacy_lists'):
|
||||
if 'privacy_lists' in gajim.interface.instances[self.account]:
|
||||
del gajim.interface.instances[self.account]['privacy_lists']
|
||||
|
||||
def draw_privacy_lists_in_combobox(self):
|
||||
|
@ -2073,15 +2096,18 @@ class PrivacyListsWindow:
|
|||
self.list_of_privacy_lists_combobox.append_text(add_item)
|
||||
if len(self.privacy_lists) == 0:
|
||||
self.list_of_privacy_lists_combobox.set_sensitive(False)
|
||||
self.buttons_hbox.set_sensitive(False)
|
||||
self.open_privacy_list_button.set_sensitive(False)
|
||||
self.delete_privacy_list_button.set_sensitive(False)
|
||||
elif len(self.privacy_lists) == 1:
|
||||
self.list_of_privacy_lists_combobox.set_active(0)
|
||||
self.list_of_privacy_lists_combobox.set_sensitive(False)
|
||||
self.buttons_hbox.set_sensitive(True)
|
||||
self.open_privacy_list_button.set_sensitive(True)
|
||||
self.delete_privacy_list_button.set_sensitive(True)
|
||||
else:
|
||||
self.list_of_privacy_lists_combobox.set_sensitive(True)
|
||||
self.buttons_hbox.set_sensitive(True)
|
||||
self.list_of_privacy_lists_combobox.set_active(0)
|
||||
self.open_privacy_list_button.set_sensitive(True)
|
||||
self.delete_privacy_list_button.set_sensitive(True)
|
||||
self.privacy_lists = []
|
||||
|
||||
def on_privacy_lists_refresh_button_clicked(self, widget):
|
||||
|
@ -2108,14 +2134,13 @@ class PrivacyListsWindow:
|
|||
gajim.connections[self.account].get_privacy_lists()
|
||||
|
||||
def on_new_privacy_list_button_clicked(self, widget):
|
||||
name = self.new_privacy_list_entry.get_text().decode('utf-8')
|
||||
if gajim.interface.instances[self.account].has_key(
|
||||
'privacy_list_%s' % name):
|
||||
gajim.interface.instances[self.account]['privacy_list_%s' % name].\
|
||||
window.present()
|
||||
name = self.new_privacy_list_entry.get_text()
|
||||
key_name = 'privacy_list_%s' % name
|
||||
if gajim.interface.instances[self.account].has_key(key_name):
|
||||
gajim.interface.instances[self.account][key_name].window.present()
|
||||
else:
|
||||
gajim.interface.instances[self.account]['privacy_list_%s' % name] = \
|
||||
PrivacyListWindow(self.account, name, 'new')
|
||||
gajim.interface.instances[self.account][key_name] = \
|
||||
PrivacyListWindow(self.account, name, 'NEW')
|
||||
self.new_privacy_list_entry.set_text('')
|
||||
|
||||
def on_privacy_lists_refresh_button_clicked(self, widget):
|
||||
|
@ -2124,16 +2149,17 @@ class PrivacyListsWindow:
|
|||
def on_open_privacy_list_button_clicked(self, widget):
|
||||
name = self.privacy_lists_save[
|
||||
self.list_of_privacy_lists_combobox.get_active()]
|
||||
key_name = 'privacy_list_%s' % name
|
||||
if gajim.interface.instances[self.account].has_key(
|
||||
'privacy_list_%s' % name):
|
||||
gajim.interface.instances[self.account]['privacy_list_%s' % name].\
|
||||
window.present()
|
||||
key_name):
|
||||
gajim.interface.instances[self.account][key_name].window.present()
|
||||
else:
|
||||
gajim.interface.instances[self.account]['privacy_list_%s' % name] = \
|
||||
PrivacyListWindow(self.account, name, 'edit')
|
||||
gajim.interface.instances[self.account][key_name] = \
|
||||
PrivacyListWindow(self.account, name, 'EDIT')
|
||||
|
||||
class InvitationReceivedDialog:
|
||||
def __init__(self, account, room_jid, contact_jid, password = None, comment = None):
|
||||
def __init__(self, account, room_jid, contact_jid, password = None,
|
||||
comment = None):
|
||||
|
||||
self.room_jid = room_jid
|
||||
self.account = account
|
||||
|
|
46
src/disco.py
46
src/disco.py
|
@ -1,19 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
## config.py
|
||||
##
|
||||
## Contributors for this file:
|
||||
## - Yann Le Boulanger <asterix@lagaule.org>
|
||||
## - Nikos Kouremenos <kourem@gmail.com>
|
||||
## - Stéphan Kochen <stephan@kochen.nl>
|
||||
##
|
||||
## Copyright (C) 2003-2004 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
## Copyright (C) 2005-2006 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Copyright (C) 2005-2006 Nikos Kouremenos <kourem@gmail.com>
|
||||
## Copyright (C) 2005-2006 Stéphan Kochen <stephan@kochen.nl>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published
|
||||
|
@ -390,12 +380,12 @@ class ServicesCache:
|
|||
if self._cbs.has_key(cbkey):
|
||||
del self._cbs[cbkey]
|
||||
|
||||
# object is needed so that property() works
|
||||
# object is needed so that @property works
|
||||
class ServiceDiscoveryWindow(object):
|
||||
'''Class that represents the Services Discovery window.'''
|
||||
def __init__(self, account, jid = '', node = '',
|
||||
address_entry = False, parent = None):
|
||||
self._account = account
|
||||
self.account = account
|
||||
self.parent = parent
|
||||
if not jid:
|
||||
jid = gajim.config.get_per('accounts', account, 'hostname')
|
||||
|
@ -473,30 +463,35 @@ _('Without a connection, you can not browse available services'))
|
|||
self.travel(jid, node)
|
||||
self.window.show_all()
|
||||
|
||||
@property
|
||||
def _get_account(self):
|
||||
return self._account
|
||||
return self.account
|
||||
|
||||
@property
|
||||
def _set_account(self, value):
|
||||
self._account = value
|
||||
self.account = value
|
||||
self.cache.account = value
|
||||
if self.browser:
|
||||
self.browser.account = value
|
||||
account = property(_get_account, _set_account)
|
||||
|
||||
def _initial_state(self):
|
||||
'''Set some initial state on the window. Separated in a method because
|
||||
it's handy to use within browser's cleanup method.'''
|
||||
self.progressbar.hide()
|
||||
self.window.set_title(_('Service Discovery using account %s') % self.account)
|
||||
title_text = _('Service Discovery using account %s') % self.account
|
||||
self.window.set_title(title_text)
|
||||
self._set_window_banner_text(_('Service Discovery'))
|
||||
# FIXME: use self.banner_icon.clear() when we switch to GTK 2.8
|
||||
if gtk.gtk_version >= (2, 8, 0) and gtk.pygtk_version >= (2, 8, 0):
|
||||
self.banner_icon.clear()
|
||||
else:
|
||||
self.banner_icon.set_from_file(None)
|
||||
self.banner_icon.hide() # Just clearing it doesn't work
|
||||
|
||||
def _set_window_banner_text(self, text, text_after = None):
|
||||
theme = gajim.config.get('roster_theme')
|
||||
bannerfont = gajim.config.get_per('themes', theme, 'bannerfont')
|
||||
bannerfontattrs = gajim.config.get_per('themes', theme, 'bannerfontattrs')
|
||||
bannerfontattrs = gajim.config.get_per('themes', theme,
|
||||
'bannerfontattrs')
|
||||
|
||||
if bannerfont:
|
||||
font = pango.FontDescription(bannerfont)
|
||||
|
@ -1239,10 +1234,11 @@ class ToplevelAgentBrowser(AgentBrowser):
|
|||
# We can register this agent
|
||||
registered_transports = []
|
||||
jid_list = gajim.contacts.get_jid_list(self.account)
|
||||
for j in jid_list:
|
||||
contact = gajim.contacts.get_first_contact_from_jid(self.account, j)
|
||||
for jid in jid_list:
|
||||
contact = gajim.contacts.get_first_contact_from_jid(
|
||||
self.account, jid)
|
||||
if _('Transports') in contact.groups:
|
||||
registered_transports.append(j)
|
||||
registered_transports.append(jid)
|
||||
if jid in registered_transports:
|
||||
self.register_button.set_label(_('_Edit'))
|
||||
else:
|
||||
|
@ -1528,7 +1524,7 @@ class MucBrowser(AgentBrowser):
|
|||
service = services[1]
|
||||
else:
|
||||
room = model[iter][1].decode('utf-8')
|
||||
if not gajim.interface.instances[self.account].has_key('join_gc'):
|
||||
if 'join_gc' not in gajim.interface.instances[self.account]:
|
||||
try:
|
||||
dialogs.JoinGroupchatWindow(self.account, service, room)
|
||||
except RuntimeError:
|
||||
|
|
65
src/gajim.py
65
src/gajim.py
|
@ -14,7 +14,7 @@ exec python -OOt "$0" ${1+"$@"}
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
@ -509,13 +509,14 @@ class Interface:
|
|||
|
||||
def handle_event_msg(self, account, array):
|
||||
# 'MSG' (account, (jid, msg, time, encrypted, msg_type, subject,
|
||||
# chatstate, msg_id, composing_jep, user_nick)) user_nick is JEP-0172
|
||||
# chatstate, msg_id, composing_jep, user_nick, xhtml)) user_nick is JEP-0172
|
||||
|
||||
full_jid_with_resource = array[0]
|
||||
jid = gajim.get_jid_without_resource(full_jid_with_resource)
|
||||
resource = gajim.get_resource_from_jid(full_jid_with_resource)
|
||||
|
||||
message = array[1]
|
||||
encrypted = array[3]
|
||||
msg_type = array[4]
|
||||
subject = array[5]
|
||||
chatstate = array[6]
|
||||
|
@ -599,18 +600,26 @@ class Interface:
|
|||
if pm:
|
||||
nickname = resource
|
||||
msg_type = 'pm'
|
||||
groupchat_control.on_private_message(nickname, message, array[2])
|
||||
groupchat_control.on_private_message(nickname, message, array[2],
|
||||
array[10])
|
||||
else:
|
||||
# array: (jid, msg, time, encrypted, msg_type, subject)
|
||||
if encrypted:
|
||||
self.roster.on_message(jid, message, array[2], account, array[3],
|
||||
msg_type, subject, resource, msg_id, array[9], advanced_notif_num)
|
||||
msg_type, subject, resource, msg_id, array[9],
|
||||
advanced_notif_num)
|
||||
else:
|
||||
#xhtml in last element
|
||||
self.roster.on_message(jid, message, array[2], account, array[3],
|
||||
msg_type, subject, resource, msg_id, array[9],
|
||||
advanced_notif_num, xhtml = array[10])
|
||||
nickname = gajim.get_name_from_jid(account, jid)
|
||||
# Check and do wanted notifications
|
||||
msg = message
|
||||
if subject:
|
||||
msg = _('Subject: %s') % subject + '\n' + msg
|
||||
notify.notify('new_message', full_jid_with_resource, account, [msg_type, first, nickname,
|
||||
msg], advanced_notif_num)
|
||||
notify.notify('new_message', full_jid_with_resource, account, [msg_type,
|
||||
first, nickname, msg], advanced_notif_num)
|
||||
|
||||
if self.remote_ctrl:
|
||||
self.remote_ctrl.raise_signal('NewMessage', (account, array))
|
||||
|
@ -620,17 +629,19 @@ class Interface:
|
|||
full_jid_with_resource = array[0]
|
||||
jids = full_jid_with_resource.split('/', 1)
|
||||
jid = jids[0]
|
||||
gcs = self.msg_win_mgr.get_controls(message_control.TYPE_GC)
|
||||
for gc_control in gcs:
|
||||
if jid == gc_control.contact.jid:
|
||||
gc_control = self.msg_win_mgr.get_control(jid, account)
|
||||
if gc_control and gc_control.type_id != message_control.TYPE_GC:
|
||||
gc_control = None
|
||||
if gc_control:
|
||||
if len(jids) > 1: # it's a pm
|
||||
nick = jids[1]
|
||||
if not self.msg_win_mgr.get_control(full_jid_with_resource, account):
|
||||
if not self.msg_win_mgr.get_control(full_jid_with_resource,
|
||||
account):
|
||||
tv = gc_control.list_treeview
|
||||
model = tv.get_model()
|
||||
i = gc_control.get_contact_iter(nick)
|
||||
if i:
|
||||
show = model[i][3]
|
||||
iter = gc_control.get_contact_iter(nick)
|
||||
if iter:
|
||||
show = model[iter][3]
|
||||
else:
|
||||
show = 'offline'
|
||||
gc_c = gajim.contacts.create_gc_contact(room_jid = jid,
|
||||
|
@ -700,8 +711,8 @@ class Interface:
|
|||
self.remote_ctrl.raise_signal('Subscribed', (account, array))
|
||||
|
||||
def handle_event_unsubscribed(self, account, jid):
|
||||
dialogs.InformationDialog(_('Contact "%s" removed subscription from you') % jid,
|
||||
_('You will always see him or her as offline.'))
|
||||
dialogs.InformationDialog(_('Contact "%s" removed subscription from you')\
|
||||
% jid, _('You will always see him or her as offline.'))
|
||||
# FIXME: Per RFC 3921, we can "deny" ack as well, but the GUI does not show deny
|
||||
gajim.connections[account].ack_unsubscribed(jid)
|
||||
if self.remote_ctrl:
|
||||
|
@ -744,8 +755,8 @@ class Interface:
|
|||
config.ServiceRegistrationWindow(array[0], array[1], account,
|
||||
array[2])
|
||||
else:
|
||||
dialogs.ErrorDialog(_('Contact with "%s" cannot be established')\
|
||||
% array[0], _('Check your connection or try again later.'))
|
||||
dialogs.ErrorDialog(_('Contact with "%s" cannot be established') \
|
||||
% array[0], _('Check your connection or try again later.'))
|
||||
|
||||
def handle_event_agent_info_items(self, account, array):
|
||||
#('AGENT_INFO_ITEMS', account, (agent, node, items))
|
||||
|
@ -879,8 +890,8 @@ class Interface:
|
|||
# Get the window and control for the updated status, this may be a PrivateChatControl
|
||||
control = self.msg_win_mgr.get_control(room_jid, account)
|
||||
if control:
|
||||
control.chg_contact_status(nick, show, status, array[4], array[5], array[6],
|
||||
array[7], array[8], array[9], array[10])
|
||||
control.chg_contact_status(nick, show, status, array[4], array[5],
|
||||
array[6], array[7], array[8], array[9], array[10])
|
||||
|
||||
# print status in chat window and update status/GPG image
|
||||
if self.msg_win_mgr.has_window(fjid, account):
|
||||
|
@ -898,7 +909,7 @@ class Interface:
|
|||
|
||||
|
||||
def handle_event_gc_msg(self, account, array):
|
||||
# ('GC_MSG', account, (jid, msg, time, has_timestamp))
|
||||
# ('GC_MSG', account, (jid, msg, time, has_timestamp, htmlmsg))
|
||||
jids = array[0].split('/', 1)
|
||||
room_jid = jids[0]
|
||||
gc_control = self.msg_win_mgr.get_control(room_jid, account)
|
||||
|
@ -910,7 +921,7 @@ class Interface:
|
|||
else:
|
||||
# message from someone
|
||||
nick = jids[1]
|
||||
gc_control.on_message(nick, array[1], array[2], array[3])
|
||||
gc_control.on_message(nick, array[1], array[2], array[3], array[4])
|
||||
if self.remote_ctrl:
|
||||
self.remote_ctrl.raise_signal('GCMessage', (account, array))
|
||||
|
||||
|
@ -927,7 +938,8 @@ class Interface:
|
|||
gc_control.print_conversation(array[2])
|
||||
# ... Or the message comes from the occupant who set the subject
|
||||
elif len(jids) > 1:
|
||||
gc_control.print_conversation('%s has set the subject to %s' % (jids[1], array[1]))
|
||||
gc_control.print_conversation('%s has set the subject to %s' % (
|
||||
jids[1], array[1]))
|
||||
|
||||
def handle_event_gc_config(self, account, array):
|
||||
#('GC_CONFIG', account, (jid, config)) config is a dict
|
||||
|
@ -1794,12 +1806,8 @@ class Interface:
|
|||
# Open the window
|
||||
self.roster.open_event(account, fjid, event)
|
||||
elif type_ == 'gmail':
|
||||
if gajim.config.get_per('accounts', account, 'savepass'):
|
||||
url = ('http://www.google.com/accounts/ServiceLoginAuth?service=mail&Email=%s&Passwd=%s&continue=https://mail.google.com/mail') %\
|
||||
(urllib.quote(gajim.config.get_per('accounts', account, 'name')),
|
||||
urllib.quote(gajim.config.get_per('accounts', account, 'password')))
|
||||
else:
|
||||
url = ('http://mail.google.com/')
|
||||
url = 'http://mail.google.com/mail?account_id=%s' % urllib.quote(
|
||||
gajim.config.get_per('accounts', account, 'name'))
|
||||
helpers.launch_browser_mailer('url', url)
|
||||
elif type_ == 'gc-invitation':
|
||||
event = gajim.events.get_first_event(account, jid, type_)
|
||||
|
@ -1807,6 +1815,7 @@ class Interface:
|
|||
dialogs.InvitationReceivedDialog(account, data[0], jid, data[2],
|
||||
data[1])
|
||||
gajim.events.remove_events(account, jid, event)
|
||||
self.roster.draw_contact(jid, account)
|
||||
if w:
|
||||
w.set_active_tab(fjid, account)
|
||||
w.window.present()
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
@ -103,9 +103,10 @@ class PrivateChatControl(ChatControl):
|
|||
if not message:
|
||||
return
|
||||
|
||||
# We need to make sure that we can still send through the room and that the
|
||||
# recipient did not go away
|
||||
contact = gajim.contacts.get_first_contact_from_jid(self.account, self.contact.jid)
|
||||
# We need to make sure that we can still send through the room and that
|
||||
# the recipient did not go away
|
||||
contact = gajim.contacts.get_first_contact_from_jid(self.account,
|
||||
self.contact.jid)
|
||||
if contact is None:
|
||||
# contact was from pm in MUC
|
||||
room, nick = gajim.get_room_and_nick_from_fjid(self.contact.jid)
|
||||
|
@ -172,17 +173,20 @@ class GroupchatControl(ChatControlBase):
|
|||
self.nick = contact.name
|
||||
self.name = self.room_jid.split('@')[0]
|
||||
|
||||
self.hide_chat_buttons_always = gajim.config.get('always_hide_groupchat_buttons')
|
||||
self.hide_chat_buttons_always = gajim.config.get(
|
||||
'always_hide_groupchat_buttons')
|
||||
self.chat_buttons_set_visible(self.hide_chat_buttons_always)
|
||||
self.widget_set_visible(self.xml.get_widget('banner_eventbox'), gajim.config.get('hide_groupchat_banner'))
|
||||
self.widget_set_visible(self.xml.get_widget('list_scrolledwindow'), gajim.config.get('hide_groupchat_occupants_list'))
|
||||
self.widget_set_visible(self.xml.get_widget('banner_eventbox'),
|
||||
gajim.config.get('hide_groupchat_banner'))
|
||||
self.widget_set_visible(self.xml.get_widget('list_scrolledwindow'),
|
||||
gajim.config.get('hide_groupchat_occupants_list'))
|
||||
self.gc_refer_to_nick_char = gajim.config.get('gc_refer_to_nick_char')
|
||||
|
||||
self._last_selected_contact = None # None or holds jid, account tuple
|
||||
# alphanum sorted
|
||||
self.muc_cmds = ['ban', 'chat', 'query', 'clear', 'close', 'compact',
|
||||
'help', 'invite', 'join', 'kick', 'leave', 'me', 'msg', 'nick', 'part',
|
||||
'names', 'say', 'topic']
|
||||
'help', 'invite', 'join', 'kick', 'leave', 'me', 'msg', 'nick',
|
||||
'part', 'names', 'say', 'topic']
|
||||
# muc attention flag (when we are mentioned in a muc)
|
||||
# if True, the room has mentioned us
|
||||
self.attention_flag = False
|
||||
|
@ -200,7 +204,8 @@ class GroupchatControl(ChatControlBase):
|
|||
xm = gtkgui_helpers.get_glade('gc_control_popup_menu.glade')
|
||||
|
||||
widget = xm.get_widget('bookmark_room_menuitem')
|
||||
id = widget.connect('activate', self._on_bookmark_room_menuitem_activate)
|
||||
id = widget.connect('activate',
|
||||
self._on_bookmark_room_menuitem_activate)
|
||||
self.handlers[id] = widget
|
||||
|
||||
widget = xm.get_widget('change_nick_menuitem')
|
||||
|
@ -208,11 +213,13 @@ class GroupchatControl(ChatControlBase):
|
|||
self.handlers[id] = widget
|
||||
|
||||
widget = xm.get_widget('configure_room_menuitem')
|
||||
id = widget.connect('activate', self._on_configure_room_menuitem_activate)
|
||||
id = widget.connect('activate',
|
||||
self._on_configure_room_menuitem_activate)
|
||||
self.handlers[id] = widget
|
||||
|
||||
widget = xm.get_widget('change_subject_menuitem')
|
||||
id = widget.connect('activate', self._on_change_subject_menuitem_activate)
|
||||
id = widget.connect('activate',
|
||||
self._on_change_subject_menuitem_activate)
|
||||
self.handlers[id] = widget
|
||||
|
||||
widget = xm.get_widget('compact_view_menuitem')
|
||||
|
@ -232,13 +239,14 @@ class GroupchatControl(ChatControlBase):
|
|||
self.hpaned = self.xml.get_widget('hpaned')
|
||||
self.hpaned.set_position(self.hpaned_position)
|
||||
|
||||
list_treeview = self.list_treeview = self.xml.get_widget('list_treeview')
|
||||
selection = list_treeview.get_selection()
|
||||
self.list_treeview = self.xml.get_widget('list_treeview')
|
||||
selection = self.list_treeview.get_selection()
|
||||
id = selection.connect('changed',
|
||||
self.on_list_treeview_selection_changed)
|
||||
self.handlers[id] = selection
|
||||
id = list_treeview.connect('style-set', self.on_list_treeview_style_set)
|
||||
self.handlers[id] = list_treeview
|
||||
id = self.list_treeview.connect('style-set',
|
||||
self.on_list_treeview_style_set)
|
||||
self.handlers[id] = self.list_treeview
|
||||
# we want to know when the the widget resizes, because that is
|
||||
# an indication that the hpaned has moved...
|
||||
# FIXME: Find a better indicator that the hpaned has moved.
|
||||
|
@ -272,7 +280,8 @@ class GroupchatControl(ChatControlBase):
|
|||
renderer_text = gtk.CellRendererText() # nickname
|
||||
column.pack_start(renderer_text, expand = True)
|
||||
column.add_attribute(renderer_text, 'markup', C_TEXT)
|
||||
column.set_cell_data_func(renderer_text, tree_cell_data_func, self.list_treeview)
|
||||
column.set_cell_data_func(renderer_text, tree_cell_data_func,
|
||||
self.list_treeview)
|
||||
|
||||
self.list_treeview.append_column(column)
|
||||
|
||||
|
@ -314,8 +323,7 @@ class GroupchatControl(ChatControlBase):
|
|||
menu.show_all()
|
||||
|
||||
def notify_on_new_messages(self):
|
||||
return gajim.config.get('notify_on_all_muc_messages') or \
|
||||
self.attention_flag
|
||||
return gajim.config.get('notify_on_all_muc_messages')
|
||||
|
||||
def on_treeview_size_allocate(self, widget, allocation):
|
||||
'''The MUC treeview has resized. Move the hpaned in all tabs to match'''
|
||||
|
@ -377,26 +385,30 @@ class GroupchatControl(ChatControlBase):
|
|||
color = self.parent_win.notebook.style.fg[gtk.STATE_ACTIVE]
|
||||
elif chatstate == 'newmsg' and (not has_focus or not current_tab) and\
|
||||
not self.attention_flag:
|
||||
color_name = gajim.config.get_per('themes', theme, 'state_muc_msg_color')
|
||||
color_name = gajim.config.get_per('themes', theme,
|
||||
'state_muc_msg_color')
|
||||
if color_name:
|
||||
color = gtk.gdk.colormap_get_system().alloc_color(color_name)
|
||||
|
||||
label_str = self.name
|
||||
|
||||
# count waiting highlighted messages
|
||||
unread = ''
|
||||
jid = self.contact.jid
|
||||
num_unread = len(gajim.events.get_events(self.account, jid,
|
||||
['printed_gc_msg']))
|
||||
if num_unread > 1:
|
||||
unread = '[' + unicode(num_unread) + ']'
|
||||
label_str = unread + label_str
|
||||
return (label_str, color)
|
||||
|
||||
def get_tab_image(self):
|
||||
# Set tab image (always 16x16); unread messages show the 'message' image
|
||||
img_16 = gajim.interface.roster.get_appropriate_state_images(
|
||||
self.room_jid, icon_name = 'message')
|
||||
|
||||
# Set tab image (always 16x16)
|
||||
tab_image = None
|
||||
if self.attention_flag and gajim.config.get('show_unread_tab_icon'):
|
||||
tab_image = img_16['message']
|
||||
else:
|
||||
if gajim.gc_connected[self.account][self.room_jid]:
|
||||
tab_image = img_16['muc_active']
|
||||
tab_image = gajim.interface.roster.load_icon('muc_active')
|
||||
else:
|
||||
tab_image = img_16['muc_inactive']
|
||||
tab_image = gajim.interface.roster.load_icon('muc_inactive')
|
||||
return tab_image
|
||||
|
||||
def update_ui(self):
|
||||
|
@ -423,18 +435,18 @@ class GroupchatControl(ChatControlBase):
|
|||
childs[3].set_sensitive(False)
|
||||
return menu
|
||||
|
||||
def on_message(self, nick, msg, tim, has_timestamp = False):
|
||||
def on_message(self, nick, msg, tim, has_timestamp = False, xhtml = None):
|
||||
if not nick:
|
||||
# message from server
|
||||
self.print_conversation(msg, tim = tim)
|
||||
self.print_conversation(msg, tim = tim, xhtml = xhtml)
|
||||
else:
|
||||
# message from someone
|
||||
if has_timestamp:
|
||||
self.print_old_conversation(msg, nick, tim)
|
||||
self.print_old_conversation(msg, nick, tim, xhtml)
|
||||
else:
|
||||
self.print_conversation(msg, nick, tim)
|
||||
self.print_conversation(msg, nick, tim, xhtml)
|
||||
|
||||
def on_private_message(self, nick, msg, tim):
|
||||
def on_private_message(self, nick, msg, tim, xhtml):
|
||||
# Do we have a queue?
|
||||
fjid = self.room_jid + '/' + nick
|
||||
no_queue = len(gajim.events.get_events(self.account, fjid)) == 0
|
||||
|
@ -442,7 +454,7 @@ class GroupchatControl(ChatControlBase):
|
|||
# We print if window is opened
|
||||
pm_control = gajim.interface.msg_win_mgr.get_control(fjid, self.account)
|
||||
if pm_control:
|
||||
pm_control.print_conversation(msg, tim = tim)
|
||||
pm_control.print_conversation(msg, tim = tim, xhtml = xhtml)
|
||||
return
|
||||
|
||||
event = gajim.events.create_event('pm', (msg, '', 'incoming', tim,
|
||||
|
@ -495,7 +507,7 @@ class GroupchatControl(ChatControlBase):
|
|||
gc_count_nicknames_colors = 0
|
||||
gc_custom_colors = {}
|
||||
|
||||
def print_old_conversation(self, text, contact, tim = None):
|
||||
def print_old_conversation(self, text, contact, tim = None, xhtml = None):
|
||||
if isinstance(text, str):
|
||||
text = unicode(text, 'utf-8')
|
||||
if contact == self.nick: # it's us
|
||||
|
@ -508,9 +520,9 @@ class GroupchatControl(ChatControlBase):
|
|||
small_attr = []
|
||||
ChatControlBase.print_conversation_line(self, text, kind, contact, tim,
|
||||
small_attr, small_attr + ['restored_message'],
|
||||
small_attr + ['restored_message'])
|
||||
small_attr + ['restored_message'], xhtml = xhtml)
|
||||
|
||||
def print_conversation(self, text, contact = '', tim = None):
|
||||
def print_conversation(self, text, contact = '', tim = None, xhtml = None):
|
||||
'''Print a line in the conversation:
|
||||
if contact is set: it's a message from someone or an info message (contact
|
||||
= 'info' in such a case)
|
||||
|
@ -564,7 +576,7 @@ class GroupchatControl(ChatControlBase):
|
|||
self.check_and_possibly_add_focus_out_line()
|
||||
|
||||
ChatControlBase.print_conversation_line(self, text, kind, contact, tim,
|
||||
other_tags_for_name, [], other_tags_for_text)
|
||||
other_tags_for_name, [], other_tags_for_text, xhtml = xhtml)
|
||||
|
||||
def get_nb_unread(self):
|
||||
nb = len(gajim.events.get_events(self.account, self.room_jid,
|
||||
|
@ -633,13 +645,16 @@ class GroupchatControl(ChatControlBase):
|
|||
word[char_position:char_position+1]
|
||||
if (refer_to_nick_char != ''):
|
||||
refer_to_nick_char_code = ord(refer_to_nick_char)
|
||||
if ((refer_to_nick_char_code < 65 or refer_to_nick_char_code > 123)\
|
||||
or (refer_to_nick_char_code < 97 and refer_to_nick_char_code > 90)):
|
||||
if ((refer_to_nick_char_code < 65 or \
|
||||
refer_to_nick_char_code > 123) or \
|
||||
(refer_to_nick_char_code < 97 and \
|
||||
refer_to_nick_char_code > 90)):
|
||||
return True
|
||||
else:
|
||||
# This is A->Z or a->z, we can be sure our nick is the beginning
|
||||
# of a real word, do not highlight. Note that we can probably
|
||||
# do a better detection of non-punctuation characters
|
||||
# This is A->Z or a->z, we can be sure our nick is the
|
||||
# beginning of a real word, do not highlight. Note that we
|
||||
# can probably do a better detection of non-punctuation
|
||||
# characters
|
||||
return False
|
||||
else: # Special word == word, no char after in word
|
||||
return True
|
||||
|
@ -688,7 +703,8 @@ class GroupchatControl(ChatControlBase):
|
|||
gc_contact.affiliation, gc_contact.status,
|
||||
gc_contact.jid)
|
||||
|
||||
def on_send_pm(self, widget=None, model=None, iter=None, nick=None, msg=None):
|
||||
def on_send_pm(self, widget = None, model = None, iter = None, nick = None,
|
||||
msg = None):
|
||||
'''opens a chat window and msg is not None sends private message to a
|
||||
contact in a room'''
|
||||
if nick is None:
|
||||
|
@ -697,14 +713,16 @@ class GroupchatControl(ChatControlBase):
|
|||
|
||||
self._start_private_message(nick)
|
||||
if msg:
|
||||
gajim.interface.msg_win_mgr.get_control(fjid, self.account).send_message(msg)
|
||||
gajim.interface.msg_win_mgr.get_control(fjid, self.account).\
|
||||
send_message(msg)
|
||||
|
||||
def draw_contact(self, nick, selected=False, focus=False):
|
||||
iter = self.get_contact_iter(nick)
|
||||
if not iter:
|
||||
return
|
||||
model = self.list_treeview.get_model()
|
||||
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
|
||||
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
|
||||
nick)
|
||||
state_images = gajim.interface.roster.jabber_state_images['16']
|
||||
if len(gajim.events.get_events(self.account, self.room_jid + '/' + nick)):
|
||||
image = state_images['message']
|
||||
|
@ -742,8 +760,8 @@ class GroupchatControl(ChatControlBase):
|
|||
scaled_pixbuf = None
|
||||
model[iter][C_AVATAR] = scaled_pixbuf
|
||||
|
||||
def chg_contact_status(self, nick, show, status, role, affiliation, jid, reason, actor,
|
||||
statusCode, new_nick):
|
||||
def chg_contact_status(self, nick, show, status, role, affiliation, jid,
|
||||
reason, actor, statusCode, new_nick):
|
||||
'''When an occupant changes his or her status'''
|
||||
if show == 'invisible':
|
||||
return
|
||||
|
@ -835,7 +853,8 @@ class GroupchatControl(ChatControlBase):
|
|||
self.add_contact_to_roster(nick, show, role,
|
||||
affiliation, status, jid)
|
||||
else:
|
||||
c = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
|
||||
c = gajim.contacts.get_gc_contact(self.account, self.room_jid,
|
||||
nick)
|
||||
if c.show == show and c.status == status and \
|
||||
c.affiliation == affiliation: #no change
|
||||
return
|
||||
|
@ -938,7 +957,8 @@ class GroupchatControl(ChatControlBase):
|
|||
iter = self.get_contact_iter(nick)
|
||||
if not iter:
|
||||
return
|
||||
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
|
||||
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
|
||||
nick)
|
||||
if gc_contact:
|
||||
gajim.contacts.remove_gc_contact(self.account, gc_contact)
|
||||
parent_iter = model.iter_parent(iter)
|
||||
|
@ -1086,7 +1106,8 @@ class GroupchatControl(ChatControlBase):
|
|||
if len(message_array):
|
||||
message_array = message_array[0].split()
|
||||
nick = message_array.pop(0)
|
||||
room_nicks = gajim.contacts.get_nick_list(self.account, self.room_jid)
|
||||
room_nicks = gajim.contacts.get_nick_list(self.account,
|
||||
self.room_jid)
|
||||
reason = ' '.join(message_array)
|
||||
if nick in room_nicks:
|
||||
ban_jid = gajim.construct_fjid(self.room_jid, nick)
|
||||
|
@ -1107,7 +1128,8 @@ class GroupchatControl(ChatControlBase):
|
|||
if len(message_array):
|
||||
message_array = message_array[0].split()
|
||||
nick = message_array.pop(0)
|
||||
room_nicks = gajim.contacts.get_nick_list(self.account, self.room_jid)
|
||||
room_nicks = gajim.contacts.get_nick_list(self.account,
|
||||
self.room_jid)
|
||||
reason = ' '.join(message_array)
|
||||
if nick in room_nicks:
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick,
|
||||
|
@ -1167,7 +1189,8 @@ class GroupchatControl(ChatControlBase):
|
|||
|
||||
if not self._process_command(message):
|
||||
# Send the message
|
||||
gajim.connections[self.account].send_gc_message(self.room_jid, message)
|
||||
gajim.connections[self.account].send_gc_message(self.room_jid,
|
||||
message)
|
||||
self.msg_textview.get_buffer().set_text('')
|
||||
self.msg_textview.grab_focus()
|
||||
|
||||
|
@ -1190,7 +1213,8 @@ class GroupchatControl(ChatControlBase):
|
|||
self.print_conversation(_('Usage: /%s [reason], closes the current '
|
||||
'window or tab, displaying reason if specified.') % command, 'info')
|
||||
elif command == 'compact':
|
||||
self.print_conversation(_('Usage: /%s, hide the chat buttons.') % command, 'info')
|
||||
self.print_conversation(_('Usage: /%s, hide the chat buttons.') % \
|
||||
command, 'info')
|
||||
elif command == 'invite':
|
||||
self.print_conversation(_('Usage: /%s <JID> [reason], invites JID to '
|
||||
'the current room, optionally providing a reason.') % command,
|
||||
|
@ -1231,7 +1255,8 @@ class GroupchatControl(ChatControlBase):
|
|||
self.print_conversation(_('No help info for /%s') % command, 'info')
|
||||
|
||||
def get_role(self, nick):
|
||||
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
|
||||
gc_contact = gajim.contacts.get_gc_contact(self.account, self.room_jid,
|
||||
nick)
|
||||
if gc_contact:
|
||||
return gc_contact.role
|
||||
else:
|
||||
|
@ -1317,7 +1342,8 @@ class GroupchatControl(ChatControlBase):
|
|||
_('Please specify the new subject:'), self.subject)
|
||||
response = instance.get_response()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
# Note, we don't update self.subject since we don't know whether it will work yet
|
||||
# Note, we don't update self.subject since we don't know whether it
|
||||
# will work yet
|
||||
subject = instance.input_entry.get_text().decode('utf-8')
|
||||
gajim.connections[self.account].send_gc_subject(self.room_jid, subject)
|
||||
|
||||
|
@ -1362,7 +1388,8 @@ class GroupchatControl(ChatControlBase):
|
|||
_('Bookmark has been added successfully'),
|
||||
_('You can manage your bookmarks via Actions menu in your roster.'))
|
||||
|
||||
def handle_message_textview_mykey_press(self, widget, event_keyval, event_keymod):
|
||||
def handle_message_textview_mykey_press(self, widget, event_keyval,
|
||||
event_keymod):
|
||||
# NOTE: handles mykeypress which is custom signal connected to this
|
||||
# CB in new_room(). for this singal see message_textview.py
|
||||
|
||||
|
@ -1374,12 +1401,14 @@ class GroupchatControl(ChatControlBase):
|
|||
|
||||
message_buffer = widget.get_buffer()
|
||||
start_iter, end_iter = message_buffer.get_bounds()
|
||||
message = message_buffer.get_text(start_iter, end_iter, False).decode('utf-8')
|
||||
message = message_buffer.get_text(start_iter, end_iter, False).decode(
|
||||
'utf-8')
|
||||
|
||||
if event.keyval == gtk.keysyms.Tab: # TAB
|
||||
cursor_position = message_buffer.get_insert()
|
||||
end_iter = message_buffer.get_iter_at_mark(cursor_position)
|
||||
text = message_buffer.get_text(start_iter, end_iter, False).decode('utf-8')
|
||||
text = message_buffer.get_text(start_iter, end_iter, False).decode(
|
||||
'utf-8')
|
||||
if text.endswith(' '):
|
||||
if not self.last_key_tabs:
|
||||
return False
|
||||
|
@ -1495,8 +1524,8 @@ class GroupchatControl(ChatControlBase):
|
|||
|
||||
# looking for user's affiliation and role
|
||||
user_nick = self.nick
|
||||
user_affiliation = gajim.contacts.get_gc_contact(self.account, self.room_jid,
|
||||
user_nick).affiliation
|
||||
user_affiliation = gajim.contacts.get_gc_contact(self.account,
|
||||
self.room_jid, user_nick).affiliation
|
||||
user_role = self.get_role(user_nick)
|
||||
|
||||
# making menu from glade
|
||||
|
@ -1506,8 +1535,9 @@ class GroupchatControl(ChatControlBase):
|
|||
item = xml.get_widget('kick_menuitem')
|
||||
if user_role != 'moderator' or \
|
||||
(user_affiliation == 'admin' and target_affiliation == 'owner') or \
|
||||
(user_affiliation == 'member' and target_affiliation in ('admin', 'owner')) or \
|
||||
(user_affiliation == 'none' and target_affiliation != 'none'):
|
||||
(user_affiliation == 'member' and target_affiliation in ('admin',
|
||||
'owner')) or (user_affiliation == 'none' and target_affiliation != \
|
||||
'none'):
|
||||
item.set_sensitive(False)
|
||||
id = item.connect('activate', self.kick, nick)
|
||||
self.handlers[id] = item
|
||||
|
@ -1733,19 +1763,23 @@ class GroupchatControl(ChatControlBase):
|
|||
|
||||
def grant_voice(self, widget, nick):
|
||||
'''grant voice privilege to a user'''
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick, 'participant')
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick,
|
||||
'participant')
|
||||
|
||||
def revoke_voice(self, widget, nick):
|
||||
'''revoke voice privilege to a user'''
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick, 'visitor')
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick,
|
||||
'visitor')
|
||||
|
||||
def grant_moderator(self, widget, nick):
|
||||
'''grant moderator privilege to a user'''
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick, 'moderator')
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick,
|
||||
'moderator')
|
||||
|
||||
def revoke_moderator(self, widget, nick):
|
||||
'''revoke moderator privilege to a user'''
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick, 'participant')
|
||||
gajim.connections[self.account].gc_set_role(self.room_jid, nick,
|
||||
'participant')
|
||||
|
||||
def ban(self, widget, jid):
|
||||
'''ban a user'''
|
||||
|
@ -1794,7 +1828,8 @@ class GroupchatControl(ChatControlBase):
|
|||
c = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick)
|
||||
c2 = gajim.contacts.contact_from_gc_contact(c)
|
||||
if gajim.interface.instances[self.account]['infos'].has_key(c2.jid):
|
||||
gajim.interface.instances[self.account]['infos'][c2.jid].window.present()
|
||||
gajim.interface.instances[self.account]['infos'][c2.jid].window.\
|
||||
present()
|
||||
else:
|
||||
gajim.interface.instances[self.account]['infos'][c2.jid] = \
|
||||
vcard.VcardWindow(c2, self.account, is_fake = True)
|
||||
|
|
|
@ -1,18 +1,7 @@
|
|||
## gtkexcepthook.py
|
||||
##
|
||||
## Contributors for this file:
|
||||
## - Yann Le Boulanger <asterix@lagaule.org>
|
||||
## - Nikos Kouremenos <kourem@gmail.com>
|
||||
## - Dimitur Kirov <dkirov@gmail.com>
|
||||
##
|
||||
## Copyright (C) 2003-2004 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
## Copyright (C) 2005-2006 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Copyright (C) 2005-2006 Nikos Kouremenos <kourem@gmail.com>
|
||||
##
|
||||
## Initially written and submitted by Gustavo J. A. M. Carneiro
|
||||
##
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
##
|
||||
## Copyright (C) 2003-2006 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Copyright (C) 2004-2005 Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005-2006 Nikos Kouremenos <nkour@jabber.org>
|
||||
## Copyright (C) 2005-2006 Nikos Kouremenos <kourem@gmail.com>
|
||||
## Copyright (C) 2005 Dimitur Kirov <dkirov@gmail.com>
|
||||
## Copyright (C) 2005 Travis Shirk <travis@pobox.com>
|
||||
## Copyright (C) 2005 Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
@ -175,10 +175,13 @@ def reduce_chars_newlines(text, max_chars = 0, max_lines = 0):
|
|||
If any of the params is not present (None or 0) the action
|
||||
on it is not performed'''
|
||||
|
||||
def _cut_if_long(str):
|
||||
if len(str) > max_chars:
|
||||
str = str[:max_chars - 3] + '...'
|
||||
return str
|
||||
def _cut_if_long(string):
|
||||
if len(string) > max_chars:
|
||||
string = string[:max_chars - 3] + '...'
|
||||
return string
|
||||
|
||||
if isinstance(text, str):
|
||||
text = text.decode('utf-8')
|
||||
|
||||
if max_lines == 0:
|
||||
lines = text.split('\n')
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -0,0 +1,968 @@
|
|||
### Copyright (C) 2005 Gustavo J. A. M. Carneiro
|
||||
### Copyright (C) 2006 Santiago Gala
|
||||
###
|
||||
### This library is free software; you can redistribute it and/or
|
||||
### modify it under the terms of the GNU Lesser General Public
|
||||
### License as published by the Free Software Foundation; either
|
||||
### version 2 of the License, or (at your option) any later version.
|
||||
###
|
||||
### This library is distributed in the hope that it will be useful,
|
||||
### but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
### Lesser General Public License for more details.
|
||||
###
|
||||
### You should have received a copy of the GNU Lesser General Public
|
||||
### License along with this library; if not, write to the
|
||||
### Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
### Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
"""
|
||||
A gtk.TextView-based renderer for XHTML-IM, as described in:
|
||||
http://www.jabber.org/jeps/jep-0071.html
|
||||
|
||||
Starting with the version posted by Gustavo Carneiro,
|
||||
I (Santiago Gala) am trying to make it more compatible
|
||||
with the markup that docutils generate, and also more
|
||||
modular.
|
||||
|
||||
"""
|
||||
|
||||
import gobject
|
||||
import pango
|
||||
import gtk
|
||||
import xml.sax, xml.sax.handler
|
||||
import re
|
||||
import warnings
|
||||
from cStringIO import StringIO
|
||||
import urllib2
|
||||
import operator
|
||||
|
||||
#from common import i18n
|
||||
|
||||
|
||||
import tooltips
|
||||
|
||||
|
||||
__all__ = ['HtmlTextView']
|
||||
|
||||
whitespace_rx = re.compile("\\s+")
|
||||
allwhitespace_rx = re.compile("^\\s*$")
|
||||
|
||||
## pixels = points * display_resolution
|
||||
display_resolution = 0.3514598*(gtk.gdk.screen_height() /
|
||||
float(gtk.gdk.screen_height_mm()))
|
||||
|
||||
#embryo of CSS classes
|
||||
classes = {
|
||||
#'system-message':';display: none',
|
||||
'problematic':';color: red',
|
||||
}
|
||||
|
||||
#styles for elemens
|
||||
element_styles = {
|
||||
'u' : ';text-decoration: underline',
|
||||
'em' : ';font-style: oblique',
|
||||
'cite' : '; background-color:rgb(170,190,250); font-style: oblique',
|
||||
'li' : '; margin-left: 1em; margin-right: 10%',
|
||||
'strong' : ';font-weight: bold',
|
||||
'pre' : '; background-color:rgb(190,190,190); font-family: monospace; white-space: pre; margin-left: 1em; margin-right: 10%',
|
||||
'kbd' : ';background-color:rgb(210,210,210);font-family: monospace',
|
||||
'blockquote': '; background-color:rgb(170,190,250); margin-left: 2em; margin-right: 10%',
|
||||
'dt' : ';font-weight: bold; font-style: oblique',
|
||||
'dd' : ';margin-left: 2em; font-style: oblique'
|
||||
}
|
||||
# no difference for the moment
|
||||
element_styles['dfn'] = element_styles['em']
|
||||
element_styles['var'] = element_styles['em']
|
||||
# deprecated, legacy, presentational
|
||||
element_styles['tt'] = element_styles['kbd']
|
||||
element_styles['i'] = element_styles['em']
|
||||
element_styles['b'] = element_styles['strong']
|
||||
|
||||
class_styles = {
|
||||
}
|
||||
|
||||
"""
|
||||
==========
|
||||
JEP-0071
|
||||
==========
|
||||
|
||||
This Integration Set includes a subset of the modules defined for
|
||||
XHTML 1.0 but does not redefine any existing modules, nor
|
||||
does it define any new modules. Specifically, it includes the
|
||||
following modules only:
|
||||
|
||||
- Structure
|
||||
- Text
|
||||
|
||||
* Block
|
||||
|
||||
phrasal
|
||||
addr, blockquote, pre
|
||||
Struc
|
||||
div,p
|
||||
Heading
|
||||
h1, h2, h3, h4, h5, h6
|
||||
|
||||
* Inline
|
||||
|
||||
phrasal
|
||||
abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var
|
||||
structural
|
||||
br, span
|
||||
|
||||
- Hypertext (a)
|
||||
- List (ul, ol, dl)
|
||||
- Image (img)
|
||||
- Style Attribute
|
||||
|
||||
Therefore XHTML-IM uses the following content models:
|
||||
|
||||
Block.mix
|
||||
Block-like elements, e.g., paragraphs
|
||||
Flow.mix
|
||||
Any block or inline elements
|
||||
Inline.mix
|
||||
Character-level elements
|
||||
InlineNoAnchor.class
|
||||
Anchor element
|
||||
InlinePre.mix
|
||||
Pre element
|
||||
|
||||
XHTML-IM also uses the following Attribute Groups:
|
||||
|
||||
Core.extra.attrib
|
||||
TBD
|
||||
I18n.extra.attrib
|
||||
TBD
|
||||
Common.extra
|
||||
style
|
||||
|
||||
|
||||
...
|
||||
#block level:
|
||||
#Heading h
|
||||
# ( pres = h1 | h2 | h3 | h4 | h5 | h6 )
|
||||
#Block ( phrasal = address | blockquote | pre )
|
||||
#NOT ( presentational = hr )
|
||||
# ( structural = div | p )
|
||||
#other: section
|
||||
#Inline ( phrasal = abbr | acronym | cite | code | dfn | em | kbd | q | samp | strong | var )
|
||||
#NOT ( presentational = b | big | i | small | sub | sup | tt )
|
||||
# ( structural = br | span )
|
||||
#Param/Legacy param, font, basefont, center, s, strike, u, dir, menu, isindex
|
||||
#
|
||||
"""
|
||||
|
||||
BLOCK_HEAD = set(( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', ))
|
||||
BLOCK_PHRASAL = set(( 'address', 'blockquote', 'pre', ))
|
||||
BLOCK_PRES = set(( 'hr', )) #not in xhtml-im
|
||||
BLOCK_STRUCT = set(( 'div', 'p', ))
|
||||
BLOCK_HACKS = set(( 'table', 'tr' ))
|
||||
BLOCK = BLOCK_HEAD.union(BLOCK_PHRASAL).union(BLOCK_STRUCT).union(BLOCK_PRES).union(BLOCK_HACKS)
|
||||
|
||||
INLINE_PHRASAL = set('abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var'.split(', '))
|
||||
INLINE_PRES = set('b, i, u, tt'.split(', ')) #not in xhtml-im
|
||||
INLINE_STRUCT = set('br, span'.split(', '))
|
||||
INLINE = INLINE_PHRASAL.union(INLINE_PRES).union(INLINE_STRUCT)
|
||||
|
||||
LIST_ELEMS = set( 'dl, ol, ul'.split(', '))
|
||||
|
||||
for name in BLOCK_HEAD:
|
||||
num = eval(name[1])
|
||||
size = (num-1) // 2
|
||||
weigth = (num - 1) % 2
|
||||
element_styles[name] = '; font-size: %s; %s' % ( ('large', 'medium', 'small')[size],
|
||||
('font-weight: bold', 'font-style: oblique')[weigth],
|
||||
)
|
||||
|
||||
|
||||
def build_patterns(view, config, interface):
|
||||
#extra, rst does not mark _underline_ or /it/ up
|
||||
#actually <b>, <i> or <u> are not in the JEP-0071, but are seen in the wild
|
||||
basic_pattern = r'(?<!\w|\<|/|:)' r'/[^\s/]' r'([^/]*[^\s/])?' r'/(?!\w|/|:)|'\
|
||||
r'(?<!\w)' r'_[^\s_]' r'([^_]*[^\s_])?' r'_(?!\w)'
|
||||
view.basic_pattern_re = re.compile(basic_pattern)
|
||||
#TODO: emoticons
|
||||
emoticons_pattern = ''
|
||||
if config.get('emoticons_theme'):
|
||||
# When an emoticon is bordered by an alpha-numeric character it is NOT
|
||||
# expanded. e.g., foo:) NO, foo :) YES, (brb) NO, (:)) YES, etc.
|
||||
# We still allow multiple emoticons side-by-side like :P:P:P
|
||||
# sort keys by length so :qwe emot is checked before :q
|
||||
keys = interface.emoticons.keys()
|
||||
keys.sort(interface.on_emoticon_sort)
|
||||
emoticons_pattern_prematch = ''
|
||||
emoticons_pattern_postmatch = ''
|
||||
emoticon_length = 0
|
||||
for emoticon in keys: # travel thru emoticons list
|
||||
emoticon_escaped = re.escape(emoticon) # espace regexp metachars
|
||||
emoticons_pattern += emoticon_escaped + '|'# | means or in regexp
|
||||
if (emoticon_length != len(emoticon)):
|
||||
# Build up expressions to match emoticons next to other emoticons
|
||||
emoticons_pattern_prematch = emoticons_pattern_prematch[:-1] + ')|(?<='
|
||||
emoticons_pattern_postmatch = emoticons_pattern_postmatch[:-1] + ')|(?='
|
||||
emoticon_length = len(emoticon)
|
||||
emoticons_pattern_prematch += emoticon_escaped + '|'
|
||||
emoticons_pattern_postmatch += emoticon_escaped + '|'
|
||||
# We match from our list of emoticons, but they must either have
|
||||
# whitespace, or another emoticon next to it to match successfully
|
||||
# [\w.] alphanumeric and dot (for not matching 8) in (2.8))
|
||||
emoticons_pattern = '|' + \
|
||||
'(?:(?<![\w.]' + emoticons_pattern_prematch[:-1] + '))' + \
|
||||
'(?:' + emoticons_pattern[:-1] + ')' + \
|
||||
'(?:(?![\w.]' + emoticons_pattern_postmatch[:-1] + '))'
|
||||
|
||||
# because emoticons match later (in the string) they need to be after
|
||||
# basic matches that may occur earlier
|
||||
emot_and_basic_pattern = basic_pattern + emoticons_pattern
|
||||
view.emot_and_basic_re = re.compile(emot_and_basic_pattern, re.IGNORECASE)
|
||||
|
||||
|
||||
def _parse_css_color(color):
|
||||
'''_parse_css_color(css_color) -> gtk.gdk.Color'''
|
||||
if color.startswith("rgb(") and color.endswith(')'):
|
||||
r, g, b = [int(c)*257 for c in color[4:-1].split(',')]
|
||||
return gtk.gdk.Color(r, g, b)
|
||||
else:
|
||||
return gtk.gdk.color_parse(color)
|
||||
|
||||
|
||||
class HtmlHandler(xml.sax.handler.ContentHandler):
|
||||
|
||||
def __init__(self, textview, startiter):
|
||||
xml.sax.handler.ContentHandler.__init__(self)
|
||||
self.textbuf = textview.get_buffer()
|
||||
self.textview = textview
|
||||
self.iter = startiter
|
||||
self.text = ''
|
||||
self.starting=True
|
||||
self.preserve = False
|
||||
self.styles = [] # a gtk.TextTag or None, for each span level
|
||||
self.list_counters = [] # stack (top at head) of list
|
||||
# counters, or None for unordered list
|
||||
|
||||
def _parse_style_color(self, tag, value):
|
||||
color = _parse_css_color(value)
|
||||
tag.set_property("foreground-gdk", color)
|
||||
|
||||
def _parse_style_background_color(self, tag, value):
|
||||
color = _parse_css_color(value)
|
||||
tag.set_property("background-gdk", color)
|
||||
if gtk.gtk_version >= (2, 8):
|
||||
tag.set_property("paragraph-background-gdk", color)
|
||||
|
||||
|
||||
if gtk.gtk_version >= (2, 8, 5) or gobject.pygtk_version >= (2, 8, 1):
|
||||
|
||||
def _get_current_attributes(self):
|
||||
attrs = self.textview.get_default_attributes()
|
||||
self.iter.backward_char()
|
||||
self.iter.get_attributes(attrs)
|
||||
self.iter.forward_char()
|
||||
return attrs
|
||||
|
||||
else:
|
||||
|
||||
## Workaround http://bugzilla.gnome.org/show_bug.cgi?id=317455
|
||||
def _get_current_style_attr(self, propname, comb_oper=None):
|
||||
tags = [tag for tag in self.styles if tag is not None]
|
||||
tags.reverse()
|
||||
is_set_name = propname + "-set"
|
||||
value = None
|
||||
for tag in tags:
|
||||
if tag.get_property(is_set_name):
|
||||
if value is None:
|
||||
value = tag.get_property(propname)
|
||||
if comb_oper is None:
|
||||
return value
|
||||
else:
|
||||
value = comb_oper(value, tag.get_property(propname))
|
||||
return value
|
||||
|
||||
class _FakeAttrs(object):
|
||||
__slots__ = ("font", "font_scale")
|
||||
|
||||
def _get_current_attributes(self):
|
||||
attrs = self._FakeAttrs()
|
||||
attrs.font_scale = self._get_current_style_attr("scale",
|
||||
operator.mul)
|
||||
if attrs.font_scale is None:
|
||||
attrs.font_scale = 1.0
|
||||
attrs.font = self._get_current_style_attr("font-desc")
|
||||
if attrs.font is None:
|
||||
attrs.font = self.textview.style.font_desc
|
||||
return attrs
|
||||
|
||||
|
||||
def __parse_length_frac_size_allocate(self, textview, allocation,
|
||||
frac, callback, args):
|
||||
callback(allocation.width*frac, *args)
|
||||
|
||||
def _parse_length(self, value, font_relative, callback, *args):
|
||||
'''Parse/calc length, converting to pixels, calls callback(length, *args)
|
||||
when the length is first computed or changes'''
|
||||
if value.endswith('%'):
|
||||
frac = float(value[:-1])/100
|
||||
if font_relative:
|
||||
attrs = self._get_current_attributes()
|
||||
font_size = attrs.font.get_size() / pango.SCALE
|
||||
callback(frac*display_resolution*font_size, *args)
|
||||
else:
|
||||
## CSS says "Percentage values: refer to width of the closest
|
||||
## block-level ancestor"
|
||||
## This is difficult/impossible to implement, so we use
|
||||
## textview width instead; a reasonable approximation..
|
||||
alloc = self.textview.get_allocation()
|
||||
self.__parse_length_frac_size_allocate(self.textview, alloc,
|
||||
frac, callback, args)
|
||||
self.textview.connect("size-allocate",
|
||||
self.__parse_length_frac_size_allocate,
|
||||
frac, callback, args)
|
||||
|
||||
elif value.endswith('pt'): # points
|
||||
callback(float(value[:-2])*display_resolution, *args)
|
||||
|
||||
elif value.endswith('em'): # ems, the height of the element's font
|
||||
attrs = self._get_current_attributes()
|
||||
font_size = attrs.font.get_size() / pango.SCALE
|
||||
callback(float(value[:-2])*display_resolution*font_size, *args)
|
||||
|
||||
elif value.endswith('ex'): # x-height, ~ the height of the letter 'x'
|
||||
## FIXME: figure out how to calculate this correctly
|
||||
## for now 'em' size is used as approximation
|
||||
attrs = self._get_current_attributes()
|
||||
font_size = attrs.font.get_size() / pango.SCALE
|
||||
callback(float(value[:-2])*display_resolution*font_size, *args)
|
||||
|
||||
elif value.endswith('px'): # pixels
|
||||
callback(int(value[:-2]), *args)
|
||||
|
||||
else:
|
||||
warnings.warn("Unable to parse length value '%s'" % value)
|
||||
|
||||
def __parse_font_size_cb(length, tag):
|
||||
tag.set_property("size-points", length/display_resolution)
|
||||
__parse_font_size_cb = staticmethod(__parse_font_size_cb)
|
||||
|
||||
def _parse_style_display(self, tag, value):
|
||||
if value == 'none':
|
||||
tag.set_property('invisible','true')
|
||||
#Fixme: display: block, inline
|
||||
|
||||
def _parse_style_font_size(self, tag, value):
|
||||
try:
|
||||
scale = {
|
||||
"xx-small": pango.SCALE_XX_SMALL,
|
||||
"x-small": pango.SCALE_X_SMALL,
|
||||
"small": pango.SCALE_SMALL,
|
||||
"medium": pango.SCALE_MEDIUM,
|
||||
"large": pango.SCALE_LARGE,
|
||||
"x-large": pango.SCALE_X_LARGE,
|
||||
"xx-large": pango.SCALE_XX_LARGE,
|
||||
} [value]
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
attrs = self._get_current_attributes()
|
||||
tag.set_property("scale", scale / attrs.font_scale)
|
||||
return
|
||||
if value == 'smaller':
|
||||
tag.set_property("scale", pango.SCALE_SMALL)
|
||||
return
|
||||
if value == 'larger':
|
||||
tag.set_property("scale", pango.SCALE_LARGE)
|
||||
return
|
||||
self._parse_length(value, True, self.__parse_font_size_cb, tag)
|
||||
|
||||
def _parse_style_font_style(self, tag, value):
|
||||
try:
|
||||
style = {
|
||||
"normal": pango.STYLE_NORMAL,
|
||||
"italic": pango.STYLE_ITALIC,
|
||||
"oblique": pango.STYLE_OBLIQUE,
|
||||
} [value]
|
||||
except KeyError:
|
||||
warnings.warn("unknown font-style %s" % value)
|
||||
else:
|
||||
tag.set_property("style", style)
|
||||
|
||||
def __frac_length_tag_cb(self,length, tag, propname):
|
||||
styles = self._get_style_tags()
|
||||
if styles:
|
||||
length += styles[-1].get_property(propname)
|
||||
tag.set_property(propname, length)
|
||||
#__frac_length_tag_cb = staticmethod(__frac_length_tag_cb)
|
||||
|
||||
def _parse_style_margin_left(self, tag, value):
|
||||
self._parse_length(value, False, self.__frac_length_tag_cb,
|
||||
tag, "left-margin")
|
||||
|
||||
def _parse_style_margin_right(self, tag, value):
|
||||
self._parse_length(value, False, self.__frac_length_tag_cb,
|
||||
tag, "right-margin")
|
||||
|
||||
def _parse_style_font_weight(self, tag, value):
|
||||
## TODO: missing 'bolder' and 'lighter'
|
||||
try:
|
||||
weight = {
|
||||
'100': pango.WEIGHT_ULTRALIGHT,
|
||||
'200': pango.WEIGHT_ULTRALIGHT,
|
||||
'300': pango.WEIGHT_LIGHT,
|
||||
'400': pango.WEIGHT_NORMAL,
|
||||
'500': pango.WEIGHT_NORMAL,
|
||||
'600': pango.WEIGHT_BOLD,
|
||||
'700': pango.WEIGHT_BOLD,
|
||||
'800': pango.WEIGHT_ULTRABOLD,
|
||||
'900': pango.WEIGHT_HEAVY,
|
||||
'normal': pango.WEIGHT_NORMAL,
|
||||
'bold': pango.WEIGHT_BOLD,
|
||||
} [value]
|
||||
except KeyError:
|
||||
warnings.warn("unknown font-style %s" % value)
|
||||
else:
|
||||
tag.set_property("weight", weight)
|
||||
|
||||
def _parse_style_font_family(self, tag, value):
|
||||
tag.set_property("family", value)
|
||||
|
||||
def _parse_style_text_align(self, tag, value):
|
||||
try:
|
||||
align = {
|
||||
'left': gtk.JUSTIFY_LEFT,
|
||||
'right': gtk.JUSTIFY_RIGHT,
|
||||
'center': gtk.JUSTIFY_CENTER,
|
||||
'justify': gtk.JUSTIFY_FILL,
|
||||
} [value]
|
||||
except KeyError:
|
||||
warnings.warn("Invalid text-align:%s requested" % value)
|
||||
else:
|
||||
tag.set_property("justification", align)
|
||||
|
||||
def _parse_style_text_decoration(self, tag, value):
|
||||
if value == "none":
|
||||
tag.set_property("underline", pango.UNDERLINE_NONE)
|
||||
tag.set_property("strikethrough", False)
|
||||
elif value == "underline":
|
||||
tag.set_property("underline", pango.UNDERLINE_SINGLE)
|
||||
tag.set_property("strikethrough", False)
|
||||
elif value == "overline":
|
||||
warnings.warn("text-decoration:overline not implemented")
|
||||
tag.set_property("underline", pango.UNDERLINE_NONE)
|
||||
tag.set_property("strikethrough", False)
|
||||
elif value == "line-through":
|
||||
tag.set_property("underline", pango.UNDERLINE_NONE)
|
||||
tag.set_property("strikethrough", True)
|
||||
elif value == "blink":
|
||||
warnings.warn("text-decoration:blink not implemented")
|
||||
else:
|
||||
warnings.warn("text-decoration:%s not implemented" % value)
|
||||
|
||||
def _parse_style_white_space(self, tag, value):
|
||||
if value == 'pre':
|
||||
tag.set_property("wrap_mode", gtk.WRAP_NONE)
|
||||
elif value == 'normal':
|
||||
tag.set_property("wrap_mode", gtk.WRAP_WORD)
|
||||
elif value == 'nowrap':
|
||||
tag.set_property("wrap_mode", gtk.WRAP_NONE)
|
||||
|
||||
|
||||
## build a dictionary mapping styles to methods, for greater speed
|
||||
__style_methods = dict()
|
||||
for style in ["background-color", "color", "font-family", "font-size",
|
||||
"font-style", "font-weight", "margin-left", "margin-right",
|
||||
"text-align", "text-decoration", "white-space", 'display' ]:
|
||||
try:
|
||||
method = locals()["_parse_style_%s" % style.replace('-', '_')]
|
||||
except KeyError:
|
||||
warnings.warn("Style attribute '%s' not yet implemented" % style)
|
||||
else:
|
||||
__style_methods[style] = method
|
||||
del style
|
||||
## --
|
||||
|
||||
def _get_style_tags(self):
|
||||
return [tag for tag in self.styles if tag is not None]
|
||||
|
||||
def _create_url(self, href, title, type_, id_):
|
||||
tag = self.textbuf.create_tag(id_)
|
||||
if href and href[0] != '#':
|
||||
tag.href = href
|
||||
tag.type_ = type_ # to be used by the URL handler
|
||||
tag.connect('event', self.textview.html_hyperlink_handler, 'url', href)
|
||||
tag.set_property('foreground', '#0000ff')
|
||||
tag.set_property('underline', pango.UNDERLINE_SINGLE)
|
||||
tag.is_anchor = True
|
||||
if title:
|
||||
tag.title = title
|
||||
return tag
|
||||
|
||||
|
||||
def _begin_span(self, style, tag=None, id_=None):
|
||||
if style is None:
|
||||
self.styles.append(tag)
|
||||
return None
|
||||
if tag is None:
|
||||
if id_:
|
||||
tag = self.textbuf.create_tag(id_)
|
||||
else:
|
||||
tag = self.textbuf.create_tag()
|
||||
for attr, val in [item.split(':', 1) for item in style.split(';') if len(item.strip())]:
|
||||
attr = attr.strip().lower()
|
||||
val = val.strip()
|
||||
try:
|
||||
method = self.__style_methods[attr]
|
||||
except KeyError:
|
||||
warnings.warn("Style attribute '%s' requested "
|
||||
"but not yet implemented" % attr)
|
||||
else:
|
||||
method(self, tag, val)
|
||||
self.styles.append(tag)
|
||||
|
||||
def _end_span(self):
|
||||
self.styles.pop()
|
||||
|
||||
def _jump_line(self):
|
||||
self.textbuf.insert_with_tags_by_name(self.iter, '\n', 'eol')
|
||||
self.starting = True
|
||||
|
||||
def _insert_text(self, text):
|
||||
if self.starting and text != '\n':
|
||||
self.starting = (text[-1] == '\n')
|
||||
tags = self._get_style_tags()
|
||||
if tags:
|
||||
self.textbuf.insert_with_tags(self.iter, text, *tags)
|
||||
else:
|
||||
self.textbuf.insert(self.iter, text)
|
||||
|
||||
def _starts_line(self):
|
||||
return self.starting or self.iter.starts_line()
|
||||
|
||||
def _flush_text(self):
|
||||
if not self.text: return
|
||||
text, self.text = self.text, ''
|
||||
if not self.preserve:
|
||||
text = text.replace('\n', ' ')
|
||||
self.handle_specials(whitespace_rx.sub(' ', text))
|
||||
else:
|
||||
self._insert_text(text.strip("\n"))
|
||||
|
||||
def _anchor_event(self, tag, textview, event, iter, href, type_):
|
||||
if event.type == gtk.gdk.BUTTON_PRESS:
|
||||
self.textview.emit("url-clicked", href, type_)
|
||||
return True
|
||||
return False
|
||||
|
||||
def handle_specials(self, text):
|
||||
index = 0
|
||||
se = self.textview.config.get('show_ascii_formatting_chars')
|
||||
if self.textview.config.get('emoticons_theme'):
|
||||
iterator = self.textview.emot_and_basic_re.finditer(text)
|
||||
else:
|
||||
iterator = self.textview.basic_pattern_re.finditer(text)
|
||||
for match in iterator:
|
||||
start, end = match.span()
|
||||
special_text = text[start:end]
|
||||
if start != 0:
|
||||
self._insert_text(text[index:start])
|
||||
index = end # update index
|
||||
#emoticons
|
||||
possible_emot_ascii_caps = special_text.upper() # emoticons keys are CAPS
|
||||
if self.textview.config.get('emoticons_theme') and \
|
||||
possible_emot_ascii_caps in self.textview.interface.emoticons.keys():
|
||||
#it's an emoticon
|
||||
emot_ascii = possible_emot_ascii_caps
|
||||
anchor = self.textbuf.create_child_anchor(self.iter)
|
||||
img = gtk.Image()
|
||||
img.set_from_file(self.textview.interface.emoticons[emot_ascii])
|
||||
# TODO: add alt/tooltip with the special_text (a11y)
|
||||
self.textview.add_child_at_anchor(img, anchor)
|
||||
img.show()
|
||||
else:
|
||||
# now print it
|
||||
if special_text.startswith('/'): # it's explicit italics
|
||||
self.startElement('i', {})
|
||||
elif special_text.startswith('_'): # it's explicit underline
|
||||
self.startElement("u", {})
|
||||
if se: self._insert_text(special_text[0])
|
||||
self.handle_specials(special_text[1:-1])
|
||||
if se: self._insert_text(special_text[0])
|
||||
if special_text.startswith('_'): # it's explicit underline
|
||||
self.endElement('u')
|
||||
if special_text.startswith('/'): # it's explicit italics
|
||||
self.endElement('i')
|
||||
self._insert_text(text[index:])
|
||||
|
||||
def characters(self, content):
|
||||
if self.preserve:
|
||||
self.text += content
|
||||
return
|
||||
if allwhitespace_rx.match(content) is not None and self._starts_line():
|
||||
return
|
||||
self.text += content
|
||||
#if self.text: self.text += ' '
|
||||
#self.handle_specials(whitespace_rx.sub(' ', content))
|
||||
if allwhitespace_rx.match(self.text) is not None and self._starts_line():
|
||||
self.text = ''
|
||||
#self._flush_text()
|
||||
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
self._flush_text()
|
||||
klass = [i for i in attrs.get('class',' ').split(' ') if i]
|
||||
style = attrs.get('style','')
|
||||
#Add styles defined for classes
|
||||
#TODO: priority between class and style elements?
|
||||
for k in klass:
|
||||
if k in classes:
|
||||
style += classes[k]
|
||||
|
||||
tag = None
|
||||
#FIXME: if we want to use id, it needs to be unique across
|
||||
# the whole textview, so we need to add something like the
|
||||
# message-id to it.
|
||||
#id_ = attrs.get('id',None)
|
||||
id_ = None
|
||||
if name == 'a':
|
||||
#TODO: accesskey, charset, hreflang, rel, rev, tabindex, type
|
||||
href = attrs.get('href', None)
|
||||
title = attrs.get('title', attrs.get('rel',href))
|
||||
type_ = attrs.get('type', None)
|
||||
tag = self._create_url(href, title, type_, id_)
|
||||
elif name == 'blockquote':
|
||||
cite = attrs.get('cite', None)
|
||||
if cite:
|
||||
tag = self.textbuf.create_tag(id_)
|
||||
tag.title = title
|
||||
tag.is_anchor = True
|
||||
elif name in LIST_ELEMS:
|
||||
style += ';margin-left: 2em'
|
||||
if name in element_styles:
|
||||
style += element_styles[name]
|
||||
|
||||
if style == '':
|
||||
style = None
|
||||
self._begin_span(style, tag, id_)
|
||||
|
||||
if name == 'br':
|
||||
pass # handled in endElement
|
||||
elif name == 'hr':
|
||||
pass # handled in endElement
|
||||
elif name in BLOCK:
|
||||
if not self._starts_line():
|
||||
self._jump_line()
|
||||
if name == 'pre':
|
||||
self.preserve = True
|
||||
elif name == 'span':
|
||||
pass
|
||||
elif name in ('dl', 'ul'):
|
||||
if not self._starts_line():
|
||||
self._jump_line()
|
||||
self.list_counters.append(None)
|
||||
elif name == 'ol':
|
||||
if not self._starts_line():
|
||||
self._jump_line()
|
||||
self.list_counters.append(0)
|
||||
elif name == 'li':
|
||||
if self.list_counters[-1] is None:
|
||||
li_head = unichr(0x2022)
|
||||
else:
|
||||
self.list_counters[-1] += 1
|
||||
li_head = "%i." % self.list_counters[-1]
|
||||
self.text = ' '*len(self.list_counters)*4 + li_head + ' '
|
||||
self._flush_text()
|
||||
self.starting = True
|
||||
elif name == 'dd':
|
||||
self._jump_line()
|
||||
elif name == 'dt':
|
||||
if not self.starting:
|
||||
self._jump_line()
|
||||
elif name == 'img':
|
||||
try:
|
||||
## Max image size = 10 MB (to try to prevent DoS)
|
||||
mem = urllib2.urlopen(attrs['src']).read(10*1024*1024)
|
||||
## Caveat: GdkPixbuf is known not to be safe to load
|
||||
## images from network... this program is now potentially
|
||||
## hackable ;)
|
||||
loader = gtk.gdk.PixbufLoader()
|
||||
loader.write(mem); loader.close()
|
||||
pixbuf = loader.get_pixbuf()
|
||||
except Exception, ex:
|
||||
gajim.log.debug(str('Error loading image'+ex))
|
||||
pixbuf = None
|
||||
alt = attrs.get('alt', "Broken image")
|
||||
try:
|
||||
loader.close()
|
||||
except: pass
|
||||
if pixbuf is not None:
|
||||
tags = self._get_style_tags()
|
||||
if tags:
|
||||
tmpmark = self.textbuf.create_mark(None, self.iter, True)
|
||||
|
||||
self.textbuf.insert_pixbuf(self.iter, pixbuf)
|
||||
|
||||
if tags:
|
||||
start = self.textbuf.get_iter_at_mark(tmpmark)
|
||||
for tag in tags:
|
||||
self.textbuf.apply_tag(tag, start, self.iter)
|
||||
self.textbuf.delete_mark(tmpmark)
|
||||
else:
|
||||
self._insert_text("[IMG: %s]" % alt)
|
||||
elif name == 'body' or name == 'html':
|
||||
pass
|
||||
elif name == 'a':
|
||||
pass
|
||||
elif name in INLINE:
|
||||
pass
|
||||
else:
|
||||
warnings.warn("Unhandled element '%s'" % name)
|
||||
|
||||
def endElement(self, name):
|
||||
endPreserving = False
|
||||
newLine = False
|
||||
if name == 'br':
|
||||
newLine = True
|
||||
elif name == 'hr':
|
||||
#FIXME: plenty of unused attributes (width, height,...) :)
|
||||
self._jump_line()
|
||||
try:
|
||||
self.textbuf.insert_pixbuf(self.iter, self.textview.focus_out_line_pixbuf)
|
||||
#self._insert_text(u"\u2550"*40)
|
||||
self._jump_line()
|
||||
except Exception, e:
|
||||
log.debug(str("Error in hr"+e))
|
||||
elif name in LIST_ELEMS:
|
||||
self.list_counters.pop()
|
||||
elif name == 'li':
|
||||
newLine = True
|
||||
elif name == 'img':
|
||||
pass
|
||||
elif name == 'body' or name == 'html':
|
||||
pass
|
||||
elif name == 'a':
|
||||
pass
|
||||
elif name in INLINE:
|
||||
pass
|
||||
elif name in ('dd', 'dt', ):
|
||||
pass
|
||||
elif name in BLOCK:
|
||||
if name == 'pre':
|
||||
endPreserving = True
|
||||
else:
|
||||
warnings.warn("Unhandled element '%s'" % name)
|
||||
self._flush_text()
|
||||
if endPreserving:
|
||||
self.preserve = False
|
||||
if newLine:
|
||||
self._jump_line()
|
||||
self._end_span()
|
||||
#if not self._starts_line():
|
||||
# self.text = ' '
|
||||
|
||||
class HtmlTextView(gtk.TextView):
|
||||
__gtype_name__ = 'HtmlTextView'
|
||||
__gsignals__ = {
|
||||
'url-clicked': (gobject.SIGNAL_RUN_LAST, None, (str, str)), # href, type
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
gobject.GObject.__init__(self)
|
||||
self.set_wrap_mode(gtk.WRAP_CHAR)
|
||||
self.set_editable(False)
|
||||
self._changed_cursor = False
|
||||
self.connect("motion-notify-event", self.__motion_notify_event)
|
||||
self.connect("leave-notify-event", self.__leave_event)
|
||||
self.connect("enter-notify-event", self.__motion_notify_event)
|
||||
self.get_buffer().create_tag('eol', scale = pango.SCALE_XX_SMALL)
|
||||
self.tooltip = tooltips.BaseTooltip()
|
||||
# needed to avoid bootstrapping problems
|
||||
from common import gajim
|
||||
self.config = gajim.config
|
||||
self.interface = gajim.interface
|
||||
self.log = gajim.log
|
||||
# end big hack
|
||||
build_patterns(self,gajim.config,gajim.interface)
|
||||
|
||||
def __leave_event(self, widget, event):
|
||||
if self._changed_cursor:
|
||||
window = widget.get_window(gtk.TEXT_WINDOW_TEXT)
|
||||
window.set_cursor(gtk.gdk.Cursor(gtk.gdk.XTERM))
|
||||
self._changed_cursor = False
|
||||
|
||||
def show_tooltip(self, tag):
|
||||
if not self.tooltip.win:
|
||||
# check if the current pointer is still over the line
|
||||
text = getattr(tag, 'title', False)
|
||||
if text:
|
||||
pointer = self.get_pointer()
|
||||
position = self.window.get_origin()
|
||||
win = self.get_toplevel()
|
||||
self.tooltip.show_tooltip(text, 8, position[1] + pointer[1])
|
||||
|
||||
def __motion_notify_event(self, widget, event):
|
||||
x, y, _ = widget.window.get_pointer()
|
||||
x, y = widget.window_to_buffer_coords(gtk.TEXT_WINDOW_TEXT, x, y)
|
||||
tags = widget.get_iter_at_location(x, y).get_tags()
|
||||
is_over_anchor = False
|
||||
for tag in tags:
|
||||
if getattr(tag, 'is_anchor', False):
|
||||
is_over_anchor = True
|
||||
break
|
||||
if self.tooltip.timeout != 0:
|
||||
# Check if we should hide the line tooltip
|
||||
if not is_over_anchor:
|
||||
self.tooltip.hide_tooltip()
|
||||
if not self._changed_cursor and is_over_anchor:
|
||||
window = widget.get_window(gtk.TEXT_WINDOW_TEXT)
|
||||
window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND2))
|
||||
self._changed_cursor = True
|
||||
gobject.timeout_add(500,
|
||||
self.show_tooltip, tag)
|
||||
elif self._changed_cursor and not is_over_anchor:
|
||||
window = widget.get_window(gtk.TEXT_WINDOW_TEXT)
|
||||
window.set_cursor(gtk.gdk.Cursor(gtk.gdk.XTERM))
|
||||
self._changed_cursor = False
|
||||
return False
|
||||
|
||||
def display_html(self, html):
|
||||
buffer = self.get_buffer()
|
||||
eob = buffer.get_end_iter()
|
||||
## this works too if libxml2 is not available
|
||||
# parser = xml.sax.make_parser(['drv_libxml2'])
|
||||
# parser.setFeature(xml.sax.handler.feature_validation, True)
|
||||
parser = xml.sax.make_parser()
|
||||
parser.setContentHandler(HtmlHandler(self, eob))
|
||||
parser.parse(StringIO(html))
|
||||
|
||||
#if not eob.starts_line():
|
||||
# buffer.insert(eob, "\n")
|
||||
|
||||
if gobject.pygtk_version < (2, 8):
|
||||
gobject.type_register(HtmlTextView)
|
||||
|
||||
change_cursor = None
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
htmlview = HtmlTextView()
|
||||
|
||||
tooltip = tooltips.BaseTooltip()
|
||||
def on_textview_motion_notify_event(widget, event):
|
||||
'''change the cursor to a hand when we are over a mail or an url'''
|
||||
global change_cursor
|
||||
pointer_x, pointer_y, spam = htmlview.window.get_pointer()
|
||||
x, y = htmlview.window_to_buffer_coords(gtk.TEXT_WINDOW_TEXT, pointer_x,
|
||||
pointer_y)
|
||||
tags = htmlview.get_iter_at_location(x, y).get_tags()
|
||||
if change_cursor:
|
||||
htmlview.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(
|
||||
gtk.gdk.Cursor(gtk.gdk.XTERM))
|
||||
change_cursor = None
|
||||
tag_table = htmlview.get_buffer().get_tag_table()
|
||||
over_line = False
|
||||
for tag in tags:
|
||||
try:
|
||||
if tag.is_anchor:
|
||||
htmlview.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(
|
||||
gtk.gdk.Cursor(gtk.gdk.HAND2))
|
||||
change_cursor = tag
|
||||
elif tag == tag_table.lookup('focus-out-line'):
|
||||
over_line = True
|
||||
except: pass
|
||||
|
||||
#if line_tooltip.timeout != 0:
|
||||
# Check if we should hide the line tooltip
|
||||
# if not over_line:
|
||||
# line_tooltip.hide_tooltip()
|
||||
#if over_line and not line_tooltip.win:
|
||||
# line_tooltip.timeout = gobject.timeout_add(500,
|
||||
# show_line_tooltip)
|
||||
# htmlview.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(
|
||||
# gtk.gdk.Cursor(gtk.gdk.LEFT_PTR))
|
||||
# change_cursor = tag
|
||||
|
||||
htmlview.connect('motion_notify_event', on_textview_motion_notify_event)
|
||||
|
||||
def handler(texttag, widget, event, iter, kind, href):
|
||||
if event.type == gtk.gdk.BUTTON_PRESS:
|
||||
print href
|
||||
|
||||
htmlview.html_hyperlink_handler = handler
|
||||
|
||||
htmlview.display_html('<div><span style="color: red; text-decoration:underline">Hello</span><br/>\n'
|
||||
' <img src="http://images.slashdot.org/topics/topicsoftware.gif"/><br/>\n'
|
||||
' <span style="font-size: 500%; font-family: serif">World</span>\n'
|
||||
'</div>\n')
|
||||
htmlview.display_html("<hr />")
|
||||
htmlview.display_html("""
|
||||
<p style='font-size:large'>
|
||||
<span style='font-style: italic'>O<span style='font-size:larger'>M</span>G</span>,
|
||||
I'm <span style='color:green'>green</span>
|
||||
with <span style='font-weight: bold'>envy</span>!
|
||||
</p>
|
||||
""")
|
||||
htmlview.display_html("<hr />")
|
||||
htmlview.display_html("""
|
||||
<body xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<p>As Emerson said in his essay <span style='font-style: italic; background-color:cyan'>Self-Reliance</span>:</p>
|
||||
<p style='margin-left: 5px; margin-right: 2%'>
|
||||
"A foolish consistency is the hobgoblin of little minds."
|
||||
</p>
|
||||
</body>
|
||||
""")
|
||||
htmlview.display_html("<hr />")
|
||||
htmlview.display_html("""
|
||||
<body xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<p style='text-align:center'>Hey, are you licensed to <a href='http://www.jabber.org/'>Jabber</a>?</p>
|
||||
<p style='text-align:right'><img src='http://www.jabber.org/images/psa-license.jpg'
|
||||
alt='A License to Jabber'
|
||||
height='261'
|
||||
width='537'/></p>
|
||||
</body>
|
||||
""")
|
||||
htmlview.display_html("<hr />")
|
||||
htmlview.display_html("""
|
||||
<body xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<ul style='background-color:rgb(120,140,100)'>
|
||||
<li> One </li>
|
||||
<li> Two </li>
|
||||
<li> Three </li>
|
||||
</ul><hr /><pre style="background-color:rgb(120,120,120)">def fac(n):
|
||||
def faciter(n,acc):
|
||||
if n==0: return acc
|
||||
return faciter(n-1, acc*n)
|
||||
if n<0: raise ValueError("Must be non-negative")
|
||||
return faciter(n,1)</pre>
|
||||
</body>
|
||||
""")
|
||||
htmlview.display_html("<hr />")
|
||||
htmlview.display_html("""
|
||||
<body xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<ol style='background-color:rgb(120,140,100)'>
|
||||
<li> One </li>
|
||||
<li> Two is nested: <ul style='background-color:rgb(200,200,100)'>
|
||||
<li> One </li>
|
||||
<li> Two </li>
|
||||
<li> Three </li>
|
||||
</ul></li>
|
||||
<li> Three </li></ol>
|
||||
</body>
|
||||
""")
|
||||
htmlview.show()
|
||||
sw = gtk.ScrolledWindow()
|
||||
sw.set_property("hscrollbar-policy", gtk.POLICY_AUTOMATIC)
|
||||
sw.set_property("vscrollbar-policy", gtk.POLICY_AUTOMATIC)
|
||||
sw.set_property("border-width", 0)
|
||||
sw.add(htmlview)
|
||||
sw.show()
|
||||
frame = gtk.Frame()
|
||||
frame.set_shadow_type(gtk.SHADOW_IN)
|
||||
frame.show()
|
||||
frame.add(sw)
|
||||
w = gtk.Window()
|
||||
w.add(frame)
|
||||
w.set_default_size(400, 300)
|
||||
w.show_all()
|
||||
w.connect("destroy", lambda w: gtk.main_quit())
|
||||
gtk.main()
|
|
@ -8,7 +8,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
@ -279,10 +279,11 @@ class MessageWindow:
|
|||
ctrl_page = self.notebook.page_num(ctrl.widget)
|
||||
self.notebook.set_current_page(ctrl_page)
|
||||
|
||||
def remove_tab(self, ctrl, reason = None):
|
||||
'''reason is only for gc (offline status message)'''
|
||||
def remove_tab(self, ctrl, reason = None, force = False):
|
||||
'''reason is only for gc (offline status message)
|
||||
if force is True, do not ask any confirmation'''
|
||||
# Shutdown the MessageControl
|
||||
if not ctrl.allow_shutdown():
|
||||
if not force and not ctrl.allow_shutdown():
|
||||
return
|
||||
if reason is not None: # We are leaving gc with a status message
|
||||
ctrl.shutdown(reason)
|
||||
|
|
|
@ -15,8 +15,10 @@
|
|||
##
|
||||
import gobject
|
||||
if __name__ == '__main__':
|
||||
# install _() func before importing dbus_support
|
||||
from common import i18n
|
||||
import dbus_support
|
||||
|
||||
from common import dbus_support
|
||||
if dbus_support.supported:
|
||||
import dbus
|
||||
import dbus.glib
|
||||
|
|
131
src/notify.py
131
src/notify.py
|
@ -4,7 +4,7 @@
|
|||
## Copyright (C) 2005-2006 Nikos Kouremenos <kourem@gmail.com>
|
||||
## Copyright (C) 2005-2006 Andrew Sayman <lorien420@myrealbox.com>
|
||||
##
|
||||
## DBUS/libnotify connection code:
|
||||
## Notification daemon connection via D-Bus code:
|
||||
## Copyright (C) 2005 by Sebastian Estienne
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify
|
||||
|
@ -25,12 +25,20 @@ import gtkgui_helpers
|
|||
from common import gajim
|
||||
from common import helpers
|
||||
|
||||
import dbus_support
|
||||
from common import dbus_support
|
||||
if dbus_support.supported:
|
||||
import dbus
|
||||
import dbus.glib
|
||||
import dbus.service
|
||||
|
||||
|
||||
USER_HAS_PYNOTIFY = True # user has pynotify module
|
||||
try:
|
||||
import pynotify
|
||||
pynotify.init('Gajim Notification')
|
||||
except ImportError:
|
||||
USER_HAS_PYNOTIFY = False
|
||||
|
||||
def get_show_in_roster(event, account, contact):
|
||||
'''Return True if this event must be shown in roster, else False'''
|
||||
num = get_advanced_notification(event, account, contact)
|
||||
|
@ -56,7 +64,8 @@ def get_show_in_systray(event, account, contact):
|
|||
return True
|
||||
|
||||
def get_advanced_notification(event, account, contact):
|
||||
'''Returns the number of the first advanced notification or None'''
|
||||
'''Returns the number of the first (top most)
|
||||
advanced notification else None'''
|
||||
num = 0
|
||||
notif = gajim.config.get_per('notifications', str(num))
|
||||
while notif:
|
||||
|
@ -103,17 +112,19 @@ def get_advanced_notification(event, account, contact):
|
|||
notif = gajim.config.get_per('notifications', str(num))
|
||||
|
||||
def notify(event, jid, account, parameters, advanced_notif_num = None):
|
||||
'''Check what type of notifications we want, depending on basic configuration
|
||||
of notifications and advanced one and do these notifications'''
|
||||
'''Check what type of notifications we want, depending on basic
|
||||
and the advanced configuration of notifications and do these notifications;
|
||||
advanced_notif_num holds the number of the first (top most) advanced
|
||||
notification'''
|
||||
# First, find what notifications we want
|
||||
do_popup = False
|
||||
do_sound = False
|
||||
do_cmd = False
|
||||
if (event == 'status_change'):
|
||||
if event == 'status_change':
|
||||
new_show = parameters[0]
|
||||
status_message = parameters[1]
|
||||
# Default : No popup for status change
|
||||
elif (event == 'contact_connected'):
|
||||
# Default: No popup for status change
|
||||
elif event == 'contact_connected':
|
||||
status_message = parameters
|
||||
j = gajim.get_jid_without_resource(jid)
|
||||
server = gajim.get_server_from_jid(j)
|
||||
|
@ -129,43 +140,44 @@ def notify(event, jid, account, parameters, advanced_notif_num = None):
|
|||
'enabled') and not gajim.block_signed_in_notifications[account] and \
|
||||
not block_transport:
|
||||
do_sound = True
|
||||
elif (event == 'contact_disconnected'):
|
||||
elif event == 'contact_disconnected':
|
||||
status_message = parameters
|
||||
if helpers.allow_showing_notification(account, 'notify_on_signout'):
|
||||
do_popup = True
|
||||
if gajim.config.get_per('soundevents', 'contact_disconnected',
|
||||
'enabled'):
|
||||
do_sound = True
|
||||
elif (event == 'new_message'):
|
||||
elif event == 'new_message':
|
||||
message_type = parameters[0]
|
||||
first = parameters[1]
|
||||
is_first_message = parameters[1]
|
||||
nickname = parameters[2]
|
||||
message = parameters[3]
|
||||
if helpers.allow_showing_notification(account, 'notify_on_new_message',
|
||||
advanced_notif_num, first):
|
||||
advanced_notif_num, is_first_message):
|
||||
do_popup = True
|
||||
if first and helpers.allow_sound_notification('first_message_received',
|
||||
advanced_notif_num):
|
||||
if is_first_message and helpers.allow_sound_notification(
|
||||
'first_message_received', advanced_notif_num):
|
||||
do_sound = True
|
||||
elif not first and helpers.allow_sound_notification(
|
||||
elif not is_first_message and helpers.allow_sound_notification(
|
||||
'next_message_received', advanced_notif_num):
|
||||
do_sound = True
|
||||
else:
|
||||
print '*Event not implemeted yet*'
|
||||
|
||||
if advanced_notif_num != None and gajim.config.get_per('notifications',
|
||||
if advanced_notif_num is not None and gajim.config.get_per('notifications',
|
||||
str(advanced_notif_num), 'run_command'):
|
||||
do_cmd = True
|
||||
|
||||
# Do the wanted notifications
|
||||
if (do_popup):
|
||||
if (event == 'contact_connected' or event == 'contact_disconnected' or \
|
||||
event == 'status_change'): # Common code for popup for these 3 events
|
||||
if (event == 'contact_disconnected'):
|
||||
if do_popup:
|
||||
if event in ('contact_connected', 'contact_disconnected',
|
||||
'status_change'): # Common code for popup for these three events
|
||||
if event == 'contact_disconnected':
|
||||
show_image = 'offline.png'
|
||||
suffix = '_notif_size_bw.png'
|
||||
else: #Status Change or Connected
|
||||
# TODO : for status change, we don't always 'online.png', but we
|
||||
# FIXME: for status change,
|
||||
# we don't always 'online.png', but we
|
||||
# first need 48x48 for all status
|
||||
show_image = 'online.png'
|
||||
suffix = '_notif_size_colored.png'
|
||||
|
@ -180,7 +192,7 @@ def notify(event, jid, account, parameters, advanced_notif_num = None):
|
|||
iconset, '48x48', show_image)
|
||||
path = gtkgui_helpers.get_path_to_generic_or_avatar(img,
|
||||
jid = jid, suffix = suffix)
|
||||
if (event == 'status_change'):
|
||||
if event == 'status_change':
|
||||
title = _('%(nick)s Changed Status') % \
|
||||
{'nick': gajim.get_name_from_jid(account, jid)}
|
||||
text = _('%(nick)s is now %(status)s') % \
|
||||
|
@ -190,7 +202,7 @@ def notify(event, jid, account, parameters, advanced_notif_num = None):
|
|||
text = text + " : " + status_message
|
||||
popup(_('Contact Changed Status'), jid, account,
|
||||
path_to_image = path, title = title, text = text)
|
||||
elif (event == 'contact_connected'):
|
||||
elif event == 'contact_connected':
|
||||
title = _('%(nickname)s Signed In') % \
|
||||
{'nickname': gajim.get_name_from_jid(account, jid)}
|
||||
text = ''
|
||||
|
@ -198,7 +210,7 @@ def notify(event, jid, account, parameters, advanced_notif_num = None):
|
|||
text = status_message
|
||||
popup(_('Contact Signed In'), jid, account,
|
||||
path_to_image = path, title = title, text = text)
|
||||
elif (event == 'contact_disconnected'):
|
||||
elif event == 'contact_disconnected':
|
||||
title = _('%(nickname)s Signed Out') % \
|
||||
{'nickname': gajim.get_name_from_jid(account, jid)}
|
||||
text = ''
|
||||
|
@ -206,7 +218,7 @@ def notify(event, jid, account, parameters, advanced_notif_num = None):
|
|||
text = status_message
|
||||
popup(_('Contact Signed Out'), jid, account,
|
||||
path_to_image = path, title = title, text = text)
|
||||
elif (event == 'new_message'):
|
||||
elif event == 'new_message':
|
||||
if message_type == 'normal': # single message
|
||||
event_type = _('New Single Message')
|
||||
img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
|
||||
|
@ -233,18 +245,18 @@ def notify(event, jid, account, parameters, advanced_notif_num = None):
|
|||
popup(event_type, jid, account, message_type,
|
||||
path_to_image = path, title = title, text = text)
|
||||
|
||||
if (do_sound):
|
||||
if do_sound:
|
||||
snd_file = None
|
||||
snd_event = None # If not snd_file, play the event
|
||||
if (event == 'new_message'):
|
||||
if advanced_notif_num != None and gajim.config.get_per('notifications',
|
||||
str(advanced_notif_num), 'sound') == 'yes':
|
||||
if event == 'new_message':
|
||||
if advanced_notif_num is not None and gajim.config.get_per(
|
||||
'notifications', str(advanced_notif_num), 'sound') == 'yes':
|
||||
snd_file = gajim.config.get_per('notifications',
|
||||
str(advanced_notif_num), 'sound_file')
|
||||
elif advanced_notif_num != None and gajim.config.get_per(
|
||||
elif advanced_notif_num is not None and gajim.config.get_per(
|
||||
'notifications', str(advanced_notif_num), 'sound') == 'no':
|
||||
pass # do not set snd_event
|
||||
elif first:
|
||||
elif is_first_message:
|
||||
snd_event = 'first_message_received'
|
||||
else:
|
||||
snd_event = 'next_message_received'
|
||||
|
@ -270,20 +282,61 @@ def popup(event_type, jid, account, msg_type = '', path_to_image = None,
|
|||
the older style PopupNotificationWindow method.'''
|
||||
text = gtkgui_helpers.escape_for_pango_markup(text)
|
||||
title = gtkgui_helpers.escape_for_pango_markup(title)
|
||||
|
||||
if gajim.config.get('use_notif_daemon') and dbus_support.supported:
|
||||
try:
|
||||
DesktopNotification(event_type, jid, account, msg_type, path_to_image,
|
||||
title, text)
|
||||
return
|
||||
DesktopNotification(event_type, jid, account, msg_type,
|
||||
path_to_image, title, text)
|
||||
return # sucessfully did D-Bus Notification procedure!
|
||||
except dbus.dbus_bindings.DBusException, e:
|
||||
# Connection to D-Bus failed, try popup
|
||||
# Connection to D-Bus failed
|
||||
gajim.log.debug(str(e))
|
||||
except TypeError, e:
|
||||
# This means that we sent the message incorrectly
|
||||
gajim.log.debug(str(e))
|
||||
instance = dialogs.PopupNotificationWindow(event_type, jid, account, msg_type, \
|
||||
path_to_image, title, text)
|
||||
gajim.interface.roster.popup_notification_windows.append(instance)
|
||||
# we failed to speak to notification daemon via D-Bus
|
||||
if USER_HAS_PYNOTIFY: # try via libnotify
|
||||
if not text:
|
||||
text = gajim.get_name_from_jid(account, jid) # default value of text
|
||||
if not title:
|
||||
title = event_type
|
||||
# default image
|
||||
if not path_to_image:
|
||||
path_to_image = os.path.abspath(
|
||||
os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
|
||||
'chat_msg_recv.png')) # img to display
|
||||
|
||||
|
||||
notification = pynotify.Notification(title, text)
|
||||
timeout = gajim.config.get('notification_timeout') * 1000 # make it ms
|
||||
notification.set_timeout(timeout)
|
||||
|
||||
notification.set_category(event_type)
|
||||
notification.set_data('event_type', event_type)
|
||||
notification.set_data('jid', jid)
|
||||
notification.set_data('account', account)
|
||||
notification.set_data('msg_type', event_type)
|
||||
notification.set_data('path_to_image', path_to_image)
|
||||
notification.add_action('default', 'Default Action',
|
||||
on_pynotify_notification_clicked)
|
||||
|
||||
notification.show()
|
||||
|
||||
else: # go old style
|
||||
instance = dialogs.PopupNotificationWindow(event_type, jid,
|
||||
account, msg_type, path_to_image, title, text)
|
||||
gajim.interface.roster.popup_notification_windows.append(
|
||||
instance)
|
||||
|
||||
def on_pynotify_notification_clicked(notification, action):
|
||||
event_type = notification.get_data('event_type')
|
||||
jid = notification.get_data('jid')
|
||||
account = notification.get_data('account')
|
||||
msg_type = notification.get_data('msg_type')
|
||||
path_to_image = notification.get_data('path_to_image')
|
||||
|
||||
notification.close()
|
||||
gajim.interface.handle_event(account, jid, msg_type)
|
||||
|
||||
class NotificationResponseManager:
|
||||
'''Collects references to pending DesktopNotifications and manages there
|
||||
|
@ -336,7 +389,7 @@ class NotificationResponseManager:
|
|||
notification_response_manager = NotificationResponseManager()
|
||||
|
||||
class DesktopNotification:
|
||||
'''A DesktopNotification that interfaces with DBus via the Desktop
|
||||
'''A DesktopNotification that interfaces with D-Bus via the Desktop
|
||||
Notification specification'''
|
||||
def __init__(self, event_type, jid, account, msg_type = '',
|
||||
path_to_image = None, title = None, text = None):
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
## GNU General Public License for more details.
|
||||
##
|
||||
|
||||
# THIS FILE IS FOR **OUR** PROFILE (when we edit our INFO)
|
||||
|
||||
import gtk
|
||||
import gobject
|
||||
import base64
|
||||
|
|
|
@ -23,7 +23,7 @@ from common import helpers
|
|||
from time import time
|
||||
from dialogs import AddNewContactWindow, NewChatDialog
|
||||
|
||||
import dbus_support
|
||||
from common import dbus_support
|
||||
if dbus_support.supported:
|
||||
import dbus
|
||||
if dbus_support:
|
||||
|
@ -228,7 +228,7 @@ class SignalObject(dbus.service.Object):
|
|||
message to 'jid', using account(optional) 'account' '''
|
||||
jid, account = self._get_real_arguments(args, 2)
|
||||
if not jid:
|
||||
# FIXME: raise exception for missing argument (dbus0.35+)
|
||||
raise MissingArgument
|
||||
return None
|
||||
jid = self._get_real_jid(jid, account)
|
||||
|
||||
|
@ -277,7 +277,7 @@ class SignalObject(dbus.service.Object):
|
|||
status, message, account = self._get_real_arguments(args, 3)
|
||||
if status not in ('offline', 'online', 'chat',
|
||||
'away', 'xa', 'dnd', 'invisible'):
|
||||
# FIXME: raise exception for bad status (dbus0.35)
|
||||
raise InvalidArgument
|
||||
return None
|
||||
if account:
|
||||
gobject.idle_add(gajim.interface.roster.send_status, account,
|
||||
|
@ -305,7 +305,7 @@ class SignalObject(dbus.service.Object):
|
|||
if not isinstance(jid, unicode):
|
||||
jid = unicode(jid)
|
||||
if not jid:
|
||||
# FIXME: raise exception for missing argument (0.3+)
|
||||
raise MissingArgument
|
||||
return None
|
||||
jid = self._get_real_jid(jid, account)
|
||||
|
||||
|
@ -341,8 +341,7 @@ class SignalObject(dbus.service.Object):
|
|||
result['name'] = DBUS_STRING(account.name)
|
||||
result['jid'] = DBUS_STRING(gajim.get_jid_from_account(account.name))
|
||||
result['message'] = DBUS_STRING(account.status)
|
||||
result['priority'] = DBUS_STRING(unicode(gajim.config.get_per('accounts',
|
||||
account.name, 'priority')))
|
||||
result['priority'] = DBUS_STRING(unicode(account.priority))
|
||||
result['resource'] = DBUS_STRING(unicode(gajim.config.get_per('accounts',
|
||||
account.name, 'resource')))
|
||||
return result
|
||||
|
|
|
@ -40,7 +40,7 @@ from chat_control import ChatControl
|
|||
from groupchat_control import GroupchatControl
|
||||
from groupchat_control import PrivateChatControl
|
||||
|
||||
import dbus_support
|
||||
from common import dbus_support
|
||||
if dbus_support.supported:
|
||||
from music_track_listener import MusicTrackListener
|
||||
|
||||
|
@ -56,7 +56,7 @@ C_SECPIXBUF, # secondary_pixbuf (holds avatar or padlock)
|
|||
) = range(7)
|
||||
|
||||
class RosterWindow:
|
||||
'''Class for main window of gtkgui interface'''
|
||||
'''Class for main window of the GTK+ interface'''
|
||||
|
||||
def get_account_iter(self, name):
|
||||
model = self.tree.get_model()
|
||||
|
@ -145,8 +145,7 @@ class RosterWindow:
|
|||
show = gajim.SHOW_LIST[gajim.connections[account].connected]
|
||||
|
||||
tls_pixbuf = None
|
||||
if gajim.con_types.has_key(account) and \
|
||||
gajim.con_types[account] in ('tls', 'ssl'):
|
||||
if gajim.account_is_securely_connected(account):
|
||||
tls_pixbuf = self.window.render_icon(gtk.STOCK_DIALOG_AUTHENTICATION,
|
||||
gtk.ICON_SIZE_MENU) # the only way to create a pixbuf from stock
|
||||
|
||||
|
@ -164,11 +163,7 @@ class RosterWindow:
|
|||
else:
|
||||
accounts = [account]
|
||||
num_of_accounts = len(accounts)
|
||||
num_of_secured = 0
|
||||
for acct in accounts:
|
||||
if gajim.con_types.has_key(acct) and \
|
||||
gajim.con_types[acct] in ('tls', 'ssl'):
|
||||
num_of_secured += 1
|
||||
num_of_secured = gajim.get_number_of_securely_connected_accounts()
|
||||
if num_of_secured:
|
||||
tls_pixbuf = self.window.render_icon(gtk.STOCK_DIALOG_AUTHENTICATION,
|
||||
gtk.ICON_SIZE_MENU) # the only way to create a pixbuf from stock
|
||||
|
@ -224,8 +219,12 @@ class RosterWindow:
|
|||
self.add_self_contact(account)
|
||||
return
|
||||
if gajim.jid_is_transport(contact.jid):
|
||||
# if jid is transport, check if we wanna show it in roster
|
||||
if not gajim.config.get('show_transports_group'):
|
||||
return
|
||||
contact.groups = [_('Transports')]
|
||||
|
||||
|
||||
# JEP-0162
|
||||
hide = True
|
||||
if contact.sub in ('both', 'to'):
|
||||
|
@ -308,25 +307,25 @@ class RosterWindow:
|
|||
groups = [_('Observers')]
|
||||
elif not groups:
|
||||
groups = [_('General')]
|
||||
for g in groups:
|
||||
iterG = self.get_group_iter(g, account)
|
||||
for group in groups:
|
||||
iterG = self.get_group_iter(group, account)
|
||||
if not iterG:
|
||||
IterAcct = self.get_account_iter(account)
|
||||
iterG = model.append(IterAcct, [
|
||||
self.jabber_state_images['16']['closed'],
|
||||
gtkgui_helpers.escape_for_pango_markup(g), 'group', g, account,
|
||||
False, None])
|
||||
if not gajim.groups[account].has_key(g): # It can probably never append
|
||||
if account + g in self.collapsed_rows:
|
||||
gtkgui_helpers.escape_for_pango_markup(group), 'group',
|
||||
group, account, False, None])
|
||||
if group not in gajim.groups[account]: # It can probably never append
|
||||
if account + group in self.collapsed_rows:
|
||||
ishidden = False
|
||||
else:
|
||||
ishidden = True
|
||||
gajim.groups[account][g] = { 'expand': ishidden }
|
||||
gajim.groups[account][group] = {'expand': ishidden}
|
||||
if not account in self.collapsed_rows:
|
||||
self.tree.expand_row((model.get_path(iterG)[0]), False)
|
||||
|
||||
typestr = 'contact'
|
||||
if g == _('Transports'):
|
||||
if group == _('Transports'):
|
||||
typestr = 'agent'
|
||||
|
||||
name = contact.get_shown_name()
|
||||
|
@ -334,7 +333,7 @@ class RosterWindow:
|
|||
model.append(iterG, (None, name, typestr, contact.jid, account,
|
||||
False, None))
|
||||
|
||||
if gajim.groups[account][g]['expand']:
|
||||
if gajim.groups[account][group]['expand']:
|
||||
self.tree.expand_row(model.get_path(iterG), False)
|
||||
self.draw_contact(jid, account)
|
||||
self.draw_avatar(jid, account)
|
||||
|
@ -389,8 +388,8 @@ class RosterWindow:
|
|||
return
|
||||
if contact.jid in gajim.newly_added[account]:
|
||||
return
|
||||
if contact.jid.find('@') < 1 and gajim.connections[account].connected > 1:
|
||||
# It's an agent
|
||||
if gajim.jid_is_transport(contact.jid) and gajim.account_is_connected(
|
||||
account): # It's an agent
|
||||
return
|
||||
if contact.jid in gajim.to_be_removed[account]:
|
||||
gajim.to_be_removed[account].remove(contact.jid)
|
||||
|
@ -406,7 +405,7 @@ class RosterWindow:
|
|||
showOffline = gajim.config.get('showoffline')
|
||||
if (contact.show in ('offline', 'error') or hide) and \
|
||||
not showOffline and (not _('Transports') in contact.groups or \
|
||||
gajim.connections[account].connected < 2) and \
|
||||
gajim.account_is_disconnected(account)) and \
|
||||
len(gajim.events.get_events(account, contact.jid, ['chat'])) == 0:
|
||||
self.remove_contact(contact, account)
|
||||
else:
|
||||
|
@ -460,7 +459,7 @@ class RosterWindow:
|
|||
def get_appropriate_state_images(self, jid, size = '16',
|
||||
icon_name = 'online'):
|
||||
'''check jid and return the appropriate state images dict for
|
||||
the demanded size. icon_name is taken into account when jis is from
|
||||
the demanded size. icon_name is taken into account when jid is from
|
||||
transport: transport iconset doesn't contain all icons, so we fall back
|
||||
to jabber one'''
|
||||
transport = gajim.get_transport_name_from_jid(jid)
|
||||
|
@ -491,11 +490,16 @@ class RosterWindow:
|
|||
if self.regroup:
|
||||
add_acct = False
|
||||
# look through all contacts of all accounts
|
||||
for a in gajim.connections:
|
||||
for j in gajim.contacts.get_jid_list(a):
|
||||
for account_iter in gajim.connections:
|
||||
if account_iter == account: # useless to add accout name
|
||||
continue
|
||||
for jid_iter in gajim.contacts.get_jid_list(account_iter):
|
||||
# [0] cause it'fster than highest_prio
|
||||
c = gajim.contacts.get_first_contact_from_jid(a, j)
|
||||
if c.name == contact.name and (j, a) != (jid, account):
|
||||
contact_iter = gajim.contacts.\
|
||||
get_first_contact_from_jid(account_iter, jid_iter)
|
||||
if contact_iter.get_shown_name() == \
|
||||
contact.get_shown_name() and\
|
||||
(jid_iter, account_iter) != (jid, account):
|
||||
add_acct = True
|
||||
break
|
||||
if add_acct:
|
||||
|
@ -719,11 +723,9 @@ class RosterWindow:
|
|||
return
|
||||
new_chat_menuitem = self.xml.get_widget('new_chat_menuitem')
|
||||
join_gc_menuitem = self.xml.get_widget('join_gc_menuitem')
|
||||
iconset = gajim.config.get('iconset')
|
||||
path = os.path.join(gajim.DATA_DIR, 'iconsets', iconset, '16x16')
|
||||
state_images = self.load_iconset(path)
|
||||
if state_images.has_key('muc_active'):
|
||||
join_gc_menuitem.set_image(state_images['muc_active'])
|
||||
muc_icon = self.load_icon('muc_active')
|
||||
if muc_icon:
|
||||
join_gc_menuitem.set_image(muc_icon)
|
||||
add_new_contact_menuitem = self.xml.get_widget('add_new_contact_menuitem')
|
||||
service_disco_menuitem = self.xml.get_widget('service_disco_menuitem')
|
||||
advanced_menuitem = self.xml.get_widget('advanced_menuitem')
|
||||
|
@ -829,7 +831,7 @@ class RosterWindow:
|
|||
|
||||
elif connected_accounts == 1: # user has only one account
|
||||
for account in gajim.connections:
|
||||
if gajim.connections[account].connected > 1: # THE connected account
|
||||
if gajim.account_is_connected(account): # THE connected account
|
||||
# gc
|
||||
self.add_bookmarks_list(gc_sub_menu, account)
|
||||
# add
|
||||
|
@ -872,7 +874,7 @@ class RosterWindow:
|
|||
|
||||
connected_accounts_with_vcard = []
|
||||
for account in gajim.connections:
|
||||
if gajim.connections[account].connected > 1 and \
|
||||
if gajim.account_is_connected(account) and \
|
||||
gajim.connections[account].vcard_supported:
|
||||
connected_accounts_with_vcard.append(account)
|
||||
if len(connected_accounts_with_vcard) > 1:
|
||||
|
@ -900,11 +902,12 @@ class RosterWindow:
|
|||
else:
|
||||
profile_avatar_menuitem.set_sensitive(True)
|
||||
|
||||
newitem = gtk.ImageMenuItem(_('Manage Bookmarks...'))
|
||||
newitem = gtk.ImageMenuItem(_('_Manage Bookmarks...'))
|
||||
img = gtk.image_new_from_stock(gtk.STOCK_PREFERENCES,
|
||||
gtk.ICON_SIZE_MENU)
|
||||
newitem.set_image(img)
|
||||
newitem.connect('activate', self.on_manage_bookmarks_menuitem_activate)
|
||||
newitem.connect('activate',
|
||||
self.on_manage_bookmarks_menuitem_activate)
|
||||
gc_sub_menu.append(newitem)
|
||||
gc_sub_menu.show_all()
|
||||
|
||||
|
@ -923,7 +926,11 @@ class RosterWindow:
|
|||
advanced_menuitem_menu.show_all()
|
||||
else: # user has *more* than one account : build advanced submenus
|
||||
advanced_sub_menu = gtk.Menu()
|
||||
accounts = [] # Put accounts in a list to sort them
|
||||
for account in gajim.connections:
|
||||
accounts.append(account)
|
||||
accounts.sort()
|
||||
for account in accounts:
|
||||
advanced_item = gtk.MenuItem(_('for account %s') % account, False)
|
||||
advanced_sub_menu.append(advanced_item)
|
||||
advanced_menuitem_menu = self.get_and_connect_advanced_menuitem_menu(
|
||||
|
@ -1187,8 +1194,7 @@ class RosterWindow:
|
|||
status = connection.status,
|
||||
resource = gajim.config.get_per('accounts', connection.name,
|
||||
'resource'),
|
||||
priority = gajim.config.get_per('accounts', connection.name,
|
||||
'priority'),
|
||||
priority = connection.priority,
|
||||
keyID = gajim.config.get_per('accounts', connection.name,
|
||||
'keyid'))
|
||||
contacts.append(contact)
|
||||
|
@ -1510,11 +1516,9 @@ class RosterWindow:
|
|||
img.set_from_file(path_to_kbd_input_img)
|
||||
rename_menuitem.set_image(img)
|
||||
|
||||
iconset = gajim.config.get('iconset')
|
||||
path = os.path.join(gajim.DATA_DIR, 'iconsets', iconset, '16x16')
|
||||
state_images = self.load_iconset(path)
|
||||
if state_images.has_key('muc_active'):
|
||||
invite_menuitem.set_image(state_images['muc_active'])
|
||||
muc_icon = self.load_icon('muc_active')
|
||||
if muc_icon:
|
||||
invite_menuitem.set_image(muc_icon)
|
||||
|
||||
above_subscription_separator = xml.get_widget(
|
||||
'above_subscription_separator')
|
||||
|
@ -1824,7 +1828,6 @@ class RosterWindow:
|
|||
jid = model[iter][C_JID].decode('utf-8')
|
||||
path = model.get_path(iter)
|
||||
account = model[iter][C_ACCOUNT].decode('utf-8')
|
||||
is_connected = gajim.connections[account].connected > 1
|
||||
contact = gajim.contacts.get_contact_with_highest_priority(account, jid)
|
||||
menu = gtk.Menu()
|
||||
|
||||
|
@ -1833,7 +1836,8 @@ class RosterWindow:
|
|||
item.set_image(icon)
|
||||
menu.append(item)
|
||||
show = contact.show
|
||||
if (show != 'offline' and show != 'error') or not is_connected:
|
||||
if (show != 'offline' and show != 'error') or\
|
||||
gajim.account_is_disconnected(account):
|
||||
item.set_sensitive(False)
|
||||
item.connect('activate', self.on_agent_logging, jid, None, account)
|
||||
|
||||
|
@ -1841,7 +1845,8 @@ class RosterWindow:
|
|||
icon = gtk.image_new_from_stock(gtk.STOCK_NO, gtk.ICON_SIZE_MENU)
|
||||
item.set_image(icon)
|
||||
menu.append(item)
|
||||
if show in ('offline', 'error') or not is_connected:
|
||||
if show in ('offline', 'error') or gajim.account_is_disconnected(
|
||||
account):
|
||||
item.set_sensitive(False)
|
||||
item.connect('activate', self.on_agent_logging, jid, 'unavailable',
|
||||
account)
|
||||
|
@ -1854,7 +1859,7 @@ class RosterWindow:
|
|||
item.set_image(icon)
|
||||
menu.append(item)
|
||||
item.connect('activate', self.on_edit_agent, contact, account)
|
||||
if not is_connected:
|
||||
if gajim.account_is_disconnected(account):
|
||||
item.set_sensitive(False)
|
||||
|
||||
item = gtk.ImageMenuItem(_('_Rename'))
|
||||
|
@ -1866,7 +1871,7 @@ class RosterWindow:
|
|||
item.set_image(img)
|
||||
menu.append(item)
|
||||
item.connect('activate', self.on_rename, iter, path)
|
||||
if not is_connected:
|
||||
if gajim.account_is_disconnected(account):
|
||||
item.set_sensitive(False)
|
||||
|
||||
item = gtk.ImageMenuItem(_('_Remove from Roster'))
|
||||
|
@ -1874,7 +1879,7 @@ class RosterWindow:
|
|||
item.set_image(icon)
|
||||
menu.append(item)
|
||||
item.connect('activate', self.on_remove_agent, [(contact, account)])
|
||||
if not is_connected:
|
||||
if gajim.account_is_disconnected(account):
|
||||
item.set_sensitive(False)
|
||||
|
||||
event_button = gtkgui_helpers.get_possible_button_event(event)
|
||||
|
@ -1901,12 +1906,8 @@ class RosterWindow:
|
|||
config.ZeroconfPropertiesWindow()
|
||||
|
||||
def on_open_gmail_inbox(self, widget, account):
|
||||
if gajim.config.get_per('accounts', account, 'savepass'):
|
||||
url = ('http://www.google.com/accounts/ServiceLoginAuth?service=mail&Email=%s&Passwd=%s&continue=https://mail.google.com/mail') %\
|
||||
(urllib.quote(gajim.config.get_per('accounts', account, 'name')),
|
||||
urllib.quote(gajim.config.get_per('accounts', account, 'password')))
|
||||
else:
|
||||
url = ('http://mail.google.com/')
|
||||
url = 'http://mail.google.com/mail?account_id=%s' % urllib.quote(
|
||||
gajim.config.get_per('accounts', account, 'name'))
|
||||
helpers.launch_browser_mailer('url', url)
|
||||
|
||||
def on_change_status_message_activate(self, widget, account):
|
||||
|
@ -2440,7 +2441,7 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
if gc_control.account == account:
|
||||
gajim.connections[account].send_gc_status(gc_control.nick,
|
||||
gc_control.room_jid, status, txt)
|
||||
if gajim.connections[account].connected > 1:
|
||||
if gajim.account_is_connected(account):
|
||||
if status == 'online' and gajim.interface.sleeper.getState() != \
|
||||
common.sleepy.STATE_UNKNOWN:
|
||||
gajim.sleeper_state[account] = 'online'
|
||||
|
@ -2507,14 +2508,16 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
dlg = dialogs.ChangeStatusMessageDialog(status)
|
||||
message = dlg.run()
|
||||
if message is not None: # None if user pressed Cancel
|
||||
for acct in accounts:
|
||||
if not gajim.config.get_per('accounts', acct,
|
||||
for account in accounts:
|
||||
if not gajim.config.get_per('accounts', account,
|
||||
'sync_with_global_status'):
|
||||
continue
|
||||
current_show = gajim.SHOW_LIST[gajim.connections[acct].connected]
|
||||
self.send_status(acct, current_show, message)
|
||||
current_show = gajim.SHOW_LIST[
|
||||
gajim.connections[account].connected]
|
||||
self.send_status(account, current_show, message)
|
||||
self.combobox_callback_active = False
|
||||
self.status_combobox.set_active(self.previous_status_combobox_active)
|
||||
self.status_combobox.set_active(
|
||||
self.previous_status_combobox_active)
|
||||
self.combobox_callback_active = True
|
||||
return
|
||||
# we are about to change show, so save this new show so in case
|
||||
|
@ -2524,13 +2527,13 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
connected_accounts = gajim.get_number_of_connected_accounts()
|
||||
if status == 'invisible':
|
||||
bug_user = False
|
||||
for acct in accounts:
|
||||
if connected_accounts < 1 or gajim.connections[acct].connected > 1:
|
||||
if not gajim.config.get_per('accounts', acct,
|
||||
for account in accounts:
|
||||
if connected_accounts < 1 or gajim.account_is_connected(account):
|
||||
if not gajim.config.get_per('accounts', account,
|
||||
'sync_with_global_status'):
|
||||
continue
|
||||
# We're going to change our status to invisible
|
||||
if self.connected_rooms(acct):
|
||||
if self.connected_rooms(account):
|
||||
bug_user = True
|
||||
break
|
||||
if bug_user:
|
||||
|
@ -2550,15 +2553,16 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
global_sync_accounts.append(acct)
|
||||
global_sync_connected_accounts = gajim.get_number_of_connected_accounts(
|
||||
global_sync_accounts)
|
||||
for acct in accounts:
|
||||
if not gajim.config.get_per('accounts', acct, 'sync_with_global_status'):
|
||||
for account in accounts:
|
||||
if not gajim.config.get_per('accounts', account,
|
||||
'sync_with_global_status'):
|
||||
continue
|
||||
# we are connected (so we wanna change show and status)
|
||||
# or no account is connected and we want to connect with new show and status
|
||||
|
||||
if not global_sync_connected_accounts > 0 or \
|
||||
gajim.connections[acct].connected > 1:
|
||||
self.send_status(acct, status, message)
|
||||
gajim.account_is_connected(account):
|
||||
self.send_status(account, status, message)
|
||||
self.update_status_combobox()
|
||||
|
||||
## enable setting status msg from currently playing music track
|
||||
|
@ -2591,14 +2595,14 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
status_message = _('♪ "%(title)s" by %(artist)s ♪') % \
|
||||
{'title': music_track_info.title,
|
||||
'artist': music_track_info.artist }
|
||||
for acct in accounts:
|
||||
if not gajim.config.get_per('accounts', acct,
|
||||
for account in accounts:
|
||||
if not gajim.config.get_per('accounts', account,
|
||||
'sync_with_global_status'):
|
||||
continue
|
||||
if not gajim.connections[acct].connected:
|
||||
if not gajim.connections[account].connected:
|
||||
continue
|
||||
current_show = gajim.SHOW_LIST[gajim.connections[acct].connected]
|
||||
self.send_status(acct, current_show, status_message)
|
||||
current_show = gajim.SHOW_LIST[gajim.connections[account].connected]
|
||||
self.send_status(account, current_show, status_message)
|
||||
|
||||
|
||||
def update_status_combobox(self):
|
||||
|
@ -2706,7 +2710,7 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
|
||||
def on_message(self, jid, msg, tim, account, encrypted = False,
|
||||
msg_type = '', subject = None, resource = '', msg_id = None,
|
||||
user_nick = '', advanced_notif_num = None):
|
||||
user_nick = '', advanced_notif_num = None, xhtml = None):
|
||||
'''when we receive a message'''
|
||||
contact = None
|
||||
# if chat window will be for specific resource
|
||||
|
@ -2774,7 +2778,7 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
if msg_type == 'error':
|
||||
typ = 'status'
|
||||
ctrl.print_conversation(msg, typ, tim = tim, encrypted = encrypted,
|
||||
subject = subject)
|
||||
subject = subject, xhtml = xhtml)
|
||||
if msg_id:
|
||||
gajim.logger.set_read_messages([msg_id])
|
||||
return
|
||||
|
@ -2788,7 +2792,7 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
show_in_roster = notify.get_show_in_roster(event_type, account, contact)
|
||||
show_in_systray = notify.get_show_in_systray(event_type, account, contact)
|
||||
event = gajim.events.create_event(type_, (msg, subject, msg_type, tim,
|
||||
encrypted, resource, msg_id), show_in_roster = show_in_roster,
|
||||
encrypted, resource, msg_id, xhtml), show_in_roster = show_in_roster,
|
||||
show_in_systray = show_in_systray)
|
||||
gajim.events.add_event(account, fjid, event)
|
||||
if popup:
|
||||
|
@ -2874,6 +2878,10 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
else:
|
||||
gajim.interface.instances['file_transfers'].window.show_all()
|
||||
|
||||
def on_show_transports_menuitem_activate(self, widget):
|
||||
gajim.config.set('show_transports_group', widget.get_active())
|
||||
self.draw_roster()
|
||||
|
||||
def on_manage_bookmarks_menuitem_activate(self, widget):
|
||||
config.ManageBookmarksWindow()
|
||||
|
||||
|
@ -2888,11 +2896,13 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
else:
|
||||
w.window.destroy()
|
||||
|
||||
def close_all(self, account):
|
||||
'''close all the windows from an account'''
|
||||
def close_all(self, account, force = False):
|
||||
'''close all the windows from an account
|
||||
if force is True, do not ask confirmation before closing chat/gc windows
|
||||
'''
|
||||
self.close_all_from_dict(gajim.interface.instances[account])
|
||||
for ctrl in gajim.interface.msg_win_mgr.get_controls(acct = account):
|
||||
ctrl.parent_win.remove_tab(ctrl)
|
||||
ctrl.parent_win.remove_tab(ctrl, force = force)
|
||||
|
||||
def on_roster_window_delete_event(self, widget, event):
|
||||
'''When we want to close the window'''
|
||||
|
@ -3060,6 +3070,11 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
gajim.interface.remove_first_event(account, jid, event.type_)
|
||||
ft.show_completed(jid, data)
|
||||
return True
|
||||
elif event.type_ == 'gc-invitation':
|
||||
dialogs.InvitationReceivedDialog(account, data[0], jid, data[2],
|
||||
data[1])
|
||||
gajim.interface.remove_first_event(account, jid, event.type_)
|
||||
return True
|
||||
return False
|
||||
|
||||
def on_open_chat_window(self, widget, contact, account, resource = None):
|
||||
|
@ -3276,9 +3291,8 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
pass
|
||||
|
||||
def load_iconset(self, path, pixbuf2 = None, transport = False):
|
||||
'''load an iconset from the given path, and add pixbuf2 on top left of
|
||||
each static images'''
|
||||
imgs = {}
|
||||
'''load full iconset from the given path, and add
|
||||
pixbuf2 on top left of each static images'''
|
||||
path += '/'
|
||||
if transport:
|
||||
list = ('online', 'chat', 'away', 'xa', 'dnd', 'offline',
|
||||
|
@ -3290,15 +3304,28 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
if pixbuf2:
|
||||
list = ('connecting', 'online', 'chat', 'away', 'xa', 'dnd',
|
||||
'offline', 'error', 'requested', 'message', 'not in roster')
|
||||
for state in list:
|
||||
return self._load_icon_list(list, path, pixbuf2)
|
||||
|
||||
def load_icon(self, icon_name):
|
||||
'''load an icon from the iconset in 16x16'''
|
||||
iconset = gajim.config.get('iconset')
|
||||
path = os.path.join(gajim.DATA_DIR, 'iconsets', iconset, '16x16'+ '/')
|
||||
icon_list = self._load_icon_list([icon_name], path)
|
||||
return icon_list[icon_name]
|
||||
|
||||
def _load_icon_list(self, icons_list, path, pixbuf2 = None):
|
||||
'''load icons in icons_list from the given path,
|
||||
and add pixbuf2 on top left of each static images'''
|
||||
imgs = {}
|
||||
for icon in icons_list:
|
||||
# try to open a pixfile with the correct method
|
||||
state_file = state.replace(' ', '_')
|
||||
icon_file = icon.replace(' ', '_')
|
||||
files = []
|
||||
files.append(path + state_file + '.gif')
|
||||
files.append(path + state_file + '.png')
|
||||
files.append(path + icon_file + '.gif')
|
||||
files.append(path + icon_file + '.png')
|
||||
image = gtk.Image()
|
||||
image.show()
|
||||
imgs[state] = image
|
||||
imgs[icon] = image
|
||||
for file in files: # loop seeking for either gif or png
|
||||
if os.path.exists(file):
|
||||
image.set_from_file(file)
|
||||
|
@ -4040,6 +4067,10 @@ _('If "%s" accepts this request you will know his or her status.') % jid)
|
|||
self.xml.get_widget('show_offline_contacts_menuitem').set_active(
|
||||
showOffline)
|
||||
|
||||
show_transports_group = gajim.config.get('show_transports_group')
|
||||
self.xml.get_widget('show_transports_menuitem').set_active(
|
||||
show_transports_group)
|
||||
|
||||
# columns
|
||||
|
||||
# this col has 3 cells:
|
||||
|
|
|
@ -0,0 +1,116 @@
|
|||
## rst_xhtml_generator.py
|
||||
##
|
||||
## Copyright (C) 2006 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Copyright (C) 2006 Nikos Kouremenos <kourem@gmail.com>
|
||||
## Copyright (C) 2006 Santiago Gala
|
||||
##
|
||||
## 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; version 2 only.
|
||||
##
|
||||
## 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.
|
||||
##
|
||||
|
||||
from docutils import io
|
||||
from docutils.core import Publisher
|
||||
from docutils.parsers.rst import roles
|
||||
|
||||
def jep_reference_role(role, rawtext, text, lineno, inliner,
|
||||
options={}, content=[]):
|
||||
'''Role to make handy references to Jabber Enhancement Proposals (JEP).
|
||||
|
||||
Use as :JEP:`71` (or jep, or jep-reference).
|
||||
Modeled after the sample in docutils documentation.
|
||||
'''
|
||||
from docutils import nodes,utils
|
||||
from docutils.parsers.rst.roles import set_classes
|
||||
|
||||
jep_base_url = 'http://www.jabber.org/jeps/'
|
||||
jep_url = 'jep-%04d.html'
|
||||
try:
|
||||
jepnum = int(text)
|
||||
if jepnum <= 0:
|
||||
raise ValueError
|
||||
except ValueError:
|
||||
msg = inliner.reporter.error(
|
||||
'JEP number must be a number greater than or equal to 1; '
|
||||
'"%s" is invalid.' % text, line=lineno)
|
||||
prb = inliner.problematic(rawtext, rawtext, msg)
|
||||
return [prb], [msg]
|
||||
ref = jep_base_url + jep_url % jepnum
|
||||
set_classes(options)
|
||||
node = nodes.reference(rawtext, 'JEP ' + utils.unescape(text), refuri=ref,
|
||||
**options)
|
||||
return [node], []
|
||||
|
||||
roles.register_canonical_role('jep-reference', jep_reference_role)
|
||||
from docutils.parsers.rst.languages.en import roles
|
||||
roles['jep-reference'] = 'jep-reference'
|
||||
roles['jep'] = 'jep-reference'
|
||||
|
||||
class HTMLGenerator:
|
||||
'''Really simple HTMLGenerator starting from publish_parts.
|
||||
|
||||
It reuses the docutils.core.Publisher class, which means it is *not*
|
||||
threadsafe.
|
||||
'''
|
||||
def __init__(self,
|
||||
settings_spec=None,
|
||||
settings_overrides=dict(report_level=5, halt_level=5),
|
||||
config_section='general'):
|
||||
self.pub = Publisher(reader=None, parser=None, writer=None,
|
||||
settings=None,
|
||||
source_class=io.StringInput,
|
||||
destination_class=io.StringOutput)
|
||||
self.pub.set_components(reader_name='standalone',
|
||||
parser_name='restructuredtext',
|
||||
writer_name='html')
|
||||
#hack: JEP-0071 does not allow HTML char entities, so we hack our way out of it.
|
||||
# — == u"\u2014"
|
||||
# a setting to only emit charater entities in the writer would be nice
|
||||
# FIXME: several are emitted, and they are explicitly forbidden in the JEP
|
||||
# == u"\u00a0"
|
||||
self.pub.writer.translator_class.attribution_formats['dash'] = (u'\u2014', '')
|
||||
self.pub.process_programmatic_settings(settings_spec,
|
||||
settings_overrides,
|
||||
config_section)
|
||||
|
||||
|
||||
def create_xhtml(self, text,
|
||||
destination=None,
|
||||
destination_path=None,
|
||||
enable_exit_status=None):
|
||||
''' Create xhtml for a fragment of IM dialog.
|
||||
We can use the source_name to store info about
|
||||
the message.'''
|
||||
self.pub.set_source(text, None)
|
||||
self.pub.set_destination(destination, destination_path)
|
||||
output = self.pub.publish(enable_exit_status=enable_exit_status)
|
||||
#kludge until we can get docutils to stop generating (rare) entities
|
||||
return u'\u00a0'.join(self.pub.writer.parts['fragment'].strip().split(' '))
|
||||
|
||||
Generator = HTMLGenerator()
|
||||
|
||||
def create_xhtml(text):
|
||||
return Generator.create_xhtml(text)
|
||||
|
||||
if __name__ == '__main__':
|
||||
print Generator.create_xhtml('''
|
||||
test::
|
||||
|
||||
>>> print 1
|
||||
1
|
||||
|
||||
*I* like it. It is for :JEP:`71`
|
||||
|
||||
this `` should trigger`` should trigger the problem.
|
||||
|
||||
''')
|
||||
print Generator.create_xhtml('''
|
||||
*test1
|
||||
|
||||
test2_
|
||||
''')
|
|
@ -13,7 +13,7 @@
|
|||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Copyright (C) 2005 Yann Le Boulanger <asterix@lagaule.org>
|
||||
## Vincent Hanquez <tab@snarc.org>
|
||||
## Nikos Kouremenos <nkour@jabber.org>
|
||||
## Nikos Kouremenos <kourem@gmail.com>
|
||||
## Dimitur Kirov <dkirov@gmail.com>
|
||||
## Travis Shirk <travis@pobox.com>
|
||||
## Norman Rasmussen <norman@rasmussen.co.za>
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
## GNU General Public License for more details.
|
||||
##
|
||||
|
||||
# THIS FILE IS FOR **OTHERS'** PROFILE (when we VIEW their INFO)
|
||||
|
||||
import gtk
|
||||
import gobject
|
||||
import base64
|
||||
|
@ -130,6 +132,7 @@ class VcardWindow:
|
|||
widget = gtk.LinkButton(value, value)
|
||||
else:
|
||||
widget = gtk.Label(value)
|
||||
widget.show()
|
||||
table = self.xml.get_widget('personal_info_table')
|
||||
table.attach(widget, 1, 4, 3, 4, yoptions = 0)
|
||||
else:
|
||||
|
@ -150,7 +153,7 @@ class VcardWindow:
|
|||
pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'vcard')
|
||||
image.set_from_pixbuf(pixbuf)
|
||||
continue
|
||||
if i == 'ADR' or i == 'TEL' or i == 'EMAIL':
|
||||
if i in ('ADR', 'TEL', 'EMAIL'):
|
||||
for entry in vcard[i]:
|
||||
add_on = '_HOME'
|
||||
if 'WORK' in entry:
|
||||
|
|
Loading…
Reference in New Issue