commit 2abad4e8f58083028a0f887a61c62cb94c320084
parent 4e15c31f6ecbf82043494043d83ca8bd4a6a951e
Author: Jean-Yves Lefort <jylefort@brutele.be>
Date: Wed, 10 Aug 2005 06:04:21 +1000
mail-notification-2.0
* Core changes:
* Evolution support has been added
* Mailboxes can now be assigned a custom name
* For greater flexibility, mailboxes configuration is
now stored in ~/.gnome2/mail-notification/mailboxes.xml
(previously, it was stored in the GConf database)
* The mailbox list widget has been redesigned
* The mailbox properties dialog has been redesigned
* Copying a mailbox to the clipboard does not make it
available to Nautilus anymore: that behaviour was
confusing and useless. However, pasting files copied
from Nautilus still works.
* If a mailbox requires authentication and the
necessary credentials are not provided in the
mailbox properties dialog, Mail Notification now
lets GNOME prompt the user for the credentials
* A test popup can now be displayed from the Mail
Summary Popup properties tab
* The --report command line option has been removed
* The Mail Notification item is now also listed in the
GNOME >= 2.10 Preferences menu
* The welcome dialog has been removed
* A few icons have been modified
* The third-party libegg code has been updated
* Now requires GTK+ version 2.6.0 or superior
* Minor fixes and cleanups
* mbox, MH, Maildir and Sylpheed changes:
* Immediate notification did not work properly with
fast kernel notifiers (kqueue, inotify, dnotify,
...): fixed
* Unseekable files are now supported
* Mailbox type changes are now detected and handled
(previously, Mail Notification had to be restarted
if a mailbox changed type)
* The location of the system mailbox is now resolved
at runtime rather than when the mailbox is added
(eases sharing the Mail Notification settings across
multiple computers)
* mbox changes:
* When immediate notification is not available, the
mailbox is now also checked when its size or ctime
changes (previously, it was only checked if its
mtime had changed)
* Sylpheed changes:
* Mail Notification now tries to avoid race conditions
which may occur while Sylpheed is being used
* Mark file errors are not ignored anymore
* A memory leak has been fixed
* POP3, IMAP and Gmail changes:
* The username can now also be left out, and will be
prompted when needed
* POP3 and IMAP changes:
* Non-UTF-8 characters are now escaped from
uncompliant server responses before being displayed
in the user interface
* If the system resolver is not reentrant,
getaddrinfo()/getnameinfo() calls are now serialized
* The Cyrus SASL library is now initialized only once,
since multiple sasl_client_init()/sasl_done()
invocations may cause problems (another benefit is
that it allows the SASL library to use the POP3
initial client response feature, which saves a
roundtrip during the SASL authentication exchange)
* When the authentication mechanism option is set to
"autodetect", Mail Notification will now try to
authenticate using each server-supported SASL
mechanism
* Mail Notification was incorrectly disallowing empty
SASL server challenges, although they are legit:
fixed
* POP3 changes:
* The TOP optional command is now supported. This
solves some issues with POP3 servers (for instance,
pop.gmail.com) which incorrectly archive mails that
have been accessed using the RETR command.
* Initial SASL client responses are now handled
properly (passed as an argument to the AUTH command
rather than in the SASL authentication exchange)
* IMAP changes:
* If, while idling, the server abruptly drops the
connection, Mail Notification now reconnects rather
than considering it an error
* When idling, Mail Notification now only wakes up if
it receives a response indicating that the mailbox
might have changed
* By default, Mail Notification now avoids using the
IDLE extension if the remote server software is
known to have a broken IDLE implementation
* UTF-8 mailbox names are now converted to modified
UTF-7, as required by RFC 3501
* Gmail changes:
* Functionality has been restored after the Gmail web
site was modified; to prevent future disruptions and
simplify the source code, the Gmail Atom feed
(https://mail.google.com/mail/feed/atom) is now used
* Now works even if the Gmail account language is not
set to English
* libsoup and ICU are no longer required
* Updated translations:
* French
* Serbian (Filip Miletic)
* German (Hendrik Brandt, Jens Seidel)
Diffstat:
355 files changed, 74809 insertions(+), 34904 deletions(-)
diff --git a/AUTHORS b/AUTHORS
@@ -4,24 +4,23 @@
Developed by Jean-Yves Lefort <jylefort@brutele.be>.
-Contributors:
- * Hendrik Brandt <eru@gmx.li> (German translations)
+Translators:
+ * Hendrik Brandt <eru@gmx.li>,
+ Jens Seidel <jensseidel@users.sf.net> (German)
* Duarte Henriques <duarte_henriques@myrealbox.com>
- (Portuguese translations)
- * Dan Korostelev <dan@ats.energo.ru> (Russian translations)
- * Filip Miletic <filmil@gmail.com> (Serbian translations)
- * Vladimir Petkov <vpetkov@i-space.org> (Bulgarian
- translations)
+ (Portuguese)
+ * Dan Korostelev <dan@ats.energo.ru> (Russian)
+ * Filip Miletic <filmil@gmail.com> (Serbian)
+ * Vladimir Petkov <vpetkov@i-space.org> (Bulgarian)
* Tomasz Sarota-Raczek <tomasz.sarota.raczek@gmail.com>,
- Maurycy Pawłowski-Wieroński <maurycy@abstrakcja.pl>
- (Polish translations)
+ Maurycy Pawłowski-Wieroński <maurycy@abstrakcja.pl> (Polish)
External code sources:
* libegg (src/egg*)
+ * Nautilus (src/nautilus*)
External art sources (images taken as-is or slightly modified):
* Google (gmail.png)
* Evolution (mail-notification.png)
- * GTK+ (unsupported.png)
* GNOME Icon Theme (main-window.png)
* libegg (hand-open.png)
diff --git a/INSTALL b/INSTALL
@@ -11,7 +11,7 @@ Index
0. About this document
- $Id: INSTALL,v 1.17 2005/03/01 01:43:58 jylefort Exp $
+ $Id: INSTALL,v 1.18 2005/08/03 16:48:43 jylefort Exp $
Copyright (C) 2003-2005 Jean-Yves Lefort.
@@ -20,31 +20,21 @@ Index
1. Dependencies
- Mandatory libraries:
+ Mandatory:
- * GTK+ (version 2.4.0 or superior)
+ * GTK+ (version 2.6.0 or superior)
http://www.gtk.org/
* GNOME (version 2.6.0 or superior)
http://www.gnome.org/
- Optional libraries:
+ Optional:
* for mbox, MH, Maildir, POP3, IMAP and Sylpheed support:
GMime (version 2.1.0 or superior)
http://spruce.sourceforge.net/gmime/
- * for Gmail support:
-
- GNOME (version 2.8.0 or superior)
- http://www.gnome.org/
-
- * for Gmail timestamps support:
-
- ICU (version 2.6 or superior)
- http://ibm.com/software/globalization/icu/
-
* for SSL/TLS support:
OpenSSL (version 0.9.5b or superior)
@@ -55,32 +45,37 @@ Index
Cyrus SASL (version 2.0 or superior)
http://asg.web.cmu.edu/sasl/sasl-library.html
+ * for Evolution support:
+
+ Evolution (version 2.2 or superior)
+ http://www.gnome.org/projects/evolution/
+
2. Instructions
- Mail Notification uses the well-known GNU build system. Hence,
- the following usual sequence will probably satisfy most users:
+ Mail Notification uses the GNU build system. Hence, the
+ following usual sequence will probably satisfy most users:
- $ ./configure --prefix=/usr
+ $ ./configure
$ make
<get root privileges, if needed>
$ make install
IMPORTANT:
- * You must install Mail Notification in the same
- prefix as GNOME (commonly /usr or /opt/gnome). To
- know where GNOME is installed on your system, type:
-
- $ pkg-config --variable prefix libgnome-2.0
-
* Due to a bug in bonobo-activation
(http://bugzilla.gnome.org/show_bug.cgi?id=151082),
your session must be restarted after installing Mail
Notification.
- The ./configure script options are documented below. They are
- enabled by default and automatically disabled if a requirement
- is not met, so you probably do not need to use them.
+ * For building Evolution support, you must specify the
+ path to the Evolution source directory, for
+ instance:
+
+ $ ./configure \
+ --with-evolution-source-dir=$HOME/evolution-2.2.3
+
+ The configure script options which are specific to Mail
+ Notification are documented below.
3. Configure options
@@ -128,29 +123,41 @@ Index
Requirements: Cyrus SASL version 2.0 or superior.
Applies to: POP3, IMAP.
- --enable-sylpheed (default: yes)
+ --enable-ipv6 (default: yes)
- Enable Sylpheed mailbox support.
+ Enable IPv6 support.
- Requirements: GMime version 2.1.0 or superior.
+ Applies to: POP3, IMAP.
--enable-gmail (default: yes)
Enable Gmail mailbox support.
- Requirements: GNOME version 2.8.0 or superior.
+ --enable-evolution (default: yes)
- --enable-gmail-timestamps (default: yes)
+ Enable Evolution mailbox support.
- Enable Gmail timestamps support. If this option is
- disabled, Mail Notification will not be able to
- display the timestamps of Gmail messages.
+ Requirements: Evolution version 2.2 or superior.
- Requirements: GNOME version 2.8.0 or superior.
- Applies to: Gmail.
+ You must specify the path to the Evolution source
+ directory, for instance:
- --enable-ipv6 (default: yes)
+ $ ./configure \
+ --with-evolution-source-dir=$HOME/evolution-2.2.3
- Enable IPv6 support.
+ --with-evolution-source-dir=DIR (default: no)
- Applies to: POP3, IMAP.
+ Specify the path to the Evolution source directory,
+ which is required for building Evolution mailbox
+ support.
+
+ Requirements: the source directory corresponding to
+ the version of Evolution installed on
+ your system.
+ Applies to: Evolution.
+
+ --enable-sylpheed (default: yes)
+
+ Enable Sylpheed mailbox support.
+
+ Requirements: GMime version 2.1.0 or superior.
diff --git a/Makefile.am b/Makefile.am
@@ -6,7 +6,6 @@ SUBDIRS = art data help m4 po src $(tests) ui
EXTRA_DIST = \
autogen.sh \
- autotools.conf \
intltool-extract.in \
intltool-merge.in \
intltool-update.in
diff --git a/Makefile.in b/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -33,16 +33,22 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-subdir = .
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure AUTHORS COPYING INSTALL NEWS TODO \
- compile config.guess config.sub depcomp install-sh missing \
- mkinstalldirs
+ 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/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.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 \
@@ -76,6 +82,7 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -88,15 +95,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -113,10 +129,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -127,9 +139,12 @@ 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@
@@ -142,12 +157,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -155,7 +173,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -172,25 +189,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -211,20 +231,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -239,12 +278,15 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
@WITH_REGRESSION_TESTS_TRUE@tests = tests
SUBDIRS = art data help m4 po src $(tests) ui
EXTRA_DIST = \
autogen.sh \
- autotools.conf \
intltool-extract.in \
intltool-merge.in \
intltool-update.in
@@ -308,6 +350,15 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
distclean-hdr:
-rm -f config.h stamp-h1
+
+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
@@ -317,7 +368,13 @@ uninstall-info-am:
# (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):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @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 \
@@ -329,7 +386,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -337,7 +394,13 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @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)' ;; \
@@ -358,7 +421,7 @@ maintainer-clean-recursive:
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -604,12 +667,13 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
-clean-am: clean-generic mostlyclean-am
+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-tags
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
dvi: dvi-recursive
@@ -639,7 +703,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
@@ -654,19 +718,19 @@ uninstall-am: 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-recursive ctags \
- ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
- dist-tarZ dist-zip distcheck distclean distclean-generic \
- distclean-hdr distclean-recursive distclean-tags \
- distcleancheck distdir distuninstallcheck 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-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive \
- mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
- pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-info-am
+ 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-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-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.
diff --git a/NEWS b/NEWS
@@ -1,17 +1,131 @@
+2.0 August 9, 2005
+
+ * Core changes:
+ * Evolution support has been added
+ * Mailboxes can now be assigned a custom name
+ * For greater flexibility, mailboxes configuration is
+ now stored in ~/.gnome2/mail-notification/mailboxes.xml
+ (previously, it was stored in the GConf database)
+ * The mailbox list widget has been redesigned
+ * The mailbox properties dialog has been redesigned
+ * Copying a mailbox to the clipboard does not make it
+ available to Nautilus anymore: that behaviour was
+ confusing and useless. However, pasting files copied
+ from Nautilus still works.
+ * If a mailbox requires authentication and the
+ necessary credentials are not provided in the
+ mailbox properties dialog, Mail Notification now
+ lets GNOME prompt the user for the credentials
+ * A test popup can now be displayed from the Mail
+ Summary Popup properties tab
+ * The --report command line option has been removed
+ * The Mail Notification item is now also listed in the
+ GNOME >= 2.10 Preferences menu
+ * The welcome dialog has been removed
+ * A few icons have been modified
+ * The third-party libegg code has been updated
+ * Now requires GTK+ version 2.6.0 or superior
+ * Minor fixes and cleanups
+
+ * mbox, MH, Maildir and Sylpheed changes:
+ * Immediate notification did not work properly with
+ fast kernel notifiers (kqueue, inotify, dnotify,
+ ...): fixed
+ * Unseekable files are now supported
+ * Mailbox type changes are now detected and handled
+ (previously, Mail Notification had to be restarted
+ if a mailbox changed type)
+ * The location of the system mailbox is now resolved
+ at runtime rather than when the mailbox is added
+ (eases sharing the Mail Notification settings across
+ multiple computers)
+
+ * mbox changes:
+ * When immediate notification is not available, the
+ mailbox is now also checked when its size or ctime
+ changes (previously, it was only checked if its
+ mtime had changed)
+
+ * Sylpheed changes:
+ * Mail Notification now tries to avoid race conditions
+ which may occur while Sylpheed is being used
+ * Mark file errors are not ignored anymore
+ * A memory leak has been fixed
+
+ * POP3, IMAP and Gmail changes:
+ * The username can now also be left out, and will be
+ prompted when needed
+
+ * POP3 and IMAP changes:
+ * Non-UTF-8 characters are now escaped from
+ uncompliant server responses before being displayed
+ in the user interface
+ * If the system resolver is not reentrant,
+ getaddrinfo()/getnameinfo() calls are now serialized
+ * The Cyrus SASL library is now initialized only once,
+ since multiple sasl_client_init()/sasl_done()
+ invocations may cause problems (another benefit is
+ that it allows the SASL library to use the POP3
+ initial client response feature, which saves a
+ roundtrip during the SASL authentication exchange)
+ * When the authentication mechanism option is set to
+ "autodetect", Mail Notification will now try to
+ authenticate using each server-supported SASL
+ mechanism
+ * Mail Notification was incorrectly disallowing empty
+ SASL server challenges, although they are legit:
+ fixed
+
+ * POP3 changes:
+ * The TOP optional command is now supported. This
+ solves some issues with POP3 servers (for instance,
+ pop.gmail.com) which incorrectly archive mails that
+ have been accessed using the RETR command.
+ * Initial SASL client responses are now handled
+ properly (passed as an argument to the AUTH command
+ rather than in the SASL authentication exchange)
+
+ * IMAP changes:
+ * If, while idling, the server abruptly drops the
+ connection, Mail Notification now reconnects rather
+ than considering it an error
+ * When idling, Mail Notification now only wakes up if
+ it receives a response indicating that the mailbox
+ might have changed
+ * By default, Mail Notification now avoids using the
+ IDLE extension if the remote server software is
+ known to have a broken IDLE implementation
+ * UTF-8 mailbox names are now converted to modified
+ UTF-7, as required by RFC 3501
+
+ * Gmail changes:
+ * Functionality has been restored after the Gmail web
+ site was modified; to prevent future disruptions and
+ simplify the source code, the Gmail Atom feed
+ (https://mail.google.com/mail/feed/atom) is now used
+ * Now works even if the Gmail account language is not
+ set to English
+ * libsoup and ICU are no longer required
+
+ * Updated translations:
+ * French
+ * Serbian (Filip Miletic)
+ * German (Hendrik Brandt, Jens Seidel)
+
1.1 March 6, 2005
- * IMAP fixes:
+ * IMAP changes:
* is more tolerant towards uncompliant FETCH responses
* ignores case of responses (RFC 3501)
* makes sure the server responses are valid ASCII (RFC
3501)
- * Gmail fixes:
+ * Gmail changes:
* properly converts timestamps (requires ICU)
* handles timestamps from previous years
* displays all the messages of a conversation
- * POP3 and IMAP fixes:
+ * POP3 and IMAP changes:
* does not loop infinitely when no password is
specified, an authentication mechanism is specified
and authentication fails
@@ -19,7 +133,7 @@
is specified and the server does not support any
SASL authentication mechanism
- * POP3 and Gmail fixes:
+ * POP3 and Gmail changes:
* makes sure the server responses are valid UTF-8
* The mail summary dialog has been replaced by a main window,
@@ -67,7 +181,7 @@
0.8.1 November 4, 2004
- * Mail summary popup fixes and improvements:
+ * Mail summary popup changes:
* do not recreate it when updating its contents:
removes some flicker
* added a workaround for a Metacity bug which
@@ -104,7 +218,7 @@
0.7.1 October 25, 2004
- * Gmail fixes:
+ * Gmail changes:
* does not crash when a GNOME proxy is set
* handles starred and labelled messages
* ignores non-inbox messages
diff --git a/README b/README
@@ -11,7 +11,7 @@ Index
0. About this document
- $Id: README,v 1.25 2005/03/01 16:55:41 jylefort Exp $
+ $Id: README,v 1.28 2005/08/07 13:14:38 jylefort Exp $
Copyright (C) 2003-2005 Jean-Yves Lefort.
@@ -31,33 +31,36 @@ Index
Mail Notification features include:
* multiple mailbox support
- * mbox, MH, Maildir, Sylpheed, POP3, IMAP and Gmail
- support
+ * mbox, MH, Maildir, POP3, IMAP, Gmail, Evolution and
+ Sylpheed support
* SASL authentication support
* APOP authentication support
* SSL/TLS support
* automatic detection of mailbox format
* immediate notification (the status icon is updated
- within seconds after a mailbox changes)
+ immediately or within seconds after a mailbox
+ changes)
* a mail summary
* HIG 2.0 compliance
2. Issues in third-party software affecting Mail Notification
- As of March 1, 2005, the following issues are unfixed, and may
- cause Mail Notification (and other GNOME multi-threaded
- programs) to crash or hang.
+ * Thread-safety bugs in libgnomeui may cause Mail Notification
+ (and other multi-threaded GNOME applications) to crash or
+ hang.
- * thread-safety bug in GLib:
- http://bugzilla.gnome.org/show_bug.cgi?id=64764
+ http://bugzilla.gnome.org/show_bug.cgi?id=152023
+ http://bugzilla.gnome.org/show_bug.cgi?id=312180
- Reported on 2001-11-17, maintainers apparently do not care.
+ * An infinite loop in GnomeVFS may affect mailboxes which use
+ HTTP authentication (for instance, Gmail mailboxes).
- * thread-safety bugs in libgnomeui:
- http://bugzilla.gnome.org/show_bug.cgi?id=152023
+ http://bugzilla.gnome.org/show_bug.cgi?id=310596
+ (fixed on 20050723)
- Reported on 2004-09-06, patches provided, maintainers
- apparently do not care.
+ * An unidentified bug, probably in the Metacity window
+ manager, may sometimes cause the mail summary popup to be
+ misplaced.
3. Installation instructions
diff --git a/TODO b/TODO
@@ -1,8 +1,6 @@
* Check the SSL certificate's hostname against the hostname we used
(RFC 3501, section 11.1)
-* See if we can add an Evolution data server mailbox backend
-
* List the available IMAP folders in the mailbox properties dialog
* Allow to set a different mail reader for each mailbox. Invoking the
diff --git a/acinclude.m4 b/acinclude.m4
@@ -36,7 +36,7 @@ dnl MN_FEATURE_DEFINE(FEATURE)
dnl
AC_DEFUN([MN_FEATURE_DEFINE],
[if MN_FEATURE_ENABLED([$1]); then
- AC_DEFINE(MN_FEATURE_SYMBOL_NAME([$1]), 1, [Define to 1 if [$1] is enabled])
+ AC_DEFINE(MN_FEATURE_SYMBOL_NAME([$1]), 1, [Define to 1 if $1 is enabled])
fi
])
diff --git a/aclocal.m4 b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,8 +11,246 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
+dnl AM_GCONF_SOURCE_2
+dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
+dnl (i.e. pass to gconftool-2
+dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
+dnl you should install foo.schemas files
+dnl
+
+AC_DEFUN([AM_GCONF_SOURCE_2],
+[
+ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+ GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+ else
+ GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+ fi
+
+ AC_ARG_WITH(gconf-source,
+ [ --with-gconf-source=sourceaddress Config database for installing schema files.],GCONF_SCHEMA_CONFIG_SOURCE="$withval",)
+
+ AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
+ AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
+
+ if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+ GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+ fi
+
+ AC_ARG_WITH(gconf-schema-file-dir,
+ [ --with-gconf-schema-file-dir=dir Directory for installing schema files.],GCONF_SCHEMA_FILE_DIR="$withval",)
+
+ AC_SUBST(GCONF_SCHEMA_FILE_DIR)
+ AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
+
+ AC_ARG_ENABLE(schemas-install,
+ [ --disable-schemas-install Disable the schemas installation],
+ [case "${enableval}" in
+ yes) schemas_install=true ;;
+ no) schemas_install=false ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-schemas-install) ;;
+ esac],[schemas_install=true])
+ AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test x$schemas_install = xtrue)
+])
+
+# Configure paths for GTK+
+# Owen Taylor 1997-2001
+
+dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
+dnl pass to pkg-config
+dnl
+AC_DEFUN([AM_PATH_GTK_2_0],
+[dnl
+dnl Get the cflags and libraries from pkg-config
+dnl
+AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
+ , enable_gtktest=yes)
+
+ pkg_config_args=gtk+-2.0
+ for module in . $4
+ do
+ case "$module" in
+ gthread)
+ pkg_config_args="$pkg_config_args gthread-2.0"
+ ;;
+ esac
+ done
+
+ no_gtk=""
+
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+
+ if test x$PKG_CONFIG != xno ; then
+ if pkg-config --atleast-pkgconfig-version 0.7 ; then
+ :
+ else
+ echo "*** pkg-config too old; version 0.7 or better required."
+ no_gtk=yes
+ PKG_CONFIG=no
+ fi
+ else
+ no_gtk=yes
+ fi
+
+ min_gtk_version=ifelse([$1], ,2.0.0,$1)
+ AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
+
+ if test x$PKG_CONFIG != xno ; then
+ ## don't try to run the test against uninstalled libtool libs
+ if $PKG_CONFIG --uninstalled $pkg_config_args; then
+ echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
+ enable_gtktest=no
+ fi
+
+ if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
+ :
+ else
+ no_gtk=yes
+ fi
+ fi
+
+ if test x"$no_gtk" = x ; then
+ GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
+ GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
+ gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_gtktest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$GTK_LIBS $LIBS"
+dnl
+dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
+dnl checks the results of pkg-config to some extent)
+dnl
+ rm -f conf.gtktest
+ AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gtktest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = g_strdup("$min_gtk_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
+ printf("%s, bad version string\n", "$min_gtk_version");
+ exit(1);
+ }
+
+ if ((gtk_major_version != $gtk_config_major_version) ||
+ (gtk_minor_version != $gtk_config_minor_version) ||
+ (gtk_micro_version != $gtk_config_micro_version))
+ {
+ printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
+ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf ("*** was found! If pkg-config was correct, then it is best\n");
+ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+ printf("*** required on your system.\n");
+ printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
+ printf("*** to point to the correct configuration files\n");
+ }
+ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+ (gtk_minor_version != GTK_MINOR_VERSION) ||
+ (gtk_micro_version != GTK_MICRO_VERSION))
+ {
+ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+ printf("*** library (version %d.%d.%d)\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ }
+ else
+ {
+ if ((gtk_major_version > major) ||
+ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
+ printf("*** correct copy of pkg-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+ }
+ }
+ return 1;
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gtk" = x ; then
+ AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** A new enough version of pkg-config was not found."
+ echo "*** See http://pkgconfig.sourceforge.net"
+ else
+ if test -f conf.gtktest ; then
+ :
+ else
+ echo "*** Could not run GTK+ test program, checking why..."
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$LIBS $GTK_LIBS"
+ AC_TRY_LINK([
+#include <gtk/gtk.h>
+#include <stdio.h>
+], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
+ echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+ rm -f conf.gtktest
+])
+
# Copyright (C) 1995-2002 Free Software Foundation, Inc.
-# Copyright (C) 2001-2003 Red Hat, 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
@@ -35,7 +273,9 @@
#
# 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
@@ -128,16 +368,27 @@ glib_DEFUN([GLIB_WITH_NLS],
#
# First check in libc
#
- AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
+ AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
[AC_TRY_LINK([
#include <libintl.h>
],
- [return (int) dgettext ("","")],
- gt_cv_func_dgettext_libc=yes,
- gt_cv_func_dgettext_libc=no)
+ [return !ngettext ("","", 1)],
+ gt_cv_func_ngettext_libc=yes,
+ gt_cv_func_ngettext_libc=no)
])
- if test "$gt_cv_func_dgettext_libc" = "yes" ; then
+ 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
@@ -145,25 +396,29 @@ glib_DEFUN([GLIB_WITH_NLS],
# 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, dgettext,
- gt_cv_func_dgettext_libintl=yes)])
+ [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, dcgettext,
+ AC_CHECK_LIB(intl, ngettext,
+ [AC_CHECK_LIB(intl, dcgettext,
[gt_cv_func_dgettext_libintl=yes
libintl_extra_libs=-liconv],
- :,-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 both have dgettext and ngettext
#
if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
glib_save_LIBS="$LIBS"
@@ -175,7 +430,8 @@ glib_DEFUN([GLIB_WITH_NLS],
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"; then
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ && test "$gt_cv_func_ngettext_libc" = "yes"; then
gt_cv_func_dgettext_libintl=no
fi
fi
@@ -392,270 +648,6274 @@ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
])dnl
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.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 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
-dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
-# serial 1 IT_PROG_INTLTOOL
-AC_DEFUN([IT_PROG_INTLTOOL],
-[
-
-if test -n "$1"; then
- AC_MSG_CHECKING(for intltool >= $1)
-
- INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ printf "%d", $[1] * 100 + $[2]; }'`
- INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $[2]; }' < ${ac_aux_dir}/intltool-update.in`
- changequote({{,}})
- INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split(${{2}}, VERSION, "."); printf "%d\n", VERSION[1] * 100 + VERSION[2];}' < ${ac_aux_dir}/intltool-update.in`
- changequote([,])
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_ifval([$1], [$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test "x$ac_cv_env_[]$1[]_set" = "xset"; then
+ pkg_cv_[]$1=$ac_cv_env_[]$1[]_value
+elif test -n "$PKG_CONFIG"; then
+ if AC_RUN_LOG([$PKG_CONFIG --exists "$3" >/dev/null 2>&1]); then
+ pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
- if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then
- AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
- else
- AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found. Your intltool is too old. You need intltool $1 or later.])
- exit 1
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.in
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_CACHE_CHECK([for $1][_CFLAGS], [pkg_cv_][$1][_CFLAGS],
+ [_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])])
+AC_CACHE_CHECK([for $1][_LIBS], [pkg_cv_][$1][_LIBS],
+ [_PKG_CONFIG([$1][_LIBS], [libs], [$2])])
+
+if test $pkg_failed = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" 1>&AS_MESSAGE_LOG_FD
+
+ ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met.
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
+to avoid the need to call pkg-config. See the pkg-config man page for
+more details.])],
+ [$4])
+elif test $pkg_failed = untried; then
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
+to avoid the need to call pkg-config. See the pkg-config man page for
+more details.
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 47 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [m4_define([AC_PROVIDE_IFELSE],
+ [m4_ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+ AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [AC_LIBTOOL_CXX],
+ [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+ ])])
+dnl And a similar setup for Fortran 77 support
+ AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [AC_LIBTOOL_F77],
+ [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [ifdef([AC_PROG_GCJ],
+ [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([A][M_PROG_GCJ],
+ [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([LT_AC_PROG_GCJ],
+ [define([LT_AC_PROG_GCJ],
+ defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ AC_PATH_MAGIC
+ fi
+ ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+ [AC_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+ [AC_HELP_STRING([--with-pic],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [pic_mode="$withval"],
+ [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_LINKER_BOILERPLATE
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+ [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X[$]1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+[$]*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
fi
+ done
fi
- INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
-INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
- INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
-INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@'
- INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
-
-AC_SUBST(INTLTOOL_DESKTOP_RULE)
-AC_SUBST(INTLTOOL_DIRECTORY_RULE)
-AC_SUBST(INTLTOOL_KEYS_RULE)
-AC_SUBST(INTLTOOL_PROP_RULE)
-AC_SUBST(INTLTOOL_OAF_RULE)
-AC_SUBST(INTLTOOL_PONG_RULE)
-AC_SUBST(INTLTOOL_SERVER_RULE)
-AC_SUBST(INTLTOOL_SHEET_RULE)
-AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
-AC_SUBST(INTLTOOL_UI_RULE)
-AC_SUBST(INTLTOOL_XAM_RULE)
-AC_SUBST(INTLTOOL_KBD_RULE)
-AC_SUBST(INTLTOOL_XML_RULE)
-AC_SUBST(INTLTOOL_XML_NOMERGE_RULE)
-AC_SUBST(INTLTOOL_CAVES_RULE)
-AC_SUBST(INTLTOOL_SCHEMAS_RULE)
-AC_SUBST(INTLTOOL_THEME_RULE)
-
-# Use the tools built into the package, not the ones that are installed.
-
-INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract'
-INTLTOOL_MERGE='$(top_builddir)/intltool-merge'
-INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
-
-AC_SUBST(INTLTOOL_EXTRACT)
-AC_SUBST(INTLTOOL_MERGE)
-AC_SUBST(INTLTOOL_UPDATE)
-
-AC_PATH_PROG(INTLTOOL_PERL, perl)
-if test -z "$INTLTOOL_PERL"; then
- AC_MSG_ERROR([perl not found; required for intltool])
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "[$]0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
fi
-if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
- AC_MSG_ERROR([perl 5.x required for intltool])
fi
-if test "x$2" != "xno-xml"; then
- AC_MSG_CHECKING([for XML::Parser])
- if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
- AC_MSG_RESULT([ok])
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+ [AC_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
else
- AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
fi
-fi
+ fi
+ rm -rf conftest*
+ ;;
-AC_PATH_PROG(ICONV, iconv, iconv)
-AC_PATH_PROG(MSGFMT, msgfmt, msgfmt)
-AC_PATH_PROG(MSGMERGE, msgmerge, msgmerge)
-AC_PATH_PROG(XGETTEXT, xgettext, xgettext)
-
-# Remove file type tags (using []) from po/POTFILES.
-
-ifdef([AC_DIVERSION_ICMDS],[
- AC_DIVERT_PUSH(AC_DIVERSION_ICMDS)
- changequote(,)
- mv -f po/POTFILES po/POTFILES.tmp
- sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
- rm -f po/POTFILES.tmp
- changequote([,])
- AC_DIVERT_POP()
-],[
- ifdef([AC_CONFIG_COMMANDS_PRE],[
- AC_CONFIG_COMMANDS_PRE([
- changequote(,)
- mv -f po/POTFILES po/POTFILES.tmp
- sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
- rm -f po/POTFILES.tmp
- changequote([,])
- ])
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_PUSH(C)
+ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_POP])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $rm conftest*
+])
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # Keeping the `.' argument allows $(mkdir_p) to be used without
- # argument. Indeed, we sometimes output rules like
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined.
- # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
- # expensive solution, as it forces Make to start a sub-shell.)
- mkdir_p='mkdir -p -- .'
+if test x"[$]$2" = xyes; then
+ ifelse([$5], , :, [$5])
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.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
+ ifelse([$6], , :, [$6])
fi
-AC_SUBST([mkdir_p])
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $3"
+ printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $rm conftest*
+ LDFLAGS="$save_LDFLAGS"
])
-# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
+if test x"[$]$2" = xyes; then
+ ifelse([$4], , :, [$4])
+else
+ ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
-AC_CONFIG_COMMANDS([intltool], [
+ cygwin* | mingw*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
-intltool_edit="-e 's:@INTLTOOL_EXTRACT@:`pwd`/intltool-extract:g' \
- -e 's:@INTLTOOL_ICONV@:${ICONV}:g' \
- -e 's:@INTLTOOL_MSGFMT@:${MSGFMT}:g' \
- -e 's:@INTLTOOL_MSGMERGE@:${MSGMERGE}:g' \
- -e 's:@INTLTOOL_XGETTEXT@:${XGETTEXT}:g' \
- -e 's:@INTLTOOL_PERL@:${INTLTOOL_PERL}:g'"
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
-eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
- > intltool-extract.out
-if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
- rm -f intltool-extract.out
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ *)
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+ = "XX$teststring") >/dev/null 2>&1 &&
+ new_result=`expr "X$teststring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ ;;
+ esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
else
- mv -f intltool-extract.out intltool-extract
+ AC_MSG_RESULT(none)
fi
-chmod ugo+x intltool-extract
-chmod u+w intltool-extract
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
-eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-merge.in \
- > intltool-merge.out
-if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then
- rm -f intltool-merge.out
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+ [$4]
else
- mv -f intltool-merge.out intltool-merge
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}]
+EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_unknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
fi
-chmod ugo+x intltool-merge
-chmod u+w intltool-merge
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
-eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-update.in \
- > intltool-update.out
-if cmp -s intltool-update intltool-update.out 2>/dev/null; then
- rm -f intltool-update.out
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+ [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+ [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test "$hard_links" = no; then
+ AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+ need_locks=warn
+ fi
else
- mv -f intltool-update.out intltool-update
+ need_locks=no
fi
-chmod ugo+x intltool-update
-chmod u+w intltool-update
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-], INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
-INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${ICONV}'
-MSGFMT='${MSGFMT}' MSGMERGE='${MSGMERGE}' XGETTEXT='${XGETTEXT}')
-])
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+ test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+ # Linking always hardcodes the temporary library directory.
+ _LT_AC_TAGVAR(hardcode_action, $1)=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
-# deprecated macros
-AC_DEFUN([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
-dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
-dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
-dnl also defines GSTUFF_PKG_ERRORS on error
-AC_DEFUN(PKG_CHECK_MODULES, [
- succeeded=no
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
- if test "$PKG_CONFIG" = "no" ; then
- echo "*** The pkg-config script could not be found. Make sure it is"
- echo "*** in your path, or set the PKG_CONFIG environment variable"
- echo "*** to the full path to pkg-config."
- echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+bsdi[[45]]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
else
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- AC_MSG_CHECKING(for $2)
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
- if $PKG_CONFIG --exists "$2" ; then
- AC_MSG_RESULT(yes)
- succeeded=yes
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
- AC_MSG_CHECKING($1_CFLAGS)
- $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
- AC_MSG_RESULT($$1_CFLAGS)
+freebsd1*)
+ dynamic_linker=no
+ ;;
- AC_MSG_CHECKING($1_LIBS)
- $1_LIBS=`$PKG_CONFIG --libs "$2"`
- AC_MSG_RESULT($$1_LIBS)
- else
- $1_CFLAGS=""
- $1_LIBS=""
- ## If we have a custom action on failure, don't print errors, but
- ## do set a variable so people can do so.
- $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
- ifelse([$4], ,echo $$1_PKG_ERRORS,)
- fi
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[[89]] | openbsd2.[[89]].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+ [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+ [include additional configurations @<:@automatic@:>@])],
+ [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+ if test ! -f "${ofile}"; then
+ AC_MSG_WARN([output file `$ofile' does not exist])
+ fi
+
+ if test -z "$LTCC"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+ if test -z "$LTCC"; then
+ AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+ else
+ AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+ fi
+ fi
+
+ # Extract list of available tagged configurations in $ofile.
+ # Note that this assumes the entire list is on one line.
+ available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for tagname in $tagnames; do
+ IFS="$lt_save_ifs"
+ # Check whether tagname contains only valid characters
+ case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+ "") ;;
+ *) AC_MSG_ERROR([invalid tag name: $tagname])
+ ;;
+ esac
+
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+ then
+ AC_MSG_ERROR([tag name \"$tagname\" already exists])
+ fi
+
+ # Update the list of available tags.
+ if test -n "$tagname"; then
+ echo appending configuration tag \"$tagname\" to $ofile
+
+ case $tagname in
+ CXX)
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ AC_LIBTOOL_LANG_CXX_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ F77)
+ if test -n "$F77" && test "X$F77" != "Xno"; then
+ AC_LIBTOOL_LANG_F77_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ GCJ)
+ if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+ AC_LIBTOOL_LANG_GCJ_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ RC)
+ AC_LIBTOOL_LANG_RC_CONFIG
+ ;;
+
+ *)
+ AC_MSG_ERROR([Unsupported tag name: $tagname])
+ ;;
+ esac
+
+ # Append the new tag name to the list of available tags.
+ if test -n "$tagname" ; then
+ available_tags="$available_tags $tagname"
+ fi
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ # Now substitute the updated list of available tags.
+ if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+ mv "${ofile}T" "$ofile"
+ chmod +x "$ofile"
+ else
+ rm -f "${ofile}T"
+ AC_MSG_ERROR([unable to update list of available tagged configurations.])
+ fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+ [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+#- set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+ [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+ [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="ifelse([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+ [AC_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[[45]]*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case "$host_cpu" in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+nto-qnx*)
+ lt_cv_deplibs_check_method=unknown
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM="-lm")
+ ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!). If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case $enable_ltdl_convenience in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments. Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+# DIRECTORY is not provided and an installed libltdl is not found, it is
+# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/'
+# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+# quotes!). If your package is not flat and you're not using automake,
+# define top_builddir and top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, lt_dlinit,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ LTDLINCL=
+ fi
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+# _LT_AC_PROG_CXXCPP
+# ---------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+ [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+ [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+ [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# --------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+#
+# Check for any special shared library compilation flags.
+#
+_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+if test "$GCC" = no; then
+ case $host_os in
+ sco3.2v5*)
+ _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+ ;;
+ esac
+fi
+if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+ AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+ if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then :
+ else
+ AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+ _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+ fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+ _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+ $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+ [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+# Report which librarie types wil actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4* | aix5*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+ unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+ unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+ AC_PROG_LD
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+ grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_AC_TAGVAR(archive_cmds, $1)=''
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ else
+ # We have old collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ if test "$GXX" = yes ; then
+ lt_int_apple_cc_single_mod=no
+ output_verbose_link_cmd='echo'
+ if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+ lt_int_apple_cc_single_mod=yes
+ fi
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ fi
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ freebsd[[12]]*)
+ # C++ shared libraries reported to be fairly broken before switch to ELF
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ freebsd-elf*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+ gnu*)
+ ;;
+ hpux9*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+ esac
+ fi
+ case "$host_cpu" in
+ hppa*64*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ ia64*|hppa*64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+ fi
+ fi
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+ esac
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc*)
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC*)
+ # Portland Group C++ compiler
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ esac
+ ;;
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ m88k*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ openbsd*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ ;;
+ osf3*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+ $rm $lib.exp'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ psos*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ sco*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The C++ compiler is used as linker so we must use $wl
+ # flag to pass the commands to the underlying system
+ # linker. We must also pass each convience library through
+ # to the system linker between allextract/defaultextract.
+ # The C++ compiler will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+ if $CC --version | grep -v '^2\.7' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ fi
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+ fi
+ ;;
+ esac
+ ;;
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library. It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+ subroutine foo
+ implicit none
+ integer*4 a
+ a=0
+ return
+ end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+ private int a;
+ public void bar (void) {
+ a = 0;
+ }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ # The `*' in the case matches for architectures that use `case' in
+ # $output_verbose_cmd can trigger glob expansion during the loop
+ # eval without this substitution.
+ output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+ for p in `eval $output_verbose_link_cmd`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" \
+ || test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+ else
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+ _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+ else
+ _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+ _LT_AC_TAGVAR(predep_objects, $1)="$p"
+ else
+ _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+ fi
+ else
+ if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+ _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+ else
+ _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=" program t\n end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+aix4* | aix5*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars. Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ _LT_AC_TAGVAR(compiler, $1) \
+ _LT_AC_TAGVAR(CC, $1) \
+ _LT_AC_TAGVAR(LD, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+ _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+ _LT_AC_TAGVAR(old_archive_cmds, $1) \
+ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+ _LT_AC_TAGVAR(predep_objects, $1) \
+ _LT_AC_TAGVAR(postdep_objects, $1) \
+ _LT_AC_TAGVAR(predeps, $1) \
+ _LT_AC_TAGVAR(postdeps, $1) \
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+ _LT_AC_TAGVAR(archive_cmds, $1) \
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+ _LT_AC_TAGVAR(postinstall_cmds, $1) \
+ _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+ _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+ _LT_AC_TAGVAR(no_undefined_flag, $1) \
+ _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+ _LT_AC_TAGVAR(hardcode_automatic, $1) \
+ _LT_AC_TAGVAR(module_cmds, $1) \
+ _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+ _LT_AC_TAGVAR(exclude_expsyms, $1) \
+ _LT_AC_TAGVAR(include_expsyms, $1); do
+
+ case $var in
+ _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+ _LT_AC_TAGVAR(archive_cmds, $1) | \
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+ _LT_AC_TAGVAR(module_cmds, $1) | \
+ _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+ _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\[$]0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+ ;;
+ esac
+
+ifelse([$1], [],
+ [cfgfile="${ofile}T"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ $rm -f "$cfgfile"
+ AC_MSG_NOTICE([creating $ofile])],
+ [cfgfile="$ofile"])
+
+ cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 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.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" || \
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+])
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+ AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+ lt_cv_prog_compiler_rtti_exceptions,
+ [-fno-rtti -fno-exceptions], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ if test "$host_cpu" = ia64; then
+ symcode='[[ABCDEGRST]]'
+ fi
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+linux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[[ABCDGIRSTW]]'
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris* | sysv5*)
+ symcode='[[BDRT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if grep ' nm_test_var$' "$nlist" >/dev/null; then
+ if grep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | os2* | pw32*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix4* | aix5*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ if test "$host_cpu" != ia64; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ fi
+ ;;
+ aCC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ icpc* | ecpc*)
+ # Intel C++
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgCC*)
+ # Portland Group C++ compiler.
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ sco*)
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ unixware*)
+ ;;
+ vxworks*)
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+],
+[
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC (with -KPIC) is the default.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ newsos6)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ linux*)
+ case $cc_basename in
+ icc* | ecc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ ccc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All Alpha code is PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All OSF/1 code is PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+ ;;
+
+ solaris*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ unicos*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+
+ uts4*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+ _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+ [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+ [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+ "" | " "*) ;;
+ *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+ esac],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+ ;;
+esac
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix4* | aix5*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+ ;;
+ cygwin* | mingw*)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ *)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+],[
+ runpath_var=
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)=
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+ _LT_AC_TAGVAR(module_cmds, $1)=
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ _LT_AC_TAGVAR(include_expsyms, $1)=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ _LT_CC_BASENAME([$compiler])
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ sunos4*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+
+ if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+ runpath_var=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_AC_TAGVAR(archive_cmds, $1)=''
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ else
+ # We have old collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ # see comment about different semantics on the GNU ld section
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ bsdi[[45]]*)
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+ # FIXME: Should let the user specify the lib program.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ freebsd1*)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ newsos6)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ openbsd*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ else
+ case $host_os in
+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ else
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ sco3.2v5*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ *)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
+ esac
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ ;;
+ motorola)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4.3*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv5*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+ ;;
- AC_SUBST($1_CFLAGS)
- AC_SUBST($1_LIBS)
- else
- echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
- echo "*** See http://www.freedesktop.org/software/pkgconfig"
- fi
- fi
+ uts4*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
- if test $succeeded = yes; then
- ifelse([$3], , :, [$3])
- else
- ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
fi
])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+ # Assume -lc should be added
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $_LT_AC_TAGVAR(archive_cmds, $1) in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+ then
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+ ;;
+ esac
+ fi
+ ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
-# -*- Autoconf -*-
-# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-# Generated from amversion.in; do not edit by hand.
-# 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.
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)
+])
-# 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.
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f $lt_ac_sed && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test $lt_ac_count -gt 10 && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test $lt_ac_count -gt $lt_ac_max; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_MSG_RESULT([$SED])
+])
+
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
@@ -668,26 +6928,15 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.9.4])])
+ [AM_AUTOMAKE_VERSION([1.9.6])])
-# AM_AUX_DIR_EXPAND
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
@@ -734,26 +6983,16 @@ AC_PREREQ([2.50])dnl
am_aux_dir=`cd $ac_aux_dir && pwd`
])
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004 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.
+# AM_CONDITIONAL -*- Autoconf -*-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# serial 6
+# serial 7
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
@@ -777,26 +7016,15 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# serial 7 -*- Autoconf -*-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
+# serial 8
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
@@ -805,7 +7033,6 @@ fi])])
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
@@ -945,27 +7172,16 @@ AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])
])
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+# Generate code to set up dependency tracking. -*- Autoconf -*-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-#serial 2
+#serial 3
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
@@ -1024,54 +7240,31 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
-# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# serial 7
+# serial 8
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-# Do all the work for Automake. -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
+# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# serial 12
-# serial 11
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
@@ -1173,51 +7366,27 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
install_sh=${install_sh-"$am_aux_dir/install-sh"}
AC_SUBST(install_sh)])
-# -*- Autoconf -*-
-# Copyright (C) 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# serial 1
+# serial 2
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
@@ -1232,28 +7401,17 @@ fi
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
-# Add --enable-maintainer-mode option to configure.
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
+# serial 4
AC_DEFUN([AM_MAINTAINER_MODE],
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
@@ -1272,26 +7430,15 @@ AC_DEFUN([AM_MAINTAINER_MODE],
AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 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.
+# Check to see how 'make' treats includes. -*- Autoconf -*-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# serial 2
+# serial 3
# AM_MAKE_INCLUDE()
# -----------------
@@ -1335,27 +7482,16 @@ AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
-# -*- Autoconf -*-
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
+# serial 4
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
@@ -1381,27 +7517,16 @@ else
fi
])
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
# AM_PROG_MKDIR_P
# ---------------
# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-
-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
+#
# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
# created by `make install' are always world readable, even if the
# installer happens to have an overly restrictive umask (e.g. 077).
@@ -1455,26 +7580,15 @@ else
fi
AC_SUBST([mkdir_p])])
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+# Helper functions for option handling. -*- Autoconf -*-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# serial 2
+# serial 3
# _AM_MANGLE_OPTION(NAME)
# -----------------------
@@ -1499,28 +7613,16 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-#
-# Check to make sure that the build environment is sane.
-#
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# serial 3
+# serial 4
# AM_SANITY_CHECK
# ---------------
@@ -1563,25 +7665,14 @@ Check your system clock])
fi
AC_MSG_RESULT(yes)])
-# AM_PROG_INSTALL_STRIP
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# AM_PROG_INSTALL_STRIP
+# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
@@ -1604,25 +7695,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# serial 2
# _AM_PROG_TAR(FORMAT)
# --------------------
@@ -1710,245 +7789,10 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
-m4_include([m4/icu.m4])
+m4_include([m4/evolution-plugin.m4])
+m4_include([m4/gnome.m4])
+m4_include([m4/intltool.m4])
m4_include([m4/openssl.m4])
+m4_include([m4/reentrant-resolver.m4])
m4_include([m4/sasl2.m4])
-dnl AM_GCONF_SOURCE_2
-dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
-dnl (i.e. pass to gconftool-2
-dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
-dnl you should install foo.schemas files
-dnl
-
-AC_DEFUN([AM_GCONF_SOURCE_2],
-[
- if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
- GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
- else
- GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
- fi
-
- AC_ARG_WITH(gconf-source,
- [ --with-gconf-source=sourceaddress Config database for installing schema files.],GCONF_SCHEMA_CONFIG_SOURCE="$withval",)
-
- AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
- AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
-
- if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
- GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
- fi
-
- AC_ARG_WITH(gconf-schema-file-dir,
- [ --with-gconf-schema-file-dir=dir Directory for installing schema files.],GCONF_SCHEMA_FILE_DIR="$withval",)
-
- AC_SUBST(GCONF_SCHEMA_FILE_DIR)
- AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
-
- AC_ARG_ENABLE(schemas-install,
- [ --disable-schemas-install Disable the schemas installation],
- [case "${enableval}" in
- yes) schemas_install=true ;;
- no) schemas_install=false ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --disable-schemas-install) ;;
- esac],[schemas_install=true])
- AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test x$schemas_install = xtrue)
-])
-
-# Configure paths for GTK+
-# Owen Taylor 1997-2001
-
-dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
-dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
-dnl pass to pkg-config
-dnl
-AC_DEFUN([AM_PATH_GTK_2_0],
-[dnl
-dnl Get the cflags and libraries from pkg-config
-dnl
-AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
- , enable_gtktest=yes)
-
- pkg_config_args=gtk+-2.0
- for module in . $4
- do
- case "$module" in
- gthread)
- pkg_config_args="$pkg_config_args gthread-2.0"
- ;;
- esac
- done
-
- no_gtk=""
-
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-
- if test x$PKG_CONFIG != xno ; then
- if pkg-config --atleast-pkgconfig-version 0.7 ; then
- :
- else
- echo "*** pkg-config too old; version 0.7 or better required."
- no_gtk=yes
- PKG_CONFIG=no
- fi
- else
- no_gtk=yes
- fi
-
- min_gtk_version=ifelse([$1], ,2.0.0,$1)
- AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
-
- if test x$PKG_CONFIG != xno ; then
- ## don't try to run the test against uninstalled libtool libs
- if $PKG_CONFIG --uninstalled $pkg_config_args; then
- echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
- enable_gtktest=no
- fi
-
- if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
- :
- else
- no_gtk=yes
- fi
- fi
-
- if test x"$no_gtk" = x ; then
- GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
- GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
- gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
- gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- if test "x$enable_gtktest" = "xyes" ; then
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $GTK_CFLAGS"
- LIBS="$GTK_LIBS $LIBS"
-dnl
-dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
-dnl checks the results of pkg-config to some extent)
-dnl
- rm -f conf.gtktest
- AC_TRY_RUN([
-#include <gtk/gtk.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main ()
-{
- int major, minor, micro;
- char *tmp_version;
-
- system ("touch conf.gtktest");
-
- /* HP/UX 9 (%@#!) writes to sscanf strings */
- tmp_version = g_strdup("$min_gtk_version");
- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
- printf("%s, bad version string\n", "$min_gtk_version");
- exit(1);
- }
-
- if ((gtk_major_version != $gtk_config_major_version) ||
- (gtk_minor_version != $gtk_config_minor_version) ||
- (gtk_micro_version != $gtk_config_micro_version))
- {
- printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
- $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
- gtk_major_version, gtk_minor_version, gtk_micro_version);
- printf ("*** was found! If pkg-config was correct, then it is best\n");
- printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
- printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
- printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
- printf("*** required on your system.\n");
- printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
- printf("*** to point to the correct configuration files\n");
- }
- else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
- (gtk_minor_version != GTK_MINOR_VERSION) ||
- (gtk_micro_version != GTK_MICRO_VERSION))
- {
- printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
- GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
- printf("*** library (version %d.%d.%d)\n",
- gtk_major_version, gtk_minor_version, gtk_micro_version);
- }
- else
- {
- if ((gtk_major_version > major) ||
- ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
- ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
- {
- return 0;
- }
- else
- {
- printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
- gtk_major_version, gtk_minor_version, gtk_micro_version);
- printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
- major, minor, micro);
- printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
- printf("***\n");
- printf("*** If you have already installed a sufficiently new version, this error\n");
- printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
- printf("*** being found. The easiest way to fix this is to remove the old version\n");
- printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
- printf("*** correct copy of pkg-config. (In this case, you will have to\n");
- printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
- printf("*** so that the correct libraries are found at run-time))\n");
- }
- }
- return 1;
-}
-],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- if test "x$no_gtk" = x ; then
- AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
- ifelse([$2], , :, [$2])
- else
- AC_MSG_RESULT(no)
- if test "$PKG_CONFIG" = "no" ; then
- echo "*** A new enough version of pkg-config was not found."
- echo "*** See http://pkgconfig.sourceforge.net"
- else
- if test -f conf.gtktest ; then
- :
- else
- echo "*** Could not run GTK+ test program, checking why..."
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $GTK_CFLAGS"
- LIBS="$LIBS $GTK_LIBS"
- AC_TRY_LINK([
-#include <gtk/gtk.h>
-#include <stdio.h>
-], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
- [ echo "*** The test program compiled, but did not run. This usually means"
- echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
- echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
- echo "*** to the installed location Also, make sure you have run ldconfig if that"
- echo "*** is required on your system"
- echo "***"
- echo "*** If you have an old version installed, it is best to remove it, although"
- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
- [ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- GTK_CFLAGS=""
- GTK_LIBS=""
- ifelse([$3], , :, [$3])
- fi
- AC_SUBST(GTK_CFLAGS)
- AC_SUBST(GTK_LIBS)
- rm -f conf.gtktest
-])
-
m4_include([acinclude.m4])
diff --git a/art/Makefile.am b/art/Makefile.am
@@ -1,10 +1,13 @@
+if WITH_GMAIL
+gmail_icon = gmail.png
+endif
+
gnome_pixmapsdir = $(datadir)/pixmaps
dist_gnome_pixmaps_DATA = mail-notification.png
app_pixmapsdir = $(pkgdatadir)/ui
dist_app_pixmaps_DATA = \
- gmail.png \
+ $(gmail_icon) \
hand-open.png \
logo.png \
- main-window.png \
- unsupported.png
+ main-window.png
diff --git a/art/Makefile.in b/art/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -34,13 +34,20 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
subdir = art
-DIST_COMMON = $(dist_app_pixmaps_DATA) $(dist_gnome_pixmaps_DATA) \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(am__dist_app_pixmaps_DATA_DIST) \
+ $(dist_gnome_pixmaps_DATA) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -48,6 +55,8 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
+am__dist_app_pixmaps_DATA_DIST = gmail.png hand-open.png logo.png \
+ main-window.png
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -64,6 +73,7 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -76,15 +86,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -101,10 +120,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -115,9 +130,12 @@ 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@
@@ -130,12 +148,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -143,7 +164,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -160,25 +180,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -199,20 +222,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -227,16 +269,20 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+@WITH_GMAIL_TRUE@gmail_icon = gmail.png
gnome_pixmapsdir = $(datadir)/pixmaps
dist_gnome_pixmaps_DATA = mail-notification.png
app_pixmapsdir = $(pkgdatadir)/ui
dist_app_pixmaps_DATA = \
- gmail.png \
+ $(gmail_icon) \
hand-open.png \
logo.png \
- main-window.png \
- unsupported.png
+ main-window.png
all: all-am
@@ -270,6 +316,15 @@ $(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-dist_app_pixmapsDATA: $(dist_app_pixmaps_DATA)
@$(NORMAL_INSTALL)
@@ -372,11 +427,11 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
@@ -405,7 +460,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
@@ -418,15 +473,16 @@ ps-am:
uninstall-am: uninstall-dist_app_pixmapsDATA \
uninstall-dist_gnome_pixmapsDATA uninstall-info-am
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-dist_app_pixmapsDATA install-dist_gnome_pixmapsDATA \
- 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 pdf pdf-am ps ps-am uninstall \
- uninstall-am uninstall-dist_app_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-dist_app_pixmapsDATA \
+ install-dist_gnome_pixmapsDATA 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-dist_app_pixmapsDATA \
uninstall-dist_gnome_pixmapsDATA uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/art/gmail.png b/art/gmail.png
Binary files differ.
diff --git a/art/unsupported.png b/art/unsupported.png
Binary files differ.
diff --git a/autogen.sh b/autogen.sh
@@ -1,15 +1,22 @@
#!/bin/sh
+# change this to the path to mkinstalldirs on your system
+MKINSTALLDIRS="/usr/local/gnu-autotools/share/automake-1.9/mkinstalldirs"
+
run() {
- echo "Running $1..."
- $1 || exit
+ echo "Running $*..."
+ $* || exit
}
-. autotools.conf
+run intltoolize --force
+
+# po/Makefile.in.in requires mkinstalldirs, but intltoolize does not provide it
+run ln -sf "$MKINSTALLDIRS" mkinstalldirs
-run "$ACLOCAL"
-run "$AUTOHEADER"
-run "$AUTOCONF"
-run "$AUTOMAKE"
+run libtoolize --force
+run aclocal -I m4
+run autoheader
+run autoconf
+run automake --add-missing --force-missing
echo "Finished successfully."
diff --git a/autotools.conf b/autotools.conf
@@ -1,10 +0,0 @@
-export AUTOCONF_VER=259
-export AUTOMAKE_VER=19
-export LIBTOOL_VER=15
-
-export LIBTOOLIZE="libtoolize$LIBTOOL_VER --automake"
-export ACLOCAL="aclocal$AUTOMAKE_VER -I m4"
-export AUTOHEADER="autoheader$AUTOCONF_VER"
-export AUTOM4TE="autom4te$AUTOCONF_VER"
-export AUTOCONF="autoconf$AUTOCONF_VER"
-export AUTOMAKE="automake$AUTOMAKE_VER"
diff --git a/compile b/compile
@@ -1,8 +1,9 @@
#! /bin/sh
-
# Wrapper for compilers which do not understand `-c -o'.
-# Copyright 1999, 2000 Free Software Foundation, Inc.
+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
@@ -17,83 +18,125 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# 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.
-# Usage:
-# compile PROGRAM [ARGS]...
-# `-o FOO.o' is removed from the args passed to the actual compile.
+# 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.
-prog=$1
-shift
+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=
-args=
-while test $# -gt 0; do
- case "$1" in
- -o)
- # configure might choose to run compile as `compile cc -o foo foo.c'.
- # So we do something ugly here.
- ofile=$2
- shift
- case "$ofile" in
- *.o | *.obj)
- ;;
- *)
- args="$args -o $ofile"
- ofile=
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- args="$args $1"
- ;;
- *)
- args="$args $1"
- ;;
- esac
- shift
+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 "$prog" $args
+ # 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/'`
+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
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
while true; do
- if mkdir $lockdir > /dev/null 2>&1; then
- break
- fi
- sleep 1
+ 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
+trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
-"$prog" $args
-status=$?
+"$@"
+ret=$?
if test -f "$cofile"; then
- mv "$cofile" "$ofile"
+ mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ mv "${cofile}bj" "$ofile"
fi
-rmdir $lockdir
-exit $status
+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:
diff --git a/config.h.in b/config.h.in
@@ -12,6 +12,9 @@
/* 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
@@ -27,6 +30,9 @@
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
+/* Define to 1 if the system resolver is reentrant */
+#undef HAVE_REENTRANT_RESOLVER
+
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
@@ -45,6 +51,9 @@
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
+/* Define to 1 if you have the `timegm' function. */
+#undef HAVE_TIMEGM
+
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
@@ -69,43 +78,46 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+#undef TM_IN_SYS_TIME
+
/* Version number of package */
#undef VERSION
-/* Define to 1 if [gmail] is enabled */
-#undef WITH_GMAIL
+/* Define to 1 if evolution is enabled */
+#undef WITH_EVOLUTION
-/* Define to 1 if [gmail-timestamps] is enabled */
-#undef WITH_GMAIL_TIMESTAMPS
+/* Define to 1 if gmail is enabled */
+#undef WITH_GMAIL
-/* Define to 1 if [imap] is enabled */
+/* Define to 1 if imap is enabled */
#undef WITH_IMAP
-/* Define to 1 if [ipv6] is enabled */
+/* Define to 1 if ipv6 is enabled */
#undef WITH_IPV6
-/* Define to 1 if [maildir] is enabled */
+/* Define to 1 if maildir is enabled */
#undef WITH_MAILDIR
-/* Define to 1 if [mbox] is enabled */
+/* Define to 1 if mbox is enabled */
#undef WITH_MBOX
-/* Define to 1 if [mh] is enabled */
+/* Define to 1 if mh is enabled */
#undef WITH_MH
-/* Define to 1 if [mime] is enabled */
+/* Define to 1 if mime is enabled */
#undef WITH_MIME
-/* Define to 1 if [pop3] is enabled */
+/* Define to 1 if pop3 is enabled */
#undef WITH_POP3
-/* Define to 1 if [sasl] is enabled */
+/* Define to 1 if sasl is enabled */
#undef WITH_SASL
-/* Define to 1 if [ssl] is enabled */
+/* Define to 1 if ssl is enabled */
#undef WITH_SSL
-/* Define to 1 if [sylpheed] is enabled */
+/* Define to 1 if sylpheed is enabled */
#undef WITH_SYLPHEED
/* Number of bits in a file offset, on hosts where this is settable. */
diff --git a/configure b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for mail-notification 1.1.
+# Generated by GNU Autoconf 2.59 for Mail Notification 2.0.
#
# Report bugs to <jylefort@brutele.be>.
#
@@ -243,6 +243,160 @@ IFS=" $as_nl"
$as_unset CDPATH
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
+
# Name of the host.
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
# so uname gets run too.
@@ -267,10 +421,10 @@ SHELL=${CONFIG_SHELL-/bin/sh}
: ${ac_max_here_lines=38}
# Identity of this package.
-PACKAGE_NAME='mail-notification'
+PACKAGE_NAME='Mail Notification'
PACKAGE_TARNAME='mail-notification'
-PACKAGE_VERSION='1.1'
-PACKAGE_STRING='mail-notification 1.1'
+PACKAGE_VERSION='2.0'
+PACKAGE_STRING='Mail Notification 2.0'
PACKAGE_BUGREPORT='jylefort@brutele.be'
ac_unique_file="src/mn-main.c"
@@ -311,7 +465,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WARN_CFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GETTEXT_PACKAGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL ICONV MSGMERGE PKG_CONFIG GTK_CFLAGS GTK_LIBS GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 GLIB_GENMARSHAL GMIME_CFLAGS GMIME_LIBS OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS SOUP_CFLAGS SOUP_LIBS ICU_CONFIG ICU_CFLAGS ICU_LIBS WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_POP3_OR_IMAP_OR_GMAIL_TRUE WITH_POP3_OR_IMAP_OR_GMAIL_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_GMAIL_TIMESTAMPS_TRUE WITH_GMAIL_TIMESTAMPS_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ac_prefix_program WARN_CFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL GETTEXT_PACKAGE USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL INTLTOOL_ICONV INTLTOOL_MSGFMT INTLTOOL_MSGMERGE INTLTOOL_XGETTEXT PKG_CONFIG GTK_CFLAGS GTK_LIBS ac_pt_PKG_CONFIG GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE gnome_prefix gnome_cappletdir GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 GLIB_GENMARSHAL GMIME_CFLAGS GMIME_LIBS OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS EVOLUTION_PLUGIN_CFLAGS EVOLUTION_PLUGIN_LIBS evolution_plugindir WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_POP3_OR_IMAP_OR_GMAIL_TRUE WITH_POP3_OR_IMAP_OR_GMAIL_FALSE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_EVOLUTION_TRUE WITH_EVOLUTION_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -772,6 +926,54 @@ ac_env_CPP_set=${CPP+set}
ac_env_CPP_value=$CPP
ac_cv_env_CPP_set=${CPP+set}
ac_cv_env_CPP_value=$CPP
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_CXXCPP_set=${CXXCPP+set}
+ac_env_CXXCPP_value=$CXXCPP
+ac_cv_env_CXXCPP_set=${CXXCPP+set}
+ac_cv_env_CXXCPP_value=$CXXCPP
+ac_env_F77_set=${F77+set}
+ac_env_F77_value=$F77
+ac_cv_env_F77_set=${F77+set}
+ac_cv_env_F77_value=$F77
+ac_env_FFLAGS_set=${FFLAGS+set}
+ac_env_FFLAGS_value=$FFLAGS
+ac_cv_env_FFLAGS_set=${FFLAGS+set}
+ac_cv_env_FFLAGS_value=$FFLAGS
+ac_env_PKG_CONFIG_set=${PKG_CONFIG+set}
+ac_env_PKG_CONFIG_value=$PKG_CONFIG
+ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set}
+ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG
+ac_env_GNOME_CFLAGS_set=${GNOME_CFLAGS+set}
+ac_env_GNOME_CFLAGS_value=$GNOME_CFLAGS
+ac_cv_env_GNOME_CFLAGS_set=${GNOME_CFLAGS+set}
+ac_cv_env_GNOME_CFLAGS_value=$GNOME_CFLAGS
+ac_env_GNOME_LIBS_set=${GNOME_LIBS+set}
+ac_env_GNOME_LIBS_value=$GNOME_LIBS
+ac_cv_env_GNOME_LIBS_set=${GNOME_LIBS+set}
+ac_cv_env_GNOME_LIBS_value=$GNOME_LIBS
+ac_env_GMIME_CFLAGS_set=${GMIME_CFLAGS+set}
+ac_env_GMIME_CFLAGS_value=$GMIME_CFLAGS
+ac_cv_env_GMIME_CFLAGS_set=${GMIME_CFLAGS+set}
+ac_cv_env_GMIME_CFLAGS_value=$GMIME_CFLAGS
+ac_env_GMIME_LIBS_set=${GMIME_LIBS+set}
+ac_env_GMIME_LIBS_value=$GMIME_LIBS
+ac_cv_env_GMIME_LIBS_set=${GMIME_LIBS+set}
+ac_cv_env_GMIME_LIBS_value=$GMIME_LIBS
+ac_env_EVOLUTION_PLUGIN_CFLAGS_set=${EVOLUTION_PLUGIN_CFLAGS+set}
+ac_env_EVOLUTION_PLUGIN_CFLAGS_value=$EVOLUTION_PLUGIN_CFLAGS
+ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_set=${EVOLUTION_PLUGIN_CFLAGS+set}
+ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_value=$EVOLUTION_PLUGIN_CFLAGS
+ac_env_EVOLUTION_PLUGIN_LIBS_set=${EVOLUTION_PLUGIN_LIBS+set}
+ac_env_EVOLUTION_PLUGIN_LIBS_value=$EVOLUTION_PLUGIN_LIBS
+ac_cv_env_EVOLUTION_PLUGIN_LIBS_set=${EVOLUTION_PLUGIN_LIBS+set}
+ac_cv_env_EVOLUTION_PLUGIN_LIBS_value=$EVOLUTION_PLUGIN_LIBS
#
# Report the --help message.
@@ -780,7 +982,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mail-notification 1.1 to adapt to many kinds of systems.
+\`configure' configures Mail Notification 2.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -837,12 +1039,17 @@ Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mail-notification 1.1:";;
+ short | recursive ) echo "Configuration of Mail Notification 2.0:";;
esac
cat <<\_ACEOF
@@ -856,19 +1063,25 @@ Optional Features:
--disable-imap disable IMAP support
--disable-ssl disable SSL/TLS support
--disable-sasl disable SASL authentication support
- --disable-sylpheed disable Sylpheed support
- --disable-gmail disable Gmail support
- --disable-gmail-timestamps
- disable Gmail timestamps support
--disable-ipv6 disable IPv6 support
+ --disable-gmail disable Gmail support
+ --disable-evolution disable Evolution support
+ --disable-sylpheed disable Sylpheed support
--enable-compile-warnings=no|yes|error
enable compiler warnings [no]
--enable-regression-tests
build and run regression tests
--enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer
+ --enable-shared[=PKGS]
+ build shared libraries [default=yes]
+ --enable-static[=PKGS]
+ build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
+ --disable-libtool-lock avoid locking (might break parallel builds)
--disable-largefile omit support for large files
--disable-gtktest do not try to compile and run a test GTK+ program
--disable-schemas-install Disable the schemas installation
@@ -876,8 +1089,18 @@ Optional Features:
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-tags[=TAGS]
+ include additional configurations [automatic]
+ --with-reentrant-resolver
+ specify that the system resolver is reentrant
+ [autodetect]
--with-gconf-source=sourceaddress Config database for installing schema files.
--with-gconf-schema-file-dir=dir Directory for installing schema files.
+ --with-evolution-source-dir=DIR
+ path to the Evolution source tree
Some influential environment variables:
CC C compiler command
@@ -887,6 +1110,22 @@ Some influential environment variables:
CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
headers in a nonstandard directory <include dir>
CPP C preprocessor
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ CXXCPP C++ preprocessor
+ F77 Fortran 77 compiler command
+ FFLAGS Fortran 77 compiler flags
+ PKG_CONFIG path to pkg-config utility
+ GNOME_CFLAGS
+ C compiler flags for GNOME, overriding pkg-config
+ GNOME_LIBS linker flags for GNOME, overriding pkg-config
+ GMIME_CFLAGS
+ C compiler flags for GMIME, overriding pkg-config
+ GMIME_LIBS linker flags for GMIME, overriding pkg-config
+ EVOLUTION_PLUGIN_CFLAGS
+ C compiler flags for EVOLUTION_PLUGIN, overriding pkg-config
+ EVOLUTION_PLUGIN_LIBS
+ linker flags for EVOLUTION_PLUGIN, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -987,7 +1226,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-mail-notification configure 1.1
+Mail Notification configure 2.0
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1001,7 +1240,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mail-notification $as_me 1.1, which was
+It was created by Mail Notification $as_me 2.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1341,6 +1580,77 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# by default, install in the same prefix as GNOME
+if test "x$prefix" = xNONE; then
+ echo $ECHO_N "checking for prefix by $ECHO_C" >&6
+ # Extract the first word of "gnome-open", so it can be a program name with args.
+set dummy gnome-open; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_prefix_program+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $ac_prefix_program in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_prefix_program="$ac_prefix_program" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_prefix_program="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+ac_prefix_program=$ac_cv_path_ac_prefix_program
+
+if test -n "$ac_prefix_program"; then
+ echo "$as_me:$LINENO: result: $ac_prefix_program" >&5
+echo "${ECHO_T}$ac_prefix_program" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ if test -n "$ac_prefix_program"; then
+ prefix=`(dirname "$ac_prefix_program") 2>/dev/null ||
+$as_expr X"$ac_prefix_program" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_prefix_program" : 'X\(//\)[^/]' \| \
+ X"$ac_prefix_program" : 'X\(//\)$' \| \
+ X"$ac_prefix_program" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_prefix_program" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ prefix=`(dirname "$prefix") 2>/dev/null ||
+$as_expr X"$prefix" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$prefix" : 'X\(//\)[^/]' \| \
+ X"$prefix" : 'X\(//\)$' \| \
+ X"$prefix" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$prefix" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ fi
+fi
+
+
### command line arguments
# Check whether --enable-mbox or --disable-mbox was given.
@@ -1427,17 +1737,17 @@ esac
else
enable_sasl=yes
fi;
-# Check whether --enable-sylpheed or --disable-sylpheed was given.
-if test "${enable_sylpheed+set}" = set; then
- enableval="$enable_sylpheed"
+# Check whether --enable-ipv6 or --disable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then
+ enableval="$enable_ipv6"
case "$enableval" in
- yes|no) enable_sylpheed=$enableval ;;
- *) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-sylpheed" >&5
-echo "$as_me: error: bad value $enableval for --enable-sylpheed" >&2;}
+ yes|no) enable_ipv6=$enableval ;;
+ *) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-ipv6" >&5
+echo "$as_me: error: bad value $enableval for --enable-ipv6" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
- enable_sylpheed=yes
+ enable_ipv6=yes
fi;
# Check whether --enable-gmail or --disable-gmail was given.
if test "${enable_gmail+set}" = set; then
@@ -1451,29 +1761,29 @@ esac
else
enable_gmail=yes
fi;
-# Check whether --enable-gmail-timestamps or --disable-gmail-timestamps was given.
-if test "${enable_gmail_timestamps+set}" = set; then
- enableval="$enable_gmail_timestamps"
+# Check whether --enable-evolution or --disable-evolution was given.
+if test "${enable_evolution+set}" = set; then
+ enableval="$enable_evolution"
case "$enableval" in
- yes|no) enable_gmail_timestamps=$enableval ;;
- *) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-gmail-timestamps" >&5
-echo "$as_me: error: bad value $enableval for --enable-gmail-timestamps" >&2;}
+ yes|no) enable_evolution=$enableval ;;
+ *) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-evolution" >&5
+echo "$as_me: error: bad value $enableval for --enable-evolution" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
- enable_gmail_timestamps=yes
+ enable_evolution=yes
fi;
-# Check whether --enable-ipv6 or --disable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then
- enableval="$enable_ipv6"
+# Check whether --enable-sylpheed or --disable-sylpheed was given.
+if test "${enable_sylpheed+set}" = set; then
+ enableval="$enable_sylpheed"
case "$enableval" in
- yes|no) enable_ipv6=$enableval ;;
- *) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-ipv6" >&5
-echo "$as_me: error: bad value $enableval for --enable-ipv6" >&2;}
+ yes|no) enable_sylpheed=$enableval ;;
+ *) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-sylpheed" >&5
+echo "$as_me: error: bad value $enableval for --enable-sylpheed" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
- enable_ipv6=yes
+ enable_sylpheed=yes
fi;
# Check whether --enable-compile-warnings or --disable-compile-warnings was given.
@@ -1528,7 +1838,7 @@ fi;
### initialization
-am__api_version="1.9"
+# needed by AC_REENTRANT_RESOLVER
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/install-sh; then
@@ -1554,6 +1864,90 @@ ac_config_guess="$SHELL $ac_aux_dir/config.guess"
ac_config_sub="$SHELL $ac_aux_dir/config.sub"
ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+ { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+ { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking target system type" >&5
+echo $ECHO_N "checking target system type... $ECHO_C" >&6
+if test "${ac_cv_target+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_target_alias=$target_alias
+test "x$ac_cv_target_alias" = "x" &&
+ ac_cv_target_alias=$ac_cv_host_alias
+ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+echo "${ECHO_T}$ac_cv_target" >&6
+target=$ac_cv_target
+target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+am__api_version="1.9"
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
@@ -1835,7 +2229,7 @@ fi
# Define the identity of the package.
PACKAGE='mail-notification'
- VERSION='1.1'
+ VERSION='2.0'
cat >>confdefs.h <<_ACEOF
@@ -1991,18 +2385,78 @@ fi
ac_config_headers="$ac_config_headers config.h"
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi;
-### i18n
-
-GETTEXT_PACKAGE=mail-notification
-
-cat >>confdefs.h <<_ACEOF
-#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
-_ACEOF
-
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+ enableval="$enable_static"
+ p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi;
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval="$enable_fast_install"
+ p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi;
-ALL_LINGUAS="bg de fr pl pt ru sr sr@Latn"
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
@@ -3107,424 +3561,16374 @@ else
fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
+echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
+if test "${lt_cv_path_SED+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
+ # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f $lt_ac_sed && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test $lt_ac_count -gt 10 && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test $lt_ac_count -gt $lt_ac_max; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
- # Broken: fails on valid input.
-continue
fi
-rm -f conftest.err conftest.$ac_ext
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+SED=$lt_cv_path_SED
+echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
- # Passes both tests.
-ac_preproc_ok=:
-break
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi
fi
-rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
- done
- ac_cv_prog_CPP=$CPP
-fi
- CPP=$ac_cv_prog_CPP
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
+ with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
else
- ac_cpp_err=yes
+ echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
fi
-if test -z "$ac_cpp_err"; then
- :
+if test "${lt_cv_path_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
else
- ac_cpp_err=yes
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
fi
-rm -f conftest.err conftest.$ac_ext
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
{ (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
+echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+if test "${lt_cv_path_NM+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ esac
fi
+ done
+ IFS="$lt_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
+fi
+echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6
+NM="$lt_cv_path_NM"
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
+echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
+echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
+if test "${lt_cv_deplibs_check_method+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
-int
-main ()
-{
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case "$host_cpu" in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+nto-qnx*)
+ lt_cv_deplibs_check_method=unknown
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
-ac_cv_header_stdc=no
fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 4044 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <string.h>
+int
+main ()
+{
+
+ ;
+ return 0;
+}
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ lt_cv_cc_needs_belf=yes
else
- ac_cv_header_stdc=no
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+lt_cv_cc_needs_belf=no
fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
+echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdlib.h>
-
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
else
- ac_cv_header_stdc=no
+ ac_cpp_err=yes
fi
-rm -f conftest*
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ # Broken: fails on valid input.
+continue
fi
+rm -f conftest.err conftest.$ac_ext
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
int
main ()
{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
+
+ ;
+ return 0;
}
_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- :
+ ac_cv_header_stdc=yes
else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+ echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ---------------------------------- ##
+## Report this to jylefort@brutele.be ##
+## ---------------------------------- ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+ CXX=$ac_ct_CXX
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cxx_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+for ac_declaration in \
+ '' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+depcc="$CXX" am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+
+
+if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+fi
+
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$F77"; then
+ ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+ echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$F77" && break
+ done
+fi
+if test -z "$F77"; then
+ ac_ct_F77=$F77
+ for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_F77"; then
+ ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_F77="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+ echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_F77" && break
+done
+
+ F77=$ac_ct_F77
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:5623:" \
+ "checking for Fortran 77 compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file. (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+#ifndef __GNUC__
+ choke me
+#endif
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_f77_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_f77_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_f77_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
+if test "$ac_test_FFLAGS" = set; then
+ FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+ if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+ FFLAGS="-g -O2"
+ else
+ FFLAGS="-g"
+ fi
+else
+ if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+ FFLAGS="-O2"
+ else
+ FFLAGS=
+ fi
+fi
+
+G77=`test $ac_compiler_gnu = yes && echo yes`
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+
+# find the maximum length of command line arguments
+echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ *)
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+ = "XX$teststring") >/dev/null 2>&1 &&
+ new_result=`expr "X$teststring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
+else
+ echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+linux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDGIRSTW]'
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris* | sysv5*)
+ symcode='[BDRT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if grep ' nm_test_var$' "$nlist" >/dev/null; then
+ if grep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+else
+ echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+fi
+
+echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+if test "${lt_cv_objdir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ AR=$ac_ct_AR
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ RANLIB=$ac_ct_RANLIB
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ STRIP=$ac_ct_STRIP
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+ withval="$with_pic"
+ pic_mode="$withval"
+else
+ pic_mode=default
+fi;
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+#
+# Check for any special shared library compilation flags.
+#
+lt_prog_cc_shlib=
+if test "$GCC" = no; then
+ case $host_os in
+ sco3.2v5*)
+ lt_prog_cc_shlib='-belf'
+ ;;
+ esac
+fi
+if test -n "$lt_prog_cc_shlib"; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
+echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
+ if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then :
+ else
+ { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
+echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
+ lt_cv_prog_cc_can_build_shared=no
+ fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
+ printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_static_works=yes
+ fi
+ else
+ lt_prog_compiler_static_works=yes
+ fi
+ fi
+ $rm conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
+
+if test x"$lt_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:6721: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:6725: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic='-qnocommon'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ linux*)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-static'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_prog_compiler_pic='-Kpic'
+ lt_prog_compiler_static='-dn'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:6983: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:6987: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
+
+if test x"$lt_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:7045: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:7049: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ runpath_var=
+ allow_undefined_flag=
+ enable_shared_with_static_runtimes=no
+ archive_cmds=
+ archive_expsym_cmds=
+ old_archive_From_new_cmds=
+ old_archive_from_expsyms_cmds=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ thread_safe_flag_spec=
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_direct=no
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ link_all_deplibs=unknown
+ hardcode_automatic=no
+ module_cmds=
+ module_expsym_cmds=
+ always_export_symbols=no
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec=' '
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ whole_archive_flag_spec=''
+ link_all_deplibs=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ no_undefined_flag='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc=no
+ else
+ archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var" || \
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+ lt_cv_dlopen="shl_load"
+else
+ echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+ lt_cv_dlopen="dlopen"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 9285 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 9383 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+# Report which librarie types wil actually be built
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4* | aix5*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler \
+ CC \
+ LD \
+ lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
+ lt_prog_compiler_static \
+ lt_prog_compiler_no_builtin_flag \
+ export_dynamic_flag_spec \
+ thread_safe_flag_spec \
+ whole_archive_flag_spec \
+ enable_shared_with_static_runtimes \
+ old_archive_cmds \
+ old_archive_from_new_cmds \
+ predep_objects \
+ postdep_objects \
+ predeps \
+ postdeps \
+ compiler_lib_search_path \
+ archive_cmds \
+ archive_expsym_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ old_archive_from_expsyms_cmds \
+ allow_undefined_flag \
+ no_undefined_flag \
+ export_symbols_cmds \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+ hardcode_automatic \
+ module_cmds \
+ module_expsym_cmds \
+ lt_cv_prog_compiler_c_o \
+ exclude_expsyms \
+ include_expsyms; do
+
+ case $var in
+ old_archive_cmds | \
+ old_archive_from_new_cmds | \
+ archive_cmds | \
+ archive_expsym_cmds | \
+ module_cmds | \
+ module_expsym_cmds | \
+ old_archive_from_expsyms_cmds | \
+ export_symbols_cmds | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="${ofile}T"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ $rm -f "$cfgfile"
+ { echo "$as_me:$LINENO: creating $ofile" >&5
+echo "$as_me: creating $ofile" >&6;}
+
+ cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 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.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" || \
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+# Check whether --with-tags or --without-tags was given.
+if test "${with_tags+set}" = set; then
+ withval="$with_tags"
+ tagnames="$withval"
+fi;
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+ if test ! -f "${ofile}"; then
+ { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+ fi
+
+ if test -z "$LTCC"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+ if test -z "$LTCC"; then
+ { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+ else
+ { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+ fi
+ fi
+
+ # Extract list of available tagged configurations in $ofile.
+ # Note that this assumes the entire list is on one line.
+ available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for tagname in $tagnames; do
+ IFS="$lt_save_ifs"
+ # Check whether tagname contains only valid characters
+ case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+ "") ;;
+ *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+echo "$as_me: error: invalid tag name: $tagname" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+ then
+ { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ # Update the list of available tags.
+ if test -n "$tagname"; then
+ echo appending configuration tag \"$tagname\" to $ofile
+
+ case $tagname in
+ CXX)
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+ unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+ unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+else
+ lt_prog_compiler_no_builtin_flag_CXX=
+fi
+
+if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+ echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+ grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+ld_shlibs_CXX=yes
+case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct_CXX=yes
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols_CXX=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX=' '
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ whole_archive_flag_spec_CXX=''
+ link_all_deplibs_CXX=yes
+
+ if test "$GXX" = yes ; then
+ lt_int_apple_cc_single_mod=no
+ output_verbose_link_cmd='echo'
+ if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+ lt_int_apple_cc_single_mod=yes
+ fi
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ else
+ archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ fi
+ module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+ gnu*)
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
+ hardcode_libdir_separator_CXX=:
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ ia64*|hppa*64*)
+ archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc*)
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC*)
+ # Portland Group C++ compiler
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ esac
+ ;;
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+ openbsd*)
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ ;;
+ osf3*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+ $rm $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ sco*)
+ archive_cmds_need_lc_CXX=no
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The C++ compiler is used as linker so we must use $wl
+ # flag to pass the commands to the underlying system
+ # linker. We must also pass each convience library through
+ # to the system linker between allextract/defaultextract.
+ # The C++ compiler will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | grep -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ fi
+ ;;
+ esac
+ ;;
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+GCC_CXX="$GXX"
+LD_CXX="$LD"
+
+
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+EOF
+
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ # The `*' in the case matches for architectures that use `case' in
+ # $output_verbose_cmd can trigger glob expansion during the loop
+ # eval without this substitution.
+ output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+ for p in `eval $output_verbose_link_cmd`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" \
+ || test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$rm -f confest.$objext
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | os2* | pw32*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix4* | aix5*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ else
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_CXX='-qnocommon'
+ lt_prog_compiler_wl_CXX='-Wl,'
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ icpc* | ecpc*)
+ # Intel C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC*)
+ # Portland Group C++ compiler.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ sco*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ unixware*)
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:11631: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:11635: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
+
+if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:11693: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:11697: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix4* | aix5*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw*)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_CXX=no
+ else
+ archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+ test -n "$runpath_var_CXX" || \
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6
+
+if test "$hardcode_action_CXX" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+ lt_cv_dlopen="shl_load"
+else
+ echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+ lt_cv_dlopen="dlopen"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_cxx_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 13062 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 13160 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_CXX \
+ CC_CXX \
+ LD_CXX \
+ lt_prog_compiler_wl_CXX \
+ lt_prog_compiler_pic_CXX \
+ lt_prog_compiler_static_CXX \
+ lt_prog_compiler_no_builtin_flag_CXX \
+ export_dynamic_flag_spec_CXX \
+ thread_safe_flag_spec_CXX \
+ whole_archive_flag_spec_CXX \
+ enable_shared_with_static_runtimes_CXX \
+ old_archive_cmds_CXX \
+ old_archive_from_new_cmds_CXX \
+ predep_objects_CXX \
+ postdep_objects_CXX \
+ predeps_CXX \
+ postdeps_CXX \
+ compiler_lib_search_path_CXX \
+ archive_cmds_CXX \
+ archive_expsym_cmds_CXX \
+ postinstall_cmds_CXX \
+ postuninstall_cmds_CXX \
+ old_archive_from_expsyms_cmds_CXX \
+ allow_undefined_flag_CXX \
+ no_undefined_flag_CXX \
+ export_symbols_cmds_CXX \
+ hardcode_libdir_flag_spec_CXX \
+ hardcode_libdir_flag_spec_ld_CXX \
+ hardcode_libdir_separator_CXX \
+ hardcode_automatic_CXX \
+ module_cmds_CXX \
+ module_expsym_cmds_CXX \
+ lt_cv_prog_compiler_c_o_CXX \
+ exclude_expsyms_CXX \
+ include_expsyms_CXX; do
+
+ case $var in
+ old_archive_cmds_CXX | \
+ old_archive_from_new_cmds_CXX | \
+ archive_cmds_CXX | \
+ archive_expsym_cmds_CXX | \
+ module_cmds_CXX | \
+ module_expsym_cmds_CXX | \
+ old_archive_from_expsyms_cmds_CXX | \
+ export_symbols_cmds_CXX | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_CXX"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ F77)
+ if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=" program t\n end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+aix4* | aix5*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+GCC_F77="$G77"
+LD_F77="$LD"
+
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_static_F77='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_F77='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_F77='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared_F77=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_F77=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_F77='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic_F77='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_F77='-Bstatic'
+ else
+ lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_F77='-qnocommon'
+ lt_prog_compiler_wl_F77='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_F77='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ linux*)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-static'
+ ;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-fpic'
+ lt_prog_compiler_static_F77='-static'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_prog_compiler_pic_F77='-Kpic'
+ lt_prog_compiler_static_F77='-dn'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_F77='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_F77='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl_F77='-Qoption ld '
+ lt_prog_compiler_pic_F77='-PIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic_F77='-Kconform_pic'
+ lt_prog_compiler_static_F77='-Bstatic'
+ fi
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_can_build_shared_F77=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic_F77='-pic'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared_F77=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works_F77=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_F77"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:14045: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:14049: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works_F77=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
+
+if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+ case $lt_prog_compiler_pic_F77 in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+ esac
+else
+ lt_prog_compiler_pic_F77=
+ lt_prog_compiler_can_build_shared_F77=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_F77=
+ ;;
+ *)
+ lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o_F77=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:14107: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:14111: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_F77=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ runpath_var=
+ allow_undefined_flag_F77=
+ enable_shared_with_static_runtimes_F77=no
+ archive_cmds_F77=
+ archive_expsym_cmds_F77=
+ old_archive_From_new_cmds_F77=
+ old_archive_from_expsyms_cmds_F77=
+ export_dynamic_flag_spec_F77=
+ whole_archive_flag_spec_F77=
+ thread_safe_flag_spec_F77=
+ hardcode_libdir_flag_spec_F77=
+ hardcode_libdir_flag_spec_ld_F77=
+ hardcode_libdir_separator_F77=
+ hardcode_direct_F77=no
+ hardcode_minus_L_F77=no
+ hardcode_shlibpath_var_F77=unsupported
+ link_all_deplibs_F77=unknown
+ hardcode_automatic_F77=no
+ module_cmds_F77=
+ module_expsym_cmds_F77=
+ always_export_symbols_F77=no
+ export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms_F77=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs_F77=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_F77=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs_F77=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs_F77=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_F77=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ allow_undefined_flag_F77=unsupported
+ always_export_symbols_F77=no
+ enable_shared_with_static_runtimes_F77=yes
+ export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_F77='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_F77='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs_F77=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs_F77" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_F77=
+ export_dynamic_flag_spec_F77=
+ whole_archive_flag_spec_F77=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag_F77=unsupported
+ always_export_symbols_F77=yes
+ archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L_F77=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct_F77=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_F77=''
+ hardcode_direct_F77=yes
+ hardcode_libdir_separator_F77=':'
+ link_all_deplibs_F77=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct_F77=yes
+ else
+ # We have old collect2
+ hardcode_direct_F77=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_F77=yes
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_libdir_separator_F77=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_F77=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_F77='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_F77="-z nodefs"
+ archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_f77_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_F77=' ${wl}-bernotok'
+ allow_undefined_flag_F77=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols_F77=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_F77=' '
+ archive_cmds_need_lc_F77=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs_F77=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec_F77=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec_F77=' '
+ allow_undefined_flag_F77=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds_F77='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes_F77=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_F77=no
+ hardcode_direct_F77=no
+ hardcode_automatic_F77=yes
+ hardcode_shlibpath_var_F77=unsupported
+ whole_archive_flag_spec_F77=''
+ link_all_deplibs_F77=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_F77=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs_F77=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_direct_F77=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_direct_F77=no
+ hardcode_shlibpath_var_F77=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_direct_F77=no
+ hardcode_shlibpath_var_F77=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_direct_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ link_all_deplibs_F77=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ newsos6)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ openbsd*)
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_F77='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ ;;
+ *)
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+ allow_undefined_flag_F77=unsupported
+ archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag_F77=' -expect_unresolved \*'
+ archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag_F77=' -expect_unresolved \*'
+ archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec_F77='-rpath $libdir'
+ fi
+ hardcode_libdir_separator_F77=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ export_dynamic_flag_spec_F77='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ no_undefined_flag_F77=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_shlibpath_var_F77=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
+ esac
+ link_all_deplibs_F77=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds_F77='$CC -r -o $output$reload_objs'
+ hardcode_direct_F77=no
+ ;;
+ motorola)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ export_dynamic_flag_spec_F77='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs_F77=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=no
+ hardcode_shlibpath_var_F77=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ no_undefined_flag_F77='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv5*)
+ no_undefined_flag_F77=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec_F77=
+ hardcode_shlibpath_var_F77=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ *)
+ ld_shlibs_F77=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_F77=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_F77 in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_F77
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+ allow_undefined_flag_F77=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_F77=no
+ else
+ archive_cmds_need_lc_F77=yes
+ fi
+ allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+ test -n "$runpath_var_F77" || \
+ test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_F77" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+ test "$hardcode_minus_L_F77" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_F77=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_F77=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_F77=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6
+
+if test "$hardcode_action_F77" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_F77 \
+ CC_F77 \
+ LD_F77 \
+ lt_prog_compiler_wl_F77 \
+ lt_prog_compiler_pic_F77 \
+ lt_prog_compiler_static_F77 \
+ lt_prog_compiler_no_builtin_flag_F77 \
+ export_dynamic_flag_spec_F77 \
+ thread_safe_flag_spec_F77 \
+ whole_archive_flag_spec_F77 \
+ enable_shared_with_static_runtimes_F77 \
+ old_archive_cmds_F77 \
+ old_archive_from_new_cmds_F77 \
+ predep_objects_F77 \
+ postdep_objects_F77 \
+ predeps_F77 \
+ postdeps_F77 \
+ compiler_lib_search_path_F77 \
+ archive_cmds_F77 \
+ archive_expsym_cmds_F77 \
+ postinstall_cmds_F77 \
+ postuninstall_cmds_F77 \
+ old_archive_from_expsyms_cmds_F77 \
+ allow_undefined_flag_F77 \
+ no_undefined_flag_F77 \
+ export_symbols_cmds_F77 \
+ hardcode_libdir_flag_spec_F77 \
+ hardcode_libdir_flag_spec_ld_F77 \
+ hardcode_libdir_separator_F77 \
+ hardcode_automatic_F77 \
+ module_cmds_F77 \
+ module_expsym_cmds_F77 \
+ lt_cv_prog_compiler_c_o_F77 \
+ exclude_expsyms_F77 \
+ include_expsyms_F77; do
+
+ case $var in
+ old_archive_cmds_F77 | \
+ old_archive_from_new_cmds_F77 | \
+ archive_cmds_F77 | \
+ archive_expsym_cmds_F77 | \
+ module_cmds_F77 | \
+ module_expsym_cmds_F77 | \
+ old_archive_from_expsyms_cmds_F77 | \
+ export_symbols_cmds_F77 | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_F77"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ GCJ)
+ if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+old_archive_cmds_GCJ=$old_archive_cmds
+
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:16229: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:16233: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_static_GCJ='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_GCJ='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared_GCJ=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_GCJ=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic_GCJ='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ else
+ lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_GCJ='-qnocommon'
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ linux*)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-static'
+ ;;
+ pgcc* | pgf77* | pgf90*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-fpic'
+ lt_prog_compiler_static_GCJ='-static'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_prog_compiler_pic_GCJ='-Kpic'
+ lt_prog_compiler_static_GCJ='-dn'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_GCJ='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl_GCJ='-Qoption ld '
+ lt_prog_compiler_pic_GCJ='-PIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic_GCJ='-Kconform_pic'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ fi
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_can_build_shared_GCJ=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic_GCJ='-pic'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared_GCJ=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_prog_compiler_pic_works_GCJ=no
+ ac_outfile=conftest.$ac_objext
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:16491: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:16495: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_pic_works_GCJ=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
+
+if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+ case $lt_prog_compiler_pic_GCJ in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+ esac
+else
+ lt_prog_compiler_pic_GCJ=
+ lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_GCJ=
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_compiler_c_o_GCJ=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:16553: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:16557: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_GCJ=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+ runpath_var=
+ allow_undefined_flag_GCJ=
+ enable_shared_with_static_runtimes_GCJ=no
+ archive_cmds_GCJ=
+ archive_expsym_cmds_GCJ=
+ old_archive_From_new_cmds_GCJ=
+ old_archive_from_expsyms_cmds_GCJ=
+ export_dynamic_flag_spec_GCJ=
+ whole_archive_flag_spec_GCJ=
+ thread_safe_flag_spec_GCJ=
+ hardcode_libdir_flag_spec_GCJ=
+ hardcode_libdir_flag_spec_ld_GCJ=
+ hardcode_libdir_separator_GCJ=
+ hardcode_direct_GCJ=no
+ hardcode_minus_L_GCJ=no
+ hardcode_shlibpath_var_GCJ=unsupported
+ link_all_deplibs_GCJ=unknown
+ hardcode_automatic_GCJ=no
+ module_cmds_GCJ=
+ module_expsym_cmds_GCJ=
+ always_export_symbols_GCJ=no
+ export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms_GCJ=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs_GCJ=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_GCJ=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs_GCJ=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs_GCJ=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_GCJ=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ allow_undefined_flag_GCJ=unsupported
+ always_export_symbols_GCJ=no
+ enable_shared_with_static_runtimes_GCJ=yes
+ export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_GCJ='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_GCJ='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs_GCJ=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs_GCJ" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_GCJ=
+ export_dynamic_flag_spec_GCJ=
+ whole_archive_flag_spec_GCJ=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag_GCJ=unsupported
+ always_export_symbols_GCJ=yes
+ archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L_GCJ=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct_GCJ=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_GCJ=''
+ hardcode_direct_GCJ=yes
+ hardcode_libdir_separator_GCJ=':'
+ link_all_deplibs_GCJ=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct_GCJ=yes
+ else
+ # We have old collect2
+ hardcode_direct_GCJ=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_GCJ=yes
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_libdir_separator_GCJ=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_GCJ=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_GCJ='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_GCJ="-z nodefs"
+ archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_GCJ=' ${wl}-bernotok'
+ allow_undefined_flag_GCJ=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols_GCJ=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_GCJ=' '
+ archive_cmds_need_lc_GCJ=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs_GCJ=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec_GCJ=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec_GCJ=' '
+ allow_undefined_flag_GCJ=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds_GCJ='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes_GCJ=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_GCJ=no
+ hardcode_direct_GCJ=no
+ hardcode_automatic_GCJ=yes
+ hardcode_shlibpath_var_GCJ=unsupported
+ whole_archive_flag_spec_GCJ=''
+ link_all_deplibs_GCJ=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_GCJ=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs_GCJ=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu | dragonfly*)
+ archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_direct_GCJ=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_direct_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_direct_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_direct_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ link_all_deplibs_GCJ=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ newsos6)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ openbsd*)
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+ allow_undefined_flag_GCJ=unsupported
+ archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag_GCJ=' -expect_unresolved \*'
+ archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag_GCJ=' -expect_unresolved \*'
+ archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+ fi
+ hardcode_libdir_separator_GCJ=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ no_undefined_flag_GCJ=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
+ esac
+ link_all_deplibs_GCJ=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+ hardcode_direct_GCJ=no
+ ;;
+ motorola)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ export_dynamic_flag_spec_GCJ='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs_GCJ=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ no_undefined_flag_GCJ='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv5*)
+ no_undefined_flag_GCJ=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec_GCJ=
+ hardcode_shlibpath_var_GCJ=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ *)
+ ld_shlibs_GCJ=no
+ ;;
+ esac
+ fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_GCJ=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_GCJ in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_GCJ
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+ allow_undefined_flag_GCJ=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_GCJ=no
+ else
+ archive_cmds_need_lc_GCJ=yes
+ fi
+ allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+knetbsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+ test -n "$runpath_var_GCJ" || \
+ test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_GCJ" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+ test "$hardcode_minus_L_GCJ" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_GCJ=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_GCJ=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_GCJ=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6
+
+if test "$hardcode_action_GCJ" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ ;;
+ *)
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ ;;
+ esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+ lt_cv_dlopen="shl_load"
+else
+ echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+ lt_cv_dlopen="dlopen"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 18793 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 18891 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_GCJ \
+ CC_GCJ \
+ LD_GCJ \
+ lt_prog_compiler_wl_GCJ \
+ lt_prog_compiler_pic_GCJ \
+ lt_prog_compiler_static_GCJ \
+ lt_prog_compiler_no_builtin_flag_GCJ \
+ export_dynamic_flag_spec_GCJ \
+ thread_safe_flag_spec_GCJ \
+ whole_archive_flag_spec_GCJ \
+ enable_shared_with_static_runtimes_GCJ \
+ old_archive_cmds_GCJ \
+ old_archive_from_new_cmds_GCJ \
+ predep_objects_GCJ \
+ postdep_objects_GCJ \
+ predeps_GCJ \
+ postdeps_GCJ \
+ compiler_lib_search_path_GCJ \
+ archive_cmds_GCJ \
+ archive_expsym_cmds_GCJ \
+ postinstall_cmds_GCJ \
+ postuninstall_cmds_GCJ \
+ old_archive_from_expsyms_cmds_GCJ \
+ allow_undefined_flag_GCJ \
+ no_undefined_flag_GCJ \
+ export_symbols_cmds_GCJ \
+ hardcode_libdir_flag_spec_GCJ \
+ hardcode_libdir_flag_spec_ld_GCJ \
+ hardcode_libdir_separator_GCJ \
+ hardcode_automatic_GCJ \
+ module_cmds_GCJ \
+ module_expsym_cmds_GCJ \
+ lt_cv_prog_compiler_c_o_GCJ \
+ exclude_expsyms_GCJ \
+ include_expsyms_GCJ; do
+
+ case $var in
+ old_archive_cmds_GCJ | \
+ old_archive_from_new_cmds_GCJ | \
+ archive_cmds_GCJ | \
+ archive_expsym_cmds_GCJ | \
+ module_cmds_GCJ | \
+ module_expsym_cmds_GCJ | \
+ old_archive_from_expsyms_cmds_GCJ | \
+ export_symbols_cmds_GCJ | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_GCJ"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ RC)
+
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_RC \
+ CC_RC \
+ LD_RC \
+ lt_prog_compiler_wl_RC \
+ lt_prog_compiler_pic_RC \
+ lt_prog_compiler_static_RC \
+ lt_prog_compiler_no_builtin_flag_RC \
+ export_dynamic_flag_spec_RC \
+ thread_safe_flag_spec_RC \
+ whole_archive_flag_spec_RC \
+ enable_shared_with_static_runtimes_RC \
+ old_archive_cmds_RC \
+ old_archive_from_new_cmds_RC \
+ predep_objects_RC \
+ postdep_objects_RC \
+ predeps_RC \
+ postdeps_RC \
+ compiler_lib_search_path_RC \
+ archive_cmds_RC \
+ archive_expsym_cmds_RC \
+ postinstall_cmds_RC \
+ postuninstall_cmds_RC \
+ old_archive_from_expsyms_cmds_RC \
+ allow_undefined_flag_RC \
+ no_undefined_flag_RC \
+ export_symbols_cmds_RC \
+ hardcode_libdir_flag_spec_RC \
+ hardcode_libdir_flag_spec_ld_RC \
+ hardcode_libdir_separator_RC \
+ hardcode_automatic_RC \
+ module_cmds_RC \
+ module_expsym_cmds_RC \
+ lt_cv_prog_compiler_c_o_RC \
+ exclude_expsyms_RC \
+ include_expsyms_RC; do
+
+ case $var in
+ old_archive_cmds_RC | \
+ old_archive_from_new_cmds_RC | \
+ archive_cmds_RC | \
+ archive_expsym_cmds_RC | \
+ module_cmds_RC | \
+ module_expsym_cmds_RC | \
+ old_archive_from_expsyms_cmds_RC | \
+ export_symbols_cmds_RC | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_RC"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ ;;
+
+ *)
+ { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ # Append the new tag name to the list of available tags.
+ if test -n "$tagname" ; then
+ available_tags="$available_tags $tagname"
+ fi
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ # Now substitute the updated list of available tags.
+ if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+ mv "${ofile}T" "$ofile"
+ chmod +x "$ofile"
+ else
+ rm -f "${ofile}T"
+ { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-fi
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
@@ -3534,68 +19938,18 @@ fi
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+### i18n
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+GETTEXT_PACKAGE=mail-notification
-fi
+cat >>confdefs.h <<_ACEOF
+#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
+_ACEOF
-done
+ALL_LINGUAS="bg de fr pl pt ru sr sr@Latn"
for ac_header in locale.h
@@ -3963,7 +20317,66 @@ if test $ac_cv_header_libintl_h = yes; then
#
# First check in libc
#
- echo "$as_me:$LINENO: checking for dgettext in libc" >&5
+ echo "$as_me:$LINENO: checking for ngettext in libc" >&5
+echo $ECHO_N "checking for ngettext in libc... $ECHO_C" >&6
+if test "${gt_cv_func_ngettext_libc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !ngettext ("","", 1)
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gt_cv_func_ngettext_libc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+gt_cv_func_ngettext_libc=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5
+echo "${ECHO_T}$gt_cv_func_ngettext_libc" >&6
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+ echo "$as_me:$LINENO: checking for dgettext in libc" >&5
echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6
if test "${gt_cv_func_dgettext_libc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3980,7 +20393,7 @@ cat >>conftest.$ac_ext <<_ACEOF
int
main ()
{
-return (int) dgettext ("","")
+return !dgettext ("","")
;
return 0;
}
@@ -4020,8 +20433,9 @@ rm -f conftest.err conftest.$ac_objext \
fi
echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6
+ fi
- if test "$gt_cv_func_dgettext_libc" = "yes" ; then
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
for ac_func in bind_textdomain_codeset
do
@@ -4130,6 +20544,7 @@ done
# 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
echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
@@ -4197,13 +20612,156 @@ fi
echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6
if test $ac_cv_lib_intl_bindtextdomain = yes; then
+ echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6
+if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char ngettext ();
+int
+main ()
+{
+ngettext ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_intl_ngettext=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_intl_ngettext=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6
+if test $ac_cv_lib_intl_ngettext = yes; then
echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6
if test "${ac_cv_lib_intl_dgettext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lintl $LIBS"
+LIBS="-lintl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dgettext ();
+int
+main ()
+{
+dgettext ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_intl_dgettext=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_intl_dgettext=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6
+if test $ac_cv_lib_intl_dgettext = yes; then
+ gt_cv_func_dgettext_libintl=yes
+fi
+
+fi
+
+fi
+
+
+ if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+ echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
+echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6
+ echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6
+ echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6
+if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@@ -4217,11 +20775,11 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dgettext ();
+char ngettext ();
int
main ()
{
-dgettext ();
+ngettext ();
;
return 0;
}
@@ -4248,32 +20806,21 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_lib_intl_dgettext=yes
+ ac_cv_lib_intl_ngettext=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_lib_intl_dgettext=no
+ac_cv_lib_intl_ngettext=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6
-if test $ac_cv_lib_intl_dgettext = yes; then
- gt_cv_func_dgettext_libintl=yes
-fi
-
-fi
-
-
- if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
- echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
-echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6
- echo "$as_me:$LINENO: result: " >&5
-echo "${ECHO_T}" >&6
- echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6
+if test $ac_cv_lib_intl_ngettext = yes; then
+ echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6
if test "${ac_cv_lib_intl_dcgettext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4344,12 +20891,16 @@ else
:
fi
+else
+ :
+fi
+
fi
#
# If we found libintl, then check in it for bind_textdomain_codeset();
# we'll prefer libc if neither have bind_textdomain_codeset(),
- # and both have dgettext
+ # and both have dgettext and ngettext
#
if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
glib_save_LIBS="$LIBS"
@@ -4462,7 +21013,8 @@ done
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"; then
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ && test "$gt_cv_func_ngettext_libc" = "yes"; then
gt_cv_func_dgettext_libintl=no
fi
fi
@@ -5101,12 +21653,12 @@ fi
set dummy iconv; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ICONV+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_ICONV+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- case $ICONV in
+ case $INTLTOOL_ICONV in
[\\/]* | ?:[\\/]*)
- ac_cv_path_ICONV="$ICONV" # Let the user override the test with a path.
+ ac_cv_path_INTLTOOL_ICONV="$INTLTOOL_ICONV" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5116,22 +21668,22 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ICONV="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_INTLTOOL_ICONV="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
- test -z "$ac_cv_path_ICONV" && ac_cv_path_ICONV="iconv"
+ test -z "$ac_cv_path_INTLTOOL_ICONV" && ac_cv_path_INTLTOOL_ICONV="iconv"
;;
esac
fi
-ICONV=$ac_cv_path_ICONV
+INTLTOOL_ICONV=$ac_cv_path_INTLTOOL_ICONV
-if test -n "$ICONV"; then
- echo "$as_me:$LINENO: result: $ICONV" >&5
-echo "${ECHO_T}$ICONV" >&6
+if test -n "$INTLTOOL_ICONV"; then
+ echo "$as_me:$LINENO: result: $INTLTOOL_ICONV" >&5
+echo "${ECHO_T}$INTLTOOL_ICONV" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
@@ -5141,12 +21693,12 @@ fi
set dummy msgfmt; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_MSGFMT+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- case $MSGFMT in
+ case $INTLTOOL_MSGFMT in
[\\/]* | ?:[\\/]*)
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ac_cv_path_INTLTOOL_MSGFMT="$INTLTOOL_MSGFMT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5156,22 +21708,22 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_INTLTOOL_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+ test -z "$ac_cv_path_INTLTOOL_MSGFMT" && ac_cv_path_INTLTOOL_MSGFMT="msgfmt"
;;
esac
fi
-MSGFMT=$ac_cv_path_MSGFMT
+INTLTOOL_MSGFMT=$ac_cv_path_INTLTOOL_MSGFMT
-if test -n "$MSGFMT"; then
- echo "$as_me:$LINENO: result: $MSGFMT" >&5
-echo "${ECHO_T}$MSGFMT" >&6
+if test -n "$INTLTOOL_MSGFMT"; then
+ echo "$as_me:$LINENO: result: $INTLTOOL_MSGFMT" >&5
+echo "${ECHO_T}$INTLTOOL_MSGFMT" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
@@ -5181,12 +21733,12 @@ fi
set dummy msgmerge; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_MSGMERGE+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- case $MSGMERGE in
+ case $INTLTOOL_MSGMERGE in
[\\/]* | ?:[\\/]*)
- ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ac_cv_path_INTLTOOL_MSGMERGE="$INTLTOOL_MSGMERGE" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5196,22 +21748,22 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_INTLTOOL_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
- test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE="msgmerge"
+ test -z "$ac_cv_path_INTLTOOL_MSGMERGE" && ac_cv_path_INTLTOOL_MSGMERGE="msgmerge"
;;
esac
fi
-MSGMERGE=$ac_cv_path_MSGMERGE
+INTLTOOL_MSGMERGE=$ac_cv_path_INTLTOOL_MSGMERGE
-if test -n "$MSGMERGE"; then
- echo "$as_me:$LINENO: result: $MSGMERGE" >&5
-echo "${ECHO_T}$MSGMERGE" >&6
+if test -n "$INTLTOOL_MSGMERGE"; then
+ echo "$as_me:$LINENO: result: $INTLTOOL_MSGMERGE" >&5
+echo "${ECHO_T}$INTLTOOL_MSGMERGE" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
@@ -5221,12 +21773,12 @@ fi
set dummy xgettext; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_XGETTEXT+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- case $XGETTEXT in
+ case $INTLTOOL_XGETTEXT in
[\\/]* | ?:[\\/]*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ac_cv_path_INTLTOOL_XGETTEXT="$INTLTOOL_XGETTEXT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5236,22 +21788,22 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_INTLTOOL_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT="xgettext"
+ test -z "$ac_cv_path_INTLTOOL_XGETTEXT" && ac_cv_path_INTLTOOL_XGETTEXT="xgettext"
;;
esac
fi
-XGETTEXT=$ac_cv_path_XGETTEXT
+INTLTOOL_XGETTEXT=$ac_cv_path_INTLTOOL_XGETTEXT
-if test -n "$XGETTEXT"; then
- echo "$as_me:$LINENO: result: $XGETTEXT" >&5
-echo "${ECHO_T}$XGETTEXT" >&6
+if test -n "$INTLTOOL_XGETTEXT"; then
+ echo "$as_me:$LINENO: result: $INTLTOOL_XGETTEXT" >&5
+echo "${ECHO_T}$INTLTOOL_XGETTEXT" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
@@ -5265,32 +21817,6 @@ fi
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # Keeping the `.' argument allows $(mkdir_p) to be used without
- # argument. Indeed, we sometimes output rules like
- # $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined.
- # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
- # expensive solution, as it forces Make to start a sub-shell.)
- mkdir_p='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.
- for d in ./-p ./--version;
- do
- test -d $d && rmdir $d
- done
- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
- if test -f "$ac_aux_dir/mkinstalldirs"; then
- mkdir_p='$(mkinstalldirs)'
- else
- mkdir_p='$(install_sh) -d'
- fi
-fi
-
-
# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
@@ -6575,37 +23101,270 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "memchr" >/dev/null 2>&1; then
:
else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+if test $ac_cv_header_stdc != yes; then
+ { { echo "$as_me:$LINENO: error: ANSI C headers not present" >&5
+echo "$as_me: error: ANSI C headers not present" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
+# Check whether --with-reentrant-resolver or --without-reentrant-resolver was given.
+if test "${with_reentrant_resolver+set}" = set; then
+ withval="$with_reentrant_resolver"
+ case "$withval" in
+ yes|no|autodetect) reentrant_resolver=$withval ;;
+ *) { { echo "$as_me:$LINENO: error: bad value $withval for --with-reentrant-resolver" >&5
+echo "$as_me: error: bad value $withval for --with-reentrant-resolver" >&2;}
+ { (exit 1); exit 1; }; } ;;
+esac
+else
+ reentrant_resolver=autodetect
+fi;
+
+if test $reentrant_resolver = autodetect; then
+ echo "$as_me:$LINENO: checking if the system resolver is reentrant" >&5
+echo $ECHO_N "checking if the system resolver is reentrant... $ECHO_C" >&6
+
+ case "$target_os" in
+ # FreeBSD >= 5.3
+ freebsd5.[3-9]*|freebsd5.[1-9][0-9]*|freebsd[6-9]*|freebsd[1-9][0-9]*)
+ reentrant_resolver=yes ;;
+
+ # FreeBSD < 5.3, NetBSD, OpenBSD
+ freebsd*|netbsd*|openbsd*)
+ reentrant_resolver=no ;;
+
+ # Linux
+ linux*)
+ reentrant_resolver=yes ;;
+
+ *)
+ reentrant_resolver=unknown ;;
+ esac
+
+ if test $reentrant_resolver = unknown; then
+ reentrant_resolver=no
+ echo "$as_me:$LINENO: result: unknown, assuming it is not (use --with-reentrant-resolver to override)" >&5
+echo "${ECHO_T}unknown, assuming it is not (use --with-reentrant-resolver to override)" >&6
+ else
+ echo "$as_me:$LINENO: result: $reentrant_resolver" >&5
+echo "${ECHO_T}$reentrant_resolver" >&6
+ fi
+fi
+
+if test $reentrant_resolver = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_REENTRANT_RESOLVER 1
+_ACEOF
+
+fi
+
+# timegm() is non-standard, define HAVE_TIMEGM if it is present
+
+for ac_func in timegm
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+eval "$as_ac_var=no"
fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
fi
-rm -f conftest*
+done
-fi
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
+# see if "struct tm" is defined in sys/time.h
+echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
+echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6
+if test "${ac_cv_struct_tm+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
@@ -6613,69 +23372,58 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
+#include <sys/types.h>
+#include <time.h>
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
main ()
{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
+struct tm *tp; tp->tm_sec;
+ ;
+ return 0;
}
_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- :
+ ac_cv_struct_tm=time.h
else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+ echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
+ac_cv_struct_tm=sys/time.h
fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
+echo "${ECHO_T}$ac_cv_struct_tm" >&6
+if test $ac_cv_struct_tm = sys/time.h; then
cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
+#define TM_IN_SYS_TIME 1
_ACEOF
fi
-if test $ac_cv_header_stdc != yes; then
- { { echo "$as_me:$LINENO: error: ANSI C headers not present" >&5
-echo "$as_me: error: ANSI C headers not present" >&2;}
- { (exit 1); exit 1; }; }
-fi
### mandatory libraries and programs
@@ -6752,7 +23500,7 @@ fi
no_gtk=yes
fi
- min_gtk_version=2.4.0
+ min_gtk_version=2.6.0
echo "$as_me:$LINENO: checking for GTK+ - version >= $min_gtk_version" >&5
echo $ECHO_N "checking for GTK+ - version >= $min_gtk_version... $ECHO_C" >&6
@@ -6982,15 +23730,244 @@ echo "$as_me: error: unable to find the GTK+ library" >&2;}
fi
- rm -f conf.gtktest
+ rm -f conf.gtktest
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+
+if test -n "$ac_pt_PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ PKG_CONFIG=""
+ fi
+
+fi
+
+pkg_failed=no
+echo "$as_me:$LINENO: checking for GNOME_CFLAGS" >&5
+echo $ECHO_N "checking for GNOME_CFLAGS... $ECHO_C" >&6
+if test "${pkg_cv_GNOME_CFLAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "x$ac_cv_env_GNOME_CFLAGS_set" = "xset"; then
+ pkg_cv_GNOME_CFLAGS=$ac_cv_env_GNOME_CFLAGS_value
+elif test -n "$PKG_CONFIG"; then
+ if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0\" >/dev/null 2>&1") >&5
+ ($PKG_CONFIG --exists "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" >/dev/null 2>&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GNOME_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+else
+ pkg_failed=untried
+fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GNOME_CFLAGS" >&5
+echo "${ECHO_T}$pkg_cv_GNOME_CFLAGS" >&6
+echo "$as_me:$LINENO: checking for GNOME_LIBS" >&5
+echo $ECHO_N "checking for GNOME_LIBS... $ECHO_C" >&6
+if test "${pkg_cv_GNOME_LIBS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "x$ac_cv_env_GNOME_LIBS_set" = "xset"; then
+ pkg_cv_GNOME_LIBS=$ac_cv_env_GNOME_LIBS_value
+elif test -n "$PKG_CONFIG"; then
+ if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0\" >/dev/null 2>&1") >&5
+ ($PKG_CONFIG --exists "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" >/dev/null 2>&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GNOME_LIBS=`$PKG_CONFIG --libs "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+else
+ pkg_failed=untried
+fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GNOME_LIBS" >&5
+echo "${ECHO_T}$pkg_cv_GNOME_LIBS" >&6
+
+if test $pkg_failed = yes; then
+ GNOME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0"`
+ # Put the nasty error message in config.log where it belongs
+ echo "$GNOME_PKG_ERRORS" 1>&5
+
+ { { echo "$as_me:$LINENO: error: unable to find the GNOME libraries" >&5
+echo "$as_me: error: unable to find the GNOME libraries" >&2;}
+ { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+ { { echo "$as_me:$LINENO: error: unable to find the GNOME libraries" >&5
+echo "$as_me: error: unable to find the GNOME libraries" >&2;}
+ { (exit 1); exit 1; }; }
+else
+ GNOME_CFLAGS=$pkg_cv_GNOME_CFLAGS
+ GNOME_LIBS=$pkg_cv_GNOME_LIBS
+ :
+fi
+
+ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+ GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+ else
+ GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+ fi
+
+
+# Check whether --with-gconf-source or --without-gconf-source was given.
+if test "${with_gconf_source+set}" = set; then
+ withval="$with_gconf_source"
+ GCONF_SCHEMA_CONFIG_SOURCE="$withval"
+fi;
+
+
+ echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5
+echo "${ECHO_T}Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6
+
+ if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+ GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+ fi
+
+
+# Check whether --with-gconf-schema-file-dir or --without-gconf-schema-file-dir was given.
+if test "${with_gconf_schema_file_dir+set}" = set; then
+ withval="$with_gconf_schema_file_dir"
+ GCONF_SCHEMA_FILE_DIR="$withval"
+fi;
+
+
+ echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5
+echo "${ECHO_T}Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6
+
+ # Check whether --enable-schemas-install or --disable-schemas-install was given.
+if test "${enable_schemas_install+set}" = set; then
+ enableval="$enable_schemas_install"
+ case "${enableval}" in
+ yes) schemas_install=true ;;
+ no) schemas_install=false ;;
+ *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-schemas-install" >&5
+echo "$as_me: error: bad value ${enableval} for --disable-schemas-install" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+else
+ schemas_install=true
+fi;
+
+
+if test x$schemas_install = xtrue; then
+ GCONF_SCHEMAS_INSTALL_TRUE=
+ GCONF_SCHEMAS_INSTALL_FALSE='#'
+else
+ GCONF_SCHEMAS_INSTALL_TRUE='#'
+ GCONF_SCHEMAS_INSTALL_FALSE=
+fi
- succeeded=no
- if test -z "$PKG_CONFIG"; then
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
@@ -7015,7 +23992,6 @@ do
done
done
- test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
;;
esac
fi
@@ -7029,116 +24005,208 @@ else
echo "${ECHO_T}no" >&6
fi
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
+done
+done
- if test "$PKG_CONFIG" = "no" ; then
- echo "*** The pkg-config script could not be found. Make sure it is"
- echo "*** in your path, or set the PKG_CONFIG environment variable"
- echo "*** to the full path to pkg-config."
- echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
- else
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo "$as_me:$LINENO: checking for gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0" >&5
-echo $ECHO_N "checking for gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0... $ECHO_C" >&6
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
- if $PKG_CONFIG --exists "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0" ; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- succeeded=yes
-
- echo "$as_me:$LINENO: checking GNOME_CFLAGS" >&5
-echo $ECHO_N "checking GNOME_CFLAGS... $ECHO_C" >&6
- GNOME_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0"`
- echo "$as_me:$LINENO: result: $GNOME_CFLAGS" >&5
-echo "${ECHO_T}$GNOME_CFLAGS" >&6
-
- echo "$as_me:$LINENO: checking GNOME_LIBS" >&5
-echo $ECHO_N "checking GNOME_LIBS... $ECHO_C" >&6
- GNOME_LIBS=`$PKG_CONFIG --libs "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0"`
- echo "$as_me:$LINENO: result: $GNOME_LIBS" >&5
-echo "${ECHO_T}$GNOME_LIBS" >&6
- else
- GNOME_CFLAGS=""
- GNOME_LIBS=""
- ## If we have a custom action on failure, don't print errors, but
- ## do set a variable so people can do so.
- GNOME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0"`
+if test -n "$ac_pt_PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
- fi
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ PKG_CONFIG=""
+ fi
+fi
- else
- echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
- echo "*** See http://www.freedesktop.org/software/pkgconfig"
- fi
- fi
+echo "$as_me:$LINENO: checking for the GNOME installation prefix" >&5
+echo $ECHO_N "checking for the GNOME installation prefix... $ECHO_C" >&6
- if test $succeeded = yes; then
- :
- else
- { { echo "$as_me:$LINENO: error: unable to find the GNOME libraries" >&5
-echo "$as_me: error: unable to find the GNOME libraries" >&2;}
- { (exit 1); exit 1; }; }
- fi
+gnome_prefix=""
+if test -n "$PKG_CONFIG"; then
+ gnome_prefix=`$PKG_CONFIG --variable prefix libgnome-2.0`
+fi
+if test -n "$gnome_prefix"; then
+ echo "$as_me:$LINENO: result: $gnome_prefix" >&5
+echo "${ECHO_T}$gnome_prefix" >&6
+ :
+else
+ echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+ :
+fi
- if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
- GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
- else
- GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
- fi
-# Check whether --with-gconf-source or --without-gconf-source was given.
-if test "${with_gconf_source+set}" = set; then
- withval="$with_gconf_source"
- GCONF_SCHEMA_CONFIG_SOURCE="$withval"
-fi;
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
- echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5
-echo "${ECHO_T}Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6
+if test -n "$PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
- if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
- GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
+done
+done
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-# Check whether --with-gconf-schema-file-dir or --without-gconf-schema-file-dir was given.
-if test "${with_gconf_schema_file_dir+set}" = set; then
- withval="$with_gconf_schema_file_dir"
- GCONF_SCHEMA_FILE_DIR="$withval"
-fi;
+if test -n "$ac_pt_PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
- echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5
-echo "${ECHO_T}Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ PKG_CONFIG=""
+ fi
- # Check whether --enable-schemas-install or --disable-schemas-install was given.
-if test "${enable_schemas_install+set}" = set; then
- enableval="$enable_schemas_install"
- case "${enableval}" in
- yes) schemas_install=true ;;
- no) schemas_install=false ;;
- *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-schemas-install" >&5
-echo "$as_me: error: bad value ${enableval} for --disable-schemas-install" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
-else
- schemas_install=true
-fi;
+fi
+echo "$as_me:$LINENO: checking for the GNOME capplet directory" >&5
+echo $ECHO_N "checking for the GNOME capplet directory... $ECHO_C" >&6
-if test x$schemas_install = xtrue; then
- GCONF_SCHEMAS_INSTALL_TRUE=
- GCONF_SCHEMAS_INSTALL_FALSE='#'
-else
- GCONF_SCHEMAS_INSTALL_TRUE='#'
- GCONF_SCHEMAS_INSTALL_FALSE=
+# GNOME < 2.10
+gnome_cappletdir='${datadir}/control-center-2.0/capplets'
+
+if test -n "$PKG_CONFIG" && $PKG_CONFIG --exists 'libgnome-2.0 >= 2.10.0' >/dev/null 2>&1; then
+ # GNOME >= 2.10
+ gnome_cappletdir='${datadir}/applications'
fi
+echo "$as_me:$LINENO: result: $gnome_cappletdir" >&5
+echo "${ECHO_T}$gnome_cappletdir" >&6
+
# Extract the first word of "gconftool-2", so it can be a program name with args.
@@ -7285,101 +24353,67 @@ if test $enable_mbox = yes ||
test $enable_imap = yes ||
test $enable_sylpheed = yes; then
- succeeded=no
-
- if test -z "$PKG_CONFIG"; then
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+pkg_failed=no
+echo "$as_me:$LINENO: checking for GMIME_CFLAGS" >&5
+echo $ECHO_N "checking for GMIME_CFLAGS... $ECHO_C" >&6
+if test "${pkg_cv_GMIME_CFLAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
- ;;
-esac
+ if test "x$ac_cv_env_GMIME_CFLAGS_set" = "xset"; then
+ pkg_cv_GMIME_CFLAGS=$ac_cv_env_GMIME_CFLAGS_value
+elif test -n "$PKG_CONFIG"; then
+ if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gmime-2.0 >= 2.1.0\" >/dev/null 2>&1") >&5
+ ($PKG_CONFIG --exists "gmime-2.0 >= 2.1.0" >/dev/null 2>&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0 >= 2.1.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+else
+ pkg_failed=untried
fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-
-if test -n "$PKG_CONFIG"; then
- echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GMIME_CFLAGS" >&5
+echo "${ECHO_T}$pkg_cv_GMIME_CFLAGS" >&6
+echo "$as_me:$LINENO: checking for GMIME_LIBS" >&5
+echo $ECHO_N "checking for GMIME_LIBS... $ECHO_C" >&6
+if test "${pkg_cv_GMIME_LIBS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+ if test "x$ac_cv_env_GMIME_LIBS_set" = "xset"; then
+ pkg_cv_GMIME_LIBS=$ac_cv_env_GMIME_LIBS_value
+elif test -n "$PKG_CONFIG"; then
+ if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gmime-2.0 >= 2.1.0\" >/dev/null 2>&1") >&5
+ ($PKG_CONFIG --exists "gmime-2.0 >= 2.1.0" >/dev/null 2>&1) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0 >= 2.1.0" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+else
+ pkg_failed=untried
fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GMIME_LIBS" >&5
+echo "${ECHO_T}$pkg_cv_GMIME_LIBS" >&6
- fi
-
- if test "$PKG_CONFIG" = "no" ; then
- echo "*** The pkg-config script could not be found. Make sure it is"
- echo "*** in your path, or set the PKG_CONFIG environment variable"
- echo "*** to the full path to pkg-config."
- echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
- else
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo "$as_me:$LINENO: checking for gmime-2.0 >= 2.1.0" >&5
-echo $ECHO_N "checking for gmime-2.0 >= 2.1.0... $ECHO_C" >&6
-
- if $PKG_CONFIG --exists "gmime-2.0 >= 2.1.0" ; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- succeeded=yes
-
- echo "$as_me:$LINENO: checking GMIME_CFLAGS" >&5
-echo $ECHO_N "checking GMIME_CFLAGS... $ECHO_C" >&6
- GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0 >= 2.1.0"`
- echo "$as_me:$LINENO: result: $GMIME_CFLAGS" >&5
-echo "${ECHO_T}$GMIME_CFLAGS" >&6
-
- echo "$as_me:$LINENO: checking GMIME_LIBS" >&5
-echo $ECHO_N "checking GMIME_LIBS... $ECHO_C" >&6
- GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0 >= 2.1.0"`
- echo "$as_me:$LINENO: result: $GMIME_LIBS" >&5
-echo "${ECHO_T}$GMIME_LIBS" >&6
- else
- GMIME_CFLAGS=""
- GMIME_LIBS=""
- ## If we have a custom action on failure, don't print errors, but
- ## do set a variable so people can do so.
- GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.0 >= 2.1.0"`
-
- fi
-
-
-
- else
- echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
- echo "*** See http://www.freedesktop.org/software/pkgconfig"
- fi
- fi
-
- if test $succeeded = yes; then
- enable_mime=yes
- else
- :
- fi
+if test $pkg_failed = yes; then
+ GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.0 >= 2.1.0"`
+ # Put the nasty error message in config.log where it belongs
+ echo "$GMIME_PKG_ERRORS" 1>&5
+ :
+elif test $pkg_failed = untried; then
+ :
+else
+ GMIME_CFLAGS=$pkg_cv_GMIME_CFLAGS
+ GMIME_LIBS=$pkg_cv_GMIME_LIBS
+ enable_mime=yes
+fi
if test $enable_mime = no; then
if test $enable_mbox = yes; then
{ echo "$as_me:$LINENO: GMime not found: forcing --disable-mbox" >&5
@@ -7603,245 +24637,233 @@ fi
fi
-if test $enable_gmail = yes; then
-
- succeeded=no
+if test $enable_evolution = yes; then
- if test -z "$PKG_CONFIG"; then
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
+# Check whether --with-evolution-source-dir or --without-evolution-source-dir was given.
+if test "${with_evolution_source_dir+set}" = set; then
+ withval="$with_evolution_source_dir"
+ evolution_source_dir="$withval"
else
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
+ evolution_source_dir=""
+fi;
- test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
- ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+found=no
-if test -n "$PKG_CONFIG"; then
- echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6
+echo "$as_me:$LINENO: checking for the Evolution source tree directory" >&5
+echo $ECHO_N "checking for the Evolution source tree directory... $ECHO_C" >&6
+if test -z "$evolution_source_dir"; then
+ echo "$as_me:$LINENO: result: not given, use --with-evolution-source-dir=DIR" >&5
+echo "${ECHO_T}not given, use --with-evolution-source-dir=DIR" >&6
else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- fi
-
- if test "$PKG_CONFIG" = "no" ; then
- echo "*** The pkg-config script could not be found. Make sure it is"
- echo "*** in your path, or set the PKG_CONFIG environment variable"
- echo "*** to the full path to pkg-config."
- echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
- else
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo "$as_me:$LINENO: checking for libsoup-2.2" >&5
-echo $ECHO_N "checking for libsoup-2.2... $ECHO_C" >&6
-
- if $PKG_CONFIG --exists "libsoup-2.2" ; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- succeeded=yes
-
- echo "$as_me:$LINENO: checking SOUP_CFLAGS" >&5
-echo $ECHO_N "checking SOUP_CFLAGS... $ECHO_C" >&6
- SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.2"`
- echo "$as_me:$LINENO: result: $SOUP_CFLAGS" >&5
-echo "${ECHO_T}$SOUP_CFLAGS" >&6
-
- echo "$as_me:$LINENO: checking SOUP_LIBS" >&5
-echo $ECHO_N "checking SOUP_LIBS... $ECHO_C" >&6
- SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.2"`
- echo "$as_me:$LINENO: result: $SOUP_LIBS" >&5
-echo "${ECHO_T}$SOUP_LIBS" >&6
- else
- SOUP_CFLAGS=""
- SOUP_LIBS=""
- ## If we have a custom action on failure, don't print errors, but
- ## do set a variable so people can do so.
- SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.2"`
+ echo "$as_me:$LINENO: result: $evolution_source_dir" >&5
+echo "${ECHO_T}$evolution_source_dir" >&6
- fi
-
-
-
- else
- echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
- echo "*** See http://www.freedesktop.org/software/pkgconfig"
- fi
- fi
-
- if test $succeeded = yes; then
- :
- else
- { echo "$as_me:$LINENO: libsoup not found: forcing --disable-gmail" >&5
-echo "$as_me: libsoup not found: forcing --disable-gmail" >&6;}
-enable_gmail=no
-disable_gmail_reason="(libsoup not found)"
- fi
+ if test "x$evolution_source_dir" != "xno"; then
+ found=yes
-fi
-if test $enable_gmail_timestamps = yes; then
- if test $enable_gmail = yes; then
- # Extract the first word of "icu-config", so it can be a program name with args.
-set dummy icu-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ICU_CONFIG+set}" = set; then
+if test $found = yes; then
+ as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/em-event.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/em-event.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/em-event.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- case $ICU_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ICU_CONFIG="$ICU_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ICU_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_path_ICU_CONFIG" && ac_cv_path_ICU_CONFIG="no"
- ;;
-esac
+ test "$cross_compiling" = yes &&
+ { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/em-event.h"; then
+ eval "$as_ac_File=yes"
+else
+ eval "$as_ac_File=no"
fi
-ICU_CONFIG=$ac_cv_path_ICU_CONFIG
-
-if test -n "$ICU_CONFIG"; then
- echo "$as_me:$LINENO: result: $ICU_CONFIG" >&5
-echo "${ECHO_T}$ICU_CONFIG" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+ found=yes
else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+ found=no
fi
+fi
-if test "x$ICU_CONFIG" = xno; then
- ICU_CFLAGS=""
- ICU_LIBS=""
-
- { echo "$as_me:$LINENO: ICU not found: forcing --disable-gmail-timestamps" >&5
-echo "$as_me: ICU not found: forcing --disable-gmail-timestamps" >&6;}
-enable_gmail_timestamps=no
-disable_gmail_timestamps_reason="(ICU not found)"
+if test $found = yes; then
+ as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/em-folder-tree.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/em-folder-tree.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/em-folder-tree.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- ICU_CFLAGS=`$ICU_CONFIG --cppflags`
- ICU_LIBS=`$ICU_CONFIG --ldflags`
-
- # the version checking API we need has been introduced in 2.4
- icu_min_version=2.6
-
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $ICU_CFLAGS"
- LIBS="$LIBS $ICU_LIBS"
+ test "$cross_compiling" = yes &&
+ { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/em-folder-tree.h"; then
+ eval "$as_ac_File=yes"
+else
+ eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+ found=yes
+else
+ found=no
+fi
- echo "$as_me:$LINENO: checking for ICU - version >= $icu_min_version" >&5
-echo $ECHO_N "checking for ICU - version >= $icu_min_version... $ECHO_C" >&6
+fi
- if test "$cross_compiling" = yes; then
+if test $found = yes; then
+ as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/mail-component.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/mail-component.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/mail-component.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ test "$cross_compiling" = yes &&
+ { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/mail-component.h"; then
+ eval "$as_ac_File=yes"
+else
+ eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
found=yes
else
- cat >conftest.$ac_ext <<_ACEOF
+ found=no
+fi
-#include <string.h>
-#include <unicode/uversion.h>
+fi
-int main() {
- UVersionInfo min_version;
- UVersionInfo version;
+if test $found = yes; then
+ as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/mail-tools.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/mail-tools.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/mail-tools.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ test "$cross_compiling" = yes &&
+ { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/mail-tools.h"; then
+ eval "$as_ac_File=yes"
+else
+ eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+ found=yes
+else
+ found=no
+fi
- u_versionFromString(min_version, "$icu_min_version");
- u_getVersion(version);
+fi
- if (memcmp(min_version, version, U_MAX_VERSION_LENGTH) > 0)
- exit(1); /* version too old */
+ fi
+fi
- exit(0);
-}
+if test $found = yes; then
+ evolution_plugin_min_version=
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+pkg_failed=no
+echo "$as_me:$LINENO: checking for EVOLUTION_PLUGIN_CFLAGS" >&5
+echo $ECHO_N "checking for EVOLUTION_PLUGIN_CFLAGS... $ECHO_C" >&6
+if test "${pkg_cv_EVOLUTION_PLUGIN_CFLAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "x$ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_set" = "xset"; then
+ pkg_cv_EVOLUTION_PLUGIN_CFLAGS=$ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_value
+elif test -n "$PKG_CONFIG"; then
+ if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"evolution-plugin-2.2 \$evolution_plugin_min_version\" >/dev/null 2>&1") >&5
+ ($PKG_CONFIG --exists "evolution-plugin-2.2 $evolution_plugin_min_version" >/dev/null 2>&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
+ (exit $ac_status); }; then
+ pkg_cv_EVOLUTION_PLUGIN_CFLAGS=`$PKG_CONFIG --cflags "evolution-plugin-2.2 $evolution_plugin_min_version" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+else
+ pkg_failed=untried
+fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_EVOLUTION_PLUGIN_CFLAGS" >&5
+echo "${ECHO_T}$pkg_cv_EVOLUTION_PLUGIN_CFLAGS" >&6
+echo "$as_me:$LINENO: checking for EVOLUTION_PLUGIN_LIBS" >&5
+echo $ECHO_N "checking for EVOLUTION_PLUGIN_LIBS... $ECHO_C" >&6
+if test "${pkg_cv_EVOLUTION_PLUGIN_LIBS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "x$ac_cv_env_EVOLUTION_PLUGIN_LIBS_set" = "xset"; then
+ pkg_cv_EVOLUTION_PLUGIN_LIBS=$ac_cv_env_EVOLUTION_PLUGIN_LIBS_value
+elif test -n "$PKG_CONFIG"; then
+ if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"evolution-plugin-2.2 \$evolution_plugin_min_version\" >/dev/null 2>&1") >&5
+ ($PKG_CONFIG --exists "evolution-plugin-2.2 $evolution_plugin_min_version" >/dev/null 2>&1) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- found=yes
+ (exit $ac_status); }; then
+ pkg_cv_EVOLUTION_PLUGIN_LIBS=`$PKG_CONFIG --libs "evolution-plugin-2.2 $evolution_plugin_min_version" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-found=no
+ pkg_failed=untried
fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
+echo "$as_me:$LINENO: result: $pkg_cv_EVOLUTION_PLUGIN_LIBS" >&5
+echo "${ECHO_T}$pkg_cv_EVOLUTION_PLUGIN_LIBS" >&6
- echo "$as_me:$LINENO: result: $found" >&5
-echo "${ECHO_T}$found" >&6
+if test $pkg_failed = yes; then
+ EVOLUTION_PLUGIN_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evolution-plugin-2.2 $evolution_plugin_min_version"`
+ # Put the nasty error message in config.log where it belongs
+ echo "$EVOLUTION_PLUGIN_PKG_ERRORS" 1>&5
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
+ found=no
+elif test $pkg_failed = untried; then
+ found=no
+else
+ EVOLUTION_PLUGIN_CFLAGS=$pkg_cv_EVOLUTION_PLUGIN_CFLAGS
+ EVOLUTION_PLUGIN_LIBS=$pkg_cv_EVOLUTION_PLUGIN_LIBS
+ :
+fi
+fi
- if test $found = yes; then
- :
+if test $found = yes; then
+ echo "$as_me:$LINENO: checking for the Evolution plugin directory" >&5
+echo $ECHO_N "checking for the Evolution plugin directory... $ECHO_C" >&6
+ evolution_plugindir=`$PKG_CONFIG --variable=plugindir evolution-plugin-2.2 2>/dev/null`
+ if test -n "$evolution_plugindir"; then
+ echo "$as_me:$LINENO: result: $evolution_plugindir" >&5
+echo "${ECHO_T}$evolution_plugindir" >&6
else
- ICU_CFLAGS=""
- ICU_LIBS=""
-
- { echo "$as_me:$LINENO: ICU not found: forcing --disable-gmail-timestamps" >&5
-echo "$as_me: ICU not found: forcing --disable-gmail-timestamps" >&6;}
-enable_gmail_timestamps=no
-disable_gmail_timestamps_reason="(ICU not found)"
+ echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+ found=no
fi
fi
+if test $found = yes; then
+ EVOLUTION_PLUGIN_CFLAGS="$EVOLUTION_PLUGIN_CFLAGS -I$evolution_source_dir"
+ :
+else
+ evolution_plugindir=""
+ { echo "$as_me:$LINENO: Evolution not found: forcing --disable-evolution" >&5
+echo "$as_me: Evolution not found: forcing --disable-evolution" >&6;}
+enable_evolution=no
+disable_evolution_reason="(Evolution not found)"
+fi
- else
- { echo "$as_me:$LINENO: Gmail support disabled: forcing --disable-gmail-timestamps" >&5
-echo "$as_me: Gmail support disabled: forcing --disable-gmail-timestamps" >&6;}
-enable_gmail_timestamps=no
-disable_gmail_timestamps_reason="(Gmail support disabled)"
- fi
fi
### Automake conditionals
@@ -7918,6 +24940,26 @@ fi
+if test $enable_mbox = yes || test $enable_mh = yes || test $enable_maildir = yes || test $enable_sylpheed = yes; then
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE=
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE='#'
+else
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE='#'
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE=
+fi
+
+
+
+if test $enable_mbox = yes || test $enable_mh = yes || test $enable_maildir = yes || test $enable_sylpheed = yes || test $enable_evolution = yes; then
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE=
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE='#'
+else
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE='#'
+ WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE=
+fi
+
+
+
if test $enable_ssl = yes; then
WITH_SSL_TRUE=
WITH_SSL_FALSE='#'
@@ -7938,16 +24980,6 @@ fi
-if test $enable_sylpheed = yes; then
- WITH_SYLPHEED_TRUE=
- WITH_SYLPHEED_FALSE='#'
-else
- WITH_SYLPHEED_TRUE='#'
- WITH_SYLPHEED_FALSE=
-fi
-
-
-
if test $enable_gmail = yes; then
WITH_GMAIL_TRUE=
WITH_GMAIL_FALSE='#'
@@ -7958,12 +24990,22 @@ fi
-if test $enable_gmail_timestamps = yes; then
- WITH_GMAIL_TIMESTAMPS_TRUE=
- WITH_GMAIL_TIMESTAMPS_FALSE='#'
+if test $enable_evolution = yes; then
+ WITH_EVOLUTION_TRUE=
+ WITH_EVOLUTION_FALSE='#'
else
- WITH_GMAIL_TIMESTAMPS_TRUE='#'
- WITH_GMAIL_TIMESTAMPS_FALSE=
+ WITH_EVOLUTION_TRUE='#'
+ WITH_EVOLUTION_FALSE=
+fi
+
+
+
+if test $enable_sylpheed = yes; then
+ WITH_SYLPHEED_TRUE=
+ WITH_SYLPHEED_FALSE='#'
+else
+ WITH_SYLPHEED_TRUE='#'
+ WITH_SYLPHEED_FALSE=
fi
@@ -8038,10 +25080,10 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF
fi
-if test $enable_sylpheed = yes; then
+if test $enable_ipv6 = yes; then
cat >>confdefs.h <<\_ACEOF
-#define WITH_SYLPHEED 1
+#define WITH_IPV6 1
_ACEOF
fi
@@ -8052,17 +25094,17 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF
fi
-if test $enable_gmail_timestamps = yes; then
+if test $enable_evolution = yes; then
cat >>confdefs.h <<\_ACEOF
-#define WITH_GMAIL_TIMESTAMPS 1
+#define WITH_EVOLUTION 1
_ACEOF
fi
-if test $enable_ipv6 = yes; then
+if test $enable_sylpheed = yes; then
cat >>confdefs.h <<\_ACEOF
-#define WITH_IPV6 1
+#define WITH_SYLPHEED 1
_ACEOF
fi
@@ -8191,13 +25233,18 @@ echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
-
- mv -f po/POTFILES po/POTFILES.tmp
- sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
+ mv -f po/POTFILES po/POTFILES.tmp
+ sed -e '/[[]encoding.*]/d' -e 's/[[].*] *//' < po/POTFILES.tmp > po/POTFILES
rm -f po/POTFILES.tmp
-
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -8261,6 +25308,20 @@ echo "$as_me: error: conditional \"WITH_POP3_OR_IMAP_OR_GMAIL\" was never define
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE}" && test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE}" && test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${WITH_SSL_TRUE}" && test -z "${WITH_SSL_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"WITH_SSL\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -8275,24 +25336,24 @@ echo "$as_me: error: conditional \"WITH_SASL\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${WITH_SYLPHEED_TRUE}" && test -z "${WITH_SYLPHEED_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"WITH_SYLPHEED\" was never defined.
+if test -z "${WITH_GMAIL_TRUE}" && test -z "${WITH_GMAIL_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"WITH_GMAIL\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"WITH_SYLPHEED\" was never defined.
+echo "$as_me: error: conditional \"WITH_GMAIL\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${WITH_GMAIL_TRUE}" && test -z "${WITH_GMAIL_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"WITH_GMAIL\" was never defined.
+if test -z "${WITH_EVOLUTION_TRUE}" && test -z "${WITH_EVOLUTION_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"WITH_EVOLUTION\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"WITH_GMAIL\" was never defined.
+echo "$as_me: error: conditional \"WITH_EVOLUTION\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${WITH_GMAIL_TIMESTAMPS_TRUE}" && test -z "${WITH_GMAIL_TIMESTAMPS_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"WITH_GMAIL_TIMESTAMPS\" was never defined.
+if test -z "${WITH_SYLPHEED_TRUE}" && test -z "${WITH_SYLPHEED_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"WITH_SYLPHEED\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"WITH_GMAIL_TIMESTAMPS\" was never defined.
+echo "$as_me: error: conditional \"WITH_SYLPHEED\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -8581,7 +25642,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by mail-notification $as_me 1.1, which was
+This file was extended by Mail Notification $as_me 2.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8644,7 +25705,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-mail-notification config.status 1.1
+Mail Notification config.status 2.0
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -8746,8 +25807,9 @@ cat >>$CONFIG_STATUS <<_ACEOF
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
-INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${ICONV}'
-MSGFMT='${MSGFMT}' MSGMERGE='${MSGMERGE}' XGETTEXT='${XGETTEXT}'
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${INTLTOOL_ICONV}'
+MSGFMT='${INTLTOOL_MSGFMT}' MSGMERGE='${INTLTOOL_MSGMERGE}'
+XGETTEXT='${INTLTOOL_XGETTEXT}'
_ACEOF
@@ -8857,7 +25919,20 @@ s,@ECHO_C@,$ECHO_C,;t t
s,@ECHO_N@,$ECHO_N,;t t
s,@ECHO_T@,$ECHO_T,;t t
s,@LIBS@,$LIBS,;t t
+s,@ac_prefix_program@,$ac_prefix_program,;t t
s,@WARN_CFLAGS@,$WARN_CFLAGS,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@target@,$target,;t t
+s,@target_cpu@,$target_cpu,;t t
+s,@target_vendor@,$target_vendor,;t t
+s,@target_os@,$target_os,;t t
s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s,@INSTALL_DATA@,$INSTALL_DATA,;t t
@@ -8883,7 +25958,6 @@ s,@am__untar@,$am__untar,;t t
s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
s,@MAINT@,$MAINT,;t t
-s,@GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t
s,@CC@,$CC,;t t
s,@CFLAGS@,$CFLAGS,;t t
s,@LDFLAGS@,$LDFLAGS,;t t
@@ -8900,8 +25974,26 @@ s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
s,@CCDEPMODE@,$CCDEPMODE,;t t
s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@CPP@,$CPP,;t t
s,@EGREP@,$EGREP,;t t
+s,@LN_S@,$LN_S,;t t
+s,@ECHO@,$ECHO,;t t
+s,@AR@,$AR,;t t
+s,@ac_ct_AR@,$ac_ct_AR,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@CPP@,$CPP,;t t
+s,@CXX@,$CXX,;t t
+s,@CXXFLAGS@,$CXXFLAGS,;t t
+s,@ac_ct_CXX@,$ac_ct_CXX,;t t
+s,@CXXDEPMODE@,$CXXDEPMODE,;t t
+s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t
+s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t
+s,@CXXCPP@,$CXXCPP,;t t
+s,@F77@,$F77,;t t
+s,@FFLAGS@,$FFLAGS,;t t
+s,@ac_ct_F77@,$ac_ct_F77,;t t
+s,@LIBTOOL@,$LIBTOOL,;t t
+s,@GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t
s,@USE_NLS@,$USE_NLS,;t t
s,@MSGFMT@,$MSGFMT,;t t
s,@GMSGFMT@,$GMSGFMT,;t t
@@ -8938,17 +26030,22 @@ s,@INTLTOOL_EXTRACT@,$INTLTOOL_EXTRACT,;t t
s,@INTLTOOL_MERGE@,$INTLTOOL_MERGE,;t t
s,@INTLTOOL_UPDATE@,$INTLTOOL_UPDATE,;t t
s,@INTLTOOL_PERL@,$INTLTOOL_PERL,;t t
-s,@ICONV@,$ICONV,;t t
-s,@MSGMERGE@,$MSGMERGE,;t t
+s,@INTLTOOL_ICONV@,$INTLTOOL_ICONV,;t t
+s,@INTLTOOL_MSGFMT@,$INTLTOOL_MSGFMT,;t t
+s,@INTLTOOL_MSGMERGE@,$INTLTOOL_MSGMERGE,;t t
+s,@INTLTOOL_XGETTEXT@,$INTLTOOL_XGETTEXT,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t
s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t
s,@GTK_LIBS@,$GTK_LIBS,;t t
+s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
s,@GNOME_CFLAGS@,$GNOME_CFLAGS,;t t
s,@GNOME_LIBS@,$GNOME_LIBS,;t t
s,@GCONF_SCHEMA_CONFIG_SOURCE@,$GCONF_SCHEMA_CONFIG_SOURCE,;t t
s,@GCONF_SCHEMA_FILE_DIR@,$GCONF_SCHEMA_FILE_DIR,;t t
s,@GCONF_SCHEMAS_INSTALL_TRUE@,$GCONF_SCHEMAS_INSTALL_TRUE,;t t
s,@GCONF_SCHEMAS_INSTALL_FALSE@,$GCONF_SCHEMAS_INSTALL_FALSE,;t t
+s,@gnome_prefix@,$gnome_prefix,;t t
+s,@gnome_cappletdir@,$gnome_cappletdir,;t t
s,@GCONFTOOL@,$GCONFTOOL,;t t
s,@ORBIT_IDL@,$ORBIT_IDL,;t t
s,@LIBBONOBO_IDL@,$LIBBONOBO_IDL,;t t
@@ -8961,11 +26058,9 @@ s,@OPENSSL_CFLAGS@,$OPENSSL_CFLAGS,;t t
s,@OPENSSL_LIBS@,$OPENSSL_LIBS,;t t
s,@SASL_CFLAGS@,$SASL_CFLAGS,;t t
s,@SASL_LIBS@,$SASL_LIBS,;t t
-s,@SOUP_CFLAGS@,$SOUP_CFLAGS,;t t
-s,@SOUP_LIBS@,$SOUP_LIBS,;t t
-s,@ICU_CONFIG@,$ICU_CONFIG,;t t
-s,@ICU_CFLAGS@,$ICU_CFLAGS,;t t
-s,@ICU_LIBS@,$ICU_LIBS,;t t
+s,@EVOLUTION_PLUGIN_CFLAGS@,$EVOLUTION_PLUGIN_CFLAGS,;t t
+s,@EVOLUTION_PLUGIN_LIBS@,$EVOLUTION_PLUGIN_LIBS,;t t
+s,@evolution_plugindir@,$evolution_plugindir,;t t
s,@WITH_MBOX_TRUE@,$WITH_MBOX_TRUE,;t t
s,@WITH_MBOX_FALSE@,$WITH_MBOX_FALSE,;t t
s,@WITH_MH_TRUE@,$WITH_MH_TRUE,;t t
@@ -8980,16 +26075,20 @@ s,@WITH_POP3_OR_IMAP_TRUE@,$WITH_POP3_OR_IMAP_TRUE,;t t
s,@WITH_POP3_OR_IMAP_FALSE@,$WITH_POP3_OR_IMAP_FALSE,;t t
s,@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@,$WITH_POP3_OR_IMAP_OR_GMAIL_TRUE,;t t
s,@WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@,$WITH_POP3_OR_IMAP_OR_GMAIL_FALSE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE,;t t
s,@WITH_SSL_TRUE@,$WITH_SSL_TRUE,;t t
s,@WITH_SSL_FALSE@,$WITH_SSL_FALSE,;t t
s,@WITH_SASL_TRUE@,$WITH_SASL_TRUE,;t t
s,@WITH_SASL_FALSE@,$WITH_SASL_FALSE,;t t
-s,@WITH_SYLPHEED_TRUE@,$WITH_SYLPHEED_TRUE,;t t
-s,@WITH_SYLPHEED_FALSE@,$WITH_SYLPHEED_FALSE,;t t
s,@WITH_GMAIL_TRUE@,$WITH_GMAIL_TRUE,;t t
s,@WITH_GMAIL_FALSE@,$WITH_GMAIL_FALSE,;t t
-s,@WITH_GMAIL_TIMESTAMPS_TRUE@,$WITH_GMAIL_TIMESTAMPS_TRUE,;t t
-s,@WITH_GMAIL_TIMESTAMPS_FALSE@,$WITH_GMAIL_TIMESTAMPS_FALSE,;t t
+s,@WITH_EVOLUTION_TRUE@,$WITH_EVOLUTION_TRUE,;t t
+s,@WITH_EVOLUTION_FALSE@,$WITH_EVOLUTION_FALSE,;t t
+s,@WITH_SYLPHEED_TRUE@,$WITH_SYLPHEED_TRUE,;t t
+s,@WITH_SYLPHEED_FALSE@,$WITH_SYLPHEED_FALSE,;t t
s,@WITH_MIME_TRUE@,$WITH_MIME_TRUE,;t t
s,@WITH_MIME_FALSE@,$WITH_MIME_FALSE,;t t
s,@WITH_REGRESSION_TESTS_TRUE@,$WITH_REGRESSION_TESTS_TRUE,;t t
@@ -9683,12 +26782,12 @@ done
esac ;;
intltool )
-intltool_edit="-e 's:@INTLTOOL_EXTRACT@:`pwd`/intltool-extract:g' \
- -e 's:@INTLTOOL_ICONV@:${ICONV}:g' \
- -e 's:@INTLTOOL_MSGFMT@:${MSGFMT}:g' \
- -e 's:@INTLTOOL_MSGMERGE@:${MSGMERGE}:g' \
- -e 's:@INTLTOOL_XGETTEXT@:${XGETTEXT}:g' \
- -e 's:@INTLTOOL_PERL@:${INTLTOOL_PERL}:g'"
+intltool_edit="-e 's#@INTLTOOL_EXTRACT@#`pwd`/intltool-extract#g' \
+ -e 's#@INTLTOOL_ICONV@#${INTLTOOL_ICONV}#g' \
+ -e 's#@INTLTOOL_MSGFMT@#${INTLTOOL_MSGFMT}#g' \
+ -e 's#@INTLTOOL_MSGMERGE@#${INTLTOOL_MSGMERGE}#g' \
+ -e 's#@INTLTOOL_XGETTEXT@#${INTLTOOL_XGETTEXT}#g' \
+ -e 's#@INTLTOOL_PERL@#${INTLTOOL_PERL}#g'"
eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
> intltool-extract.out
@@ -9759,7 +26858,7 @@ fi
cat <<EOF
-$PACKAGE $VERSION is ready to be built.
+$PACKAGE_NAME $VERSION is ready to be built.
The following settings will be used:
Installation prefixes
@@ -9772,18 +26871,35 @@ Installation directories
--sysconfdir $sysconfdir
--libdir $libdir
-Features
+Mailbox backends
--enable-mbox $enable_mbox $disable_mbox_reason
--enable-mh $enable_mh $disable_mh_reason
--enable-maildir $enable_maildir $disable_maildir_reason
--enable-pop3 $enable_pop3 $disable_pop3_reason
--enable-imap $enable_imap $disable_imap_reason
+ --enable-gmail $enable_gmail $disable_gmail_reason
+ --enable-evolution $enable_evolution $disable_evolution_reason
+ --enable-sylpheed $enable_sylpheed $disable_sylpheed_reason
+
+POP3 and IMAP features
--enable-ssl $enable_ssl $disable_ssl_reason
--enable-sasl $enable_sasl $disable_sasl_reason
- --enable-sylpheed $enable_sylpheed $disable_sylpheed_reason
- --enable-gmail $enable_gmail $disable_gmail_reason
- --enable-gmail-timestamps $enable_gmail_timestamps $disable_gmail_timestamps_reason
--enable-ipv6 $enable_ipv6 $disable_ipv6_reason
-Type "make" to build $PACKAGE $VERSION.
+EOF
+
+if test -z "$gnome_prefix"; then
+ { echo "$as_me:$LINENO: WARNING: $PACKAGE_NAME must be installed in the same prefix as GNOME, but the GNOME prefix could not be found. $PACKAGE_NAME might be inoperable." >&5
+echo "$as_me: WARNING: $PACKAGE_NAME must be installed in the same prefix as GNOME, but the GNOME prefix could not be found. $PACKAGE_NAME might be inoperable." >&2;}
+ echo "" >&2
+else
+ if test "x$prefix" != "x$gnome_prefix"; then
+ { echo "$as_me:$LINENO: WARNING: the $PACKAGE_NAME prefix ($prefix) is different from the GNOME prefix ($gnome_prefix). $PACKAGE_NAME will be inoperable. Unless you know what you are doing, please run \"./configure --prefix=$gnome_prefix\"." >&5
+echo "$as_me: WARNING: the $PACKAGE_NAME prefix ($prefix) is different from the GNOME prefix ($gnome_prefix). $PACKAGE_NAME will be inoperable. Unless you know what you are doing, please run \"./configure --prefix=$gnome_prefix\"." >&2;}
+ echo "" >&2
+ fi
+fi
+
+cat <<EOF
+Type "make" to build $PACKAGE_NAME $VERSION.
EOF
diff --git a/configure.ac b/configure.ac
@@ -1,8 +1,11 @@
-AC_INIT(mail-notification, 1.1, jylefort@brutele.be)
+AC_INIT([Mail Notification], 2.0, jylefort@brutele.be)
AC_CONFIG_SRCDIR(src/mn-main.c)
AC_PREREQ(2.59)
+# by default, install in the same prefix as GNOME
+AC_PREFIX_PROGRAM(gnome-open)
+
### command line arguments
MN_ARG_ENABLE(mbox, [disable mbox support])
@@ -12,23 +15,27 @@ MN_ARG_ENABLE(pop3, [disable POP3 support])
MN_ARG_ENABLE(imap, [disable IMAP support])
MN_ARG_ENABLE(ssl, [disable SSL/TLS support])
MN_ARG_ENABLE(sasl, [disable SASL authentication support])
-MN_ARG_ENABLE(sylpheed, [disable Sylpheed support])
-MN_ARG_ENABLE(gmail, [disable Gmail support])
-MN_ARG_ENABLE(gmail-timestamps, [disable Gmail timestamps support])
MN_ARG_ENABLE(ipv6, [disable IPv6 support])
+MN_ARG_ENABLE(gmail, [disable Gmail support])
+MN_ARG_ENABLE(evolution, [disable Evolution support])
+MN_ARG_ENABLE(sylpheed, [disable Sylpheed support])
MN_ARG_COMPILE_WARNINGS
MN_ARG_ENABLE(regression-tests, [build and run regression tests], no)
### initialization
+# needed by AC_REENTRANT_RESOLVER
+AC_CANONICAL_TARGET
+
AM_INIT_AUTOMAKE(foreign)
AM_MAINTAINER_MODE
AM_CONFIG_HEADER(config.h)
+AC_PROG_LIBTOOL
### i18n
-GETTEXT_PACKAGE=AC_PACKAGE_NAME
+GETTEXT_PACKAGE=AC_PACKAGE_TARNAME
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Define to the gettext package name])
AC_SUBST(GETTEXT_PACKAGE)
@@ -48,13 +55,24 @@ if test $ac_cv_header_stdc != yes; then
AC_MSG_ERROR([ANSI C headers not present])
fi
+AC_REENTRANT_RESOLVER
+
+# timegm() is non-standard, define HAVE_TIMEGM if it is present
+AC_CHECK_FUNCS(timegm)
+
+# see if "struct tm" is defined in sys/time.h
+AC_STRUCT_TM
+
### mandatory libraries and programs
-AM_PATH_GTK_2_0(2.4.0,, [AC_MSG_ERROR([unable to find the GTK+ library])])
+AM_PATH_GTK_2_0(2.6.0,, [AC_MSG_ERROR([unable to find the GTK+ library])])
-PKG_CHECK_MODULES(GNOME, [gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0],, [AC_MSG_ERROR([unable to find the GNOME libraries])])
+PKG_CHECK_MODULES(GNOME, [gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0],, [AC_MSG_ERROR([unable to find the GNOME libraries])])
AM_GCONF_SOURCE_2
+AM_PATH_GNOME_PREFIX
+AM_PATH_GNOME_CAPPLETDIR
+
AC_PATH_PROG(GCONFTOOL, gconftool-2)
if test -z "$GCONFTOOL"; then
AC_MSG_ERROR([unable to find the gconftool-2 program])
@@ -124,15 +142,8 @@ if MN_FEATURE_ENABLED(sasl); then
AM_PATH_SASL2(,, [MN_FEATURE_DISABLE(sasl, [Cyrus SASL not found])])
fi
-if MN_FEATURE_ENABLED(gmail); then
- PKG_CHECK_MODULES(SOUP, libsoup-2.2,, [MN_FEATURE_DISABLE(gmail, [libsoup not found])])
-fi
-if MN_FEATURE_ENABLED(gmail-timestamps); then
- if MN_FEATURE_ENABLED(gmail); then
- AM_PATH_ICU(2.6,, [MN_FEATURE_DISABLE(gmail-timestamps, [ICU not found])])
- else
- MN_FEATURE_DISABLE(gmail-timestamps, [Gmail support disabled])
- fi
+if MN_FEATURE_ENABLED(evolution); then
+ AM_PATH_EVOLUTION_PLUGIN(, [mail/em-event.h, mail/em-folder-tree.h, mail/mail-component.h, mail/mail-tools.h],, [MN_FEATURE_DISABLE(evolution, [Evolution not found])])
fi
### Automake conditionals
@@ -144,17 +155,19 @@ AM_CONDITIONAL(WITH_POP3, [MN_FEATURE_ENABLED(pop3)])
AM_CONDITIONAL(WITH_IMAP, [MN_FEATURE_ENABLED(imap)])
AM_CONDITIONAL(WITH_POP3_OR_IMAP, [MN_FEATURE_ENABLED(pop3) || MN_FEATURE_ENABLED(imap)])
AM_CONDITIONAL(WITH_POP3_OR_IMAP_OR_GMAIL, [MN_FEATURE_ENABLED(pop3) || MN_FEATURE_ENABLED(imap) || MN_FEATURE_ENABLED(gmail)])
+AM_CONDITIONAL(WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED, [MN_FEATURE_ENABLED(mbox) || MN_FEATURE_ENABLED(mh) || MN_FEATURE_ENABLED(maildir) || MN_FEATURE_ENABLED(sylpheed)])
+AM_CONDITIONAL(WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION, [MN_FEATURE_ENABLED(mbox) || MN_FEATURE_ENABLED(mh) || MN_FEATURE_ENABLED(maildir) || MN_FEATURE_ENABLED(sylpheed) || MN_FEATURE_ENABLED(evolution)])
AM_CONDITIONAL(WITH_SSL, [MN_FEATURE_ENABLED(ssl)])
AM_CONDITIONAL(WITH_SASL, [MN_FEATURE_ENABLED(sasl)])
-AM_CONDITIONAL(WITH_SYLPHEED, [MN_FEATURE_ENABLED(sylpheed)])
AM_CONDITIONAL(WITH_GMAIL, [MN_FEATURE_ENABLED(gmail)])
-AM_CONDITIONAL(WITH_GMAIL_TIMESTAMPS, [MN_FEATURE_ENABLED(gmail-timestamps)])
+AM_CONDITIONAL(WITH_EVOLUTION, [MN_FEATURE_ENABLED(evolution)])
+AM_CONDITIONAL(WITH_SYLPHEED, [MN_FEATURE_ENABLED(sylpheed)])
AM_CONDITIONAL(WITH_MIME, [MN_FEATURE_ENABLED(mime)])
AM_CONDITIONAL(WITH_REGRESSION_TESTS, [MN_FEATURE_ENABLED(regression-tests)])
### config.h definitions
-MN_FEATURES_DEFINE([mbox, mh, maildir, pop3, imap, ssl, sasl, sylpheed, gmail, gmail-timestamps, ipv6, mime])
+MN_FEATURES_DEFINE([mbox, mh, maildir, pop3, imap, ssl, sasl, ipv6, gmail, evolution, sylpheed, mime])
### output
@@ -174,14 +187,29 @@ AC_OUTPUT
cat <<EOF
-$PACKAGE $VERSION is ready to be built.
+$PACKAGE_NAME $VERSION is ready to be built.
The following settings will be used:
Installation prefixes
MN_REPORT_ARGS([prefix, exec-prefix])
Installation directories
MN_REPORT_ARGS([bindir, datadir, sysconfdir, libdir])
-Features
-MN_REPORT_FEATURES([mbox, mh, maildir, pop3, imap, ssl, sasl, sylpheed, gmail, gmail-timestamps, ipv6])
-Type "make" to build $PACKAGE $VERSION.
+Mailbox backends
+MN_REPORT_FEATURES([mbox, mh, maildir, pop3, imap, gmail, evolution, sylpheed])
+POP3 and IMAP features
+MN_REPORT_FEATURES([ssl, sasl, ipv6])
+EOF
+
+if test -z "$gnome_prefix"; then
+ AC_MSG_WARN([$PACKAGE_NAME must be installed in the same prefix as GNOME, but the GNOME prefix could not be found. $PACKAGE_NAME might be inoperable.])
+ echo "" >&2
+else
+ if test "x$prefix" != "x$gnome_prefix"; then
+ AC_MSG_WARN([the $PACKAGE_NAME prefix ($prefix) is different from the GNOME prefix ($gnome_prefix). $PACKAGE_NAME will be inoperable. Unless you know what you are doing, please run "./configure --prefix=$gnome_prefix".])
+ echo "" >&2
+ fi
+fi
+
+cat <<EOF
+Type "make" to build $PACKAGE_NAME $VERSION.
EOF
diff --git a/data/GNOME_MailNotification.server.in.in b/data/GNOME_MailNotification.server.in.in
@@ -0,0 +1,18 @@
+<oaf_info>
+ <oaf_server iid="OAFIID:GNOME_MailNotification_Automation_Factory" type="exe" location="@bindir@/mail-notification">
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/GenericFactory:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Mail Notification automation factory"/>
+ <oaf_attribute name="description" type="string" _value="Mail Notification automation factory"/>
+ </oaf_server>
+
+ <oaf_server iid="OAFIID:GNOME_MailNotification_Automation" type="factory" location="OAFIID:GNOME_MailNotification_Automation_Factory">
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Unknown:1.0"/>
+ <item value="IDL:GNOME/MailNotification/Automation:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Mail Notification automation"/>
+ <oaf_attribute name="description" type="string" _value="Mail Notification automation"/>
+ </oaf_server>
+</oaf_info>
diff --git a/data/GNOME_MailNotification_Automation.server.in.in b/data/GNOME_MailNotification_Automation.server.in.in
@@ -1,18 +0,0 @@
-<oaf_info>
- <oaf_server iid="OAFIID:GNOME_MailNotification_Automation_Factory" type="exe" location="@bindir@/mail-notification">
- <oaf_attribute name="repo_ids" type="stringv">
- <item value="IDL:GNOME/ObjectFactory:1.0"/>
- </oaf_attribute>
- <oaf_attribute name="name" type="string" _value="Mail Notification automation"/>
- <oaf_attribute name="description" type="string" _value="Mail Notification automation factory"/>
- </oaf_server>
-
- <oaf_server iid="OAFIID:GNOME_MailNotification_Automation" type="factory" location="OAFIID:GNOME_MailNotification_Automation_Factory">
- <oaf_attribute name="repo_ids" type="stringv">
- <item value="IDL:Bonobo/Unknown:1.0"/>
- <item value="IDL:GNOME/MailNotificationAutomation:1.0"/>
- </oaf_attribute>
- <oaf_attribute name="name" type="string" _value="Mail Notification automation"/>
- <oaf_attribute name="description" type="string" _value="Mail Notification automation"/>
- </oaf_server>
-</oaf_info>
diff --git a/data/GNOME_MailNotification_Evolution.server.in b/data/GNOME_MailNotification_Evolution.server.in
@@ -0,0 +1,36 @@
+<oaf_info>
+ <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_Glue_Factory" type="exe" location="">
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/GenericFactory:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Mail Notification / Evolution glue factory"/>
+ <oaf_attribute name="description" type="string" _value="Mail Notification / Evolution glue factory"/>
+ </oaf_server>
+
+ <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_Glue" type="factory" location="OAFIID:GNOME_MailNotification_Evolution_Glue_Factory">
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Unknown:1.0"/>
+ <item value="IDL:Bonobo/EventSource:1.0"/>
+ <item value="IDL:GNOME/MailNotification/Evolution/Glue:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Mail Notification / Evolution glue"/>
+ <oaf_attribute name="description" type="string" _value="Mail Notification / Evolution glue"/>
+ </oaf_server>
+
+ <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control_Factory" type="exe" location="">
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/GenericFactory:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Evolution folder tree control factory"/>
+ <oaf_attribute name="description" type="string" _value="Evolution folder tree control factory"/>
+ </oaf_server>
+
+ <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control" type="factory" location="OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control_Factory">
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Unknown:1.0"/>
+ <item value="IDL:Bonobo/Control:1.0"/>
+ </oaf_attribute>
+ <oaf_attribute name="name" type="string" _value="Evolution folder tree control"/>
+ <oaf_attribute name="description" type="string" _value="Evolution folder tree control"/>
+ </oaf_server>
+</oaf_info>
diff --git a/data/Makefile.am b/data/Makefile.am
@@ -1,14 +1,19 @@
+if WITH_EVOLUTION
+evolution_server_in = GNOME_MailNotification_Evolution.server.in
+evolution_server = GNOME_MailNotification_Evolution.server
+endif
+
applicationsdir = $(datadir)/applications
applications_in_files = mail-notification.desktop.in
applications_DATA = mail-notification.desktop
-settingsdir = $(datadir)/control-center-2.0/capplets
-settings_in_files = mail-notification-properties.desktop.in
-settings_DATA = mail-notification-properties.desktop
+# gnome_cappletdir is defined by configure
+gnome_capplet_in_files = mail-notification-properties.desktop.in
+gnome_capplet_DATA = mail-notification-properties.desktop
serverdir = $(libdir)/bonobo/servers
-server_in_files = GNOME_MailNotification_Automation.server.in
-server_DATA = GNOME_MailNotification_Automation.server
+server_in_files = $(evolution_server_in) GNOME_MailNotification.server.in
+server_DATA = $(evolution_server) GNOME_MailNotification.server
schemasdir = $(GCONF_SCHEMA_FILE_DIR)
schemas_in_files = mail-notification.schemas.in
@@ -31,19 +36,21 @@ install-schemas:
endif
EXTRA_DIST = \
- mail-notification.desktop.in \
+ GNOME_MailNotification.server.in.in \
+ GNOME_MailNotification_Evolution.server.in \
mail-notification-properties.desktop.in \
- GNOME_MailNotification_Automation.server.in.in \
+ mail-notification.desktop.in \
mail-notification.schemas.in \
mail-notification.soundlist.in
CLEANFILES = \
- mail-notification.desktop \
- mail-notification-properties.desktop \
- GNOME_MailNotification_Automation.server \
- GNOME_MailNotification_Automation.server.in \
- mail-notification.schemas \
+ $(evolution_server) \
+ GNOME_MailNotification.server \
+ GNOME_MailNotification.server.in \
+ mail-notification-properties.desktop \
+ mail-notification.desktop \
+ mail-notification.schemas \
mail-notification.soundlist
-GNOME_MailNotification_Automation.server.in: GNOME_MailNotification_Automation.server.in.in
- sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification_Automation.server.in.in > GNOME_MailNotification_Automation.server.in
+GNOME_MailNotification.server.in: GNOME_MailNotification.server.in.in
+ sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification.server.in.in > GNOME_MailNotification.server.in
diff --git a/data/Makefile.in b/data/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -34,12 +34,18 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
subdir = data
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -54,20 +60,21 @@ am__vpath_adj = case $$p in \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(applicationsdir)" \
- "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" \
- "$(DESTDIR)$(settingsdir)" "$(DESTDIR)$(soundlistdir)"
+ "$(DESTDIR)$(gnome_cappletdir)" "$(DESTDIR)$(schemasdir)" \
+ "$(DESTDIR)$(serverdir)" "$(DESTDIR)$(soundlistdir)"
applicationsDATA_INSTALL = $(INSTALL_DATA)
+gnome_cappletDATA_INSTALL = $(INSTALL_DATA)
schemasDATA_INSTALL = $(INSTALL_DATA)
serverDATA_INSTALL = $(INSTALL_DATA)
-settingsDATA_INSTALL = $(INSTALL_DATA)
soundlistDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(applications_DATA) $(schemas_DATA) $(server_DATA) \
- $(settings_DATA) $(soundlist_DATA)
+DATA = $(applications_DATA) $(gnome_capplet_DATA) $(schemas_DATA) \
+ $(server_DATA) $(soundlist_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -80,15 +87,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -105,10 +121,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -119,9 +131,12 @@ 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@
@@ -134,12 +149,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -147,7 +165,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -164,25 +181,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -203,20 +223,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -231,16 +270,23 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+@WITH_EVOLUTION_TRUE@evolution_server_in = GNOME_MailNotification_Evolution.server.in
+@WITH_EVOLUTION_TRUE@evolution_server = GNOME_MailNotification_Evolution.server
applicationsdir = $(datadir)/applications
applications_in_files = mail-notification.desktop.in
applications_DATA = mail-notification.desktop
-settingsdir = $(datadir)/control-center-2.0/capplets
-settings_in_files = mail-notification-properties.desktop.in
-settings_DATA = mail-notification-properties.desktop
+
+# gnome_cappletdir is defined by configure
+gnome_capplet_in_files = mail-notification-properties.desktop.in
+gnome_capplet_DATA = mail-notification-properties.desktop
serverdir = $(libdir)/bonobo/servers
-server_in_files = GNOME_MailNotification_Automation.server.in
-server_DATA = GNOME_MailNotification_Automation.server
+server_in_files = $(evolution_server_in) GNOME_MailNotification.server.in
+server_DATA = $(evolution_server) GNOME_MailNotification.server
schemasdir = $(GCONF_SCHEMA_FILE_DIR)
schemas_in_files = mail-notification.schemas.in
schemas_DATA = mail-notification.schemas
@@ -248,18 +294,20 @@ soundlistdir = $(sysconfdir)/sound/events
soundlist_in_files = mail-notification.soundlist.in
soundlist_DATA = mail-notification.soundlist
EXTRA_DIST = \
- mail-notification.desktop.in \
+ GNOME_MailNotification.server.in.in \
+ GNOME_MailNotification_Evolution.server.in \
mail-notification-properties.desktop.in \
- GNOME_MailNotification_Automation.server.in.in \
+ mail-notification.desktop.in \
mail-notification.schemas.in \
mail-notification.soundlist.in
CLEANFILES = \
- mail-notification.desktop \
- mail-notification-properties.desktop \
- GNOME_MailNotification_Automation.server \
- GNOME_MailNotification_Automation.server.in \
- mail-notification.schemas \
+ $(evolution_server) \
+ GNOME_MailNotification.server \
+ GNOME_MailNotification.server.in \
+ mail-notification-properties.desktop \
+ mail-notification.desktop \
+ mail-notification.schemas \
mail-notification.soundlist
all: all-am
@@ -294,6 +342,15 @@ $(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-applicationsDATA: $(applications_DATA)
@$(NORMAL_INSTALL)
@@ -312,6 +369,23 @@ uninstall-applicationsDATA:
echo " rm -f '$(DESTDIR)$(applicationsdir)/$$f'"; \
rm -f "$(DESTDIR)$(applicationsdir)/$$f"; \
done
+install-gnome_cappletDATA: $(gnome_capplet_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(gnome_cappletdir)" || $(mkdir_p) "$(DESTDIR)$(gnome_cappletdir)"
+ @list='$(gnome_capplet_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(gnome_cappletDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gnome_cappletdir)/$$f'"; \
+ $(gnome_cappletDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gnome_cappletdir)/$$f"; \
+ done
+
+uninstall-gnome_cappletDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(gnome_capplet_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(gnome_cappletdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(gnome_cappletdir)/$$f"; \
+ done
install-schemasDATA: $(schemas_DATA)
@$(NORMAL_INSTALL)
test -z "$(schemasdir)" || $(mkdir_p) "$(DESTDIR)$(schemasdir)"
@@ -346,23 +420,6 @@ uninstall-serverDATA:
echo " rm -f '$(DESTDIR)$(serverdir)/$$f'"; \
rm -f "$(DESTDIR)$(serverdir)/$$f"; \
done
-install-settingsDATA: $(settings_DATA)
- @$(NORMAL_INSTALL)
- test -z "$(settingsdir)" || $(mkdir_p) "$(DESTDIR)$(settingsdir)"
- @list='$(settings_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(settingsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(settingsdir)/$$f'"; \
- $(settingsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(settingsdir)/$$f"; \
- done
-
-uninstall-settingsDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(settings_DATA)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(settingsdir)/$$f'"; \
- rm -f "$(DESTDIR)$(settingsdir)/$$f"; \
- done
install-soundlistDATA: $(soundlist_DATA)
@$(NORMAL_INSTALL)
test -z "$(soundlistdir)" || $(mkdir_p) "$(DESTDIR)$(soundlistdir)"
@@ -418,7 +475,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" "$(DESTDIR)$(settingsdir)" "$(DESTDIR)$(soundlistdir)"; do \
+ for dir in "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(gnome_cappletdir)" "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" "$(DESTDIR)$(soundlistdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@@ -449,11 +506,11 @@ maintainer-clean-generic:
@GCONF_SCHEMAS_INSTALL_FALSE@install-data-local:
clean: clean-am
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
@@ -466,8 +523,8 @@ info: info-am
info-am:
install-data-am: install-applicationsDATA install-data-local \
- install-schemasDATA install-serverDATA install-settingsDATA \
- install-soundlistDATA
+ install-gnome_cappletDATA install-schemasDATA \
+ install-serverDATA install-soundlistDATA
install-exec-am:
@@ -483,7 +540,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
@@ -493,23 +550,24 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-applicationsDATA uninstall-info-am \
- uninstall-schemasDATA uninstall-serverDATA \
- uninstall-settingsDATA uninstall-soundlistDATA
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-applicationsDATA install-data \
- install-data-am install-data-local install-exec \
- install-exec-am install-info install-info-am install-man \
- install-schemasDATA install-serverDATA install-settingsDATA \
+uninstall-am: uninstall-applicationsDATA uninstall-gnome_cappletDATA \
+ uninstall-info-am uninstall-schemasDATA uninstall-serverDATA \
+ uninstall-soundlistDATA
+
+.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-applicationsDATA install-data install-data-am \
+ install-data-local install-exec install-exec-am \
+ install-gnome_cappletDATA install-info install-info-am \
+ install-man install-schemasDATA install-serverDATA \
install-soundlistDATA install-strip installcheck \
installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
- pdf-am ps ps-am uninstall uninstall-am \
- uninstall-applicationsDATA uninstall-info-am \
- uninstall-schemasDATA uninstall-serverDATA \
- uninstall-settingsDATA uninstall-soundlistDATA
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-applicationsDATA uninstall-gnome_cappletDATA \
+ uninstall-info-am uninstall-schemasDATA uninstall-serverDATA \
+ uninstall-soundlistDATA
@INTLTOOL_DESKTOP_RULE@
@@ -522,8 +580,8 @@ uninstall-am: uninstall-applicationsDATA uninstall-info-am \
@GCONF_SCHEMAS_INSTALL_TRUE@ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
@GCONF_SCHEMAS_INSTALL_TRUE@ $(GCONFTOOL) --makefile-install-rule mail-notification.schemas
-GNOME_MailNotification_Automation.server.in: GNOME_MailNotification_Automation.server.in.in
- sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification_Automation.server.in.in > GNOME_MailNotification_Automation.server.in
+GNOME_MailNotification.server.in: GNOME_MailNotification.server.in.in
+ sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification.server.in.in > GNOME_MailNotification.server.in
# 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:
diff --git a/data/mail-notification.schemas.in b/data/mail-notification.schemas.in
@@ -87,22 +87,11 @@
</locale>
</schema>
<schema>
- <key>/schemas/apps/mail-notification/mailboxes</key>
- <applyto>/apps/mail-notification/mailboxes</applyto>
- <owner>mail-notification</owner>
- <type>list</type>
- <list_type>string</list_type>
- <locale name="C">
- <short>Mailbox list</short>
- <long>The list of mailboxes to monitor.</long>
- </locale>
- </schema>
- <schema>
<key>/schemas/apps/mail-notification/ui/properties-dialog/height</key>
<applyto>/apps/mail-notification/ui/properties-dialog/height</applyto>
<owner>mail-notification</owner>
<type>int</type>
- <default>366</default>
+ <default>-1</default>
<locale name="C">
<short>Height of properties dialog</short>
<long>The height of the properties dialog in pixels.</long>
@@ -208,17 +197,6 @@
</locale>
</schema>
<schema>
- <key>/schemas/apps/mail-notification/already-run</key>
- <applyto>/apps/mail-notification/already-run</applyto>
- <owner>mail-notification</owner>
- <type>bool</type>
- <default>0</default>
- <locale name="C">
- <short>Has already been run</short>
- <long>Whether Mail Notification has already been run or not.</long>
- </locale>
- </schema>
- <schema>
<key>/schemas/apps/mail-notification/blink-on-errors</key>
<applyto>/apps/mail-notification/blink-on-errors</applyto>
<owner>mail-notification</owner>
diff --git a/depcomp b/depcomp
@@ -1,7 +1,9 @@
#! /bin/sh
-
# depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+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
@@ -15,8 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# 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
@@ -25,13 +27,45 @@
# 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
-# `libtool' can also be set to `yes' or `no'.
-depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
+# 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"
@@ -163,19 +197,25 @@ sgi)
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. This file always lives in the current directory.
- # Also, the AIX compiler puts `$object:' at the start of each line;
- # $object doesn't have directory information.
- stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+ # 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"
- outname="$stripped.o"
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"
@@ -183,6 +223,7 @@ aix)
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:'.
@@ -197,37 +238,96 @@ aix)
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 AIX compiler uses -MD to generate dependencies as a side
+ # 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
+ # 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$//'`
- tmpdepfile1="$object.d"
- tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
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"
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
- if test -f "$tmpdepfile1"; then
- tmpdepfile="$tmpdepfile1"
- else
- tmpdepfile="$tmpdepfile2"
- 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 space and a tab in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$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
@@ -240,34 +340,42 @@ tru64)
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- test -z "$dashmflag" && dashmflag=-M
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*) # this is libtool, let us make it quiet
- for arg
- do # cycle over the arguments
- case "$arg" in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
+ # 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
- "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
+ 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 ' ' '
@@ -285,36 +393,40 @@ dashXmstdout)
;;
makedepend)
- # X makedepend
- (
- shift
- cleared=no
- for arg in "$@"; do
- case $cleared in no)
- set ""; shift
- cleared=yes
- esac
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift;;
- -*)
- ;;
- *)
- set fnord "$@" "$arg"; shift;;
- esac
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
done
- obj_suffix="`echo $object | sed 's/^.*\././'`"
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
+ 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"
- tail +3 "$tmpdepfile" | tr ' ' '
+ 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.
@@ -324,35 +436,40 @@ makedepend)
cpp)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
- # because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
- set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
+ # 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
- "$@" -E |
- sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ done
+
+ "$@" -E |
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
@@ -362,34 +479,27 @@ cpp)
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
+ # always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
- ( IFS=" "
- case " $* " in
- *" --mode=compile "*)
- for arg
- do # cycle over the arguments
- case $arg in
- "--mode=compile")
- # insert --quiet before "--mode=compile"
- set fnord "$@" --quiet
- shift # fnord
- ;;
- esac
+ "$@" || exit $?
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
set fnord "$@" "$arg"
- shift # fnord
- shift # "$arg"
- done
- ;;
+ shift
+ shift
+ ;;
esac
- "$@" -E |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
- ) &
- proc=$!
- "$@"
- stat=$?
- wait "$proc"
- if test "$stat" != 0; then exit $stat; fi
+ 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"
@@ -409,3 +519,12 @@ none)
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:
diff --git a/help/C/Makefile.am b/help/C/Makefile.am
@@ -4,7 +4,13 @@ lang = C
omffile = mail-notification-C.omf
entities = documentation-license.xml software-license.xml
+dist_noinst_DATA = validate.stamp
+MAINTAINERCLEANFILES = validate.stamp
+
+validate.stamp: $(docname).xml $(entities)
+ xmllint --noout --valid $(docname).xml
+ @touch $@
+
include $(top_srcdir)/help/xmldocs.make
dist-hook: app-dist-hook
- SGML_CATALOG_FILES=/usr/local/share/sgml/catalog xmllint --noout --valid --catalogs $(docname).xml
diff --git a/help/C/Makefile.in b/help/C/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -75,6 +75,7 @@
# http://scrollkeeper.sourceforge.net/
# Version: 0.1.2 (last updated: March 20, 2002)
#
+
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -95,13 +96,20 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/help/omf.make $(top_srcdir)/help/xmldocs.make
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(top_srcdir)/help/omf.make \
+ $(top_srcdir)/help/xmldocs.make
subdir = help/C
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -109,11 +117,13 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
+DATA = $(dist_noinst_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -126,15 +136,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -151,10 +170,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -165,9 +180,12 @@ 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@
@@ -180,12 +198,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -193,7 +214,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -210,25 +230,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -249,20 +272,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -277,12 +319,18 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
figdir = figures
docname = mail-notification
lang = C
omffile = mail-notification-C.omf
entities = documentation-license.xml software-license.xml
+dist_noinst_DATA = validate.stamp
+MAINTAINERCLEANFILES = validate.stamp
# ************* Begin of section some packagers may need to modify **************
# This variable (docdir) specifies where the documents should be installed.
@@ -328,6 +376,15 @@ $(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:
tags: TAGS
TAGS:
@@ -369,7 +426,7 @@ distdir: $(DISTFILES)
dist-hook
check-am: all-am
check: check-am
-all-am: Makefile
+all-am: Makefile $(DATA)
installdirs:
install: install-am
install-exec: install-exec-am
@@ -396,13 +453,14 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
@@ -432,7 +490,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
@@ -444,17 +502,22 @@ ps-am:
uninstall-am: uninstall-info-am uninstall-local
-.PHONY: all all-am check check-am clean clean-generic dist-hook \
- distclean distclean-generic distdir dvi dvi-am html html-am \
- info info-am install install-am install-data install-data-am \
- install-data-hook install-data-local 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 pdf pdf-am ps ps-am uninstall uninstall-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-hook \
+ install-data-local 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-info-am uninstall-local
+validate.stamp: $(docname).xml $(entities)
+ xmllint --noout --valid $(docname).xml
+ @touch $@
+
omf: omf_timestamp
omf_timestamp: $(omffile)
@@ -525,7 +588,6 @@ uninstall-local-doc:
-rmdir $(DESTDIR)$(docdir)
dist-hook: app-dist-hook
- SGML_CATALOG_FILES=/usr/local/share/sgml/catalog xmllint --noout --valid --catalogs $(docname).xml
# 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:
diff --git a/help/C/figures/mailbox-emblem-error.png b/help/C/figures/mailbox-emblem-error.png
Binary files differ.
diff --git a/help/C/figures/mailbox-emblem-polled.png b/help/C/figures/mailbox-emblem-polled.png
Binary files differ.
diff --git a/help/C/figures/mailbox-emblem-unknown.png b/help/C/figures/mailbox-emblem-unknown.png
Binary files differ.
diff --git a/help/C/mail-notification-C.omf b/help/C/mail-notification-C.omf
@@ -12,9 +12,9 @@
Mail Notification Manual
</title>
<date>
- 2005-03-06
+ 2005-08-09
</date>
- <version identifier="2.11" date="2005-03-06" description="Twelfth release"/>
+ <version identifier="2.12" date="2005-08-09" description="Thirteenth release"/>
<subject category="GNOME|Internet"/>
<description>
Mail Notification Manual
diff --git a/help/C/mail-notification.xml b/help/C/mail-notification.xml
@@ -2,9 +2,9 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY app "<application>Mail Notification</application>">
- <!ENTITY appversion "1.1">
- <!ENTITY manrevision "2.11">
- <!ENTITY date "Sunday, March 6, 2005">
+ <!ENTITY appversion "2.0">
+ <!ENTITY manrevision "2.12">
+ <!ENTITY date "Tuesday, August 9, 2005">
<!ENTITY project "The Mail Notification Project">
@@ -26,7 +26,7 @@
<!ENTITY gnomevfs "<link linkend="gnomevfs">GnomeVFS</link>">
]>
-<!-- $Id: mail-notification.xml,v 1.94 2005/03/06 21:37:27 jylefort Exp $ -->
+<!-- $Id: mail-notification.xml,v 1.113 2005/08/09 19:17:30 jylefort Exp $ -->
<!-- Mail Notification Manual -->
<!-- Copyright (C) 2004, 2005 Jean-Yves Lefort -->
@@ -135,6 +135,17 @@
</revdescription>
</revision>
<revision>
+ <revnumber>Mail Notification Manual V2.11</revnumber>
+ <date>Sunday, March 6, 2005</date>
+ <revdescription>
+ <para role="author">
+ Jean-Yves Lefort
+ <email>jylefort@brutele.be</email>
+ </para>
+ <para role="publisher">&project;</para>
+ </revdescription>
+ </revision>
+ <revision>
<revnumber>Mail Notification Manual V2.10</revnumber>
<date>Thursday, November 25, 2004</date>
<revdescription>
@@ -290,12 +301,12 @@
</para>
<itemizedlist>
<listitem><para>multiple mailbox support</para></listitem>
- <listitem><para>&mbox;, &mh;, &maildir;, &sylpheed;, &pop3;, &imap; and &gmail; support</para></listitem>
+ <listitem><para>&mbox;, &mh;, &maildir;, &pop3;, &imap;, &gmail;, Evolution and &sylpheed; support</para></listitem>
<listitem><para>&sasl; authentication support</para></listitem>
<listitem><para>APOP authentication support</para></listitem>
<listitem><para>&ssl;/&tls; support</para></listitem>
<listitem><para>automatic detection of mailbox format</para></listitem>
- <listitem><para><link linkend="immediate-notification">immediate notification</link> (the status icon is updated within seconds after a mailbox changes)</para></listitem>
+ <listitem><para><link linkend="immediate-notification">immediate notification</link> (the status icon is updated immediately or within seconds after a mailbox changes)</para></listitem>
<listitem><para>a mail summary</para></listitem>
<listitem><para><ulink url="http://developer.gnome.org/projects/gup/hig" type="http">HIG</ulink> 2.0 compliance</para></listitem>
</itemizedlist>
@@ -383,20 +394,6 @@
</varlistentry>
<varlistentry>
- <term>--report</term>
- <listitem>
- <para>Report the mail status</para>
- <warning>
- <title>Security</title>
- <para>
- The output of --report may contain mailbox
- passwords.
- </para>
- </warning>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term>--unset-obsolete-configuration</term>
<listitem><para>Unset obsolete GConf configuration</para></listitem>
</varlistentry>
@@ -575,16 +572,10 @@
<title>Properties</title>
<para>To configure &app;, choose
<menuchoice>
- <guimenu>Applications</guimenu>
- <guisubmenu>Desktop Preferences</guisubmenu>
- <guimenuitem>Mail Notification</guimenuitem>
- </menuchoice> (or on some systems
- <menuchoice>
- <guimenu>Applications</guimenu>
+ <guimenu>Desktop</guimenu>
<guisubmenu>Preferences</guisubmenu>
- <guisubmenu>More Preferences</guisubmenu>
<guimenuitem>Mail Notification</guimenuitem>
- </menuchoice>).
+ </menuchoice> (this location may vary across systems).
</para>
<para>
The <guilabel>Properties</guilabel> dialog contains the
@@ -648,7 +639,7 @@
You can specify a <guilabel>mail reader</guilabel>
(which can be launched from various parts of &app;), as
well as configure commands to be executed <guilabel>when new mail arrives</guilabel>
- and <guilabel>when all mail is read</guilabel>.
+ and <guilabel>when all mail has been read</guilabel>.
</para>
</listitem>
</varlistentry>
@@ -712,6 +703,78 @@
</para>
</tip>
</para>
+ <para>
+ Small emblems may be displayed over mailbox icons. The
+ following table summarizes them.
+ </para>
+ <table>
+ <title>Mailbox Emblems</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Icon</entry>
+ <entry>Signification</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/mailbox-emblem-error.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase>Shows the emblem which is displayed when a mailbox has errors.</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+ </entry>
+ <entry>
+ An error has occurred while trying to access the
+ mailbox. The mailbox is unhandled.
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/mailbox-emblem-polled.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase>Shows the emblem which is displayed when a mailbox is checked periodically.</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+ </entry>
+ <entry>
+ The mailbox does not support <link linkend="immediate-notification">immediate notification</link>,
+ and is checked periodically according to the
+ <link linkend="delay-between-mail-checks">Delay between mail checks</link> setting.
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/mailbox-emblem-unknown.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase>Shows the emblem which is displayed when the format of a mailbox is unknown.</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+ </entry>
+ <entry>
+ The format of the mailbox is unknown. The
+ mailbox is unhandled.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
</listitem>
</varlistentry>
</variablelist>
@@ -821,6 +884,19 @@
</note>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><guibutton>Display a Test Popup</guibutton></term>
+ <listitem>
+ <para>
+ Clicking on this button will display an example popup,
+ which can be used to ease configuration of the above
+ options.
+ </para>
+ <para>
+ Click on the example popup to close it.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</sect2>
</sect1>
@@ -830,7 +906,7 @@
<para>
The <guilabel>Mailbox Properties</guilabel> dialog is displayed
when you add a new mailbox or when you edit an existing one.
- It contains the following global setting:
+ It contains the following global settings:
</para>
<variablelist>
@@ -843,6 +919,26 @@
</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><guilabel>Mailbox name</guilabel></term>
+ <listitem>
+ <para>
+ You can choose to assign a custom name to the mailbox. The
+ mailbox name has informative purposes only, and is
+ displayed in various parts of &app;. To reset to the
+ default name, click on the <guibutton>Use Default</guibutton>
+ button.
+ </para>
+ <note>
+ <para>
+ The mailbox name will be modified automatically as you
+ set some of the other options. To avoid losing your
+ choice, only fill in the mailbox name after setting the
+ other options.
+ </para>
+ </note>
+ </listitem>
+ </varlistentry>
</variablelist>
<para>
@@ -861,9 +957,10 @@
This is the &uri; of the mailbox.
<note>
<para>
- &app; abstracts file operations by using &gnomevfs;.
- All the schemes (http, ftp, ...) supported by &gnomevfs;
- are therefore supported by &app;.
+ &app; abstracts file operations by using
+ &gnomevfs;. All the schemes (http, ftp, sftp,
+ ...) supported by &gnomevfs; are therefore
+ supported by &app;.
</para>
</note>
</para>
@@ -896,7 +993,10 @@
<term><guilabel>Username</guilabel></term>
<listitem>
<para>
- This is your username on the &pop3; or &imap; server.
+ This is your username on the &pop3; or &imap;
+ server. The username will be stored to disk unless
+ it is left blank (in such case, a credentials prompt
+ will appear when needed).
</para>
</listitem>
</varlistentry>
@@ -904,10 +1004,10 @@
<term><guilabel>Password</guilabel></term>
<listitem>
<para>
- This is your password on the &pop3; or &imap; server.
- The password will be stored to disk unless it is
- left blank (in such case, a password prompt will
- appear when needed).
+ This is your password on the &pop3; or &imap;
+ server. The password will be stored to disk unless
+ it is left blank (in such case, a credentials prompt
+ will appear when needed).
</para>
<warning>
<title>Security</title>
@@ -1000,25 +1100,41 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><guilabel>Use idle mode if possible</guilabel></term>
+ <term><guilabel>Use the IDLE extension</guilabel></term>
<listitem>
<para>
- If this option is enabled and the &imap; server supports
- the IDLE extension (as defined by <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>),
- &app; will stay connected to the server and provide <link linkend="immediate-notification">immediate notification</link> of changes.
+ The IDLE extension (as defined by <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>)
+ allows &app; to stay connected to the server and provide
+ <link linkend="immediate-notification">immediate notification</link> of changes.
+ </para>
+ <para>
+ If <guilabel>never</guilabel> is selected, &app;
+ will never use the IDLE extension, not even if the
+ server supports it. Use this option if it appears
+ that &app; does not detect changes to an &imap;
+ mailbox while the IDLE extension is in use. If using
+ this option fixes the issue, please also send the
+ &imap; session transcript (obtained by running &app;
+ using the --enable-info option) to Jean-Yves Lefort
+ <email>jylefort@brutele.be</email>.
+ </para>
+ <para>
+ If <guilabel>autodetect</guilabel> is selected,
+ &app; will use the IDLE extension if the server
+ supports it, unless the server software is known to
+ have a broken IDLE implementation (currently, the
+ only such software known to &app; is the University
+ of Washington imapd). This is the recommended
+ choice.
+ </para>
+ <para>
+ If <guilabel>always</guilabel> is selected, &app;
+ will use the IDLE extension if the server supports
+ it, regardless of the server software. Use this
+ option if you want to force &app; to use the IDLE
+ extension, even if it has detected a bogus
+ implementation.
</para>
- <note>
- <para>
- Some &imap; server programs (most notably, Pine
- imapd) are known to have a broken implementation
- of the IDLE extension.
- </para>
- <para>
- If &app; does not detect changes to an &imap;
- mailbox, disabling this option might fix the
- problem.
- </para>
- </note>
</listitem>
</varlistentry>
</variablelist>
@@ -1033,7 +1149,9 @@
<term><guilabel>Username</guilabel></term>
<listitem>
<para>
- This is your username on &gmail;.
+ This is your username on &gmail;. The username will
+ be stored to disk unless it is left blank (in such
+ case, a credentials prompt will appear when needed).
</para>
</listitem>
</varlistentry>
@@ -1041,11 +1159,34 @@
<term><guilabel>Password</guilabel></term>
<listitem>
<para>
- This is your password on &gmail;.
- The password will be stored to disk unless it is
- left blank (in such case, a password prompt will
- appear when needed).
+ This is your password on &gmail;. The password will
+ be stored to disk unless it is left blank (in such
+ case, a credentials prompt will appear when needed).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>When <guilabel>Evolution</guilabel> is selected:</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term><guilabel>Folder</guilabel></term>
+ <listitem>
+ <para>
+ This is the Evolution folder to monitor for changes.
</para>
+ <note>
+ <para>
+ For the folder selector to be available and for
+ monitoring an Evolution mailbox, Evolution must be
+ running and the Evolution Mail Notification plugin
+ must be loaded.
+ </para>
+ </note>
</listitem>
</varlistentry>
</variablelist>
@@ -1081,9 +1222,9 @@
<title>Immediate Notification</title>
<para>
Immediate notification is the ability to detect changes to a
- mailbox without needing to poll it periodically. It allows the
- status icon to be updated within seconds after a mailbox
- changes.
+ mailbox without needing to check it periodically. It allows
+ the status icon to be updated immediately (or within seconds)
+ after a mailbox changes.
</para>
<para>
Requirements for immediate notification to be enabled:
@@ -1114,6 +1255,15 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term>Evolution mailboxes:</term>
+ <listitem>
+ <para>
+ There is no requirement. Immediate notification is
+ always enabled.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term>&pop3; and &gmail; mailboxes:</term>
<listitem>
<para>
@@ -1139,46 +1289,56 @@
The &app; &pop3; implementation strictly conforms to
<ulink url="http://www.ietf.org/rfc/rfc1939.txt" type="http">RFC 1939</ulink>,
<ulink url="http://www.ietf.org/rfc/rfc2449.txt" type="http">RFC 2449</ulink>,
- <ulink url="http://www.ietf.org/rfc/rfc1734.txt" type="http">RFC 1734</ulink> and
- <ulink url="http://www.ietf.org/rfc/rfc2595.txt" type="http">RFC 2595</ulink>.
+ <ulink url="http://www.ietf.org/rfc/rfc1734.txt" type="http">RFC 1734</ulink>,
+ <ulink url="http://www.ietf.org/rfc/rfc2595.txt" type="http">RFC 2595</ulink> and
+ <ulink url="http://www.ietf.org/rfc/rfc2384.txt" type="http">RFC 2384</ulink>.
</para>
<para>
The AUTH, APOP and USER/PASS authentication mechanisms are
- supported, and the LOGIN-DELAY capability is honoured.
+ supported, and the LOGIN-DELAY capability is honoured. The TOP
+ optional command is supported.
</para>
<para>
The authentication logic can be represented with the following
pseudo-code:
</para>
- <programlisting>if has-user-selected-mechanism then
- if server-supports-user-selected-mechanism then
- attempt authentication using user-selected-mechanism
- endif
-else
- if has-sasl-support and server-supports-sasl then
- if is-ssl-connection then
- sasl-mechanism = any
- else
- sasl-mechanism = any-non-plaintext
- endif
- attempt authentication using sasl-mechanism
- endif
- if authentication-failed and server-supports-apop then
- attempt authentication using apop
- endif
- if authentication-failed then
- attempt authentication using user/pass
- endif
-endif</programlisting>
+ <programlisting>success = false;
+
+if (mailbox.config.authmech != autodetect) {
+ if (mailbox.config.authmech in server.supported_authmechs) {
+ success = server.authenticate(mailbox.config.authmech);
+ }
+} else {
+ if (has_sasl_support && server.supports_sasl) {
+ foreach authmech in server.supported_authmechs {
+ if (server.ssl_connection || ! authmech.plaintext) {
+ success = server.authenticate(authmech);
+ if (success)
+ break;
+ }
+ }
+ if (! success && server.supports_apop) {
+ success = server.authenticate(apop);
+ }
+ if (! success) {
+ success = server.authenticate(userpass);
+ }
+ }
+}
+
+if (! success) {
+ mailbox.error = "authentication failed";
+}
+</programlisting>
</sect2>
<sect2>
<title>IMAP Implementation</title>
<para>
The &app; &imap; implementation strictly conforms to
- <ulink url="http://www.ietf.org/rfc/rfc3501.txt" type="http">RFC 3501</ulink>
- and
- <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>.
+ <ulink url="http://www.ietf.org/rfc/rfc3501.txt" type="http">RFC 3501</ulink>,
+ <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink> and
+ <ulink url="http://www.ietf.org/rfc/rfc2192.txt" type="http">RFC 2192</ulink>.
</para>
<para>
The AUTHENTICATE and LOGIN authentication mechanisms are
@@ -1188,23 +1348,30 @@ endif</programlisting>
The authentication logic can be represented with the following
pseudo-code:
</para>
- <programlisting>if has-user-selected-mechanism then
- if server-supports-user-selected-mechanism then
- attempt authentication using user-selected-mechanism
- endif
-else
- if has-sasl-support and server-supports-sasl then
- if is-ssl-connection then
- sasl-mechanism = any
- else
- sasl-mechanism = any-non-plaintext
- endif
- attempt authentication using sasl-mechanism
- endif
- if authentication-failed and server-supports-login then
- attempt authentication using login
- endif
-endif</programlisting>
+ <programlisting>success = false;
+
+if (mailbox.config.authmech != autodetect) {
+ if (mailbox.config.authmech in server.supported_authmechs) {
+ success = server.authenticate(mailbox.config.authmech);
+ }
+} else {
+ if (has_sasl_support && server.supports_sasl) {
+ foreach authmech in server.supported_authmechs {
+ if (server.ssl_connection || ! authmech.plaintext) {
+ success = server.authenticate(authmech);
+ if (success)
+ break;
+ }
+ }
+ if (! success && server.supports_login) {
+ server.authenticate(login);
+ }
+ }
+}
+
+if (! success) {
+ mailbox.error = "authentication failed";
+}</programlisting>
</sect2>
<sect2 id="modifying-appearance">
@@ -1269,8 +1436,16 @@ endif</programlisting>
<entry>mn-remote</entry>
</row>
<row>
- <entry>unsupported mailbox</entry>
- <entry>mn-unsupported</entry>
+ <entry>polled mailbox</entry>
+ <entry>mn-polled</entry>
+ </row>
+ <row>
+ <entry>unknown mailbox format</entry>
+ <entry>mn-unknown</entry>
+ </row>
+ <row>
+ <entry>mailbox error</entry>
+ <entry>mn-error</entry>
</row>
<row>
<entry>Gmail mailbox</entry>
@@ -1281,6 +1456,10 @@ endif</programlisting>
<entry>mn-system-mailbox</entry>
</row>
<row>
+ <entry>Evolution mailbox</entry>
+ <entry>mn-evolution-mailbox</entry>
+ </row>
+ <row>
<entry>select all</entry>
<entry>mn-select-all</entry>
</row>
@@ -1300,6 +1479,10 @@ endif</programlisting>
<entry>leave fullscreen</entry>
<entry>mn-leave-fullscreen</entry>
</row>
+ <row>
+ <entry>connect (in the SSL/TLS confirmation dialog)</entry>
+ <entry>mn-connect</entry>
+ </row>
</tbody>
</tgroup>
</table>
@@ -1369,9 +1552,10 @@ widget "*" style "mn-icons"</programlisting>
<sect1 id="about">
<title>About &app;</title>
- <para> &app; was written by Jean-Yves Lefort
- (<email>jylefort@brutele.be</email>). To find more information about
- &app;, visit the
+ <para>
+ &app; was written by Jean-Yves Lefort
+ <email>jylefort@brutele.be</email>. To find more information
+ about &app;, visit the
<ulink url="http://www.nongnu.org/mailnotify" type="http">Mail Notification web page</ulink>.
</para>
@@ -1379,7 +1563,7 @@ widget "*" style "mn-icons"</programlisting>
<title>Reporting Bugs and Other Feedback</title>
<para>
Bug reports and feedback should be sent to Jean-Yves Lefort
- (<email>jylefort@brutele.be</email>).
+ <email>jylefort@brutele.be</email>.
</para>
</sect2>
diff --git a/help/C/validate.stamp b/help/C/validate.stamp
diff --git a/help/Makefile.in b/help/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -33,12 +33,18 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
subdir = help
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -60,6 +66,7 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -72,15 +79,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -97,10 +113,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -111,9 +123,12 @@ 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@
@@ -126,12 +141,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -139,7 +157,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -156,25 +173,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -195,20 +215,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -223,7 +262,11 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
SUBDIRS = C
all: all-recursive
@@ -257,6 +300,15 @@ $(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:
# This directory's subdirectories are mostly independent; you can cd
@@ -266,7 +318,13 @@ uninstall-info-am:
# (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):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @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 \
@@ -278,7 +336,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -286,7 +344,13 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @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)' ;; \
@@ -307,7 +371,7 @@ maintainer-clean-recursive:
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -452,11 +516,12 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
dvi: dvi-recursive
@@ -484,7 +549,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
@@ -499,14 +564,15 @@ uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
- clean clean-generic clean-recursive ctags ctags-recursive \
- distclean distclean-generic 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-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 \
+ 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-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-info-am
diff --git a/install-sh b/install-sh
@@ -1,19 +1,38 @@
#!/bin/sh
-#
# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
+
+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.
#
-# Copyright 1991 by the Massachusetts Institute of Technology
+# 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.
#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
+# 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
@@ -23,13 +42,11 @@
# 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}"
@@ -41,211 +58,266 @@ stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
+chowncmd=
+chgrpcmd=
+stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
+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;;
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
+ -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
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
+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
-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
-exit 0
+# 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:
diff --git a/intltool-extract.in b/intltool-extract.in
@@ -32,7 +32,7 @@
## Release information
my $PROGRAM = "intltool-extract";
my $PACKAGE = "intltool";
-my $VERSION = "0.32.1";
+my $VERSION = "0.34.1";
## Loaded modules
use strict;
@@ -59,6 +59,8 @@ my %count = ();
my %comments = ();
my $strcount = 0;
+my $XMLCOMMENT = "";
+
## Use this instead of \w for XML files to handle more possible characters.
my $w = "[-A-Za-z0-9._:]";
@@ -115,6 +117,7 @@ sub place_normal {
}
sub place_local {
+ $FILE = $ARGV[0];
$OUTFILE = fileparse($FILE, ());
if (!-e "tmp/") {
system("mkdir tmp/");
@@ -185,6 +188,7 @@ sub extract {
&convert;
open OUT, ">$OUTFILE";
+ binmode (OUT) if $^O eq 'MSWin32';
&msg_write;
close OUT;
@@ -265,24 +269,344 @@ sub type_keys {
sub type_xml {
### For generic translatable XML files ###
-
- while ($input =~ /(?:<!--([^>]*?)-->[^\n]*\n?[^\n]*)?\s_$w+\s*=\s*\"([^"]+)\"/sg) { # "
- $messages{entity_decode_minimal($2)} = [];
- $comments{entity_decode_minimal($2)} = $1 if (defined($1));
- }
+ my $tree = readXml($input);
+ parseTree(0, $tree);
+}
- while ($input =~ /(?:<!--([^>]*?)-->\s*)?<_($w+)(?: xml:space="($w+)")?[^>]*>(.+?)<\/_\2>/sg) {
- $_ = $4;
- if (!defined($3) || $3 ne "preserve") {
- s/\s+/ /g;
- s/^ //;
- s/ $//;
+sub print_var {
+ my $var = shift;
+ my $vartype = ref $var;
+
+ if ($vartype =~ /ARRAY/) {
+ my @arr = @{$var};
+ print "[ ";
+ foreach my $el (@arr) {
+ print_var($el);
+ print ", ";
+ }
+ print "] ";
+ } elsif ($vartype =~ /HASH/) {
+ my %hash = %{$var};
+ print "{ ";
+ foreach my $key (keys %hash) {
+ print "$key => ";
+ print_var($hash{$key});
+ print ", ";
}
- $messages{$_} = [];
- $comments{$_} = $1 if (defined($1));
+ print "} ";
+ } else {
+ print $var;
+ }
+}
+
+# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment)
+sub getAttributeString
+{
+ my $sub = shift;
+ my $do_translate = shift || 1;
+ my $language = shift || "";
+ my $translate = shift;
+ my $result = "";
+ foreach my $e (reverse(sort(keys %{ $sub }))) {
+ my $key = $e;
+ my $string = $sub->{$e};
+ my $quote = '"';
+
+ $string =~ s/^[\s]+//;
+ $string =~ s/[\s]+$//;
+
+ if ($string =~ /^'.*'$/)
+ {
+ $quote = "'";
+ }
+ $string =~ s/^['"]//g;
+ $string =~ s/['"]$//g;
+
+ ## differences from intltool-merge.in.in
+ if ($key =~ /^_/) {
+ $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT;
+ $messages{entity_decode($string)} = [];
+ $$translate = 2;
+ }
+ ## differences end here from intltool-merge.in.in
+ $result .= " $key=$quote$string$quote";
+ }
+ return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub getXMLstring
+{
+ my $ref = shift;
+ my $spacepreserve = shift || 0;
+ my @list = @{ $ref };
+ my $result = "";
+
+ my $count = scalar(@list);
+ my $attrs = $list[0];
+ my $index = 1;
+
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+ while ($index < $count) {
+ my $type = $list[$index];
+ my $content = $list[$index+1];
+ if (! $type ) {
+ # We've got CDATA
+ if ($content) {
+ # lets strip the whitespace here, and *ONLY* here
+ $content =~ s/\s+/ /gs if (!$spacepreserve);
+ $result .= $content;
+ }
+ } elsif ( "$type" ne "1" ) {
+ # We've got another element
+ $result .= "<$type";
+ $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+ if ($content) {
+ my $subresult = getXMLstring($content, $spacepreserve);
+ if ($subresult) {
+ $result .= ">".$subresult . "</$type>";
+ } else {
+ $result .= "/>";
+ }
+ } else {
+ $result .= "/>";
+ }
+ }
+ $index += 2;
+ }
+ return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+ my $fh = shift;
+ my $content = shift;
+ my $language = shift || "";
+ my $singlelang = shift || 0;
+ my $spacepreserve = shift || 0;
+
+ my @nodes = @{ $content };
+
+ my $count = scalar(@nodes);
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $nodes[$index];
+ my $rest = $nodes[$index+1];
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $index += 2;
+ }
+}
+
+# Based on traverse() in intltool-merge.in.in
+sub traverse
+{
+ my $fh = shift; # unused, to allow us to sync code between -merge and -extract
+ my $nodename = shift;
+ my $content = shift;
+ my $language = shift || "";
+ my $spacepreserve = shift || 0;
+
+ if ($nodename && "$nodename" eq "1") {
+ $XMLCOMMENT = $content;
+ } elsif ($nodename) {
+ # element
+ my @all = @{ $content };
+ my $attrs = shift @all;
+ my $translate = 0;
+ my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+ if ($nodename =~ /^_/) {
+ $translate = 1;
+ $nodename =~ s/^_//;
+ }
+ my $lookup = '';
+
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+ if ($translate) {
+ $lookup = getXMLstring($content, $spacepreserve);
+ if (!$spacepreserve) {
+ $lookup =~ s/^\s+//s;
+ $lookup =~ s/\s+$//s;
+ }
+
+ if ($lookup && $translate != 2) {
+ $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT;
+ $messages{$lookup} = [];
+ } elsif ($translate == 2) {
+ translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+ }
+ } else {
+ $XMLCOMMENT = "";
+ my $count = scalar(@all);
+ if ($count > 0) {
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $all[$index];
+ my $rest = $all[$index+1];
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $index += 2;
+ }
+ }
+ }
+ $XMLCOMMENT = "";
}
}
+
+# Verbatim copy from intltool-merge.in.in, $fh for compatibility
+sub parseTree
+{
+ my $fh = shift;
+ my $ref = shift;
+ my $language = shift || "";
+
+ my $name = shift @{ $ref };
+ my $cont = shift @{ $ref };
+
+ while (!$name || "$name" eq "1") {
+ $name = shift @{ $ref };
+ $cont = shift @{ $ref };
+ }
+
+ my $spacepreserve = 0;
+ my $attrs = @{$cont}[0];
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+ traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_comment
+{
+ my $expat = shift;
+ my $data = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ push @$clist, 1 => $data;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdatastart
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ push @$clist, 0 => $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdataend
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ $clist->[$pos] .= $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_char
+{
+ my $expat = shift;
+ my $text = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ # Use original_string so that we retain escaped entities
+ # in CDATA sections.
+ #
+ if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+ $clist->[$pos] .= $expat->original_string();
+ } else {
+ push @$clist, 0 => $expat->original_string();
+ }
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_start
+{
+ my $expat = shift;
+ my $tag = shift;
+ my @origlist = ();
+
+ # Use original_string so that we retain escaped entities
+ # in attribute values. We must convert the string to an
+ # @origlist array to conform to the structure of the Tree
+ # Style.
+ #
+ my @original_array = split /\x/, $expat->original_string();
+ my $source = $expat->original_string();
+
+ # Remove leading tag.
+ #
+ $source =~ s|^\s*<\s*(\S+)||s;
+
+ # Grab attribute key/value pairs and push onto @origlist array.
+ #
+ while ($source)
+ {
+ if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+ {
+ $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+ push @origlist, $1;
+ push @origlist, '"' . $2 . '"';
+ }
+ elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+ {
+ $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+ push @origlist, $1;
+ push @origlist, "'" . $2 . "'";
+ }
+ else
+ {
+ last;
+ }
+ }
+
+ my $ol = [ { @origlist } ];
+
+ push @{ $expat->{Lists} }, $expat->{Curlist};
+ push @{ $expat->{Curlist} }, $tag => $ol;
+ $expat->{Curlist} = $ol;
+}
+
+# Copied from intltool-merge.in.in and added comment handler.
+sub readXml
+{
+ my $xmldoc = shift || return;
+ my $ret = eval 'require XML::Parser';
+ if(!$ret) {
+ die "You must have XML::Parser installed to run $0\n\n";
+ }
+ my $xp = new XML::Parser(Style => 'Tree');
+ $xp->setHandlers(Char => \&intltool_tree_char);
+ $xp->setHandlers(Start => \&intltool_tree_start);
+ $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+ $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+
+ ## differences from intltool-merge.in.in
+ $xp->setHandlers(Comment => \&intltool_tree_comment);
+ ## differences end here from intltool-merge.in.in
+
+ my $tree = $xp->parse($xmldoc);
+ #print_var($tree);
+
+# <foo><!-- comment --><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar,
+# [{}, 0, "Howdy", ref, [{}]], 0, "do" ] ]
+
+ return $tree;
+}
+
sub type_schemas {
### For schemas XML files ###
diff --git a/intltool-merge.in b/intltool-merge.in
@@ -35,7 +35,7 @@
## Release information
my $PROGRAM = "intltool-merge";
my $PACKAGE = "intltool";
-my $VERSION = "0.32.1";
+my $VERSION = "0.34.1";
## Loaded modules
use strict;
@@ -91,7 +91,8 @@ my $OUTFILE;
my %po_files_by_lang = ();
my %translations = ();
-my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "@INTLTOOL_ICONV@";
+my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "/usr/local/bin/iconv";
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
# Use this instead of \w for XML files to handle more possible characters.
my $w = "[-A-Za-z0-9._:]";
@@ -299,7 +300,7 @@ sub get_po_encoding
$encoding = "ISO-8859-1";
}
- system ("$iconv -f $encoding -t UTF-8 </dev/null 2>/dev/null");
+ system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull");
if ($?) {
$encoding = get_local_charset($encoding);
}
@@ -542,6 +543,8 @@ sub ba_merge_translations
}
open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!";
+ # Binmode so that selftest works ok if using a native Win32 Perl...
+ binmode (OUTPUT) if $^O eq 'MSWin32';
while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s)
{
@@ -610,18 +613,16 @@ sub getAttributeString
if ($do_translate && $key =~ /^_/) {
$key =~ s|^_||g;
if ($language) {
-
# Handle translation
- #
my $decode_string = entity_decode($string);
my $translation = $translations{$language, $decode_string};
if ($translation) {
$translation = entity_encode($translation);
$string = $translation;
- $$translate = 2;
- }
+ }
+ $$translate = 2;
} else {
- $$translate = 1 if ($translate && (!$$translate)); # watch not to "overwrite" if $translate == 2
+ $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate
}
}
@@ -631,13 +632,10 @@ sub getAttributeString
}
# Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree
-# doesn't support nesting of translatable tags (i.e. <_blah>this <_doh>doesn't</_doh> work</_blah> -- besides
-# can you define the correct semantics for this?)
-#
-
sub getXMLstring
{
my $ref = shift;
+ my $spacepreserve = shift || 0;
my @list = @{ $ref };
my $result = "";
@@ -645,6 +643,9 @@ sub getXMLstring
my $attrs = $list[0];
my $index = 1;
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
while ($index < $count) {
my $type = $list[$index];
my $content = $list[$index+1];
@@ -652,19 +653,15 @@ sub getXMLstring
# We've got CDATA
if ($content) {
# lets strip the whitespace here, and *ONLY* here
- $content =~ s/\s+/ /gs if (!((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)));
- $result .= ($content);
- } else {
- #print "no cdata content when expected it\n"; # is this possible, is this ok?
- # what to do if this happens?
- # Did I mention that I hate XML::Parser tree style?
+ $content =~ s/\s+/ /gs if (!$spacepreserve);
+ $result .= $content;
}
- } else {
+ } elsif ( "$type" ne "1" ) {
# We've got another element
$result .= "<$type";
$result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
if ($content) {
- my $subresult = getXMLstring($content);
+ my $subresult = getXMLstring($content, $spacepreserve);
if ($subresult) {
$result .= ">".$subresult . "</$type>";
} else {
@@ -679,12 +676,58 @@ sub getXMLstring
return $result;
}
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+ my $fh = shift;
+ my $content = shift;
+ my $language = shift || "";
+ my $singlelang = shift || 0;
+ my $spacepreserve = shift || 0;
+
+ my @nodes = @{ $content };
+
+ my $count = scalar(@nodes);
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $nodes[$index];
+ my $rest = $nodes[$index+1];
+ if ($singlelang) {
+ my $oldMO = $MULTIPLE_OUTPUT;
+ $MULTIPLE_OUTPUT = 1;
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $MULTIPLE_OUTPUT = $oldMO;
+ } else {
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ }
+ $index += 2;
+ }
+}
+
+sub isWellFormedXmlFragment
+{
+ my $ret = eval 'require XML::Parser';
+ if(!$ret) {
+ die "You must have XML::Parser installed to run $0\n\n";
+ }
+
+ my $fragment = shift;
+ return 0 if (!$fragment);
+
+ $fragment = "<root>$fragment</root>";
+ my $xp = new XML::Parser(Style => 'Tree');
+ my $tree = 0;
+ eval { $tree = $xp->parse($fragment); };
+ return $tree;
+}
+
sub traverse
{
my $fh = shift;
my $nodename = shift;
my $content = shift;
my $language = shift || "";
+ my $spacepreserve = shift || 0;
if (!$nodename) {
if ($content =~ /^[\s]*$/) {
@@ -703,24 +746,41 @@ sub traverse
$nodename =~ s/^_//;
}
my $lookup = '';
+
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
print $fh "<$nodename", $outattr;
if ($translate) {
- $lookup = getXMLstring($content);
- if (!((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/))) {
+ $lookup = getXMLstring($content, $spacepreserve);
+ if (!$spacepreserve) {
$lookup =~ s/^\s+//s;
$lookup =~ s/\s+$//s;
}
if ($lookup || $translate == 2) {
- my $translation = $translations{$language, $lookup};
+ my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup});
if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) {
$translation = $lookup if (!$translation);
- print $fh " xml:lang=\"", $language, "\"";
- print $fh ">", $translation, "</$nodename>";
+ print $fh " xml:lang=\"", $language, "\"" if $language;
+ print $fh ">";
+ if ($translate == 2) {
+ translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+ } else {
+ print $fh $translation;
+ }
+ print $fh "</$nodename>";
+
return; # this means there will be no same translation with xml:lang="$language"...
# if we want them both, just remove this "return"
} else {
- print $fh ">$lookup</$nodename>";
+ print $fh ">";
+ if ($translate == 2) {
+ translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+ } else {
+ print $fh $lookup;
+ }
+ print $fh "</$nodename>";
}
} else {
print $fh "/>";
@@ -735,18 +795,22 @@ sub traverse
#
my $translate = 0;
my $localattrs = getAttributeString($attrs, 1, $lang, \$translate);
- my $translation = $translations{$lang, $lookup};
+ my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup});
if ($translate && !$translation) {
$translation = $lookup;
}
if ($translation || $translate) {
- $translation = ($translation);
print $fh "\n";
$leading_space =~ s/.*\n//g;
print $fh $leading_space;
- print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs;
- print $fh ">", $translation , "</$nodename>";
+ print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">";
+ if ($translate == 2) {
+ translate_subnodes($fh, \@all, $lang, 1, $spacepreserve);
+ } else {
+ print $fh $translation;
+ }
+ print $fh "</$nodename>";
}
}
}
@@ -755,23 +819,49 @@ sub traverse
my $count = scalar(@all);
if ($count > 0) {
print $fh ">";
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $all[$index];
+ my $rest = $all[$index+1];
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $index += 2;
+ }
+ print $fh "</$nodename>";
} else {
print $fh "/>";
}
- my $index = 0;
- while ($index < $count) {
- my $type = $all[$index];
- my $rest = $all[$index+1];
- traverse($fh, $type, $rest, $language);
- $index += 2;
- }
- if ($count > 0) {
- print $fh "</$nodename>";
- }
}
}
}
+sub intltool_tree_comment
+{
+ my $expat = shift;
+ my $data = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ push @$clist, 1 => $data;
+}
+
+sub intltool_tree_cdatastart
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ push @$clist, 0 => $expat->original_string();
+}
+
+sub intltool_tree_cdataend
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ $clist->[$pos] .= $expat->original_string();
+}
+
sub intltool_tree_char
{
my $expat = shift;
@@ -850,6 +940,8 @@ sub readXml
my $xp = new XML::Parser(Style => 'Tree');
$xp->setHandlers(Char => \&intltool_tree_char);
$xp->setHandlers(Start => \&intltool_tree_start);
+ $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+ $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
my $tree = $xp->parsefile($filename);
# <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
@@ -895,7 +987,17 @@ sub parseTree
my $name = shift @{ $ref };
my $cont = shift @{ $ref };
- traverse($fh, $name, $cont, $language);
+
+ while (!$name || "$name" eq "1") {
+ $name = shift @{ $ref };
+ $cont = shift @{ $ref };
+ }
+
+ my $spacepreserve = 0;
+ my $attrs = @{$cont}[0];
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+ traverse($fh, $name, $cont, $language, $spacepreserve);
}
sub xml_merge_output
@@ -908,6 +1010,7 @@ sub xml_merge_output
mkdir $lang, 0777 or die "Cannot create subdirectory $lang: $!\n";
}
open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+ binmode (OUTPUT) if $^O eq 'MSWin32';
my $tree = readXml($FILE);
print_header($FILE, \*OUTPUT);
parseTree(\*OUTPUT, $tree, $lang);
@@ -916,6 +1019,7 @@ sub xml_merge_output
}
}
open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n";
+ binmode (OUTPUT) if $^O eq 'MSWin32';
my $tree = readXml($FILE);
print_header($FILE, \*OUTPUT);
parseTree(\*OUTPUT, $tree);
@@ -927,6 +1031,7 @@ sub keys_merge_translations
{
open INPUT, "<${FILE}" or die;
open OUTPUT, ">${OUTFILE}" or die;
+ binmode (OUTPUT) if $^O eq 'MSWin32';
while (<INPUT>)
{
@@ -962,6 +1067,7 @@ sub desktop_merge_translations
{
open INPUT, "<${FILE}" or die;
open OUTPUT, ">${OUTFILE}" or die;
+ binmode (OUTPUT) if $^O eq 'MSWin32';
while (<INPUT>)
{
@@ -1005,6 +1111,7 @@ sub schemas_merge_translations
}
open OUTPUT, ">$OUTFILE" or die;
+ binmode (OUTPUT) if $^O eq 'MSWin32';
# FIXME: support attribute translations
@@ -1106,6 +1213,7 @@ sub rfc822deb_merge_translations
}
open OUTPUT, ">${OUTFILE}" or die;
+ binmode (OUTPUT) if $^O eq 'MSWin32';
while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg)
{
diff --git a/intltool-update.in b/intltool-update.in
@@ -30,7 +30,7 @@
## Release information
my $PROGRAM = "intltool-update";
-my $VERSION = "0.32.1";
+my $VERSION = "0.34.1";
my $PACKAGE = "intltool";
## Loaded modules
@@ -95,6 +95,8 @@ my $POTFILES_in;
$SRCDIR = $ENV{"srcdir"} if $ENV{"srcdir"};
$POTFILES_in = "<$SRCDIR/POTFILES.in";
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
## Handle options
GetOptions
(
@@ -149,7 +151,8 @@ elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/)
## Report error if the language file supplied
## to the command line is non-existent
- &Console_WriteError_NotExisting("$lang.po") if ! -s "$lang.po";
+ &Console_WriteError_NotExisting("$SRCDIR/$lang.po")
+ if ! -s "$SRCDIR/$lang.po";
if (!$DIST_ARG)
{
@@ -212,6 +215,16 @@ _EOF_
exit;
}
+sub echo_n
+{
+ my $str = shift;
+ my $ret = `echo "$str"`;
+
+ $ret =~ s/\n$//; # do we need the "s" flag?
+
+ return $ret;
+}
+
sub POFile_DetermineType ($)
{
my $type = $_;
@@ -431,7 +444,7 @@ sub FindLeftoutFiles
while (<FILE>)
{
# FIXME: share the pattern matching code with intltool-extract
- if (/\s_(.*)=\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
+ if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
{
if (defined isNotValidMissing (unpack("x3 A*", $file))) {
push @buf_allfiles, unpack("x3 A*", $file) . "\n";
@@ -597,7 +610,7 @@ sub GenerateHeaders
#
sub GeneratePOTemplate
{
- my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@";
+ my $XGETTEXT = $ENV{"XGETTEXT"} || "/usr/local/bin/xgettext";
my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
chomp $XGETTEXT;
@@ -617,7 +630,7 @@ sub GeneratePOTemplate
my $gettext_support_nonascii = 0;
# checks for GNU gettext >= 0.12
- my $dummy = `$XGETTEXT --version --from-code=UTF-8 >/dev/null 2>/dev/null`;
+ my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`;
if ($? == 0)
{
$gettext_support_nonascii = 1;
@@ -651,14 +664,14 @@ sub GeneratePOTemplate
elsif (/\.($xml_support|$ini_support)$/ || /^\[/)
{
s/^\[.*]\s*//;
- print OUTFILE "$_.h\n";
+ print OUTFILE "../$_.h\n";
push @temp_headers, "../$_.h";
$gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code);
}
else
{
if ($SRCDIR eq ".") {
- print OUTFILE "$_\n";
+ print OUTFILE "../$_\n";
} else {
print OUTFILE "$SRCDIR/../$_\n";
}
@@ -703,7 +716,7 @@ sub GeneratePOTemplate
unlink "$MODULE.pot";
my @xgettext_argument=("$XGETTEXT",
"--add-comments",
- "--directory\=\.\.",
+ "--directory\=\.",
"--output\=$MODULE\.pot",
"--files-from\=\.\/POTFILES\.in\.temp");
my $XGETTEXT_KEYWORDS = &FindPOTKeywords;
@@ -768,13 +781,13 @@ sub POFile_Update
{
-f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
- my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@";
+ my $MSGMERGE = $ENV{"MSGMERGE"} || "/usr/local/bin/msgmerge";
my ($lang, $outfile) = @_;
- print "Merging $lang.po with $MODULE.pot..." if $VERBOSE;
+ print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE;
- my $infile = "$lang.po";
- $outfile = "$lang.po" if ($outfile eq "");
+ my $infile = "$SRCDIR/$lang.po";
+ $outfile = "$SRCDIR/$lang.po" if ($outfile eq "");
# I think msgmerge won't overwrite old file if merge is not successful
system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot");
@@ -811,16 +824,16 @@ sub POFile_GetLanguage ($)
sub Console_Write_TranslationStatus
{
my ($lang, $output_file) = @_;
- my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+ my $MSGFMT = $ENV{"MSGFMT"} || "/usr/local/bin/msgfmt";
- $output_file = "$lang.po" if ($output_file eq "");
+ $output_file = "$SRCDIR/$lang.po" if ($output_file eq "");
- system ("$MSGFMT", "-o", "/dev/null", "--statistics", $output_file);
+ system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file);
}
sub Console_Write_CoverageReport
{
- my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+ my $MSGFMT = $ENV{"MSGFMT"} || "/usr/local/bin/msgfmt";
&GatherPOFiles;
@@ -835,7 +848,7 @@ sub Console_Write_CoverageReport
foreach my $lang (@languages)
{
print "$lang: ";
- system ("$MSGFMT", "-o", "/dev/null", "--statistics", "$lang.po");
+ system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po");
}
}
@@ -867,7 +880,7 @@ sub SubstituteVariable
# We're using Perl backticks ` and "echo -n" here in order to
# expand any shell escapes (such as backticks themselves) in every variable
- return `echo -n "$str"`;
+ return echo_n ($str);
}
sub CONF_Handle_Open
diff --git a/ltmain.sh b/ltmain.sh
@@ -0,0 +1,6500 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 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.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.18
+TIMESTAMP=" (1.1220.2.245 2005/05/16 08:55:27)"
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes.
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell, and then maybe $echo will work.
+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo A|tr A '\301'` in
+ A) # EBCDIC based system
+ SP2NL="tr '\100' '\n'"
+ NL2SP="tr '\r\n' '\100\100'"
+ ;;
+ *) # Assume ASCII based system
+ SP2NL="tr '\040' '\012'"
+ NL2SP="tr '\015\012' '\040\040'"
+ ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ $echo "$modename: not configured to build any kind of library" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+quote_scanset='[[~#^*{};<>?'"'"' ]'
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+ win32_libid_type="unknown"
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+ win32_nmres=`eval $NM -f posix -A $1 | \
+ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
+ if test "X$win32_nmres" = "Ximport" ; then
+ win32_libid_type="x86 archive import"
+ else
+ win32_libid_type="x86 archive static"
+ fi
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $echo $win32_libid_type
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case "$@ " in
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+ $echo "$modename: specify a tag with \`--tag'" 1>&2
+ exit $EXIT_FAILURE
+# else
+# $echo "$modename: using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ f_ex_an_ar_dir="$1"; shift
+ f_ex_an_ar_oldlib="$1"
+
+ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+ exit $EXIT_FAILURE
+ fi
+}
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ my_gentop="$1"; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=""
+ my_xlib=""
+ my_xabs=""
+ my_xdir=""
+ my_status=""
+
+ $show "${rm}r $my_gentop"
+ $run ${rm}r "$my_gentop"
+ $show "$mkdir $my_gentop"
+ $run $mkdir "$my_gentop"
+ my_status=$?
+ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+ exit $my_status
+ fi
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+ my_xdir="$my_gentop/$my_xlib"
+
+ $show "${rm}r $my_xdir"
+ $run ${rm}r "$my_xdir"
+ $show "$mkdir $my_xdir"
+ $run $mkdir "$my_xdir"
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$my_xdir"; then
+ exit $status
+ fi
+ case $host in
+ *-darwin*)
+ $show "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ if test -z "$run"; then
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ $show "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches ; do
+ mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+ cd "$darwin_curdir"
+ $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+ done # $darwin_arches
+ ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+ lipo -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ ${rm}r unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd "$darwin_orig_dir"
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ fi # $run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+ done
+ func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
+
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+ arg="$1"
+ shift
+
+ case $arg in
+ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ execute_dlfiles)
+ execute_dlfiles="$execute_dlfiles $arg"
+ ;;
+ tag)
+ tagname="$arg"
+ preserve_args="${preserve_args}=$arg"
+
+ # Check whether tagname contains only valid characters
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ $echo "$progname: invalid tag name: $tagname" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $tagname in
+ CC)
+ # Don't test for the "default" C tag, as we know, it's there, but
+ # not specially marked.
+ ;;
+ *)
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+ taglist="$taglist $tagname"
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+ else
+ $echo "$progname: ignoring unknown tag $tagname" 1>&2
+ fi
+ ;;
+ esac
+ ;;
+ *)
+ eval "$prev=\$arg"
+ ;;
+ esac
+
+ prev=
+ prevopt=
+ continue
+ fi
+
+ # Have we seen a non-optional argument yet?
+ case $arg in
+ --help)
+ show_help=yes
+ ;;
+
+ --version)
+ $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+ $echo
+ $echo "Copyright (C) 2005 Free Software Foundation, Inc."
+ $echo "This is free software; see the source for copying conditions. There is NO"
+ $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+ exit $?
+ ;;
+
+ --config)
+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+ done
+ exit $?
+ ;;
+
+ --debug)
+ $echo "$progname: enabling shell trace mode"
+ set -x
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --dry-run | -n)
+ run=:
+ ;;
+
+ --features)
+ $echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ $echo "enable shared libraries"
+ else
+ $echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ $echo "enable static libraries"
+ else
+ $echo "disable static libraries"
+ fi
+ exit $?
+ ;;
+
+ --finish) mode="finish" ;;
+
+ --mode) prevopt="--mode" prev=mode ;;
+ --mode=*) mode="$optarg" ;;
+
+ --preserve-dup-deps) duplicate_deps="yes" ;;
+
+ --quiet | --silent)
+ show=:
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --tag) prevopt="--tag" prev=tag ;;
+ --tag=*)
+ set tag "$optarg" ${1+"$@"}
+ shift
+ prev=tag
+ preserve_args="$preserve_args --tag"
+ ;;
+
+ -dlopen)
+ prevopt="-dlopen"
+ prev=execute_dlfiles
+ ;;
+
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+
+ *)
+ nonopt="$arg"
+ break
+ ;;
+ esac
+done
+
+if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+fi
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+ # Infer the operation mode.
+ if test -z "$mode"; then
+ $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+ case $nonopt in
+ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+ mode=link
+ for arg
+ do
+ case $arg in
+ -c)
+ mode=compile
+ break
+ ;;
+ esac
+ done
+ ;;
+ *db | *dbx | *strace | *truss)
+ mode=execute
+ ;;
+ *install*|cp|mv)
+ mode=install
+ ;;
+ *rm)
+ mode=uninstall
+ ;;
+ *)
+ # If we have no mode, but dlfiles were specified, then do execute mode.
+ test -n "$execute_dlfiles" && mode=execute
+
+ # Just use the default operation mode.
+ if test -z "$mode"; then
+ if test -n "$nonopt"; then
+ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+ else
+ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+ fi
+ fi
+ ;;
+ esac
+ fi
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
+ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$modename --help --mode=$mode' for more information."
+
+ # These modes are in order of execution frequency so that they run quickly.
+ case $mode in
+ # libtool compile mode
+ compile)
+ modename="$modename: compile"
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+
+ for arg
+ do
+ case "$arg_mode" in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg="$arg"
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj="$arg"
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ if test -n "$libobj" ; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ arg_mode=target
+ continue
+ ;;
+
+ -static | -prefer-pic | -prefer-non-pic)
+ later="$later $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ lastarg="$lastarg $arg"
+ done
+ IFS="$save_ifs"
+ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+ # Add the arguments to base_compile.
+ base_compile="$base_compile $lastarg"
+ continue
+ ;;
+
+ * )
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg="$srcfile"
+ srcfile="$arg"
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+ case $lastarg in
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, and some SunOS ksh mistreat backslash-escaping
+ # in scan sets (worked around with variable expansion),
+ # and furthermore cannot handle '|' '&' '(' ')' in scan sets
+ # at all, so we specify them separately.
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ lastarg="\"$lastarg\""
+ ;;
+ esac
+
+ base_compile="$base_compile $lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ $echo "$modename: you must specify an argument for -Xcompile"
+ exit $EXIT_FAILURE
+ ;;
+ target)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *)
+ # Get the name of the library object.
+ [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ xform='[cCFSifmso]'
+ case $libobj in
+ *.ada) xform=ada ;;
+ *.adb) xform=adb ;;
+ *.ads) xform=ads ;;
+ *.asm) xform=asm ;;
+ *.c++) xform=c++ ;;
+ *.cc) xform=cc ;;
+ *.ii) xform=ii ;;
+ *.class) xform=class ;;
+ *.cpp) xform=cpp ;;
+ *.cxx) xform=cxx ;;
+ *.f90) xform=f90 ;;
+ *.for) xform=for ;;
+ *.java) xform=java ;;
+ esac
+
+ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+ case $libobj in
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+ *)
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -static)
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+ case $qlibobj in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qlibobj="\"$qlibobj\"" ;;
+ esac
+ if test "X$libobj" != "X$qlibobj"; then
+ $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+ exit $EXIT_FAILURE
+ fi
+ objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir=
+ else
+ xdir=$xdir/
+ fi
+ lobj=${xdir}$objdir/$objname
+
+ if test -z "$base_compile"; then
+ $echo "$modename: you must specify a compilation command" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ $run $rm $removelist
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ pic_mode=default
+ ;;
+ esac
+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ $echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+ $echo "$srcfile" > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+ case $qsrcfile in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qsrcfile="\"$qsrcfile\"" ;;
+ esac
+
+ $run $rm "$libobj" "${libobj}T"
+
+ # Create a libtool object file (analogous to a ".la" file),
+ # but don't create it if we're doing a dry run.
+ test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ if test ! -d "${xdir}$objdir"; then
+ $show "$mkdir ${xdir}$objdir"
+ $run $mkdir ${xdir}$objdir
+ status=$?
+ if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
+ exit $status
+ fi
+ fi
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ command="$command -o $lobj"
+ fi
+
+ $run $rm "$lobj" "$output_obj"
+
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ $show "$mv $output_obj $lobj"
+ if $run $mv $output_obj $lobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the PIC object to the libtool object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+ # Allow error messages only from the first compilation.
+ if test "$suppress_opt" = yes; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ else
+ # No PIC object so indicate it doesn't exist in the libtool
+ # object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command="$command$suppress_output"
+ $run $rm "$obj" "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+ else
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+ fi
+
+ $run $mv "${libobj}T" "${libobj}"
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $run $rm "$lockfile"
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool link mode
+ link | relink)
+ modename="$modename: link"
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args="$nonopt"
+ base_compile="$nonopt $@"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+
+ avoid_version=no
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ non_pic_objects=
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -all-static | -static)
+ if test "X$arg" = "X-all-static"; then
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ fi
+ build_libtool_libs=no
+ build_old_libs=yes
+ prefer_static_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg="$1"
+ shift
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+ ;;
+ *) qarg=$arg ;;
+ esac
+ libtool_args="$libtool_args $qarg"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command="$compile_command @SYMFILE@"
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ else
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir="$arg"
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat $save_arg`
+ do
+# moreargs="$moreargs $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ done
+ else
+ $echo "$modename: link input file \`$save_arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath="$rpath $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath="$xrpath $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ xcompiler)
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ xlinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $wl$qarg"
+ prev=
+ compile_command="$compile_command $wl$qarg"
+ finalize_command="$finalize_command $wl$qarg"
+ continue
+ ;;
+ xcclinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ shrext)
+ shrext_cmds="$arg"
+ prev=
+ continue
+ ;;
+ darwin_framework)
+ compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ prev=
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg="$arg"
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+ finalize_command="$finalize_command $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+ continue
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: more than one -exported-symbols argument is not allowed"
+ exit $EXIT_FAILURE
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework)
+ prev=darwin_framework
+ compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ dir="$absdir"
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "*) ;;
+ *)
+ deplibs="$deplibs -L$dir"
+ lib_search_path="$lib_search_path $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+ *-*-cygwin* | *-*-pw32* | *-*-beos*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-mingw* | *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ deplibs="$deplibs -framework System"
+ continue
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ -model)
+ compile_command="$compile_command $arg"
+ compiler_flags="$compiler_flags $arg"
+ finalize_command="$finalize_command $arg"
+ prev=xcompiler
+ continue
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+ compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+ # -r[0-9][0-9]* specifies the processor on the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+ # +DA*, +DD* enable 64-bit mode on the HP compiler
+ # -q* pass through compiler args for the IBM compiler
+ # -m* pass through architecture-specific compiler args for GCC
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
+
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ if test "$with_gcc" = "yes" ; then
+ compiler_flags="$compiler_flags $arg"
+ fi
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # in order for the loader to find any dlls it needs.
+ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ continue
+ ;;
+
+ -static)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Wl,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $wl$flag"
+ linker_flags="$linker_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+
+ *.$objext)
+ # A standard object.
+ objs="$objs $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ deplibs="$deplibs $arg"
+ old_deplibs="$old_deplibs $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+ dlfiles="$dlfiles $arg"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+ dlprefiles="$dlprefiles $arg"
+ prev=
+ else
+ deplibs="$deplibs $arg"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+ done # argument parsing loop
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+ libobjs_save="$libobjs"
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
+ # Create the object directory.
+ if test ! -d "$output_objdir"; then
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$output_objdir"; then
+ exit $status
+ fi
+ fi
+
+ # Determine the type of output
+ case $output in
+ "")
+ $echo "$modename: you must specify an output file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ case $host in
+ *cygwin* | *mingw* | *pw32*)
+ # don't eliminate duplications in $postdeps and $predeps
+ duplicate_compiler_generated_deps=yes
+ ;;
+ *)
+ duplicate_compiler_generated_deps=$duplicate_deps
+ ;;
+ esac
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ libs="$libs $deplib"
+ done
+
+ if test "$linkmode" = lib; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+ esac
+ pre_post_deps="$pre_post_deps $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+ case $linkmode in
+ lib)
+ passes="conv link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=no
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+ for pass in $passes; do
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan"; then
+ libs="$deplibs"
+ deplibs=
+ fi
+ if test "$linkmode" = prog; then
+ case $pass in
+ dlopen) libs="$dlfiles" ;;
+ dlpreopen) libs="$dlprefiles" ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ if test "$pass" = dlopen; then
+ # Collect dlpreopened libraries
+ save_deplibs="$deplibs"
+ deplibs=
+ fi
+ for deplib in $libs; do
+ lib=
+ found=no
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags $deplib"
+ fi
+ continue
+ ;;
+ -l*)
+ if test "$linkmode" != lib && test "$linkmode" != prog; then
+ $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+ continue
+ fi
+ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib="$searchdir/lib${name}${search_ext}"
+ if test -f "$lib"; then
+ if test "$search_ext" = ".la"; then
+ found=yes
+ else
+ found=no
+ fi
+ break 2
+ fi
+ done
+ done
+ if test "$found" != yes; then
+ # deplib doesn't seem to be a libtool library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ else # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if (${SED} -e '2q' $lib |
+ grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ library_names=
+ old_library=
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ for l in $old_library $library_names; do
+ ll="$l"
+ done
+ if test "X$ll" = "X$old_library" ; then # only static version available
+ found=no
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+ lib=$ladir/$old_library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ fi
+ ;; # -l
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test "$pass" = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ prog)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test "$pass" = scan; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ *)
+ $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test "$pass" = link; then
+ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la) lib="$deplib" ;;
+ *.$libext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ valid_a_lib=no
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ if eval $echo \"$deplib\" 2>/dev/null \
+ | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=yes
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=yes
+ ;;
+ esac
+ if test "$valid_a_lib" != yes; then
+ $echo
+ $echo "*** Warning: Trying to link with static lib archive $deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because the file extensions .$libext of this argument makes me believe"
+ $echo "*** that it is just a static archive that I should not used here."
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the"
+ $echo "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ fi
+ continue
+ ;;
+ prog)
+ if test "$pass" != link; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ elif test "$linkmode" = prog; then
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ newdlprefiles="$newdlprefiles $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ newdlfiles="$newdlfiles $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=yes
+ continue
+ ;;
+ esac # case $deplib
+ if test "$found" = yes || test -f "$lib"; then :
+ else
+ $echo "$modename: cannot find the library \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+ fi
+
+ if test "$pass" = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $ladir/$objdir/$old_library"
+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
+ $echo "$modename: \`$lib' is not a convenience library" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+ if test -z "$linklib"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # This library was specified with -dlopen.
+ if test "$pass" = dlopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test -z "$dlname" ||
+ test "$dlopen_support" != yes ||
+ test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ dlprefiles="$dlprefiles $lib $dependency_libs"
+ else
+ newdlfiles="$newdlfiles $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+ abs_ladir="$ladir"
+ fi
+ ;;
+ esac
+ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ $echo "$modename: warning: library \`$lib' was moved." 1>&2
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+ dir="$libdir"
+ absdir="$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir="$ladir"
+ absdir="$abs_ladir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ fi
+ fi # $installed = yes
+ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+ # This library was specified with -dlpreopen.
+ if test "$pass" = dlpreopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ newdlprefiles="$newdlprefiles $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ newdlprefiles="$newdlprefiles $dir/$dlname"
+ else
+ newdlprefiles="$newdlprefiles $dir/$linklib"
+ fi
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test "$linkmode" = lib; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test "$linkmode" = prog && test "$pass" != link; then
+ newlib_search_path="$newlib_search_path $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
+ test "$build_libtool_libs" = no; then
+ linkalldeplibs=yes
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+ esac
+ # Need to link against all dependency_libs?
+ if test "$linkalldeplibs" = yes; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test "$linkmode,$pass" = "prog,link"; then
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath " in
+ *" $dir "*) ;;
+ *" $absdir "*) ;;
+ *) temp_rpath="$temp_rpath $dir" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+ need_relink=yes
+ fi
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on
+ # some systems (darwin)
+ if test "$shouldnotlink" = yes && test "$pass" = link ; then
+ $echo
+ if test "$linkmode" = prog; then
+ $echo "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $echo "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $echo "*** $linklib is not portable!"
+ fi
+ if test "$linkmode" = lib &&
+ test "$hardcode_into_libs" = yes; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+ libname=`eval \\$echo \"$libname_spec\"`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw*)
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot="$soname"
+ soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+ newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ $show "extracting exported symbol list from \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$extract_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ $show "generating import library for \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$old_archive_from_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test "$linkmode" = prog || test "$mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ case $host in
+ *-*-sco3.2v5* ) add_dir="-L$dir" ;;
+ *-*-darwin* )
+ # if the lib is a module then we can not link against
+ # it, someone is ignoring the new warnings I added
+ if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
+ $echo "** Warning, lib $linklib is a module, not a shared library"
+ if test -z "$old_library" ; then
+ $echo
+ $echo "** And there doesn't seem to be a static archive available"
+ $echo "** The link will probably fail, sorry"
+ else
+ add="$dir/$old_library"
+ fi
+ fi
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case $host in
+ *-*-sunos*) add_shlibpath="$dir" ;;
+ esac
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test "$hardcode_direct" = yes; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$dir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case "$libdir" in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ $echo "$modename: configuration error: unsupported hardcode properties"
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+ esac
+ fi
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test "$hardcode_direct" != yes && \
+ test "$hardcode_minus_L" != yes && \
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test "$linkmode" = prog || test "$mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$libdir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
+ add="$inst_prefix_dir$libdir/$linklib"
+ else
+ add="$libdir/$linklib"
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case "$libdir" in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ fi
+
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test "$linkmode" = prog; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test "$build_libtool_libs" = yes; then
+ # Not a shared library
+ if test "$deplibs_check_method" != pass_all; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ $echo
+ $echo "*** Warning: This system can not link to static lib archive $lib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have."
+ if test "$module" = yes; then
+ $echo "*** But as you try to build a module library, libtool will still create "
+ $echo "*** a static module, that should work as long as the dlopening application"
+ $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ convenience="$convenience $dir/$old_library"
+ old_convenience="$old_convenience $dir/$old_library"
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test "$linkmode" = lib; then
+ if test -n "$dependency_libs" &&
+ { test "$hardcode_into_libs" != yes ||
+ test "$build_old_libs" = yes ||
+ test "$link_static" = yes; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath="$xrpath $temp_xrpath";;
+ esac;;
+ *) temp_deplibs="$temp_deplibs $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ newlib_search_path="$newlib_search_path $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+
+ if test "$link_all_deplibs" != no; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
+ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$deplib" && dir="."
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+ absdir="$dir"
+ fi
+ ;;
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="$absdir/$objdir"
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$absdir" != "$libdir"; then
+ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+ fi
+ path="$absdir"
+ fi
+ depdepl=
+ case $host in
+ *-*-darwin*)
+ # we do not want to link against static libs,
+ # but need to link against shared
+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names" ; then
+ for tmp in $deplibrary_names ; do
+ depdepl=$tmp
+ done
+ if test -f "$path/$depdepl" ; then
+ depdepl="$path/$depdepl"
+ fi
+ # do not add paths which are already there
+ case " $newlib_search_path " in
+ *" $path "*) ;;
+ *) newlib_search_path="$newlib_search_path $path";;
+ esac
+ fi
+ path=""
+ ;;
+ *)
+ path="-L$path"
+ ;;
+ esac
+ ;;
+ -l*)
+ case $host in
+ *-*-darwin*)
+ # Again, we only want to link against shared libraries
+ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+ for tmp in $newlib_search_path ; do
+ if test -f "$tmp/lib$tmp_libs.dylib" ; then
+ eval depdepl="$tmp/lib$tmp_libs.dylib"
+ break
+ fi
+ done
+ path=""
+ ;;
+ *) continue ;;
+ esac
+ ;;
+ *) continue ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ case " $deplibs " in
+ *" $depdepl "*) ;;
+ *) deplibs="$depdepl $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ dependency_libs="$newdependency_libs"
+ if test "$pass" = dlpreopen; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test "$pass" != dlopen; then
+ if test "$pass" != conv; then
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path="$lib_search_path $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ fi
+
+ if test "$linkmode,$pass" != "prog,link"; then
+ vars="deplibs"
+ else
+ vars="compile_deplibs finalize_deplibs"
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs ; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=""
+ ;;
+ esac
+ if test -n "$i" ; then
+ tmp_libs="$tmp_libs $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test "$linkmode" = prog; then
+ dlfiles="$newdlfiles"
+ dlprefiles="$newdlprefiles"
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+ fi
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ objs="$objs$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case $outputname in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test "$deplibs_check_method" != pass_all; then
+ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+ exit $EXIT_FAILURE
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the non-libtool"
+ $echo "*** objects $objs is not portable!"
+ libobjs="$libobjs $objs"
+ fi
+ fi
+
+ if test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+ fi
+
+ set dummy $rpath
+ if test "$#" -gt 2; then
+ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+ fi
+ install_libdir="$2"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a `.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+ fi
+ else
+
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ IFS="$save_ifs"
+
+ if test -n "$8"; then
+ $echo "$modename: too many parameters to \`-version-info'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major="$2"
+ number_minor="$3"
+ number_revision="$4"
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # which has an extra 1 added just for fun
+ #
+ case $version_type in
+ darwin|linux|osf|windows)
+ current=`expr $number_major + $number_minor`
+ age="$number_minor"
+ revision="$number_revision"
+ ;;
+ freebsd-aout|freebsd-elf|sunos)
+ current="$number_major"
+ revision="$number_minor"
+ age="0"
+ ;;
+ irix|nonstopux)
+ current=`expr $number_major + $number_minor - 1`
+ age="$number_minor"
+ revision="$number_minor"
+ ;;
+ esac
+ ;;
+ no)
+ current="$2"
+ revision="$3"
+ age="$4"
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ # Darwin ld doesn't like 0 for these options...
+ minor_current=`expr $current + 1`
+ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current";
+ ;;
+
+ irix | nonstopux)
+ major=`expr $current - $age + 1`
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test "$loop" -ne 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
+
+ # Before this point, $major must not contain `.'.
+ major=.$major
+ versuffix="$major.$revision"
+ ;;
+
+ linux)
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ major=.`expr $current - $age`
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test "$loop" -ne 0; do
+ iface=`expr $current - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ verstring="$verstring:${current}.0"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 filesystems.
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring="0.0"
+ ;;
+ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+ fi
+
+ if test "$mode" != relink; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$echo "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+ if test "X$precious_files_regex" != "X"; then
+ if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ removelist="$removelist $p"
+ ;;
+ *) ;;
+ esac
+ done
+ if test -n "$removelist"; then
+ $show "${rm}r $removelist"
+ $run ${rm}r $removelist
+ fi
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ for path in $notinst_path; do
+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+ deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
+ done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ temp_xrpath="$temp_xrpath -R$libdir"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles="$dlfiles"
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) dlfiles="$dlfiles $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles="$dlprefiles"
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) dlprefiles="$dlprefiles $lib" ;;
+ esac
+ done
+
+ if test "$build_libtool_libs" = yes; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ deplibs="$deplibs -framework System"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test "$build_libtool_need_lc" = "yes"; then
+ deplibs="$deplibs -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $rm conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $rm conftest
+ $LTCC -o conftest conftest.c $deplibs
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" -ne "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which I believe you do not have"
+ $echo "*** because a test_compile did reveal that the linker did not use it for"
+ $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ $rm conftest
+ $LTCC -o conftest conftest.c $i
+ # Did it work?
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because a test_compile did reveal that the linker did not use this one"
+ $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning! Library $i is needed by this library but I was not able to"
+ $echo "*** make it link in! You will probably need to install it or some"
+ $echo "*** library that it depends on before this library will be fully"
+ $echo "*** functional. Installing it before continuing would be even better."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method
+ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check above in file_magic test
+ if eval $echo \"$potent_lib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+ -e 's/ -[LR][^ ]*//g'`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ for i in $predeps $postdeps ; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+ done
+ fi
+ if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
+ | grep . >/dev/null; then
+ $echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ $echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ $echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ $echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ $echo
+ $echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $echo "*** dependencies of module $libname. Therefore, libtool will create"
+ $echo "*** a static module, that should work as long as the dlopening"
+ $echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ $echo "*** The inter-library dependencies that have been dropped here will be"
+ $echo "*** automatically added whenever a program is linked with this library"
+ $echo "*** or is declared to -dlopen it."
+
+ if test "$allow_undefined" = no; then
+ $echo
+ $echo "*** Since this library must not contain undefined symbols,"
+ $echo "*** because either the platform does not support them or"
+ $echo "*** it was explicitly requested with -no-undefined,"
+ $echo "*** libtool will only create a static version of it."
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ if test "$hardcode_into_libs" = yes; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ dep_rpath="$dep_rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ if test -n "$hardcode_libdir_flag_spec_ld"; then
+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+ else
+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+ fi
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib="$output_objdir/$realname"
+ for link
+ do
+ linknames="$linknames $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ if len=`expr "X$cmd" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ $show "using reloadable object file for export list..."
+ skipped_export=:
+ fi
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+ $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+ $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ tmp_deplibs="$tmp_deplibs $test_deplib"
+ ;;
+ esac
+ done
+ deplibs="$tmp_deplibs"
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ libobjs="$libobjs $func_extract_archives_result"
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linker_flags="$linker_flags $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise.
+ $echo "creating reloadable object files..."
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ output_la=`$echo "X$output" | $Xsed -e "$basename"`
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ delfiles=
+ last_robj=
+ k=1
+ output=$output_objdir/$output_la-${k}.$objext
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+ if test "X$objlist" = X ||
+ { len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len"; }; then
+ objlist="$objlist $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test "$k" -eq 1 ; then
+ # The first file doesn't have a previous command to add.
+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-${k}.$objext
+ k=`expr $k + 1`
+ output=$output_objdir/$output_la-${k}.$objext
+ objlist=$obj
+ len=1
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+ if ${skipped_export-false}; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+ fi
+
+ # Set up a command to remove the reloadable object files
+ # after they are used.
+ i=0
+ while test "$i" -lt "$k"
+ do
+ i=`expr $i + 1`
+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+ done
+
+ $echo "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+
+ # Append the command to remove the reloadable object files
+ # to the just-reset $cmds.
+ eval cmds=\"\$cmds~\$rm $delfiles\"
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ fi
+
+ case $output in
+ *.lo)
+ if test -n "$objs$old_deplibs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $run $rm $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${obj}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $run eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+ esac
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+ fi
+
+ if test "$preload" = yes; then
+ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+ fi
+ fi
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ case $host in
+ *darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ if test "$tagname" = CXX ; then
+ compile_command="$compile_command ${wl}-bind_at_load"
+ finalize_command="$finalize_command ${wl}-bind_at_load"
+ fi
+ ;;
+ esac
+
+ compile_command="$compile_command $compile_deplibs"
+ finalize_command="$finalize_command $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$libdir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ fi
+
+ dlsyms=
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ dlsyms="${outputname}S.c"
+ else
+ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+ fi
+ fi
+
+ if test -n "$dlsyms"; then
+ case $dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${outputname}.nm"
+
+ $show "$rm $nlist ${nlist}S ${nlist}T"
+ $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+ # Parse the name list into a source file.
+ $show "creating $output_objdir/$dlsyms"
+
+ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ $show "generating symbol list for \`$output'"
+
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$outputname.exp"
+ $run $rm $export_symbols
+ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ else
+ $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+ name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+ $run eval '$echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -z "$run"; then
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if grep -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+ else
+ $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+ fi
+
+ $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+"
+
+ case $host in
+ *cygwin* | *mingw* )
+ $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+ runtime relocations are performed -- see ld's documentation
+ on pseudo-relocs */
+struct {
+"
+ ;;
+ * )
+ $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+ ;;
+ esac
+
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ fi
+
+ pic_flag_for_symtable=
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag";;
+ esac
+ esac
+
+ # Now compile the dynamic symbol file.
+ $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ fi
+
+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+ status=$?
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+ exit $status
+ fi
+
+ if test -n "$shlibpath_var"; then
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+ ;;
+ *)
+ # Relative path: add a thisdir entry.
+ rpath="$rpath\$thisdir/$dir:"
+ ;;
+ esac
+ done
+ temp_rpath="$rpath"
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$no_install" = yes; then
+ # We don't need to create a wrapper script.
+ link_command="$compile_var$compile_command$compile_rpath"
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $run $rm $output
+ # Link the executable and exit
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+
+ # Now create the wrapper script.
+ $show "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Quote $echo for shipping.
+ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+ case $progpath in
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if our run command is non-null.
+ if test -z "$run"; then
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
+ cwrapper=`$echo ${output}.exe`
+ $rm $cwrappersource $cwrapper
+ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+
+ Currently, it simply execs the wrapper *script* "/bin/sh $output",
+ but could eventually absorb all of the scripts functionality and
+ exec $objdir/$outputname directly.
+*/
+EOF
+ cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+#define DIR_SEPARATOR '/'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+ defined (__OS2__)
+#define HAVE_DOS_BASED_FILE_SYSTEM
+#ifndef DIR_SEPARATOR_2
+#define DIR_SEPARATOR_2 '\\'
+#endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+char * basename (const char *name);
+char * fnqualify(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int i;
+
+ program_name = (char *) xstrdup ((char *) basename (argv[0]));
+ newargz = XMALLOC(char *, argc+2);
+EOF
+
+ cat >> $cwrappersource <<EOF
+ newargz[0] = "$SHELL";
+EOF
+
+ cat >> $cwrappersource <<"EOF"
+ newargz[1] = fnqualify(argv[0]);
+ /* we know the script has the same name, without the .exe */
+ /* so make sure newargz[1] doesn't end in .exe */
+ strendzap(newargz[1],".exe");
+ for (i = 1; i < argc; i++)
+ newargz[i+1] = xstrdup(argv[i]);
+ newargz[argc+1] = NULL;
+EOF
+
+ cat >> $cwrappersource <<EOF
+ execv("$SHELL",newargz);
+EOF
+
+ cat >> $cwrappersource <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void * p = (void *) malloc (num);
+ if (!p)
+ lt_fatal ("Memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+char *
+basename (const char *name)
+{
+ const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha (name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return (char *) base;
+}
+
+char *
+fnqualify(const char *path)
+{
+ size_t size;
+ char *p;
+ char tmp[LT_PATHMAX + 1];
+
+ assert(path != NULL);
+
+ /* Is it qualified already? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ if (isalpha (path[0]) && path[1] == ':')
+ return xstrdup (path);
+#endif
+ if (IS_DIR_SEPARATOR (path[0]))
+ return xstrdup (path);
+
+ /* prepend the current directory */
+ /* doesn't handle '~' */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal ("getcwd failed");
+ size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
+ p = XMALLOC(char, size);
+ sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
+ return p;
+}
+
+char *
+strendzap(char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert(str != NULL);
+ assert(pat != NULL);
+
+ len = strlen(str);
+ patlen = strlen(pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (strcmp(str, pat) == 0)
+ *str = '\0';
+ }
+ return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+ const char * message, va_list ap)
+{
+ fprintf (stderr, "%s: %s: ", program_name, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+ va_end (ap);
+}
+EOF
+ # we should really use a build-platform specific compiler
+ # here, but OTOH, the wrappers (shell script and this C one)
+ # are only useful if you want to execute the "real" binary.
+ # Since the "real" binary is built for $host, then this
+ # wrapper might as well be built for $host, too.
+ $run $LTCC -s -o $cwrapper $cwrappersource
+ ;;
+ esac
+ $rm $output
+ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+ $echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variable:
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$echo are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ echo=\"$qecho\"
+ file=\"\$0\"
+ # Make sure echo works.
+ if test \"X\$1\" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+ # Yippee, \$echo works!
+ :
+ else
+ # Restart under the correct shell, and then maybe \$echo will work.
+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+ fi
+ fi\
+"
+ $echo >> $output "\
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+ done
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ $echo >> $output "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" || \\
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $mkdir \"\$progdir\"
+ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+ $echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $echo \"\$relink_command_output\" >&2
+ $rm \"\$progdir/\$file\"
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $rm \"\$progdir/\$program\";
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+ $echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $echo >> $output "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $echo >> $output "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ # fixup the dll searchpath if we need to.
+ if test -n "$dllsearchpath"; then
+ $echo >> $output "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ $echo >> $output "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+ exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $echo >> $output "\
+ exec \$progdir/\$program \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $echo >> $output "\
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+ exit $EXIT_FAILURE
+ fi
+ else
+ # The program doesn't exist.
+ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+ \$echo \"This script is just a wrapper for \$program.\" 1>&2
+ $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi\
+"
+ chmod +x $output
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$old_deplibs $non_pic_objects"
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $addlibs
+ oldobjs="$oldobjs $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ cmds=$old_archive_from_new_cmds
+ else
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ $echo "X$obj" | $Xsed -e 's%^.*/%%'
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "copying selected object files to avoid basename conflicts..."
+
+ if test -z "$gentop"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "$mkdir $gentop"
+ $run $mkdir "$gentop"
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ fi
+
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ counter=`expr $counter + 1`
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ $run ln "$obj" "$gentop/$newobj" ||
+ $run cp "$obj" "$gentop/$newobj"
+ oldobjs="$oldobjs $gentop/$newobj"
+ ;;
+ *) oldobjs="$oldobjs $obj" ;;
+ esac
+ done
+ fi
+
+ eval cmds=\"$old_archive_cmds\"
+
+ if len=`expr "X$cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ $echo "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ for obj in $save_oldobjs
+ do
+ oldobjs="$objlist $obj"
+ objlist="$objlist $obj"
+ eval test_cmds=\"$old_archive_cmds\"
+ if len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj" ; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test "X$oldobjs" = "X" ; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ eval cmd=\"$cmd\"
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$generated"; then
+ $show "${rm}r$generated"
+ $run ${rm}r$generated
+ fi
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ $show "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ if test "$hardcode_automatic" = yes ; then
+ relink_command=
+ fi
+
+
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdependency_libs="$newdependency_libs $libdir/$name"
+ ;;
+ *) newdependency_libs="$newdependency_libs $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+ newdlfiles=
+ for lib in $dlfiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlfiles="$newdlfiles $libdir/$name"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlprefiles="$newdlprefiles $libdir/$name"
+ done
+ dlprefiles="$newdlprefiles"
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlfiles="$newdlfiles $abs"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlprefiles="$newdlprefiles $abs"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+ $rm $output
+ # place dlname in correct position for cygwin
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+ esac
+ $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test "$installed" = no && test "$need_relink" = yes; then
+ $echo >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ fi
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool install mode
+ install)
+ modename="$modename: install"
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$arg "
+ arg="$1"
+ shift
+ else
+ install_prog=
+ arg="$nonopt"
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog$arg"
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ for arg
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+ dest="$arg"
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+ -f) prev="-f" ;;
+ -g) prev="-g" ;;
+ -m) prev="-m" ;;
+ -o) prev="-o" ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*) ;;
+
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+ dest="$arg"
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog $arg"
+ done
+
+ if test -z "$install_prog"; then
+ $echo "$modename: you must specify an install program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prev' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ $echo "$modename: no file or destination specified" 1>&2
+ else
+ $echo "$modename: you must specify a destination" 1>&2
+ fi
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Strip any trailing slash from the destination.
+ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$destdir" = "X$dest" && destdir=.
+ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files
+ if test "$#" -gt 2; then
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
+
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ library_names=
+ old_library=
+ relink_command=
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs="$current_libdirs $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs="$future_libdirs $libdir" ;;
+ esac
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ if test "$inst_prefix_dir" = "$destdir"; then
+ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+ else
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+ fi
+
+ $echo "$modename: warning: relinking \`$file'" 1>&2
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+ realname="$2"
+ shift
+ shift
+
+ srcname="$realname"
+ test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ $show "$install_prog $dir/$srcname $destdir/$realname"
+ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+ if test -n "$stripme" && test -n "$striplib"; then
+ $show "$striplib $destdir/$realname"
+ $run eval "$striplib $destdir/$realname" || exit $?
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ fi
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ cmds=$postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Install the pseudo-library for information purposes.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ instname="$dir/$name"i
+ $show "$install_prog $instname $destdir/$name"
+ $run eval "$install_prog $instname $destdir/$name" || exit $?
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ if test -n "$destfile"; then
+ $show "$install_prog $file $destfile"
+ $run eval "$install_prog $file $destfile" || exit $?
+ fi
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=""
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ stripped_ext=".exe"
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin*|*mingw*)
+ wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+ notinst_deplibs=
+ relink_command=
+
+ # To insure that "foo" is sourced, and not "foo.exe",
+ # finese the cygwin/MSYS system by explicitly sourcing "foo."
+ # which disallows the automatic-append-.exe behavior.
+ case $build in
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+ *) wrapperdot=${wrapper} ;;
+ esac
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . ${wrapperdot} ;;
+ *) . ./${wrapperdot} ;;
+ esac
+
+ # Check the variables that should have been set.
+ if test -z "$notinst_deplibs"; then
+ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ finalize=yes
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
+ relink_command=
+ # To insure that "foo" is sourced, and not "foo.exe",
+ # finese the cygwin/MSYS system by explicitly sourcing "foo."
+ # which disallows the automatic-append-.exe behavior.
+ case $build in
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+ *) wrapperdot=${wrapper} ;;
+ esac
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . ${wrapperdot} ;;
+ *) . ./${wrapperdot} ;;
+ esac
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+ tmpdir="/tmp"
+ test -n "$TMPDIR" && tmpdir="$TMPDIR"
+ tmpdir="$tmpdir/libtool-$$"
+ save_umask=`umask`
+ umask 0077
+ if $mkdir "$tmpdir"; then
+ umask $save_umask
+ else
+ umask $save_umask
+ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+ continue
+ fi
+ file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ ${rm}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ $echo "$modename: warning: cannot relink \`$file'" 1>&2
+ fi
+ else
+ # Install the binary that we compiled earlier.
+ file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyways
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+ ;;
+ esac
+ ;;
+ esac
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+
+ $show "$install_prog $file $oldlib"
+ $run eval "$install_prog \$file \$oldlib" || exit $?
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ $show "$old_striplib $oldlib"
+ $run eval "$old_striplib $oldlib" || exit $?
+ fi
+
+ # Do each command in the postinstall commands.
+ cmds=$old_postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$future_libdirs"; then
+ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+ fi
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ test -n "$run" && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool finish mode
+ finish)
+ modename="$modename: finish"
+ libdirs="$nonopt"
+ admincmds=
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for dir
+ do
+ libdirs="$libdirs $dir"
+ done
+
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ cmds=$finish_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
+ $cmd"
+ done
+ IFS="$save_ifs"
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $run eval "$cmds" || admincmds="$admincmds
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ test "$show" = : && exit $EXIT_SUCCESS
+
+ $echo "----------------------------------------------------------------------"
+ $echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $echo " $libdir"
+ done
+ $echo
+ $echo "If you ever happen to want to link against installed libraries"
+ $echo "in a given directory, LIBDIR, you must either use libtool, and"
+ $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+ $echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ $echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ $echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ $echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $echo " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $echo " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ $echo
+ $echo "See any operating system documentation about shared libraries for"
+ $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ $echo "----------------------------------------------------------------------"
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool execute mode
+ execute)
+ modename="$modename: execute"
+
+ # The first argument is the command name.
+ cmd="$nonopt"
+ if test -z "$cmd"; then
+ $echo "$modename: you must specify a COMMAND" 1>&2
+ $echo "$help"
+ exit $EXIT_FAILURE
+ fi
+
+ # Handle -dlopen flags immediately.
+ for file in $execute_dlfiles; do
+ if test ! -f "$file"; then
+ $echo "$modename: \`$file' is not a file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ dir=
+ case $file in
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+
+ if test -f "$dir/$objdir/$dlname"; then
+ dir="$dir/$objdir"
+ else
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+ ;;
+
+ *)
+ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -*) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+ args="$args \"$file\""
+ done
+
+ if test -z "$run"; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
+
+ # Now prepare to actually exec the command.
+ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool clean and uninstall mode
+ clean | uninstall)
+ modename="$modename: $mode"
+ rm="$nonopt"
+ files=
+ rmforce=
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ for arg
+ do
+ case $arg in
+ -f) rm="$rm $arg"; rmforce=yes ;;
+ -*) rm="$rm $arg" ;;
+ *) files="$files $arg" ;;
+ esac
+ done
+
+ if test -z "$rm"; then
+ $echo "$modename: you must specify an RM program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ rmdirs=
+
+ origobjdir="$objdir"
+ for file in $files; do
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$file"; then
+ dir=.
+ objdir="$origobjdir"
+ else
+ objdir="$dir/$origobjdir"
+ fi
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ test "$mode" = uninstall && objdir="$dir"
+
+ # Remember objdir for removal later, being careful to avoid duplicates
+ if test "$mode" = clean; then
+ case " $rmdirs " in
+ *" $objdir "*) ;;
+ *) rmdirs="$rmdirs $objdir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if (test -L "$file") >/dev/null 2>&1 \
+ || (test -h "$file") >/dev/null 2>&1 \
+ || test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif test "$rmforce" = yes; then
+ continue
+ fi
+
+ rmfiles="$file"
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles="$rmfiles $objdir/$n"
+ done
+ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+ test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+ if test "$mode" = uninstall; then
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ cmds=$postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ cmds=$old_postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+ # Read the .lo file
+ . $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" \
+ && test "$pic_object" != none; then
+ rmfiles="$rmfiles $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" \
+ && test "$non_pic_object" != none; then
+ rmfiles="$rmfiles $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test "$mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ noexename=`$echo $name|${SED} 's,.exe$,,'`
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ rmfiles="$rmfiles $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ relink_command=
+ . $dir/$noexename
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ rmfiles="$rmfiles $objdir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles || exit_status=1
+ done
+ objdir="$origobjdir"
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ $show "rmdir $dir"
+ $run rmdir $dir >/dev/null 2>&1
+ fi
+ done
+
+ exit $exit_status
+ ;;
+
+ "")
+ $echo "$modename: you must specify a MODE" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test -z "$exec_cmd"; then
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+ eval exec $exec_cmd
+ exit $EXIT_FAILURE
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+-n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --finish same as \`--mode=finish'
+ --help display this help message and exit
+ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
+ --quiet same as \`--silent'
+ --silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
+ --version print version information
+
+MODE must be one of the following:
+
+ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool@gnu.org>."
+ exit $EXIT_SUCCESS
+ ;;
+
+clean)
+ $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+compile)
+ $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -prefer-pic try to building PIC objects only
+ -prefer-non-pic try to building non-PIC objects only
+ -static always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+execute)
+ $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+finish)
+ $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+install)
+ $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+link)
+ $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -static do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+uninstall)
+ $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+*)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/m4/Makefile.am b/m4/Makefile.am
@@ -1 +1,6 @@
-EXTRA_DIST = openssl.m4 sasl2.m4
+EXTRA_DIST = \
+ evolution-plugin.m4 \
+ gnome.m4 \
+ openssl.m4 \
+ reentrant-resolver.m4 \
+ sasl2.m4
diff --git a/m4/Makefile.in b/m4/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -33,12 +33,18 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
subdir = m4
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -51,6 +57,7 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -63,15 +70,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -88,10 +104,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -102,9 +114,12 @@ 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@
@@ -117,12 +132,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -130,7 +148,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -147,25 +164,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -186,20 +206,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -214,8 +253,18 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
-EXTRA_DIST = openssl.m4 sasl2.m4
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+EXTRA_DIST = \
+ evolution-plugin.m4 \
+ gnome.m4 \
+ openssl.m4 \
+ reentrant-resolver.m4 \
+ sasl2.m4
+
all: all-am
.SUFFIXES:
@@ -248,6 +297,15 @@ $(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:
tags: TAGS
TAGS:
@@ -313,11 +371,11 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
@@ -345,7 +403,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
@@ -357,13 +415,14 @@ ps-am:
uninstall-am: uninstall-info-am
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic 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-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-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-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-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/m4/evolution-plugin.m4 b/m4/evolution-plugin.m4
@@ -0,0 +1,59 @@
+# This file is part of Mail Notification.
+#
+# Copyright (C) 2005 Jean-Yves Lefort.
+#
+# As a special exception to the Mail Notification licensing terms,
+# Jean-Yves Lefort gives unlimited permission to copy, distribute and
+# modify this file.
+
+dnl AM_PATH_EVOLUTION_PLUGIN([MINIMUM-VERSION], [SOURCE-FILES], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl
+AC_DEFUN([AM_PATH_EVOLUTION_PLUGIN],
+[AC_ARG_WITH(evolution-source-dir,
+AC_HELP_STRING([--with-evolution-source-dir=DIR], [path to the Evolution source tree]),
+[evolution_source_dir="$withval"], [evolution_source_dir=""])
+
+found=no
+
+AC_MSG_CHECKING([for the Evolution source tree directory])
+if test -z "$evolution_source_dir"; then
+ AC_MSG_RESULT([not given, use --with-evolution-source-dir=DIR])
+else
+ AC_MSG_RESULT([$evolution_source_dir])
+
+ if test "x$evolution_source_dir" != "xno"; then
+ found=yes
+ m4_foreach(evofile, [ifelse([$2],, evolution-plugin.pc.in, [$2])],
+[
+if test $found = yes; then
+ AC_CHECK_FILE($evolution_source_dir/evofile, [found=yes], [found=no])
+fi
+])
+ fi
+fi
+
+if test $found = yes; then
+ evolution_plugin_min_version=ifelse([$1],,, [>= $1])
+ PKG_CHECK_MODULES(EVOLUTION_PLUGIN, [evolution-plugin-2.2 $evolution_plugin_min_version],, [found=no])
+fi
+
+if test $found = yes; then
+ AC_MSG_CHECKING([for the Evolution plugin directory])
+ evolution_plugindir=`$PKG_CONFIG --variable=plugindir evolution-plugin-2.2 2>/dev/null`
+ if test -n "$evolution_plugindir"; then
+ AC_MSG_RESULT([$evolution_plugindir])
+ else
+ AC_MSG_RESULT([not found])
+ found=no
+ fi
+fi
+
+if test $found = yes; then
+ EVOLUTION_PLUGIN_CFLAGS="$EVOLUTION_PLUGIN_CFLAGS -I$evolution_source_dir"
+ ifelse([$3],, :, [$3])
+else
+ evolution_plugindir=""
+ ifelse([$4],, :, [$4])
+fi
+
+AC_SUBST(evolution_plugindir)])
diff --git a/m4/gnome.m4 b/m4/gnome.m4
@@ -0,0 +1,48 @@
+# This file is part of Mail Notification.
+#
+# Copyright (C) 2005 Jean-Yves Lefort.
+#
+# As a special exception to the Mail Notification licensing terms,
+# Jean-Yves Lefort gives unlimited permission to copy, distribute and
+# modify this file.
+
+dnl AM_PATH_GNOME_PREFIX([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl
+AC_DEFUN([AM_PATH_GNOME_PREFIX],
+[PKG_PROG_PKG_CONFIG
+
+AC_MSG_CHECKING([for the GNOME installation prefix])
+
+gnome_prefix=""
+if test -n "$PKG_CONFIG"; then
+ gnome_prefix=`$PKG_CONFIG --variable prefix libgnome-2.0`
+fi
+
+if test -n "$gnome_prefix"; then
+ AC_MSG_RESULT([$gnome_prefix])
+ ifelse([$1],, :, [$1])
+else
+ AC_MSG_RESULT([not found])
+ ifelse([$2],, :, [$2])
+fi
+
+AC_SUBST(gnome_prefix)])
+
+dnl AM_PATH_GNOME_CAPPLETDIR
+dnl
+AC_DEFUN([AM_PATH_GNOME_CAPPLETDIR],
+[PKG_PROG_PKG_CONFIG
+
+AC_MSG_CHECKING([for the GNOME capplet directory])
+
+# GNOME < 2.10
+gnome_cappletdir='${datadir}/control-center-2.0/capplets'
+
+if test -n "$PKG_CONFIG" && $PKG_CONFIG --exists 'libgnome-2.0 >= 2.10.0' >/dev/null 2>&1; then
+ # GNOME >= 2.10
+ gnome_cappletdir='${datadir}/applications'
+fi
+
+AC_MSG_RESULT([$gnome_cappletdir])
+
+AC_SUBST(gnome_cappletdir)])
diff --git a/m4/icu.m4 b/m4/icu.m4
@@ -1,67 +0,0 @@
-# This file is part of Mail Notification.
-#
-# Copyright (C) 2005 Jean-Yves Lefort.
-#
-# As a special exception to the Mail Notification licensing terms,
-# Jean-Yves Lefort gives unlimited permission to copy, distribute and
-# modify this file.
-
-dnl AM_PATH_ICU([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-dnl
-AC_DEFUN([AM_PATH_ICU],
-[AC_PATH_PROG(ICU_CONFIG, icu-config, no)
-
-if test "x$ICU_CONFIG" = xno; then
- ICU_CFLAGS=""
- ICU_LIBS=""
-
- ifelse([$3],, :, [$3])
-else
- ICU_CFLAGS=`$ICU_CONFIG --cppflags`
- ICU_LIBS=`$ICU_CONFIG --ldflags`
-
- # the version checking API we need has been introduced in 2.4
- icu_min_version=ifelse([$1],, 2.4, [$1])
-
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $ICU_CFLAGS"
- LIBS="$LIBS $ICU_LIBS"
-
- AC_MSG_CHECKING([for ICU - version >= $icu_min_version])
-
- AC_RUN_IFELSE([
-#include <string.h>
-#include <unicode/uversion.h>
-
-int main() {
- UVersionInfo min_version;
- UVersionInfo version;
-
- u_versionFromString(min_version, "$icu_min_version");
- u_getVersion(version);
-
- if (memcmp(min_version, version, U_MAX_VERSION_LENGTH) > 0)
- exit(1); /* version too old */
-
- exit(0);
-}
-], [found=yes], [found=no], [found=yes])
-
- AC_MSG_RESULT($found)
-
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
-
- if test $found = yes; then
- ifelse([$2],, :, [$2])
- else
- ICU_CFLAGS=""
- ICU_LIBS=""
-
- ifelse([$3],, :, [$3])
- fi
-fi
-
-AC_SUBST(ICU_CFLAGS)
-AC_SUBST(ICU_LIBS)])
diff --git a/m4/intltool.m4 b/m4/intltool.m4
@@ -0,0 +1,184 @@
+## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
+## Copyright (C) 2001 Eazel, Inc.
+## Author: Maciej Stachowiak <mjs@noisehavoc.org>
+## Kenneth Christiansen <kenneth@gnu.org>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 2 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL],
+[
+
+if test -n "$1"; then
+ AC_MSG_CHECKING(for intltool >= $1)
+
+ INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ printf "%d", $[1] * 100 + $[2]; }'`
+ INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $[2]; }' < ${ac_aux_dir}/intltool-update.in`
+ changequote({{,}})
+ INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split(${{2}}, VERSION, "."); printf "%d\n", VERSION[1] * 100 + VERSION[2];}' < ${ac_aux_dir}/intltool-update.in`
+ changequote([,])
+
+ if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+ else
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found. Your intltool is too old. You need intltool $1 or later.])
+ exit 1
+ fi
+fi
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@'
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+AC_SUBST(INTLTOOL_DESKTOP_RULE)
+AC_SUBST(INTLTOOL_DIRECTORY_RULE)
+AC_SUBST(INTLTOOL_KEYS_RULE)
+AC_SUBST(INTLTOOL_PROP_RULE)
+AC_SUBST(INTLTOOL_OAF_RULE)
+AC_SUBST(INTLTOOL_PONG_RULE)
+AC_SUBST(INTLTOOL_SERVER_RULE)
+AC_SUBST(INTLTOOL_SHEET_RULE)
+AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
+AC_SUBST(INTLTOOL_UI_RULE)
+AC_SUBST(INTLTOOL_XAM_RULE)
+AC_SUBST(INTLTOOL_KBD_RULE)
+AC_SUBST(INTLTOOL_XML_RULE)
+AC_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+AC_SUBST(INTLTOOL_CAVES_RULE)
+AC_SUBST(INTLTOOL_SCHEMAS_RULE)
+AC_SUBST(INTLTOOL_THEME_RULE)
+
+# Use the tools built into the package, not the ones that are installed.
+
+INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract'
+INTLTOOL_MERGE='$(top_builddir)/intltool-merge'
+INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
+
+AC_SUBST(INTLTOOL_EXTRACT)
+AC_SUBST(INTLTOOL_MERGE)
+AC_SUBST(INTLTOOL_UPDATE)
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+ AC_MSG_ERROR([perl not found; required for intltool])
+fi
+if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
+ AC_MSG_ERROR([perl 5.x required for intltool])
+fi
+if test "x$2" != "xno-xml"; then
+ AC_MSG_CHECKING([for XML::Parser])
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ AC_MSG_RESULT([ok])
+ else
+ AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+ fi
+fi
+
+AC_PATH_PROG(INTLTOOL_ICONV, iconv, iconv)
+AC_PATH_PROG(INTLTOOL_MSGFMT, msgfmt, msgfmt)
+AC_PATH_PROG(INTLTOOL_MSGMERGE, msgmerge, msgmerge)
+AC_PATH_PROG(INTLTOOL_XGETTEXT, xgettext, xgettext)
+
+# Remove file type tags (using []) from po/POTFILES.
+
+ifdef([AC_DIVERSION_ICMDS],[
+ AC_DIVERT_PUSH(AC_DIVERSION_ICMDS)
+ [mv -f po/POTFILES po/POTFILES.tmp
+ sed -e '/[[]encoding.*]/d' -e 's/[[].*] *//' < po/POTFILES.tmp > po/POTFILES
+ rm -f po/POTFILES.tmp
+ ]dnl
+ AC_DIVERT_POP()
+],[
+ ifdef([AC_CONFIG_COMMANDS_PRE],[
+ AC_CONFIG_COMMANDS_PRE([
+ [mv -f po/POTFILES po/POTFILES.tmp
+ sed -e '/[[]encoding.*]/d' -e 's/[[].*] *//' < po/POTFILES.tmp > po/POTFILES
+ rm -f po/POTFILES.tmp
+ ]dnl
+ ])
+ ])
+])
+
+# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
+
+AC_CONFIG_COMMANDS([intltool], [
+
+intltool_edit="-e 's#@INTLTOOL_EXTRACT@#`pwd`/intltool-extract#g' \
+ -e 's#@INTLTOOL_ICONV@#${INTLTOOL_ICONV}#g' \
+ -e 's#@INTLTOOL_MSGFMT@#${INTLTOOL_MSGFMT}#g' \
+ -e 's#@INTLTOOL_MSGMERGE@#${INTLTOOL_MSGMERGE}#g' \
+ -e 's#@INTLTOOL_XGETTEXT@#${INTLTOOL_XGETTEXT}#g' \
+ -e 's#@INTLTOOL_PERL@#${INTLTOOL_PERL}#g'"
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
+ > intltool-extract.out
+if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
+ rm -f intltool-extract.out
+else
+ mv -f intltool-extract.out intltool-extract
+fi
+chmod ugo+x intltool-extract
+chmod u+w intltool-extract
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-merge.in \
+ > intltool-merge.out
+if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then
+ rm -f intltool-merge.out
+else
+ mv -f intltool-merge.out intltool-merge
+fi
+chmod ugo+x intltool-merge
+chmod u+w intltool-merge
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-update.in \
+ > intltool-update.out
+if cmp -s intltool-update intltool-update.out 2>/dev/null; then
+ rm -f intltool-update.out
+else
+ mv -f intltool-update.out intltool-update
+fi
+chmod ugo+x intltool-update
+chmod u+w intltool-update
+
+], INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${INTLTOOL_ICONV}'
+MSGFMT='${INTLTOOL_MSGFMT}' MSGMERGE='${INTLTOOL_MSGMERGE}'
+XGETTEXT='${INTLTOOL_XGETTEXT}')
+
+])
+
+# deprecated macros
+AC_DEFUN([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])
+
diff --git a/m4/reentrant-resolver.m4 b/m4/reentrant-resolver.m4
@@ -0,0 +1,49 @@
+# This file is part of Mail Notification.
+#
+# Copyright (C) 2005 Jean-Yves Lefort.
+#
+# As a special exception to the Mail Notification licensing terms,
+# Jean-Yves Lefort gives unlimited permission to copy, distribute and
+# modify this file.
+
+dnl AC_REENTRANT_RESOLVER
+dnl
+AC_DEFUN([AC_REENTRANT_RESOLVER],
+[AC_ARG_WITH(reentrant-resolver,
+AC_HELP_STRING([--with-reentrant-resolver], [specify that the system resolver is reentrant [[autodetect]]]),
+[case "$withval" in
+ yes|no|autodetect) reentrant_resolver=$withval ;;
+ *) AC_MSG_ERROR([bad value $withval for --with-reentrant-resolver]) ;;
+esac], [reentrant_resolver=autodetect])
+
+if test $reentrant_resolver = autodetect; then
+ AC_MSG_CHECKING([if the system resolver is reentrant])
+
+ case "$target_os" in
+ # FreeBSD >= 5.3
+ freebsd5.[[3-9]]*|freebsd5.[[1-9]][[0-9]]*|freebsd[[6-9]]*|freebsd[[1-9]][[0-9]]*)
+ reentrant_resolver=yes ;;
+
+ # FreeBSD < 5.3, NetBSD, OpenBSD
+ freebsd*|netbsd*|openbsd*)
+ reentrant_resolver=no ;;
+
+ # Linux
+ linux*)
+ reentrant_resolver=yes ;;
+
+ *)
+ reentrant_resolver=unknown ;;
+ esac
+
+ if test $reentrant_resolver = unknown; then
+ reentrant_resolver=no
+ AC_MSG_RESULT([unknown, assuming it is not (use --with-reentrant-resolver to override)])
+ else
+ AC_MSG_RESULT($reentrant_resolver)
+ fi
+fi
+
+if test $reentrant_resolver = yes; then
+ AC_DEFINE(HAVE_REENTRANT_RESOLVER, 1, [Define to 1 if the system resolver is reentrant])
+fi])
diff --git a/missing b/missing
@@ -1,6 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+
+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
@@ -15,8 +19,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# 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
@@ -38,18 +42,24 @@ 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
;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-h|--h|--he|--hel|--help)
echo "\
@@ -74,11 +84,15 @@ Supported PROGRAM values:
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]"
+ 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 0.3 - GNU automake"
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
;;
-*)
@@ -87,9 +101,44 @@ Supported PROGRAM values:
exit 1
;;
- aclocal)
+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 missing on your system. You should only need it if
+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."
@@ -98,7 +147,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
autoconf)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -107,7 +156,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
autoheader)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -124,9 +173,9 @@ WARNING: \`$1' is missing on your system. You should only need it if
touch $touch_files
;;
- automake)
+ automake*)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -135,9 +184,32 @@ WARNING: \`$1' is missing on your system. You should only need it if
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' is missing on your system. You should only need it if
+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."
@@ -167,7 +239,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
lex|flex)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -190,7 +262,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
help2man)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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."
@@ -209,54 +281,52 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+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
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ # ... 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
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
- gnutar ${1+"$@"} && exit 0
+ gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
- gtar ${1+"$@"} && exit 0
+ gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" ${1+"$@"} && exit 0
+ tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" ${1+"$@"} && exit 0
+ tar "$firstarg" "$@" && exit 0
;;
esac
fi
@@ -270,10 +340,10 @@ WARNING: I can't seem to be able to run \`tar' with the given arguments.
*)
echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
+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 prerequirements for installing
+ 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
@@ -281,3 +351,10 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your
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:
diff --git a/mkinstalldirs b/mkinstalldirs
@@ -1,40 +1,158 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-# $Id: mkinstalldirs,v 1.1.1.1 2003/07/20 16:12:35 jylefort Exp $
+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
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
+ 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
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
+ mkdir "$pathcomp" || lasterr=$?
- 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 ! -d "$pathcomp"; then
- errstatus=$lasterr
- fi
- fi
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
- pathcomp="$pathcomp/"
- done
+ pathcomp=$pathcomp/
+ done
done
exit $errstatus
-# mkinstalldirs ends here
+# 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:
diff --git a/po/ChangeLog b/po/ChangeLog
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
@@ -11,6 +11,11 @@
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey@novell.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
PACKAGE = @PACKAGE@
@@ -27,15 +32,17 @@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@
+datarootdir = @datarootdir@
libdir = @libdir@
localedir = $(libdir)/locale
gnulocaledir = $(datadir)/locale
gettextsrcdir = $(datadir)/glib-2.0/gettext/po
subdir = po
+install_sh = @install_sh@
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
CC = @CC@
GENCAT = @GENCAT@
@@ -44,8 +51,8 @@ MSGFMT = @MSGFMT@
XGETTEXT = @XGETTEXT@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
-GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
DEFS = @DEFS@
CFLAGS = @CFLAGS@
@@ -58,8 +65,9 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
SOURCES =
POFILES = @POFILES@
GMOFILES = @GMOFILES@
-DISTFILES = Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
-$(POFILES) $(GMOFILES) $(SOURCES)
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in \
+$(POFILES) $(SOURCES)
+EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
POTFILES = \
@@ -75,13 +83,13 @@ INSTOBJEXT = @INSTOBJEXT@
.po.pox:
$(MAKE) $(GETTEXT_PACKAGE).pot
- $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*pox
+ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
.po.mo:
$(MSGFMT) -o $@ $<
.po.gmo:
- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ file=`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) -o $$file $<
.po.cat:
@@ -94,7 +102,7 @@ all: all-@USE_NLS@
all-yes: $(CATALOGS)
all-no:
-$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
$(GENPOT)
install: install-exec install-data
@@ -102,7 +110,7 @@ install-exec:
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
- if test -r "$(MKINSTALLDIRS)"; then \
+ if test -n "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
@@ -116,7 +124,7 @@ install-data-yes: all
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
- if test -r "$(MKINSTALLDIRS)"; then \
+ if test -n "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $$dir; \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
@@ -144,7 +152,7 @@ install-data-yes: all
fi; \
done
if test "$(PACKAGE)" = "glib"; then \
- if test -r "$(MKINSTALLDIRS)"; then \
+ if test -n "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
@@ -172,28 +180,33 @@ uninstall:
rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
fi
-check: all
+check: all $(GETTEXT_PACKAGE).pot
dvi info tags TAGS ID:
mostlyclean:
- rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp
+ rm -f core core.* *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
rm -fr *.o
rm -f .intltool-merge-cache
clean: mostlyclean
distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
+ rm -f Makefile Makefile.in POTFILES
+ rm -f *.mo *.msg *.cat *.cat.m $(GMOFILES)
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
- rm -f $(GMOFILES)
+ rm -f Makefile.in.in
distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
+dist distdir: $(DISTFILES)
dists="$(DISTFILES)"; \
+ extra_dists="$(EXTRA_DISTFILES)"; \
+ for file in $$extra_dists; do \
+ test -f $$file && dists="$$dists $$file"; \
+ done; \
for file in $$dists; do \
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
|| cp -p $(srcdir)/$$file $(distdir); \
@@ -202,14 +215,14 @@ dist distdir: update-po $(DISTFILES)
update-po: Makefile
$(MAKE) $(GETTEXT_PACKAGE).pot
tmpdir=`pwd`; \
- cd $(srcdir); \
catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
echo "$$lang:"; \
- if $$tmpdir/$(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -o $$tmpdir/$$lang.new.po $$lang; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+ if $$result; then \
+ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
@@ -230,17 +243,13 @@ update-po: Makefile
# and Intltool tags (enclosed in square brackets), and appending a full
# relative path to them
POTFILES: POTFILES.in
- ( if test 'x$(srcdir)' != 'x.'; then \
- posrcprefix='$(top_srcdir)/'; \
- else \
- posrcprefix="../"; \
- fi; \
+ ( posrcprefix='$(top_srcdir)/'; \
rm -f $@-t $@ \
- && (sed -e '/^#/d' \
- -e "s/^\[.*\] +//" \
- -e '/^[ ]*$$/d' \
- -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
- | sed -e '$$s/\\$$//') > $@-t \
+ && (sed -e '/^#/d' \
+ -e 's/^[[].*] *//' \
+ -e '/^[ ]*$$/d' \
+ -e "s@^@ $$posrcprefix@" $(srcdir)/$@.in \
+ | sed -e '$$!s/$$/ \\/') > $@-t \
&& chmod a-w $@-t \
&& mv $@-t $@ )
diff --git a/po/POTFILES.in b/po/POTFILES.in
@@ -1,10 +1,10 @@
[encoding: UTF-8]
-data/GNOME_MailNotification_Automation.server.in.in
+data/GNOME_MailNotification.server.in.in
+data/GNOME_MailNotification_Evolution.server.in
data/mail-notification-properties.desktop.in
data/mail-notification.desktop.in
data/mail-notification.schemas.in
data/mail-notification.soundlist.in
-src/MNAutomation.idl
src/egg-editable-toolbar.c
src/egg-editable-toolbar.h
src/egg-toolbar-editor.c
@@ -15,6 +15,7 @@ src/eggtrayicon.c
src/eggtrayicon.h
src/mn-about-dialog.gob
src/mn-auth-combo-box.gob
+src/mn-authenticated-mailbox-properties.gob
src/mn-authenticated-mailbox.gob
src/mn-autodetect-mailbox-properties.gob
src/mn-automation.gob
@@ -23,67 +24,55 @@ src/mn-client-session.c
src/mn-client-session.h
src/mn-conf.c
src/mn-conf.h
+src/mn-custom-vfs-mailbox.gob
+src/mn-evolution-folder-tree-control.c
+src/mn-evolution-mailbox-properties.gob
+src/mn-evolution-mailbox.gob
+src/mn-evolution-plugin.c
src/mn-gmail-mailbox-properties.gob
src/mn-gmail-mailbox.gob
src/mn-gmime-stream-vfs.gob
-src/mn-icu.c
-src/mn-icu.h
src/mn-imap-mailbox-properties.gob
src/mn-imap-mailbox.gob
src/mn-mail-icon.gob
-src/mn-mailbox-properties-dialog.c
-src/mn-mailbox-properties-dialog.h
-src/mn-mailbox-properties-util.c
-src/mn-mailbox-properties-util.h
-src/mn-mailbox-properties.c
-src/mn-mailbox-properties.h
+src/mn-mailbox-properties-dialog.gob
src/mn-mailbox-view.gob
src/mn-mailbox.gob
src/mn-mailboxes.gob
-src/mn-maildir-mailbox.gob
-src/mn-main-window.c
-src/mn-main-window.h
+src/mn-maildir-mailbox-backend.gob
+src/mn-main-window.gob
src/mn-main.c
-src/mn-mbox-mailbox.gob
+src/mn-mbox-mailbox-backend.gob
src/mn-md5.c
src/mn-md5.h
src/mn-message-mime.c
src/mn-message-mime.h
src/mn-message-view.gob
src/mn-message.gob
-src/mn-mh-mailbox.gob
-src/mn-pending-mailbox.gob
+src/mn-mh-mailbox-backend.gob
src/mn-pi-mailbox-properties.gob
+src/mn-pi-mailbox.gob
src/mn-pop3-mailbox-properties.gob
src/mn-pop3-mailbox.gob
-src/mn-properties-dialog.c
-src/mn-properties-dialog.h
+src/mn-properties-dialog.gob
src/mn-sasl.c
src/mn-sasl.h
-src/mn-sgml-ref.c
-src/mn-sgml-ref.h
src/mn-shell.gob
-src/mn-soup.c
-src/mn-soup.h
src/mn-ssl.c
src/mn-ssl.h
src/mn-stock.c
src/mn-stock.h
-src/mn-summary-popup.c
-src/mn-summary-popup.h
-src/mn-sylpheed-mailbox.gob
-src/mn-system-mailbox-properties.gob
+src/mn-sylpheed-mailbox-backend.gob
+src/mn-system-vfs-mailbox-properties.gob
+src/mn-system-vfs-mailbox.gob
src/mn-tooltips.gob
-src/mn-unsupported-mailbox.gob
-src/mn-uri.gob
src/mn-util.c
src/mn-util.h
+src/mn-vfs-mailbox-backend.gob
+src/mn-vfs-mailbox.gob
src/mn-vfs.c
src/mn-vfs.h
-ui/authentication.glade
-ui/edit-toolbars.glade
-ui/mailbox-properties.glade
-ui/main.glade
-ui/properties.glade
-ui/summary-popup.glade
-ui/welcome.glade
+ui/edit-toolbars-dialog.glade
+ui/mail-summary-popup.glade
+ui/mailbox-properties-dialog.glade
+ui/properties-dialog.glade
diff --git a/po/bg.gmo b/po/bg.gmo
Binary files differ.
diff --git a/po/bg.po b/po/bg.po
@@ -1,5 +1,5 @@
# Bulgarian translations for mail-notification.
-# Copyright (C) 2003, 2004 Jean-Yves Lefort.
+# Copyright (C) 2003-2005 Jean-Yves Lefort.
#
# This file is distributed under the same license as the
# mail-notification package.
@@ -10,14 +10,14 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome in bulgarian 0.6.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2004-09-09 01:43+0200\n"
"PO-Revision-Date: 2004-10-05 16:13+0200\n"
"Last-Translator: Vladimir \"Kaladan\" Petkov <vpetkov@i-space.org>\n"
"Language-Team: Bulgarian <bg@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
#: data/GNOME_MailNotification_Automation.server.in.in.h:1
msgid "Mail Notification automation"
@@ -27,14 +27,14 @@ msgstr "Автоматизиране на известяването за пощ
msgid "Mail Notification automation factory"
msgstr "Фабрика за автоматизирането на известяването за поща"
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: data/mail-notification-properties.desktop.in.h:1
msgid "Configure Mail Notification"
msgstr "Настройване на известяването за поща"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:38
+#: src/mn-mail-icon.gob:160 src/mn-main.c:221
msgid "Mail Notification"
msgstr "Известяване за поща"
@@ -43,336 +43,110 @@ msgid "Get notified when new mail arrives"
msgstr "Ще бъдете известяван за пристигането на нова поща"
#: data/mail-notification.schemas.in.h:1
-msgid "Automatically close the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:2
msgid "Blink on errors"
msgstr "Мигане при грешки"
-#: data/mail-notification.schemas.in.h:3
+#: data/mail-notification.schemas.in.h:2
msgid "Delay between mail checks (minutes part)."
msgstr "Период между проверката за поща (минути)."
-#: data/mail-notification.schemas.in.h:4
+#: data/mail-notification.schemas.in.h:3
msgid "Delay between mail checks (seconds part)."
msgstr "Период между проверките за поща (секунди)."
-#: data/mail-notification.schemas.in.h:5
-msgid "Display mail summary in tooltip"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:6
-msgid "Do not show the immediate notification error dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:7
-#, fuzzy
-msgid "Double-click action"
+#: data/mail-notification.schemas.in.h:4
+msgid "Double-clicked command"
msgstr "Команда при двойна натискане"
-#: data/mail-notification.schemas.in.h:8
-msgid "Enable mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:5
msgid "Fingerprints of trusted X509 certificates"
msgstr "Пръстови отпечатъци на проверени X509 сертификати"
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:6
msgid "Has already been run"
msgstr "Вече е стартиран"
-#: data/mail-notification.schemas.in.h:11
-#, fuzzy
-msgid "Height of edit toolbars dialog"
-msgstr "Височина на диалоговия прозорец за настройките"
-
-#: data/mail-notification.schemas.in.h:12
-msgid "Height of main window"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:7
msgid "Height of properties dialog"
msgstr "Височина на диалоговия прозорец за настройките"
-#: data/mail-notification.schemas.in.h:14
-#, fuzzy
-msgid "Mail read command"
-msgstr "Нова команда за поща"
-
-#: data/mail-notification.schemas.in.h:15
-#, fuzzy
-msgid "Mail reader command"
-msgstr "Нова команда за поща"
-
-#: data/mail-notification.schemas.in.h:16
-msgid "Mail summary popup contents font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:17
-msgid "Mail summary popup fonts aspect source"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:18
-msgid "Mail summary popup horizontal offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:19
-msgid "Mail summary popup position"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:20
-msgid "Mail summary popup title font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:21
-msgid "Mail summary popup vertical offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:22
-#, fuzzy
-msgid "Mailbox list"
+#: data/mail-notification.schemas.in.h:8
+msgid "Mailboxes list"
msgstr "Списък на пощенските кутии"
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:9
msgid "Minutes between mail checks"
msgstr "Минути между проверките"
-#: data/mail-notification.schemas.in.h:24
-msgid "Minutes to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:10
msgid "New mail command"
msgstr "Нова команда за поща"
-#: data/mail-notification.schemas.in.h:26
-msgid "Only display recent mail in mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:27
-#, fuzzy
-msgid "Run a command when all mail is read"
-msgstr "Стартиране на команда при пристигането на нова поща"
-
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:11
msgid "Run a command when new mail arrives"
msgstr "Стартиране на команда при пристигането на нова поща"
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:12
+msgid "Run a command when the icon is double-clicked"
+msgstr "Стартиране на команда при двойно натискане на иконата"
+
+#: data/mail-notification.schemas.in.h:13
msgid "Seconds between mail checks"
msgstr "Секунди между проверките за поща"
-#: data/mail-notification.schemas.in.h:30
-msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:31
-#, fuzzy
-msgid "Set a mail reader"
-msgstr "Избор на файл или папка"
-
-#: data/mail-notification.schemas.in.h:32
-msgid ""
-"The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:33
-#, fuzzy
-msgid ""
-"The amount of time to wait before closing the mail summary popup (minutes "
-"part)."
-msgstr "Времевият интервал за изчакване между проверките за нова поща"
-
-#: data/mail-notification.schemas.in.h:34
-#, fuzzy
-msgid ""
-"The amount of time to wait before closing the mail summary popup (seconds "
-"part)."
-msgstr "Времевият интервал за изчакване между проверките за нова поща"
-
-#: data/mail-notification.schemas.in.h:35
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:36
-#, fuzzy
-msgid "The command to run to launch the mail reader."
-msgstr "Командата, която да се стартира при пристигането на нова поща."
-
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
-msgid "The command to run when all mail is read."
-msgstr "Командата, която да се стартира при пристигането на нова поща."
-
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:14
msgid "The command to run when new mail arrives."
msgstr "Командата, която да се стартира при пристигането на нова поща."
-#: data/mail-notification.schemas.in.h:39
-msgid "The custom font to use for the contents of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:40
-msgid "The custom font to use for the title of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
-msgid "The height of the edit toolbars dialog in pixels."
-msgstr "Височината в пиксели на диалоговия прозорец за настройките."
-
-#: data/mail-notification.schemas.in.h:42
-#, fuzzy
-msgid "The height of the main window in pixels."
-msgstr "Височината в пиксели на диалоговия прозорец за настройките."
+#: data/mail-notification.schemas.in.h:15
+msgid "The command to run when the icon is double-clicked."
+msgstr "Командата, която да се стартира при двойно натискане на иконата - писмо."
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:16
msgid "The height of the properties dialog in pixels."
msgstr "Височината в пиксели на диалоговия прозорец за настройките."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:17
msgid "The list of mailboxes to monitor."
msgstr "Списъкът на пощенските кутии за следене."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:18
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:19
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
-"Списъкът на проверените сертификати тип X509, представени от техните "
-"пръстови отпечатъци в MD5 формат."
-
-#: data/mail-notification.schemas.in.h:47
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:48
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:49
-msgid ""
-"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
-"\"bottom-left\" or \"bottom-right\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:50
-msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:51
-#, fuzzy
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
-
-#: data/mail-notification.schemas.in.h:52
-#, fuzzy
-msgid "The width of the main window in pixels."
-msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
+"Списъкът на проверените сертификати тип X509, представени от техните пръстови отпечатъци в MD5 формат."
-#: data/mail-notification.schemas.in.h:53
+#: data/mail-notification.schemas.in.h:20
msgid "The width of the properties dialog in pixels."
msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
+#: data/mail-notification.schemas.in.h:21
msgid "Trusted servers list"
msgstr "Списък на проверените сървъри"
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:58
+#: data/mail-notification.schemas.in.h:22
msgid "Whether Mail Notification has already been run or not."
msgstr "Дали известяването за поща вече е стартирано или не."
-#: data/mail-notification.schemas.in.h:59
+#: data/mail-notification.schemas.in.h:23
msgid "Whether the status icon should blink on errors or not."
msgstr "Дали иконата за състоянието да мига при грешки или не"
-#: data/mail-notification.schemas.in.h:60
-#, fuzzy
-msgid "Whether the statusbar should be visible or not."
-msgstr "Дали иконата за състоянието да мига при грешки или не"
-
-#: data/mail-notification.schemas.in.h:61
-#, fuzzy
-msgid "Whether the toolbars should be visible or not."
-msgstr "Дали иконата за състоянието да мига при грешки или не"
-
-#: data/mail-notification.schemas.in.h:62
-#, fuzzy
-msgid "Whether to automatically close the mail summary popup or not."
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: data/mail-notification.schemas.in.h:63
-msgid "Whether to display the mail summary in the status icon tooltip or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:64
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not."
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: data/mail-notification.schemas.in.h:65
-msgid ""
-"Whether to hide previously displayed mail in the mail summary popup or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:66
-msgid ""
-"Whether to prevent the immediate notification error dialog from being "
-"displayed or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:67
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not."
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: data/mail-notification.schemas.in.h:68
+#: data/mail-notification.schemas.in.h:24
msgid "Whether to run a command when new mail arrives or not."
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: data/mail-notification.schemas.in.h:69
-#, fuzzy
-msgid "Whether to set a mail reader or not."
-msgstr "Дали известяването за поща вече е стартирано или не."
-
-#: data/mail-notification.schemas.in.h:70
-#, fuzzy
-msgid "Width of edit toolbars dialog"
-msgstr "Ширина на диалоговия прозорец за настройките"
-
-#: data/mail-notification.schemas.in.h:71
-msgid "Width of main window"
-msgstr ""
+#: data/mail-notification.schemas.in.h:25
+msgid "Whether to run a command when the icon is double-clicked or not."
+msgstr "Дали да се стартира команда при натискането на иконата-писмо или не"
-#: data/mail-notification.schemas.in.h:72
+#: data/mail-notification.schemas.in.h:26
msgid "Width of properties dialog"
msgstr "Ширина на диалоговия прозорец за настройките"
@@ -380,20 +154,6 @@ msgstr "Ширина на диалоговия прозорец за настр
msgid "New Mail"
msgstr "Нова поща"
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-
#: src/eggtrayicon.c:109
msgid "Orientation"
msgstr "Ориентация"
@@ -402,141 +162,131 @@ msgstr "Ориентация"
msgid "The orientation of the tray."
msgstr ""
-#: src/mn-about-dialog.gob:42
+#: src/mn-about-dialog.gob:41
msgid "A Mail Notification Icon"
msgstr "Уведомяване за поща"
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
+#: src/mn-about-dialog.gob:44
msgid "Jean-Yves Lefort <jylefort@brutele.be>"
msgstr "Vladimir Petkov <vpetkov@i-space.org>"
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: src/mn-auth-combo-box.gob:99 src/mn-autodetect-mailbox-properties.gob:35
msgid "<span style=\"italic\">autodetect</span>"
msgstr "<span style=\"italic\">автоматично засичане</span>"
-#: src/mn-authenticated-mailbox.gob:85
-#, c-format
-msgid ""
-"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
-"\n"
-"Please re-enter your password."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:86
-#, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: src/mn-autodetect-mailbox-properties.gob:66
msgid "_Location:"
msgstr "_Местоположение:"
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: src/mn-autodetect-mailbox-properties.gob:72
msgid "_Browse..."
msgstr "_Разглеждане..."
-#: src/mn-autodetect-mailbox-properties.gob:81
+#: src/mn-autodetect-mailbox-properties.gob:79
msgid "The URI of the mailbox"
msgstr "Адресът на пощенската кутия"
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: src/mn-autodetect-mailbox-properties.gob:116
msgid "Select a File or Folder"
msgstr "Избор на файл или папка"
-#: src/mn-blinking-image.gob:32
+#: src/mn-blinking-image.gob:30
msgid "Whether the image is blinking or not"
msgstr "Дали изображението да мига или не"
-#: src/mn-client-session.c:220
+#: src/mn-client-session.c:196 src/mn-client-session.c:203
+#, c-format
+msgid "unable to read from server: %s"
+msgstr "неуспех при четенето от сървър: %s"
+
+#: src/mn-client-session.c:201
+msgid "unable to read from server: EOF"
+msgstr "неуспех при четенето от сървър: EOF"
+
+#: src/mn-client-session.c:213
+#, c-format
+msgid "unable to decode data using SASL: %s"
+msgstr ""
+
+#: src/mn-client-session.c:284
#, c-format
msgid "resolving %s"
msgstr "търсене на %s"
-#: src/mn-client-session.c:230
+#: src/mn-client-session.c:294
#, c-format
msgid "unable to resolve %s: %s"
msgstr "неуспех при намирането на %s: %s"
-#: src/mn-client-session.c:267
+#: src/mn-client-session.c:331
#, c-format
msgid "%s: unsupported address family"
msgstr ""
-#: src/mn-client-session.c:274
+#: src/mn-client-session.c:338
#, c-format
msgid "%s: unable to create socket: %s"
msgstr ""
-#: src/mn-client-session.c:278
+#: src/mn-client-session.c:342
#, c-format
msgid "connecting to %s (%s) port %i"
msgstr "свързване с %s (%s) порт %i"
-#: src/mn-client-session.c:281
+#: src/mn-client-session.c:345
#, c-format
msgid "unable to connect: %s"
msgstr "неуспех при свързването: %s"
-#: src/mn-client-session.c:286
+#: src/mn-client-session.c:350
msgid "connected successfully"
msgstr "успешно свързване"
#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: src/mn-client-session.c:356
#, c-format
msgid "unable to connect to %s"
msgstr "неуспех при свързването с %s"
-#: src/mn-client-session.c:308
+#: src/mn-client-session.c:372
#, c-format
msgid "unable to initialize the OpenSSL library: %s"
msgstr ""
-#: src/mn-client-session.c:316
+#: src/mn-client-session.c:380
#, c-format
msgid "unable to create a SSL/TLS object: %s"
msgstr ""
-#: src/mn-client-session.c:322
+#: src/mn-client-session.c:386
#, c-format
msgid "unable to set the SSL/TLS file descriptor: %s"
msgstr ""
-#: src/mn-client-session.c:328
+#: src/mn-client-session.c:392
#, c-format
msgid "unable to perform the SSL/TLS handshake: %s"
msgstr ""
-#: src/mn-client-session.c:334
+#: src/mn-client-session.c:398
msgid "untrusted server"
msgstr "непроверен сървър"
-#: src/mn-client-session.c:338
+#: src/mn-client-session.c:402
#, c-format
msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
msgstr ""
-#: src/mn-client-session.c:385
+#: src/mn-client-session.c:449
#, c-format
msgid "%s, fingerprint: %s"
msgstr "%s, пръстов отпечатък: %s"
-#: src/mn-client-session.c:414
+#: src/mn-client-session.c:478
msgid "missing certificate"
msgstr "липсващ сертификат"
-#: src/mn-client-session.c:440
+#: src/mn-client-session.c:504
#, c-format
msgid ""
"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -548,380 +298,281 @@ msgid ""
"shown again."
msgstr ""
-#: src/mn-client-session.c:457
+#: src/mn-client-session.c:521
msgid "Connect to untrusted server?"
msgstr "Свързване с непроверен сървър?"
-#: src/mn-client-session.c:462
+#: src/mn-client-session.c:526
msgid "Co_nnect"
msgstr "Свъ_рзване"
-#: src/mn-client-session.c:518
+#: src/mn-client-session.c:584
#, c-format
msgid "response \"%s\" is not valid in current context"
msgstr ""
-#: src/mn-client-session.c:544
+#: src/mn-client-session.c:610
#, c-format
msgid "unable to parse response \"%s\""
msgstr "неуспех при преглед на отговор \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
-#, c-format
-msgid "unable to read from server: %s"
-msgstr "неуспех при четенето от сървър: %s"
-
-#: src/mn-client-session.c:597
-msgid "unable to read from server: EOF"
-msgstr "неуспех при четенето от сървър: EOF"
-
-#: src/mn-client-session.c:609
-#, c-format
-msgid "unable to decode data using SASL: %s"
-msgstr ""
-
-#: src/mn-client-session.c:743
+#: src/mn-client-session.c:657
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr ""
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: src/mn-client-session.c:688 src/mn-client-session.c:695
#, c-format
msgid "unable to write to server: %s"
msgstr "неуспех при записването на сървър: %s"
-#: src/mn-client-session.c:779
+#: src/mn-client-session.c:693
msgid "unable to write to server: EOF"
msgstr "неуспех при записването на сървър: EOF"
-#: src/mn-client-session.c:811
+#: src/mn-client-session.c:725
#, c-format
msgid "unable to encode Base64: %s"
msgstr ""
-#: src/mn-client-session.c:922
+#: src/mn-client-session.c:828
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr ""
-#: src/mn-client-session.c:931
+#: src/mn-client-session.c:837
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:937
+#: src/mn-client-session.c:843
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:971
-#, fuzzy, c-format
-msgid "unable to set SASL security properties: %s"
-msgstr "неуспех при записването на сървър: %s"
+#: src/mn-client-session.c:877
+#, c-format
+msgid "warning: unable to set SASL security properties: %s"
+msgstr ""
-#: src/mn-client-session.c:995
+#: src/mn-client-session.c:916
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
-#: src/mn-client-session.c:1014
+#: src/mn-client-session.c:920
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr ""
-#: src/mn-client-session.c:1018
+#: src/mn-client-session.c:924
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr ""
-#: src/mn-client-session.c:1055
+#: src/mn-client-session.c:974
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:978
#, c-format
msgid "%s, aborting SASL authentication"
msgstr ""
#. compliance error
-#: src/mn-client-session.c:1077
+#: src/mn-client-session.c:983
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr ""
-#: src/mn-client-session.c:1080
+#: src/mn-client-session.c:986
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
msgstr ""
-#: src/mn-client-session.c:1094
+#: src/mn-client-session.c:1000
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
msgstr ""
-#: src/mn-client-session.c:1119
+#: src/mn-client-session.c:1023
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr ""
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: src/mn-client-session.c:1028
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr ""
-#: src/mn-client-session.c:1130
+#: src/mn-client-session.c:1034
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr ""
-#: src/mn-conf.c:238
-#, fuzzy
-msgid "A directory creation error has occurred"
-msgstr "Получи се грешка при наблюдението"
-
-#: src/mn-conf.c:239
-#, fuzzy, c-format
-msgid "Unable to create directory \"%s\": %s."
-msgstr "Неуспех при създаването на нишка: %s."
-
-#: src/mn-conf.c:313
+#: src/mn-conf.c:109
#, c-format
msgid "recursively unsetting %s"
msgstr ""
-#: src/mn-conf.c:317
+#: src/mn-conf.c:113
msgid "syncing the GConf database"
msgstr "синхронизиране на базата данни на GConf"
-#: src/mn-conf.c:320
+#: src/mn-conf.c:116
msgid "completed"
msgstr "завършено"
-#: src/mn-gmail-mailbox-properties.gob:76
+#: src/mn-gmail-mailbox-properties.gob:77
msgid "Your Gmail username"
msgstr "Вашето Gmail потребителско име"
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:164
-#, fuzzy, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "неуспех при преглед на отговор \"%s\""
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid "Your Gmail password"
+msgstr "Вашата парола в Gmail"
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr ""
+#: src/mn-gmail-mailbox.gob:220
+msgid "logging in"
+msgstr "влизане"
-#: src/mn-gmail-mailbox.gob:224
+#: src/mn-gmail-mailbox.gob:239 src/mn-gmail-mailbox.gob:279
+#: src/mn-gmail-mailbox.gob:313 src/mn-gmail-mailbox.gob:418
#, c-format
msgid "unable to transfer data: %s"
msgstr "неуспех при пренасянето на данни: %s"
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "влизане"
-
-#: src/mn-gmail-mailbox.gob:423
+#: src/mn-gmail-mailbox.gob:265 src/mn-gmail-mailbox.gob:299
+#: src/mn-gmail-mailbox.gob:334
msgid "login failed"
msgstr "влизането е неуспешно"
-#: src/mn-gmail-mailbox.gob:496
+#: src/mn-gmail-mailbox.gob:328
+msgid "successfully logged in"
+msgstr "успешно влязъл в"
+
+#: src/mn-gmail-mailbox.gob:406
msgid "searching for unread mail"
msgstr "търсене за непрочетена поща"
-#: src/mn-gmail-mailbox.gob:527
-#, fuzzy
-msgid "unable to initialize the ICU library"
-msgstr "Неуспех при инициализирането на библиотеката GnomeVFS."
-
-#: src/mn-gmail-mailbox.gob:554
+#: src/mn-gmail-mailbox.gob:427
msgid "unable to parse Gmail data"
msgstr "неуспех при прегледа на данни от Gmail"
-#: src/mn-gmail-mailbox.gob:891
-#, fuzzy, c-format
-msgid "unable to open calendar: %s"
-msgstr "неуспех при отварянето на папката: %s"
-
-#: src/mn-gmail-mailbox.gob:899
-#, fuzzy, c-format
-msgid "unable to set calendar time: %s"
-msgstr "неуспех при затварянето на папката: %s"
-
-#: src/mn-gmail-mailbox.gob:968
-#, fuzzy, c-format
-msgid "unable to get calendar time: %s"
-msgstr "неуспех при пренасянето на данни: %s"
-
-#: src/mn-gmime-stream-vfs.gob:49
-#, fuzzy, c-format
-msgid "unable to read %s: %s"
-msgstr "неуспех при намирането на %s: %s"
-
-#: src/mn-gmime-stream-vfs.gob:51
-#, fuzzy, c-format
-msgid "unable to write to %s: %s"
-msgstr "неуспех при записването на сървър: %s"
-
-#: src/mn-gmime-stream-vfs.gob:53
-#, fuzzy, c-format
-msgid "unable to seek in %s: %s"
-msgstr "неуспех при намирането на %s: %s"
-
-#: src/mn-gmime-stream-vfs.gob:55
-#, fuzzy, c-format
-msgid "unable to tell position of %s: %s"
-msgstr "неуспех при следенето %s: %s"
-
-#: src/mn-gmime-stream-vfs.gob:57
-#, fuzzy, c-format
-msgid "unable to close %s: %s"
-msgstr "неуспех при затварянето на папката: %s"
-
-#: src/mn-imap-mailbox-properties.gob:95
+#: src/mn-imap-mailbox-properties.gob:92
msgid "Mailbox:"
msgstr "Пощенска кутия:"
-#: src/mn-imap-mailbox-properties.gob:99
+#: src/mn-imap-mailbox-properties.gob:96
msgid "in_box"
msgstr "ку_тия"
-#: src/mn-imap-mailbox-properties.gob:110
+#: src/mn-imap-mailbox-properties.gob:107
msgid "oth_er:"
msgstr "др_уги"
#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:129
msgid "The hostname or IP address of the IMAP server"
msgstr "Хостът или IP адресът на IMAP сървъра"
-#: src/mn-imap-mailbox-properties.gob:130
+#: src/mn-imap-mailbox-properties.gob:123
msgid "Your username on the IMAP server"
msgstr "Потребителското ви име за IMAP сървъра"
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
+#: src/mn-imap-mailbox-properties.gob:124
+msgid "Your password on the IMAP server"
+msgstr "Паролата ви за IMAP сървъра"
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
+#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:126
msgid "The port number of the IMAP server"
msgstr "Номера на порта на IMAP сървъра"
-#: src/mn-imap-mailbox-properties.gob:134
+#: src/mn-imap-mailbox-properties.gob:127
msgid "The mailbox name"
msgstr "Име на пощенската кутия"
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
+#: src/mn-imap-mailbox.gob:112 src/mn-pop3-mailbox.gob:125
msgid "SSL/TLS support has not been compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:236
+#: src/mn-imap-mailbox.gob:179
msgid "server did not send capabilities"
msgstr ""
-#: src/mn-imap-mailbox.gob:408
+#: src/mn-imap-mailbox.gob:292
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:409
+#: src/mn-imap-mailbox.gob:293
msgid "unable to login"
msgstr "неуспех при влизането"
#. compliance error
-#: src/mn-imap-mailbox.gob:542
-#, fuzzy
-msgid "server did not send search results"
-msgstr "сървърът не изпраща състоянието"
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:617
-#, fuzzy
-msgid "server did not send all the messages we requested"
+#: src/mn-imap-mailbox.gob:361
+msgid "server did not send status"
msgstr "сървърът не изпраща състоянието"
-#: src/mn-imap-mailbox.gob:671
-#, fuzzy
-msgid "unable to fetch message"
-msgstr "неуспех при свързването: %s"
-
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: src/mn-imap-mailbox.gob:583 src/mn-pop3-mailbox.gob:744
msgid "unknown server error"
msgstr "неизвестна грешка в сървъра"
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: src/mn-imap-mailbox.gob:656 src/mn-pop3-mailbox.gob:210
msgid "server does not support in-band SSL/TLS"
msgstr ""
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: src/mn-imap-mailbox.gob:675 src/mn-pop3-mailbox.gob:674
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: src/mn-imap-mailbox.gob:683 src/mn-pop3-mailbox.gob:686
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "неизвестен механизъм за идентификация \"%s\""
-#: src/mn-imap-mailbox.gob:1160
+#: src/mn-imap-mailbox.gob:701
msgid "falling back to IMAP LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: src/mn-imap-mailbox.gob:705 src/mn-pop3-mailbox.gob:720
msgid "authentication failed"
msgstr "неуспешна идентификация"
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
-
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-msgid "_Mail Reader"
-msgstr ""
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: src/mn-mail-icon.gob:81
msgid "_Update"
msgstr "_Актуализиране"
-#: src/mn-mail-icon.gob:99
+#: src/mn-mail-icon.gob:87
msgid "R_emove From Notification Area"
msgstr "Пре_махване от зоната за известяване"
-#: src/mn-mailbox-properties-dialog.c:156
+#: src/mn-mail-icon.gob:172
+#, c-format
+msgid "_Run %s"
+msgstr "_Стартиране %s"
+
+#: src/mn-mail-icon.gob:173
+msgid "_Run Default Action"
+msgstr "_Стартиране на стандартното действие"
+
+#: src/mn-mailbox-properties-dialog.c:109
msgid "Add a Mailbox"
msgstr "Добавяне на пощенска кутия"
-#: src/mn-mailbox-properties-dialog.c:325
+#: src/mn-mailbox-properties-dialog.c:331
#, c-format
msgid "%s Properties"
msgstr "%s Настройки"
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
+#: src/mn-mailbox-properties-util.c:77
msgid "_Username:"
msgstr "_Име:"
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
+#: src/mn-mailbox-properties-util.c:87
msgid "_Password:"
msgstr "_Парола:"
@@ -961,600 +612,333 @@ msgstr "Завършено"
msgid "Whether the properties are completely filled or not"
msgstr ""
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: src/mn-mailbox-view.gob:254
msgid "Mailbox"
msgstr "Пощенска кутия"
-#. format column
-#: src/mn-mailbox-view.gob:287
+#: src/mn-mailbox-view.gob:268
msgid "Format"
msgstr "Формат"
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:543
msgid "Unable to add mailbox"
msgstr "Неуспех при добавянето на пощенската кутия"
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:543
msgid "The mailbox is already in the list."
msgstr "Пощенската кутия е вече в списъка."
-#: src/mn-mailbox.gob:131
+#: src/mn-mailbox.gob:122
msgid "The mailbox URI"
msgstr "Адресът на пощенската кутия"
-#: src/mn-mailbox.gob:142
+#: src/mn-mailbox.gob:133
msgid "The mailbox human-readable name"
msgstr "Името на пощенската кутия във формат разбираем от хора"
-#: src/mn-mailbox.gob:146
-#, fuzzy
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Дали изображението да мига или не"
+#: src/mn-mailbox.gob:137
+msgid "Whether the mailbox has to be manually checked or not"
+msgstr ""
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
+#: src/mn-mailbox.gob:142
+msgid "Whether the mailbox has new mail or not"
msgstr ""
-#: src/mn-mailbox.gob:206
+#: src/mn-mailbox.gob:147
msgid "The mailbox error, if any"
msgstr "Грешката в пощенската кутия, ако има"
-#: src/mn-mailbox.gob:305
+#: src/mn-mailbox.gob:251
msgid "does not exist"
msgstr "не съществува"
-#: src/mn-mailbox.gob:337
+#: src/mn-mailbox.gob:287
msgid "unknown format"
msgstr "непознат формат"
-#: src/mn-mailbox.gob:403
-#, fuzzy, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr ""
-"Известяването за поща не можа да разреши моменталното известяване за една "
-"или повече пощенски кутии. %s"
+#: src/mn-mailbox.gob:355
+#, c-format
+msgid "unable to monitor %s: %s"
+msgstr "неуспех при следенето %s: %s"
-#: src/mn-mailbox.gob:421
+#: src/mn-mailbox.gob:369
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
"configurable from the Properties Dialog)."
-msgid_plural ""
"As a fallback, they will be checked every %i seconds (this delay is "
"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
-#: src/mn-mailbox.gob:432
+#: src/mn-mailbox.gob:380
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
"configurable from the Properties Dialog)."
-msgid_plural ""
"As a fallback, they will be checked every %i minutes (this delay is "
"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
-#: src/mn-mailbox.gob:443
+#: src/mn-mailbox.gob:391
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
"delay is configurable from the Properties Dialog)."
-msgid_plural ""
"As a fallback, they will be checked approximately every %i minutes (this "
"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
-#: src/mn-mailbox.gob:459
+#: src/mn-mailbox.gob:405
msgid "A monitoring error has occurred"
msgstr "Получи се грешка при наблюдението"
-#: src/mn-mailbox.gob:460
+#: src/mn-mailbox.gob:406
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
"more mailboxes. %s"
msgstr ""
-"Известяването за поща не можа да разреши моменталното известяване за една "
-"или повече пощенски кутии. %s"
-
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
+"Известяването за поща не можа да разреши моменталното известяване за една или повече пощенски кутии. %s"
-#: src/mn-mailboxes.gob:260
+#: src/mn-mailboxes.gob:143
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s е неподдържан: %s"
-#: src/mn-mailboxes.gob:290
-#, fuzzy, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] "%s има поща"
-msgstr[1] "%s има поща"
+#: src/mn-mailboxes.gob:170
+#, c-format
+msgid "%s has new mail"
+msgstr "%s има поща"
+
+#: src/mn-mailboxes.gob:170
+#, c-format
+msgid "%s has no new mail"
+msgstr "%s няма нова поща"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:186
#, c-format
msgid "%s reported an error: %s"
msgstr "%s докладва за грешка: %s"
-#: src/mn-maildir-mailbox.gob:112
+#: src/mn-maildir-mailbox.gob:109
#, c-format
msgid "unable to open folder \"new\": %s"
msgstr "неуспех при отварянето на папка \"нови\": %s"
-#: src/mn-maildir-mailbox.gob:141
+#: src/mn-maildir-mailbox.gob:137
#, c-format
msgid "unable to close folder \"new\": %s"
msgstr "неуспех при отварянето на папка \"нови\": %s"
-#: src/mn-maildir-mailbox.gob:144
+#: src/mn-maildir-mailbox.gob:140
#, c-format
msgid "error while reading folder \"new\": %s"
msgstr "грешка при четенето на папката \"нови\": %s"
-#. Toplevel
-#: src/mn-main-window.c:92
-#, fuzzy
-msgid "_Mail"
-msgstr "Пощенска кутия"
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-msgid "Launch the mail reader"
-msgstr ""
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr "Актуализиране състоянието на пощата"
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-#, fuzzy
-msgid "Quit Mail Notification"
-msgstr "Известяване за поща"
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-msgid "_Contents"
-msgstr ""
-
-#: src/mn-main-window.c:165
-#, fuzzy
-msgid "Display help"
-msgstr "Неуспех при показването на помощта"
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-msgid "Only display the toolbars icons"
-msgstr ""
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, fuzzy, c-format
-msgid "unable to load menus.xml: %s"
-msgstr "грешка при отварянето на пощенската кутия: %s"
-
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr ""
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-main-window.c:540
-#, fuzzy
-msgid "unable to load toolbars.xml"
-msgstr "неуспех при затварянето на папката: %s"
-
-#: src/mn-main.c:99
+#: src/mn-main.c:85
#, c-format
msgid "Compiled-in mailbox backends: %s\n"
msgstr ""
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
-#: src/mn-main.c:116
+#: src/mn-main.c:103
#, c-format
msgid "Compiled-in features: %s\n"
msgstr "Компилирани възможности: %s\n"
-#: src/mn-main.c:176
+#: src/mn-main.c:133
msgid "Enable informational output"
msgstr "Разрешаване на информационния изход"
-#: src/mn-main.c:185
-#, fuzzy
-msgid "List the compiled-in features"
+#: src/mn-main.c:142
+msgid "List compiled-in features and exit"
msgstr "Изписване на компилираните възможности и излизане"
-#: src/mn-main.c:194
-#, fuzzy
-msgid "Display the main window"
-msgstr "Изобразяване на диалоговия прозорец с информацията"
-
-#: src/mn-main.c:203
+#: src/mn-main.c:151
msgid "Display the properties dialog"
msgstr "Показване на диалоговия прозорец с настройките"
-#: src/mn-main.c:212
+#: src/mn-main.c:160
msgid "Display the about dialog"
msgstr "Изобразяване на диалоговия прозорец с информацията"
-#: src/mn-main.c:221
-msgid "Close the mail summary popup"
-msgstr ""
+#: src/mn-main.c:169
+msgid "Update the mail status"
+msgstr "Актуализиране състоянието на пощата"
-#: src/mn-main.c:239
+#: src/mn-main.c:178
msgid "Report the mail status"
msgstr "Докладване за състоянието на пощата"
-#: src/mn-main.c:248
-#, fuzzy
-msgid "Unset obsolete GConf configuration"
+#: src/mn-main.c:187
+msgid "Unset obsolete GConf configuration and exit"
msgstr "Премахване на остарелите настройки в GConf и излизане"
#.
#. * We can't use mn_error_dialog() because gtk_init() has not been
#. * called yet.
#.
-#: src/mn-main.c:284
+#: src/mn-main.c:213
msgid "multi-threading is not available"
msgstr "много-нишки не е налично"
-#: src/mn-main.c:338
+#: src/mn-main.c:258
msgid ""
"Bonobo could not locate the automation object. Please check your Mail "
"Notification installation."
msgstr ""
-#: src/mn-main.c:344
-#, fuzzy
-msgid "quitting Mail Notification"
-msgstr "Известяване за поща"
-
-#: src/mn-main.c:348
-#, fuzzy
-msgid "Mail Notification is not running"
-msgstr "Известяването за поща вече е стартирано"
-
-#: src/mn-main.c:355
+#: src/mn-main.c:263
msgid "Unable to initialize the GnomeVFS library."
msgstr "Неуспех при инициализирането на библиотеката GnomeVFS."
-#: src/mn-main.c:391
+#: src/mn-main.c:285
msgid "updating the mail status"
msgstr "актуализиране състоянието на пощата"
-#: src/mn-main.c:409
+#: src/mn-main.c:301
msgid "Mail Notification is already running"
msgstr "Известяването за поща вече е стартирано"
-#: src/mn-main.c:417
+#: src/mn-main.c:308
msgid ""
"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
"Please check your Mail Notification installation."
msgstr ""
-#: src/mn-main.c:421
+#: src/mn-main.c:312
msgid ""
"Bonobo was unable to register the automation server. Please check your Mail "
"Notification installation."
msgstr ""
-"Bonobo не успя да регистрира сървъра за автоматизация. Моля, проверете "
-"инсталацията на известяването за поща."
+"Bonobo не успя да регистрира сървъра за автоматизация. Моля, проверете инсталацията на известяването за поща."
-#: src/mn-mbox-mailbox.gob:184
+#: src/mn-mbox-mailbox.gob:171
#, c-format
-msgid "unable to open mailbox: %s"
-msgstr "грешка при отварянето на пощенската кутия: %s"
+msgid "error while reading mailbox: %s"
+msgstr "грешка при четенето на пощенската кутия: %s"
-#: src/mn-message-mime.c:105
-#, fuzzy
-msgid "unable to parse MIME message"
-msgstr "неуспех при преглед на отговор \"%s\""
-
-#: src/mn-message-view.gob:81
-msgid "You have no new mail."
-msgstr "Нямата нова поща."
-
-#: src/mn-message-view.gob:321
-msgid "Unreadable message"
-msgstr ""
-
-#: src/mn-message-view.gob:329
-msgid "From"
-msgstr ""
-
-#: src/mn-message-view.gob:337
-msgid "Subject"
-msgstr ""
-
-#: src/mn-message-view.gob:348
-msgid "Sent"
-msgstr ""
-
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr ""
-
-#: src/mn-message.gob:126
+#: src/mn-mbox-mailbox.gob:179
#, c-format
-msgid "%i second ago"
-msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:130
-#, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:135
-#, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:140
-#, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:145
-#, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
-msgstr[0] ""
-msgstr[1] ""
+msgid "unable to open mailbox: %s"
+msgstr "грешка при отварянето на пощенската кутия: %s"
-#: src/mn-mh-mailbox.gob:147
+#: src/mn-mh-mailbox.gob:122
#, c-format
msgid "error while reading .mh_sequences: %s"
msgstr "грешка при четенето на .mh_sequences: %s"
-#: src/mn-mh-mailbox.gob:157
+#: src/mn-mh-mailbox.gob:130
#, c-format
msgid "unable to open .mh_sequences: %s"
msgstr "неуспех при отварянето на .mh_sequences: %s"
-#: src/mn-pending-mailbox.gob:35
+#: src/mn-pending-mailbox.gob:33
msgid "detecting"
msgstr "засичане"
-#: src/mn-pi-mailbox-properties.gob:75
+#: src/mn-pi-mailbox-properties.gob:74
msgid "_Hostname:"
msgstr "_Хост:"
-#: src/mn-pi-mailbox-properties.gob:93
+#: src/mn-pi-mailbox-properties.gob:92
msgid "_Details"
msgstr "_Подробности"
-#: src/mn-pi-mailbox-properties.gob:105
+#: src/mn-pi-mailbox-properties.gob:104
msgid "sta_ndard"
msgstr "стан_дартно"
-#: src/mn-pi-mailbox-properties.gob:115
+#: src/mn-pi-mailbox-properties.gob:114
msgid "_in-band SSL/TLS"
msgstr "_in-band SSL/TLS"
-#: src/mn-pi-mailbox-properties.gob:125
+#: src/mn-pi-mailbox-properties.gob:124
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS на отделен по_рт"
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:84
msgid "The hostname or IP address of the POP3 server"
msgstr "Хостът или IP адресът на POP3 сървъра"
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:85
msgid "Your username on the POP3 server"
msgstr "Потребителското име в POP3 сървъра"
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
+#: src/mn-pop3-mailbox-properties.gob:86
+msgid "Your password on the POP3 server"
+msgstr "Паролата ви в POP3 сървъра"
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:87 src/mn-pop3-mailbox-properties.gob:88
msgid "The port number of the POP3 server"
msgstr "Номера на порта на POP3 сървъра"
-#: src/mn-pop3-mailbox.gob:266
+#: src/mn-pop3-mailbox.gob:256
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr ""
-#: src/mn-pop3-mailbox.gob:569
-#, fuzzy
-msgid "unknown error"
-msgstr "неизвестна грешка в сървъра"
-
-#: src/mn-pop3-mailbox.gob:656
+#: src/mn-pop3-mailbox.gob:523
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
-msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
-#: src/mn-pop3-mailbox.gob:849
+#: src/mn-pop3-mailbox.gob:682
msgid "server does not support APOP authentication"
msgstr "Сървърът не поддържа идентификация тип APOP"
-#: src/mn-pop3-mailbox.gob:884
+#: src/mn-pop3-mailbox.gob:710
msgid "falling back to APOP authentication"
msgstr ""
-#: src/mn-pop3-mailbox.gob:889
+#: src/mn-pop3-mailbox.gob:715
msgid "falling back to USER/PASS authentication"
msgstr ""
-#: src/mn-properties-dialog.c:218
-#, fuzzy
-msgid "top left"
-msgstr "Завършено"
-
-#: src/mn-properties-dialog.c:219
-msgid "top right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:220
-msgid "bottom left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:221
-msgid "bottom right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:323
+#: src/mn-properties.c:151
msgid "No mailbox selected."
msgstr "Няма избрана кутия."
-#: src/mn-properties-dialog.c:328
-#, fuzzy, c-format
+#: src/mn-properties.c:156
+#, c-format
msgid "%i mailbox selected."
-msgid_plural "%i mailboxes selected."
-msgstr[0] "%i избрана кутия."
-msgstr[1] "%i избрана кутия."
+msgstr "%i избрана кутия."
-#: src/mn-shell.gob:96
-msgid "You have new mail."
-msgstr "Имате поща."
+#: src/mn-shell.gob:204
+msgid "A command error has occurred"
+msgstr "След изпълнението на командата се получи грешка"
-#: src/mn-shell.gob:361
-msgid "Mailboxes Having New Mail"
-msgstr ""
+#: src/mn-shell.gob:205
+#, c-format
+msgid "Unable to execute double-clicked command: %s."
+msgstr "Неуспех при стартирането на командата: %s."
-#: src/mn-shell.gob:382
-msgid "Errors"
-msgstr ""
+#: src/mn-shell.gob:292
+msgid "The following mailbox has new mail:\n"
+msgstr "Следната пощенска кутия има нова поща:\n"
-#: src/mn-shell.gob:403
-#, fuzzy
-msgid "Unsupported Mailboxes"
-msgstr "Системна кутия"
+#: src/mn-shell.gob:296
+msgid "You have no new mail."
+msgstr "Нямата нова поща."
-#: src/mn-shell.gob:418
-msgid "Mail Summary"
-msgstr ""
+#: src/mn-shell.gob:299
+msgid "The following mailbox reported an error:\n"
+msgstr "Следната пощенска кутия докладва за грешка:\n"
-#: src/mn-soup.c:140
-#, fuzzy, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "неуспех при преглед на отговор \"%s\""
+#: src/mn-shell.gob:304
+msgid "The following mailbox is unsupported:\n"
+msgstr "Следните пощенски кутии не се поддържат:\n"
+
+#: src/mn-shell.gob:320
+msgid "You have new mail."
+msgstr "Имате поща."
+
+#: src/mn-shell.gob:330
+msgid "A command error has occurred in Mail Notification"
+msgstr "Грешка с командите се получи в известяването за поща"
+
+#: src/mn-shell.gob:331
+#, c-format
+msgid "Unable to execute new mail command: %s."
+msgstr "Неуспех при стартирането на нова пощенска команда: %s."
#: src/mn-ssl.c:79
msgid "unknown SSL/TLS error"
@@ -1564,139 +948,90 @@ msgstr "неизвестна SSL/TLS грешка"
msgid "Select _All"
msgstr "Избор на _всички"
-#: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:113
+#: src/mn-sylpheed-mailbox.gob:93
#, c-format
msgid "unable to open folder: %s"
msgstr "неуспех при отварянето на папката: %s"
-#: src/mn-sylpheed-mailbox.gob:147
+#: src/mn-sylpheed-mailbox.gob:127
#, c-format
msgid "unable to close folder: %s"
msgstr "неуспех при затварянето на папката: %s"
-#: src/mn-sylpheed-mailbox.gob:150
+#: src/mn-sylpheed-mailbox.gob:130
#, c-format
msgid "error while reading folder: %s"
msgstr "грешка при четенето на папката: %s"
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
+#: src/mn-system-mailbox-properties.gob:32 src/mn-uri.gob:391
msgid "System Mailbox"
msgstr "Системна кутия"
-#: src/mn-system-mailbox-properties.gob:57
+#: src/mn-system-mailbox-properties.gob:55
#, c-format
msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr ""
-"Системната ви пощенска кутия (<span weight=\"bold\">%s</span>) ще бъде "
-"използвана."
+msgstr "Системната ви пощенска кутия (<span weight=\"bold\">%s</span>) ще бъде използвана."
-#: src/mn-system-mailbox-properties.gob:64
+#: src/mn-system-mailbox-properties.gob:62
msgid ""
"The location of your system mailbox could not be detected. Please set the "
"MAIL environment variable."
msgstr ""
-"Местоположението на Вашата системна пощенска кутия не може да бъде засечено. "
-"Моля, настройте променливата MAIL environment."
+"Местоположението на Вашата системна пощенска кутия не може да бъде засечено. Моля, настройте променливата MAIL environment."
-#: src/mn-unsupported-mailbox.gob:33
+#: src/mn-unsupported-mailbox.gob:31
msgid "The reason why the mailbox is unsupported"
msgstr "Причината защо пощенската кутия е неподдържана"
-#: src/mn-unsupported-mailbox.gob:40
+#: src/mn-unsupported-mailbox.gob:38
msgid "unsupported"
msgstr "не е поддържан"
-#: src/mn-util.c:245
+#: src/mn-util.c:199
#, c-format
msgid "error loading image: %s"
msgstr "грешка при зареждането на изображение: %s"
-#: src/mn-util.c:276
-#, fuzzy, c-format
-msgid "widget \"%s\" not found in interface \"%s\""
+#: src/mn-util.c:237
+#, c-format
+msgid "widget %s not found in interface %s"
msgstr "уиджета %s не е намерен в интерфейса %s"
-#: src/mn-util.c:390
+#: src/mn-util.c:355
msgid "received an invalid URI list"
msgstr "получен е некоректен списък с адреси"
-#: src/mn-util.c:426
+#: src/mn-util.c:391
msgid "received an invalid Mozilla URL"
msgstr "получен е некоректен Mozilla адрес"
-#: src/mn-util.c:519
+#: src/mn-util.c:484
msgid "Unable to display help"
msgstr "Неуспех при показването на помощта"
-#: src/mn-util.c:533
+#: src/mn-util.c:498
#, c-format
msgid "Unable to create a thread: %s."
msgstr "Неуспех при създаването на нишка: %s."
-#: src/mn-util.c:626
-msgid "_Do not show this message again"
-msgstr ""
-
-#: src/mn-util.c:710
+#: src/mn-util.c:701
msgid "A fatal error has occurred in Mail Notification"
msgstr "Получи се сериозна грешка в известяването за поща"
-#: src/mn-util.c:725
-#, fuzzy, c-format
-msgid "unable to get current time: %s"
-msgstr "неуспех при свързването с %s"
-
-#: src/mn-util.c:787
-#, c-format
-msgid "invalid signal specification \"%s\""
-msgstr ""
-
-#: src/mn-util.c:826
-msgid "A command error has occurred in Mail Notification"
-msgstr "Грешка с командите се получи в известяването за поща"
-
-#: src/mn-util.c:827
-#, fuzzy, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "неуспех при намирането на %s: %s"
-
-#: ui/authentication.glade.h:1
-#, fuzzy
-msgid "_Authenticate"
-msgstr "Механизъм за _идентификация:"
-
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
#: ui/mailbox-properties.glade.h:1
msgid "_Mailbox type:"
msgstr "_Тип на пощенската кутия:"
#: ui/properties.glade.h:1
-msgid "<span weight=\"bold\">Commands</span>"
-msgstr "<span weight=\"bold\">Команди</span>"
+msgid " "
+msgstr " "
#: ui/properties.glade.h:2
-#, fuzzy
-msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr "<span weight=\"bold\">Основни</span>"
+msgid "*"
+msgstr "*"
#: ui/properties.glade.h:3
-#, fuzzy
-msgid "<span weight=\"bold\">Fonts</span>"
+msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Команди</span>"
#: ui/properties.glade.h:4
@@ -1704,220 +1039,79 @@ msgid "<span weight=\"bold\">General</span>"
msgstr "<span weight=\"bold\">Основни</span>"
#: ui/properties.glade.h:5
-#, fuzzy
-msgid "<span weight=\"bold\">Mailbox List</span>"
+msgid "<span weight=\"bold\">Mailboxes</span>"
msgstr "<span weight=\"bold\">Пощенски кутии</span>"
#: ui/properties.glade.h:6
-#, fuzzy
-msgid "<span weight=\"bold\">Position</span>"
-msgstr "<span weight=\"bold\">Команди</span>"
-
-#: ui/properties.glade.h:7
-#, fuzzy
-msgid "Co_ntents:"
-msgstr "Свъ_рзване"
-
-#: ui/properties.glade.h:8
-msgid "Dis_play mail summary in tooltip"
-msgstr ""
-
-#: ui/properties.glade.h:9
-msgid "General"
-msgstr ""
-
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr ""
-
-#: ui/properties.glade.h:11
msgid "Mail Notification Properties"
msgstr "Настройки на известяването за поща"
-#: ui/properties.glade.h:12
-msgid "Mail Summary Popup"
-msgstr ""
-
-#: ui/properties.glade.h:13
-#, fuzzy
-msgid "Mailboxes"
-msgstr "Пощенска кутия"
-
-#: ui/properties.glade.h:14
-msgid "Only display _recent mail"
-msgstr ""
-
-#: ui/properties.glade.h:15
-#, fuzzy
-msgid "P_osition:"
-msgstr "_Местоположение:"
-
-#: ui/properties.glade.h:16
-#, fuzzy
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Времевият интервал за изчакване между проверките за нова поща"
-
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:7
msgid "The amount of time to wait between mail checks"
msgstr "Времевият интервал за изчакване между проверките за нова поща"
-#: ui/properties.glade.h:18
-#, fuzzy
-msgid "The command to run to launch the mail reader"
-msgstr "Командата, която да се изпълни при пристигането на нова поща"
-
-#: ui/properties.glade.h:19
-#, fuzzy
-msgid "The command to run when all mail is read"
-msgstr "Командата, която да се изпълни при пристигането на нова поща"
-
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:8
msgid "The command to run when new mail arrives"
msgstr "Командата, която да се изпълни при пристигането на нова поща"
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
-#, fuzzy
-msgid "When _all mail is read:"
-msgstr "При пристигане на _нова поща:"
+#: ui/properties.glade.h:9
+msgid "The command to run when the icon is double-clicked"
+msgstr "Командата, която да се стартира когато иконата-писмо се натисне два пъти"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:10
msgid "When _new mail arrives:"
msgstr "При пристигане на _нова поща:"
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:11
+msgid "When double-click_ed:"
+msgstr "При _двойно натискане:"
+
+#: ui/properties.glade.h:12
msgid "Whether the status icon should blink on errors or not"
msgstr "Дали иконата за състоянието да започне да мига при грешки или не"
-#: ui/properties.glade.h:27
-#, fuzzy
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-
-#: ui/properties.glade.h:29
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr ""
-
-#: ui/properties.glade.h:31
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:13
msgid "Whether to run a command when new mail arrives or not"
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: ui/properties.glade.h:33
-#, fuzzy
-msgid "Whether to set a mail reader or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
+#: ui/properties.glade.h:14
+msgid "Whether to run a command when the icon is double-clicked or not"
+msgstr "Дали да се стартира команда при двойно натискане на иконата или не"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:15
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
msgstr ""
"Дали да се стартира известяването за поща, когато влизате в GNOME или не"
-#: ui/properties.glade.h:35
-msgid "_Automatically close after:"
-msgstr ""
-
-#: ui/properties.glade.h:36
+#: ui/properties.glade.h:16
msgid "_Blink on errors"
msgstr "_Мигане при грешки"
-#: ui/properties.glade.h:37
+#: ui/properties.glade.h:17
msgid "_Delay between mail checks:"
msgstr "_Време между проверките за поща:"
-#: ui/properties.glade.h:38
-#, fuzzy
-msgid "_Display the main window"
-msgstr "Изобразяване на диалоговия прозорец с информацията"
-
-#: ui/properties.glade.h:39
-msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:40
-msgid "_Launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:41
-msgid "_Mail reader:"
-msgstr ""
-
-#: ui/properties.glade.h:42
+#: ui/properties.glade.h:18
msgid "_Start Mail Notification on GNOME login"
msgstr "_Стартиране на известяването за поща при влизане в GNOME"
-#: ui/properties.glade.h:43
-msgid "_Title:"
-msgstr ""
-
-#: ui/properties.glade.h:44
-#, fuzzy
-msgid "_Update the mail status"
-msgstr "Актуализиране състоянието на пощата"
-
-#: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
-
-#: ui/properties.glade.h:46
-msgid "_Vertical offset:"
-msgstr ""
-
-#: ui/properties.glade.h:47
+#: ui/properties.glade.h:19
msgid "minutes"
msgstr "минути"
-#: ui/properties.glade.h:48
-msgid "pixels"
-msgstr ""
-
-#: ui/properties.glade.h:49
+#: ui/properties.glade.h:20
msgid "seconds"
msgstr "секунди"
-#: ui/summary-popup.glade.h:1
-#, fuzzy
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Пощенски кутии</span>"
-
#: ui/welcome.glade.h:1
-#, fuzzy
msgid ""
"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
"\n"
"Mail Notification has been loaded successfully.\n"
"\n"
-"Since this is the first time you run Mail Notification, you need to "
+"Since this is the first time you run Mail Notification, you might want to "
"configure it.\n"
"\n"
"Note: this message will not be shown anymore. To configure Mail Notification "
@@ -1930,15 +1124,11 @@ msgstr ""
"\n"
"Известяването за поща беше стартирано успешно.\n"
"\n"
-"След като стартирате за първи път известяването за поща то сигурно желаете "
-"да го настроите.\n"
+"След като стартирате за първи път известяването за поща то "
+"сигурно желаете да го настроите.\n"
"\n"
-"Бележка: няма да видите това съобщение отново. За да настроите известяването "
-"за поща отново, то изберете <span weight=\"bold\">Програми</span> → "
-"<span·weight=\"bold\">Настройки на средата</span> → <span weight=\"bold"
-"\">Известяване за поща</span> (или при някои системи <span weight=\"bold"
-"\">Програми → Настройки → Допълнителни настройки → Известяване за поща</"
-"span>)."
+"Бележка: няма да видите това съобщение отново. За да настроите "
+"известяването за поща отново, то изберете <span weight=\"bold\">Програми</span> → <span·weight=\"bold\">Настройки на средата</span> → <span weight=\"bold\">Известяване за поща</span> (или при някои системи <span weight=\"bold\">Програми → Настройки → Допълнителни настройки → Известяване за поща</span>)."
#: ui/welcome.glade.h:8
msgid "_Configure Mail Notification"
@@ -1948,70 +1138,4 @@ msgstr "_Настройки на известяването за поща"
msgid "_Skip configuration"
msgstr "_Пропускане на настройването"
-#~ msgid "Run a command when the icon is double-clicked"
-#~ msgstr "Стартиране на команда при двойно натискане на иконата"
-
-#~ msgid "The command to run when the icon is double-clicked."
-#~ msgstr ""
-#~ "Командата, която да се стартира при двойно натискане на иконата - писмо."
-
-#~ msgid "Whether to run a command when the icon is double-clicked or not."
-#~ msgstr "Дали да се стартира команда при натискането на иконата-писмо или не"
-
-#~ msgid "Your Gmail password"
-#~ msgstr "Вашата парола в Gmail"
-
-#~ msgid "successfully logged in"
-#~ msgstr "успешно влязъл в"
-
-#~ msgid "Your password on the IMAP server"
-#~ msgstr "Паролата ви за IMAP сървъра"
-
-#~ msgid "_Run %s"
-#~ msgstr "_Стартиране %s"
-
-#~ msgid "_Run Default Action"
-#~ msgstr "_Стартиране на стандартното действие"
-
-#~ msgid "%s has no new mail"
-#~ msgstr "%s няма нова поща"
-
-#~ msgid "error while reading mailbox: %s"
-#~ msgstr "грешка при четенето на пощенската кутия: %s"
-
-#~ msgid "Your password on the POP3 server"
-#~ msgstr "Паролата ви в POP3 сървъра"
-
-#~ msgid "A command error has occurred"
-#~ msgstr "След изпълнението на командата се получи грешка"
-
-#~ msgid "Unable to execute double-clicked command: %s."
-#~ msgstr "Неуспех при стартирането на командата: %s."
-
-#~ msgid "The following mailbox has new mail:\n"
-#~ msgstr "Следната пощенска кутия има нова поща:\n"
-
-#~ msgid "The following mailbox reported an error:\n"
-#~ msgstr "Следната пощенска кутия докладва за грешка:\n"
-
-#~ msgid "The following mailbox is unsupported:\n"
-#~ msgstr "Следните пощенски кутии не се поддържат:\n"
-
-#~ msgid "Unable to execute new mail command: %s."
-#~ msgstr "Неуспех при стартирането на нова пощенска команда: %s."
-
-#~ msgid " "
-#~ msgstr " "
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "The command to run when the icon is double-clicked"
-#~ msgstr ""
-#~ "Командата, която да се стартира когато иконата-писмо се натисне два пъти"
-
-#~ msgid "When double-click_ed:"
-#~ msgstr "При _двойно натискане:"
-#~ msgid "Whether to run a command when the icon is double-clicked or not"
-#~ msgstr "Дали да се стартира команда при двойно натискане на иконата или не"
diff --git a/po/de.gmo b/po/de.gmo
Binary files differ.
diff --git a/po/de.po b/po/de.po
@@ -5,168 +5,178 @@
# mail-notification package.
#
# Hendrik Brandt <heb@gnome-de.org>, 2004-2005.
+# Jens Seidel <jensseidel@users.sf.net>, 2005.
#
msgid ""
msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-02 21:38+0100\n"
+"POT-Creation-Date: 2005-07-31 04:17+0200\n"
+"PO-Revision-Date: 2005-08-06 07:00+0200\n"
"Last-Translator: Hendrik Brandt <heb@gnome-de.org>\n"
"Language-Team: German <gnome-de@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
+"Plural-Forms: nplurals=2; plural=n>1;"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
msgid "Mail Notification automation"
msgstr "Automatische E-Mail-Eingangsüberwachnung"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
msgid "Mail Notification automation factory"
msgstr "Automatische E-Mail-Eingangsüberwachnung"
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "Evolution-Ordnerbaum-Steuerung"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "Evolution-Ordnerbaum-Steuerungsfabrik"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "E-Mail-Eingangsüberwachnung / Evolution-Anbindung"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "E-Mail-Eingangsüberwachnung / Evolution-Anbindungsfarbik"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
msgid "Configure Mail Notification"
msgstr "Die E-Mail-Eingangsüberwachung einstellen"
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
msgid "Mail Notification"
msgstr "E-Mail-Eingangsüberwachung"
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
msgid "Get notified when new mail arrives"
msgstr "Informiert Sie wenn eine neue Nachricht eintrifft"
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
msgid "Automatically close the mail summary popup"
msgstr "Nachrichtenübersicht automatisch schließen"
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
msgid "Blink on errors"
msgstr "Bei Fehler blinken"
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
msgid "Delay between mail checks (minutes part)."
msgstr "Abstand zwischen Eingangsüberprüfung (Minutenteil)."
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
msgid "Delay between mail checks (seconds part)."
msgstr "Abstand zwischen Eingangsüberprüfung (Sekundenteil)."
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
msgid "Display mail summary in tooltip"
msgstr "Nachrichtenübersicht als Minihilfe anzeigen"
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
msgid "Do not show the immediate notification error dialog"
msgstr "Den Fehlerdialog der Sofortbenachrichtigung nicht sofort anzeigen"
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
msgid "Double-click action"
msgstr "Aktion bei Doppelklick"
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
msgid "Enable mail summary popup"
msgstr "Nachrichtenübersicht aktivieren"
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
msgid "Fingerprints of trusted X509 certificates"
msgstr "Fingerabdrücke vertrauensvoller X509-Zertifikate"
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "Wurde schon einmal gestartet"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
msgid "Height of edit toolbars dialog"
msgstr "Höhe des Dialogs zum Bearbeiten der Werkzeugleisten"
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
msgid "Height of main window"
msgstr "Höhe des Hauptfensters"
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
msgid "Height of properties dialog"
msgstr "Höhe des Einstellungen-Dialogs"
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
msgid "Mail read command"
msgstr "Befehl zum Lesen einer Nachricht"
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
msgid "Mail reader command"
msgstr "Befehl zum Starten des E-Mail-Programms"
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
msgid "Mail summary popup contents font"
msgstr "Schrift für den Inhalt der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
msgid "Mail summary popup fonts aspect source"
msgstr "Quelle der Schrift für die Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
msgid "Mail summary popup horizontal offset"
msgstr "Horizontaler Abstand der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
msgid "Mail summary popup position"
msgstr "Position der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
msgid "Mail summary popup title font"
msgstr "Schrift für den Titel der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
msgid "Mail summary popup vertical offset"
msgstr "Vertikaler"
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Liste der Postfächer"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
msgid "Minutes between mail checks"
msgstr "Minuten zwischen den Aktualisierungen"
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
msgid "Minutes to wait before closing the mail summary popup"
msgstr "Wartezeit bis zum Schließen der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
msgid "New mail command"
msgstr "Befehl bei neuer Nachricht"
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
msgid "Only display recent mail in mail summary popup"
msgstr "Nur aktuelle Nachrichten in der Nachrichtenübersicht anzeigen"
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
msgid "Run a command when all mail is read"
msgstr "Einen Befehl ausführen, wenn alle Nachrichten gelesen sind"
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
msgid "Run a command when new mail arrives"
msgstr "Einen Befehl ausführen, wenn eine neue Nachricht eintrifft"
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
msgid "Seconds between mail checks"
msgstr "Sekunden zwischen den Aktualisierungen"
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Wartezeit in Sekunden bis zum Schließen der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
msgid "Set a mail reader"
msgstr "Ein E-Mail-Programm festlegen"
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
msgid ""
"The action to perform when the icon is double-clicked. Must be \"display-"
"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
@@ -175,21 +185,21 @@ msgstr ""
"entweder den Wert »display-mail-window«, »launch-mail-reader« oder »update-"
"mail-status«."
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr ""
"Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Minutenteil)."
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr ""
"Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Sekundenteil)."
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
msgid ""
"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
"\"custom\"."
@@ -197,44 +207,40 @@ msgstr ""
"Die Quelle aus der die Schrift für die Nachrichtenübersicht festgelegt wird. "
"Der Wert muss entweder »theme« oder »custom« sein."
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
msgid "The command to run to launch the mail reader."
msgstr "Der Befehl um das E-Mail-Programm zu starten"
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
msgid "The command to run when all mail is read."
msgstr "Der Befehl der ausgeführt wird, wenn alle Nachrichten gelesen wurden"
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
msgid "The command to run when new mail arrives."
msgstr "Der Befehl der ausgeführt wird, wenn eine neue Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
msgid "The custom font to use for the contents of the mail summary popup."
msgstr ""
"Die benutzerdefinierte Schrift für den Inhalt der Nachrichtenübersicht."
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
msgid "The custom font to use for the title of the mail summary popup."
msgstr "Die benutzerdefinierte Schrift für den Titel der Nachrichtenübersicht."
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
msgid "The height of the edit toolbars dialog in pixels."
msgstr "Die Höhe des Dialogs zum Bearbeiten der Werkzeugleisten in Pixel."
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
msgid "The height of the main window in pixels."
msgstr "Die Höhe des Hauptfensters in Pixel."
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
msgid "The height of the properties dialog in pixels."
msgstr "Die Höhe des Einstellungsdialogs in Pixel."
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "Die Liste der zu überwachenden Postfächer."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
@@ -242,14 +248,14 @@ msgstr ""
"Die Liste vertrauensvoller SSL/TLS-Server (Host-Name:Port) ohne X509-"
"Zertifikat."
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
"Die Liste vertrauensvoller X509-Zertifikate, repräsentiert durch ihre MD5-"
"Fingerabdrücke."
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -257,7 +263,7 @@ msgstr ""
"Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
"der Nachrichtenübersicht."
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -265,7 +271,7 @@ msgstr ""
"Die Anzahl an Pixeln die zwischen dem oberen oder runteren Bildschirmrand "
"und der Nachrichtenübersicht."
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -273,7 +279,7 @@ msgstr ""
"Die Position der Nachrichtenübersicht. Der Wert muss »oben-links«, »oben-"
"rechts«, »unten-links« oder »unten-rechts« sein."
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
msgid ""
"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
"\"both\" or \"both-horiz\"."
@@ -281,285 +287,275 @@ msgstr ""
"Der Werkzeugleistenmodus. Muss den Wert »desktop-default«, »icons«, »text«, "
"»both« oder »both-horiz« haben."
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
msgid "The width of the edit toolbars dialog in pixels."
msgstr "Die Breite des Werkzeugleistenbearbeitungsdialogs in Pixel."
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
msgid "The width of the main window in pixels."
msgstr "Die Breite des Hauptfensters in Pixel."
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
msgid "The width of the properties dialog in pixels."
msgstr "Die Breite des Einstellungen-Dialogs in Pixel."
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
msgid "Toolbars style"
msgstr "Werkzeugleistenmodus"
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
msgid "Trusted servers list"
msgstr "Liste vertrauensvoller Server"
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
msgid "View statusbar"
msgstr "Statusleiste anzeigen"
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
msgid "View toolbars"
msgstr "Werkzeugleisten anzeigen"
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr ""
-"Legt fest, ob die E-Mail-Eingangsüberwachnung schon einmal gestartet wurde."
-
-#: data/mail-notification.schemas.in.h:59
+#: ../data/mail-notification.schemas.in.h:55
msgid "Whether the status icon should blink on errors or not."
msgstr ""
"Legt fest, ob das Nachrichtensymbol bei Auftreten eines Fehlers blinkt."
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
msgid "Whether the statusbar should be visible or not."
msgstr "Legt fest, ob die Statusleiste angezeigt werden."
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
msgid "Whether the toolbars should be visible or not."
msgstr "Legt fest, ob die Werkzeugleisten angezeigt werden."
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
msgid "Whether to display the mail summary in the status icon tooltip or not."
msgstr ""
"Legt fest, ob die Nachrichtenübersicht in der Minihilfe des Statussymbols "
"angezeigt wird."
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr ""
"Legt fest, ob die Nachrichtenübersicht angezeigt wird, wenn eine neue "
"Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
msgid ""
"Whether to hide previously displayed mail in the mail summary popup or not."
msgstr ""
"Legt fest, ob zuvor angezeigte Nachrichten in der Nachrichtenübersicht "
"erneut angezeigt werden."
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr ""
"Legt fest, ob der Fehlerdialog der Sofortbenachrichtigung angezeigt wird."
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Legt fest, ob ein Befehl ausgeführt wird, wenn alle Nachrichten gelesen "
"wurden."
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
msgid "Whether to run a command when new mail arrives or not."
msgstr ""
"Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
msgid "Whether to set a mail reader or not."
msgstr "Legt fest, ob ein E-Mail-Programm ausgewählt ist."
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
msgid "Width of edit toolbars dialog"
msgstr "Breite des Werkzeugleistenbearbeitungsdialogs"
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
msgid "Width of main window"
msgstr "Breite des Hauptfensters"
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
msgid "Width of properties dialog"
msgstr "Breite des Einstellungen-Dialogs"
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
msgid "New Mail"
msgstr "Neue Nachricht"
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
msgid "_Remove Toolbar"
msgstr "Werkzeugleiste _entfernen"
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
msgid "Separator"
msgstr "Trennlinie"
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Ziehen Sie einen Eintrag auf die Werkzeugleiste, um diesen hinzu zufügen "
-"oder ziehen Sie einen Eintrag von der Werkzeugleiste in das Depot um diesen "
-"zu entfernen."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
msgid "Orientation"
msgstr "Ausrichtung"
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
msgid "The orientation of the tray."
msgstr "Die Ausrichtung des Benachrichtigungsfeldes"
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
msgid "A Mail Notification Icon"
msgstr ""
"Ein Benachrichtigungssymbol das erscheint, wenn neue Nachrichten in Ihren "
"Postfächern liegen."
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
-msgstr "Hendrik Brandt <eru@gmx.li>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
+msgstr "Hendrik Brandt <heb@gnome-de.org>"
+
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "Verweis konnte nicht geöffnet werden"
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
msgid "<span style=\"italic\">autodetect</span>"
msgstr "<span style=\"italic\">automatisch erkennen</span>"
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "Ben_utzername:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Passwort:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
#, c-format
msgid ""
"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
"\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
msgstr ""
-"Die E-Mail-Eingangsüberwachnung konnte sich nicht an dem %s-Postfach »%s« "
-"anmelden. Eine mögliche Ursache wäre, dass Sie das Passwort falsch "
+"Die E-Mail-Eingangsüberwachung konnte sich nicht an dem %s-Postfach »%s« "
+"anmelden. Eine mögliche Ursache ist, dass Sie die Zugangsdaten falsch "
"eingegeben haben. \n"
"\n"
-"Bitte geben Sie das Passwort für dieses Postfach ein."
+"Bitte geben Sie die Zugangsdaten erneut ein."
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
#, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr "Bitte geben Sie das Passwort für %s-Postfach »%s«."
+msgid "Enter your credentials for %s mailbox %s."
+msgstr "Bitte geben Sie Ihre Zugangsdaten für %s-Postfach »%s« ein."
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Die E-Mail-Eingangsüberwachung "
-"benötigt ein Passwort</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Authentifizierung ist erforderlich"
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Ort"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:103
msgid "_Location:"
msgstr "_Ort:"
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
msgid "_Browse..."
msgstr "_Durchsuchen..."
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "Die Adresse des Postfachs"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
msgid "Select a File or Folder"
msgstr "Wählen Sie eine Datei oder ein Verzeichnis"
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Legt fest, ob das Bild blinkt oder nicht"
-
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
#, c-format
msgid "resolving %s"
msgstr "%s wird kontaktiert"
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
#, c-format
msgid "unable to resolve %s: %s"
msgstr "%s konnte nicht kontaktiert werden: %s"
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
#, c-format
msgid "%s: unsupported address family"
msgstr "%s: Adressfamilie wird nicht unterstützt"
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
#, c-format
msgid "%s: unable to create socket: %s"
-msgstr "%s: Socket konnte nciht erstellt werden: %s"
+msgstr "%s: Socket konnte nicht erstellt werden: %s"
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
#, c-format
msgid "connecting to %s (%s) port %i"
msgstr "Verbindung mit %s (%s) über Port %i wird hergestellt"
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
#, c-format
msgid "unable to connect: %s"
msgstr "Es konnte nicht verbunden werden: %s"
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
msgid "connected successfully"
msgstr "Verbindung hergestellt"
#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
#, c-format
msgid "unable to connect to %s"
msgstr "Es konnte keine Verbindung mit %s hergestellt werden"
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
#, c-format
msgid "unable to initialize the OpenSSL library: %s"
msgstr "Die OpenSSL-Bibliothek konnte nicht initializiert werden: %s"
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
#, c-format
msgid "unable to create a SSL/TLS object: %s"
msgstr "Es konnte kein SSL/TLS-Objekt erzeugt werden: %s"
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
#, c-format
msgid "unable to set the SSL/TLS file descriptor: %s"
msgstr "Es konnte kein SSL/TLS-Dateideskriptor gesetzt werden: %s"
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
#, c-format
msgid "unable to perform the SSL/TLS handshake: %s"
msgstr "Es konnte kein SSL/TLS-Handshake durchgeführt werden: %s"
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
msgid "untrusted server"
msgstr "nicht vertrauensvolle Server"
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
#, c-format
msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
msgstr "Eine SSL/TLS-Zwischenschicht ist jetzt aktiv (%s, %s %i-Bit)"
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
#, c-format
msgid "%s, fingerprint: %s"
msgstr "%s, Fingerabdruck %s"
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
msgid "missing certificate"
msgstr "kein Zertifikat"
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
#, c-format
msgid ""
"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -570,352 +566,331 @@ msgid ""
"to \"%s\". If you choose to connect to the server, this message will not be "
"shown again."
msgstr ""
-"Die E-Mail-Eingangsüberwachnung konnte »%s« nicht vertrauen (%s). Es ist "
-"möglich, dass ein Anderer Ihre Kommunikation abfängt um Zugriff auf "
-"Ihrepersönlichen Informationen zu bekommen.\n"
+"Die E-Mail-Eingangsüberwachnung konnte »%s« nicht vertrauen (%s). Es ist möglich, dass ein Anderer Ihre Kommunikation abfängt um Zugriff auf Ihrepersönlichen Informationen zu bekommen.\n"
"\n"
-"Sie sollten sich nur zu diesem Server verbinden, wenn Sie sicher sind, dass "
-"sie auch tatsächlich mit »%s« verbunden sind. Falls Sie sich dennoch mit dem "
-"Server verbinden lassen, wird dieser Dialog in Zukunft nicht mehr angeziegt."
+"Sie sollten sich nur zu diesem Server verbinden, wenn Sie sicher sind, dass sie auch tatsächlich mit »%s« verbunden sind. Falls Sie sich dennoch mit dem Server verbinden lassen, wird dieser Dialog in Zukunft nicht mehr angezeigt."
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
msgid "Connect to untrusted server?"
msgstr "Möchten Sie sich mit einem nicht vertrauenswürdigen Server verbinden?"
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "_Verbinden"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
#, c-format
msgid "response \"%s\" is not valid in current context"
msgstr "Die Antwort »%s« ist in diesem Kontext nicht zugelassen"
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
#, c-format
msgid "unable to parse response \"%s\""
msgstr "Die Antwort »%s« konnte nicht analysiert werden"
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
#, c-format
msgid "unable to read from server: %s"
msgstr "Es konnte nicht vom Server gelesen werden: %s"
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
msgid "unable to read from server: EOF"
msgstr "Es konnte nicht vom Server gelesen werden: EOF"
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "Die Daten konnten nicht per SASL dekodiert werden: %s"
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "Die Daten konnten nicht per SASL kodiert werden: %s"
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
#, c-format
msgid "unable to write to server: %s"
msgstr "Es konnte nicht auf den Server geschrieben werden: %s"
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
msgid "unable to write to server: EOF"
msgstr "Es konnte nicht auf den Server geschrieben werden: EOF"
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
#, c-format
msgid "unable to encode Base64: %s"
msgstr "Es konnte nicht mit Base64 kodiert werden: %s"
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "Die SASL-Bibliothek konnte nicht initializiert werden: %s"
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "Die lokale Adresse des Socket konnte nicht herausgefunden werden: %s"
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr ""
"Die entfernte Adresse des Socket konnte nicht herausgefunden werden: %s"
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
#, c-format
msgid "unable to set SASL security properties: %s"
msgstr "die SASL-Sicherheitseigenschaften konnten nicht gesetzt werden: %s"
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
"Die SASL-Authentifizierung konnte nicht gestartet werden: es wurde eine "
"unbekannte Anfrage von SASL gestellt"
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "Die SASL-Authentifizierung konnte nicht gestartet werden: %s"
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "Es konnte keine Verbindung mit SASL erzeugt werden: %s"
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
"Es wurde eine unbekannte Anfrage von SASL gestellt, SASL-Authentifizierung "
"wird abgebrochen"
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, SASL-Authentifizierung wird abgebrochen"
#. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "Die Server-seitige Base64-Eingabe konnte nicht dekodiert werden: %s"
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-"Der Server hat während einer beginnenden SASL-Client-Antwort einen Fehler "
-"gesendet"
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-"Der Server hat kein SASL-Problem gesendet, während noch eine Client-seitige "
-"SASL-Reaktion begonnen wurde"
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "Die SASL-Sicherheitsebene der Stärke %i ist jetzt aktiv"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "Der Wert SASL_MAXOUTBUF wurde nicht gefunden: %s"
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "Warnung: Der Wert SASL_SSF wurde nicht gefunden: %s"
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
msgid "A directory creation error has occurred"
msgstr "Beim Verzeichniserstellen ist ein Fehler aufgetreten"
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
#, c-format
msgid "Unable to create directory \"%s\": %s."
msgstr "Das Verzeichnis»%s« konnte nicht angelegt werden: %s."
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
#, c-format
msgid "recursively unsetting %s"
msgstr "%s rekursiv zurück setzen"
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
msgid "syncing the GConf database"
msgstr "Synchronisiere mit der GConf-Datenbank"
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
msgid "completed"
msgstr "Abgeschlossen"
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Ihr Gmail-Benutzername"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "Ungültiger Ort"
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-"Ihr Gmail-Passwort (falls Sie nichts eingeben, werden Sie jedesmal wenn es "
-"notwendig ist nach dem Passwort gefragt)"
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "Die aktuell ausgewählte Adresse"
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "»libsoup« wurde nicht mit SSL/TLS-Unterstützung erstellt"
-
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "Die Adresse »%s« konnte nicht analysiert werden"
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Ordner"
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "Vom Server wurden nicht-UTF-8-Daten übermittelt"
+#: ../src/mn-evolution-mailbox-properties.gob:169
+msgid ""
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
+msgstr "Die E-Mail-Eingangsüberwachung konnte Evolution nicht kontaktieren. "
+"Bitte stellen Sie sicher, dass Evolution läuft und dass das Evolution-Plugin zur E-Mail-Benachrichtigung "
+"geladen ist."
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "Daten konnten nicht übertragen werden: %s"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "Ordner nicht gefunden"
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "Anmelden bei"
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "Evolution konnte nicht kontaktiert werden"
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "Anmeldung fehlgeschlagen"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Das Evolution-Plugin zur E-Mail-Benachrichtigung konnte nicht aktiviert werden"
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "Es wird nach ungelesenen Nachrichten gesucht"
+#: ../src/mn-evolution-plugin.c:130
+#, c-format
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr ""
+"Bonobo konnte den %s-Server nicht finden. Bitte überprüfen Sie "
+"Ihre Installation der E-Mail-Eingangsüberwachung."
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "Die ICU-Bibliothek konnte nicht initializiert werden"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr ""
+"Bonobo konnte den %s-Server nicht registrieren. Bitte "
+"überprüfen Sie Ihre Installation der E-Mail-Eingangsüberwachung."
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "Die Gmail-Daten konnte nicht analysiert werden"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "ungültige Feed-Adresse"
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
#, c-format
-msgid "unable to open calendar: %s"
-msgstr "Kalender konnte nicht geöffnet werden: %s"
+msgid "retrieving feed from %s"
+msgstr "Feed von %s wird empfangen"
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
#, c-format
-msgid "unable to set calendar time: %s"
-msgstr "Die Kalenderzeit konnte nicht gesetzt werden: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "Feed konnte nicht geholt werden: %s"
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "Die aktuelle Kalenderzeit konnte nicht ermittelt werden: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "Feed konnte nicht analysiert werden"
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
#, c-format
msgid "unable to read %s: %s"
msgstr "%s konnte nicht gelesen werden: %s"
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:51
#, c-format
msgid "unable to write to %s: %s"
msgstr "Es konnte nicht nach %s geschrieben werden: %s"
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:53
#, c-format
msgid "unable to seek in %s: %s"
msgstr "Es konnte nicht in %s gesucht werden: %s"
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:55
#, c-format
msgid "unable to tell position of %s: %s"
msgstr "Die Position von %s konnte nicht ermittelt werden: %s"
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:57 ../src/mn-mh-mailbox-backend.gob:158
#, c-format
msgid "unable to close %s: %s"
msgstr "%s konnte nicht geschlossen werden: %s"
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
msgid "Mailbox:"
msgstr "Postfach:"
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
msgid "in_box"
msgstr "In_box"
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
msgid "oth_er:"
msgstr "_Anderer:"
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "Wenn möglich Leerlauf_modus verwenden"
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Der Name oder die IP-Adresse des IMAP-Servers"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "n_ie"
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Ihr Benutzername auf dem IMAP-Server"
-
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ihr Passwort für diesen IMAP-Server (falls Sie nichts eingeben, werden Sie "
-"jedesmal wenn es notwendig ist nach dem Passwort gefragt)"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "au_tomatisch erkennen"
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Die Port-Nummer auf dem IMAP-Server"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "i_mmer"
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Der Postfachname"
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Wenn möglich wird der Leerlauf_modus verwenden"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr ""
-"Die Unterstützung für SSL/TLS wurde beim Erstellen des Programms nicht "
-"eingebaut"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Die Erweiterung <span style=\"italic\">IDLE</span> verwenden:"
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
msgid "server did not send capabilities"
msgstr "Der Server hat seine Fähigkeiten nicht bekannt gegeben"
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
"Der Server gibt LOGINDISABLED zurück, LOGIN-Authentifizierung wird nicht "
"verwendet"
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
msgid "unable to login"
msgstr "Anmeldung fehlgeschlagen"
#. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
msgid "server did not send search results"
msgstr "Der Server hat keine Suchergebnisse gesendet"
#. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
msgid "server did not send all the messages we requested"
msgstr "Der Server hat nicht alle angeforderten Nachrichten gesendet"
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
msgid "unable to fetch message"
msgstr "Nachrichten konnten nicht abgerufen werden"
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr "»IDLE-Erweiterung verwenden« wird auf »nie« in den Postfacheinstellungen gesetzt, "
+"abmelden"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "der entfernte Server verwendet %s, die IDLE-Erweiterung wird nicht verwendet"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr "der entfernte Server verwendet %s, die IDLE-Erweiterung funktioniert unter Umständen nicht richtig"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr "der entfernte Server unterstützt die IDLE-Erweiterung nicht, es wird abgemeldet"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
msgid "unknown server error"
msgstr "Unbekannter Server-Fehler"
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
msgid "server does not support in-band SSL/TLS"
-msgstr "Der Server unterstütz kein band-internes SSL/TLS"
+msgstr "Der Server unterstützt kein band-internes SSL/TLS"
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -923,441 +898,362 @@ msgstr ""
"Sie haben eine Authentifizierung mit SASL ausgewählt, jedoch wurde die "
"Unterstützung für SASL beim Erstellen des Programms nicht eingebaut"
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "Unbekannte Authentifizierungsmethode »%s«"
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr "Mechanismus %s wird deaktiviert und SASL-Authentifizierung wird erneut probiert"
+
+#: ../src/mn-imap-mailbox.gob:1435
msgid "falling back to IMAP LOGIN authentication"
msgstr "Es wird auf die Authentifizierung per IMAP LOGIN zurückgegriffen"
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
msgid "authentication failed"
msgstr "Authentifizierung fehlgeschlagen"
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
msgid "Main _Window"
msgstr "_Hauptfenster"
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
msgid "_Mail Reader"
msgstr "_E-Mail-Programm"
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
msgid "_Update"
msgstr "_Aktualisieren"
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "Aus dem Benachrichtigungsfeld entfernen"
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Ein Postfach hinzufügen"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
#, c-format
msgid "%s Properties"
msgstr "%s Eigenschaften"
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "Ben_utzername:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Passwort:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Verbindungsart:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Port:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "_Authentifizierungsmethode:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr "Bezeichnung"
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr "Der ausgezeichnete Text in einem Kombinationsfeld"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr "Size group"
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr "Eine GtkSizeGroup um Kontrollstrukturen auszurichten"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Vollständig"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Ein Postfach hinzufügen"
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr "Legt fest, ob die Einstellungen vollständig ausgefüllt sind"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Es ist ein Einfügefehler aufgetreten"
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
msgid "Mailbox"
msgstr "Postfach"
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Protokoll"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "unerledigtes %s-Postfach (%s)"
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Postfach konnte nicht hinzugefügt werden"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "%s-Postfach"
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "Dieses Postfach exisitiert bereits in Ihrer Liste."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "Postfachtyp wird ermittelt..."
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "Die Postfachadresse"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "Attribut »type« wurde nicht gefunden"
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Der lesbare Postfachname"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "unbekannter Postfachtyp »%s«"
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Legt fest, ob das Postfach abgefragt werden muss"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr "Eigenschaft »%s«: es war nicht möglich, die Zeichenkette »%s« in einen Wert vom "
+"Typ »%s« umzuwandeln"
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "Die Liste neuer und ungelesener MNMessage-Objekte"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "Eigenschaft »%s« hat keinen Wert"
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "Der Postfachfehler, falls vorhanden"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr "Beim Importieren älterer Postfächer ist ein Fehler aufgetreten"
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "existiert nicht"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Die Postfacheinstellungen konnten nicht gelden werden"
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "unbekanntes Format"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "Das XML-Dokument konnte nicht analysiert werden."
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "die Sofortbenachrichtigung konnte nicht aktiviert werden: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "Das Wurzelelement ist nicht vorhanden."
-#: src/mn-mailbox.gob:421
-#, fuzzy, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
-msgstr[1] ""
-"Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
+#: ../src/mn-mailboxes.gob:307
+#, c-format
+msgid "The root element \"%s\" is invalid."
+msgstr "Das Wurzelelement »%s« ist nicht gültig."
-#: src/mn-mailbox.gob:432
-#, fuzzy, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
-msgstr[1] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
+#: ../src/mn-mailboxes.gob:330
+#, c-format
+msgid "On line %i: %s."
+msgstr "In Zeile %i: %s"
-#: src/mn-mailbox.gob:443
-#, fuzzy, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
-msgstr[1] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
+#: ../src/mn-mailboxes.gob:335
+#, c-format
+msgid "On line %i: unknown element \"%s\"."
+msgstr "In Zeile %i: unbekanntes Element »%s«."
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Bei der Überwachung ist ein Fehler aufgetreten"
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
+msgstr[0] "Beim Laden der Postfacheinstellungen ist ein Fehler aufgetreten."
+msgstr[1] "Beim Laden der Postfacheinstellungen sind mehrere Fehler aufgetreten."
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"Die E-Mail-Eingangsüberwachung konnte die Sofortbenachrichtigung für ein "
-"oder mehrere Postfächer nicht aktivieren: %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Die Postfacheinstellungen konnte nicht gespeichert werden"
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr "Legt fest, ob ein oder mehrere Postfächer befragt werden sollen"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Das XML-Dokument konnte nicht geschrieben werden."
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
#, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s wird nicht unterstützt: %s"
+msgid "unable to delete %s: %s"
+msgstr "%s konnte nicht gelöscht werden: %s"
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
#, c-format
msgid "%s has %i new message"
msgid_plural "%s has %i new messages"
msgstr[0] "%s hat %i neue Nachricht"
msgstr[1] "%s hat %i neue Nachrichten"
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
#, c-format
msgid "%s reported an error: %s"
msgstr "%s hat einen Fehler erzeugt: %s"
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
#, c-format
msgid "unable to open folder \"new\": %s"
msgstr "Der Ordner »new« konnte nicht geöffnet werden: %s"
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
#, c-format
msgid "unable to close folder \"new\": %s"
msgstr "Der Ordner »new« konnte nicht geschlossen werden: %s"
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
#, c-format
msgid "error while reading folder \"new\": %s"
msgstr "Fehler beim Lesen des Ordners »new«: %s"
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Hilfetexte"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Nachrichten zählen"
+
#. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
msgid "_Mail"
msgstr "_Nachricht"
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
msgid "_Edit"
msgstr "_Bearbeiten"
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
msgid "_View"
msgstr "_Ansicht"
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
msgid "_Help"
msgstr "_Hilfe"
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
msgid "Launch the mail reader"
msgstr "Das E-Mail-Programm starten"
#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
msgid "Update the mail status"
msgstr "Nach neuen Nachrichten sehen"
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
msgid "_Close"
msgstr "_Schließen"
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
msgid "Close this window"
msgstr "Dieses Fenster schließen"
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
msgid "_Quit"
msgstr "_Beenden"
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
msgid "Quit Mail Notification"
msgstr "Die E-Mail-Eingangsüberwachung beenden"
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
msgid "_Toolbars"
msgstr "_Werkzeugleisten"
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
msgid "Customize the toolbars"
msgstr "Die Werkzeugleisten an die eigenen Bedürfnisse anpassen"
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
msgid "_Preferences"
msgstr "_Einstellungen"
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
msgid "Toolbars Styl_e"
msgstr "Werkzeugleistenmodus"
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
msgid "Customize the toolbars style"
msgstr "Den Modus der Werkzeugleisten anpassen"
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
msgid "_Contents"
msgstr "I_nhalt"
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
msgid "Display help"
msgstr "Die Hilfe anzeigen"
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
msgid "_About"
msgstr "_Info"
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
msgid "Display credits"
msgstr "Mitwirkende anzeigen"
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
msgid "Show or hide the toolbars"
msgstr "Die Werkzeugleisten anzeigen oder verstecken"
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
msgid "_Statusbar"
msgstr "_Statusleiste"
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
msgid "Show or hide the statusbar"
msgstr "Die Statusleiste anzeigen oder verstecken"
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
msgid "_Desktop Default"
msgstr "_Systemvorgabe"
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
msgid "Set the toolbars style to the desktop default setting"
msgstr "Den Werkzeugleistenmodus wie vom System vorgegeben benutzen"
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
msgid "I_cons Only"
msgstr "Nur _Symbole"
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
msgid "Only display the toolbars icons"
msgstr "Nur Werkzeugleistensymbole anzeigen"
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
msgid "_Text Only"
msgstr "Nur _Beschriftungen"
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
msgid "Only display the toolbars text"
msgstr "Nur Werkzeugleistentexte anzeigen"
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
msgid "Text Belo_w Icons"
msgstr "Beschriftungen _unter Symbolen"
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
msgid "Display the toolbars text below the icons"
msgstr "Die Werkzeugleistenbeschriftung unter den Symbolen anzeigen"
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
msgid "Text Be_side Icons"
msgstr "Beschriftung _neben Symbolen"
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
msgid "Display the toolbars text beside the icons"
msgstr "Die Werkzeugleistenbeschriftung neben den Symbolen anzeigen"
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
#, c-format
msgid "unable to load menus.xml: %s"
msgstr "menus.xml konnte nicht geladen werden: %s"
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Hilfetexte"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Nachrichten zählen"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "toolbars.xml konnte nicht geladen werden"
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
#, c-format
msgid "%i new message"
msgid_plural "%i new messages"
msgstr[0] "%i neue Nachricht"
msgstr[1] "%i neue Nachrichten"
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "toolbars.xml konnte nicht geladen werden"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Eingebaute Postfacharten: %s\n"
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "Gmail-Zeitstempel"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Eingebaute Postfacharten: "
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Eingebaute Programmfähigkeiten: %s\n"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Eingebaute POP3- und IMAP-Fähigkeiten: "
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
msgid "Enable informational output"
msgstr "Ausgabe von Informationen aktivieren"
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
msgid "List the compiled-in features"
msgstr "Eingebaute Programmfähigkeiten anzeigen"
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
msgid "Display the main window"
msgstr "Das Hauptfenster anzeigen"
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
msgid "Display the properties dialog"
msgstr "Den Dialog zum Einstellen der E-Mail-Eingangsüberwachung anzeigen"
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
msgid "Display the about dialog"
msgstr "Den Info-Dialog anzeigen"
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
msgid "Close the mail summary popup"
msgstr "Die Nachrichtenübersicht schließen"
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Den aktuellen Nachrichten anzeigen"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
msgid "Unset obsolete GConf configuration"
msgstr "Veraltete GConf-Konfiguration zurücksetzen"
@@ -1365,11 +1261,11 @@ msgstr "Veraltete GConf-Konfiguration zurücksetzen"
#. * We can't use mn_error_dialog() because gtk_init() has not been
#. * called yet.
#.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
msgid "multi-threading is not available"
msgstr "Multi-Threading steht nicht zur Verfügung"
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
msgid ""
"Bonobo could not locate the automation object. Please check your Mail "
"Notification installation."
@@ -1377,173 +1273,182 @@ msgstr ""
"Bonobo konnte das Automatisierungsobjekt nicht finden. Bitte überprüfen Sie "
"Ihre Installation der E-Mail-Eingangsüberwachung."
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
msgid "quitting Mail Notification"
msgstr "E-Mail-Eingangsüberwachung wir beendet"
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
msgid "Mail Notification is not running"
msgstr "Die E-Mail-Eingangsüberwachung ist nicht aktiv"
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
msgid "Unable to initialize the GnomeVFS library."
msgstr "Die GnomeVFS-Bibliothek konnte nicht initializiert werden."
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
msgid "updating the mail status"
msgstr "Nachrichtenstatus wird aktualisiert"
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
msgid "Mail Notification is already running"
msgstr "Die E-Mail-Eingangsüberwachung ist bereits aktiv"
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
+"Bonobo could not locate the %s file. Please check your Mail Notification "
+"installation."
msgstr ""
-"Bonobo konnte die Datei GNOME_MailNotification_Automation.server nicht "
-"finden. Bitte überprüfen Sie Ihre Installation der E-Mail-"
-"Eingangsüberwachung."
+"Bonobo konnte die %s-Datei nicht finden. Bitte überprüfen Sie "
+"Ihre Installation der E-Mail-Eingangsüberwachung."
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-"Bonobo konnte den Automatisierungs-Server nicht registrieren.Bitte "
-"überprüfen Sie Ihre Installation der E-Mail-Eingangsüberwachung."
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "Datei konnte nicht geschlossen werden: %s"
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:222
#, c-format
msgid "unable to open mailbox: %s"
msgstr "Postfach konnte nicht geöffnet werden: %s"
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
msgid "unable to parse MIME message"
msgstr "Die MIME-Nachricht konnte nicht analysiert werden"
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
msgid "You have no new mail."
msgstr "Sie haben keine neuen Nachrichten."
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
msgid "Unreadable message"
msgstr "Nichtlesbare Nachricht"
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
msgid "From"
msgstr "Von"
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
msgid "Subject"
msgstr "Betreff"
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
msgid "Sent"
msgstr "Gesendet"
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
msgid "Unknown"
msgstr "Inactive"
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] "Vor %i Sekunde"
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
#, c-format
msgid "about %i minute ago"
msgid_plural "about %i minutes ago"
msgstr[0] "vor etwa %i Minute"
msgstr[1] "vor etwa %i Minuten"
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
#, c-format
msgid "about %i hour ago"
msgid_plural "about %i hours ago"
msgstr[0] "vor etwa %i Stunde"
msgstr[1] "vor etwa %i Stunden"
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
#, c-format
msgid "about %i day ago"
msgid_plural "about %i days ago"
msgstr[0] "vor etwa %i Tag"
msgstr[1] "vor etwa %i Tagen"
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
#, c-format
msgid "about %i week ago"
msgid_plural "about %i weeks ago"
msgstr[0] "vor etwa %i Woche"
msgstr[1] "vor etwa %i Wochen"
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "Fehler beim lesen der .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "keine"
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr ".mh_sequences konnten nicht geöffnet werden: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "ermitteln"
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "_Server:"
+msgid "error while reading %s: %s"
+msgstr "Fehler beim Lesen von %s: %s"
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Details"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "%s konnte nicht geöffnet werden: %s"
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
msgid "sta_ndard"
msgstr "Sta_ndard"
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
msgid "_in-band SSL/TLS"
msgstr "_band-internes SSL/TLS"
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS über e_xtra Port"
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Der Name oder die IP-Adresse des POP3-Servers"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "_Server:"
+
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Details"
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Ihr Benutzername für diesen POP3-Server"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Verbindungsart:"
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ihr Passwort für diesen POP3-Server (falls Sie nichts eingeben, werden Sie "
-"jedesmal wenn es notwendig ist nach dem Passwort gefragt)"
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Port:"
+
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "_Authentifizierungsmethode:"
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Die Port-Nummer des POP3-Servers"
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr ""
+"Die Unterstützung für SSL/TLS wurde beim Erstellen des Programms nicht "
+"eingebaut"
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pop3-mailbox.gob:359
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "Ungültige Argumente für die Anmeldeverzögerung"
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr "Die SASL-Authentifizierung mit anfänglicher Client-Antwort ist gescheitert, es "
+"wird nun ohne Client-Antwort erneut versucht"
+
+#: ../src/mn-pop3-mailbox.gob:733
msgid "unknown error"
msgstr "Unbekannter Fehler"
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1552,473 +1457,462 @@ msgstr[0] ""
"gewartetAnmeldeverzögerung wird berücksichtigt, es wird für %i Sekunden "
"gewartet"
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
msgid "server does not support APOP authentication"
-msgstr "Der Server unterstütz eine Authentifizierung per APOP nicht."
+msgstr "Der Server unterstützt eine Authentifizierung per APOP nicht."
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
msgid "falling back to APOP authentication"
msgstr "Es wird auf Authentifizierung mit APOP zurück gegriffen."
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
msgid "falling back to USER/PASS authentication"
msgstr ""
"Es wird auf Authentifizierung per Nutzername und Passwort zurück gegriffen."
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Einstellung der E-Mail-Eingangsüberwachung"
+
+#: ../src/mn-properties-dialog.gob:207
msgid "top left"
msgstr "oben links"
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
msgid "top right"
msgstr "oben rechts"
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
msgid "bottom left"
msgstr "unten links"
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
msgid "bottom right"
msgstr "unten rechts"
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
msgid "No mailbox selected."
msgstr "Kein Postfach ausgewählt."
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] "Ein Posfach ausgewählt."
msgstr[1] "%i Postfächer ausgewählt."
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Testnachricht Nr. %i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr "Einstellungen der E-Mail-Eingangsüberwachung"
+
+#: ../src/mn-shell.gob:109
msgid "You have new mail."
msgstr "Sie haben neue Nachrichten."
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
msgid "Mailboxes Having New Mail"
msgstr "Folgende Postfächer haben neue Nachrichten"
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
msgid "Errors"
msgstr "Fehler"
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Nichtunterstützte Postfächer"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
msgid "Mail Summary"
msgstr "Nachrichtenübersicht"
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "Die Proxy-Adresse »%s« konnte nicht analysiert werden"
-
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
msgid "unknown SSL/TLS error"
msgstr "Unbekannter SSL/TLS-Fehler"
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
msgid "Select _All"
msgstr "_Alles auswählen"
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
msgid "Leave Fullscreen"
msgstr "Vollbild verlassen"
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "_Verbinden"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
#, c-format
msgid "unable to open folder: %s"
msgstr "Ordner konnte nicht geöffnet werden: %s"
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
#, c-format
msgid "unable to close folder: %s"
msgstr "Ordner konnte nicht geschlossen werden: %s"
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
#, c-format
msgid "error while reading folder: %s"
msgstr "Fehler beim Lesen von Ordner: %s"
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
+#: ../src/mn-sylpheed-mailbox-backend.gob:255
+msgid "unexpected end of file"
+msgstr "unerwartetes Dateiende"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:269
+#, c-format
+msgid "incompatible file version \"%i\""
+msgstr "inkompatible Dateiversion »%i«"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:272
+msgid "file version missing"
+msgstr "Dateiversion nicht gefunden"
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
msgstr "Systempostfach"
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
msgstr ""
-"Es wird Ihr Systempostfach (<span weight=\"bold\">%s</span>) verwendet."
+"Ihr Systempostfach ist <span weight=\"bold\">%s</span>."
-#: src/mn-system-mailbox-properties.gob:64
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
+"The location of your system mailbox could not be detected. Check the MAIL "
+"environment variable."
msgstr ""
-"Der Ort Ihres Systempostfachs wurde nicht erkannt. Bitte setzen Sie die "
+"Der Ort Ihres Systempostfachs konnte nicht ermittelt werden. Bitte überprüfen Sie die "
"Umgebungsvariable »MAIL«."
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "Der Grund weshalb dieses Postfach nicht unerstützt wird"
-
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "nicht unterstützt"
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "Die Umgebungsvariable »MAIL« ist nicht gesetzt"
-#: src/mn-util.c:245
+#: ../src/mn-util.c:281
#, c-format
msgid "error loading image: %s"
msgstr "Bild konnte nicht geladen werden: %s"
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
#, c-format
msgid "widget \"%s\" not found in interface \"%s\""
msgstr "Widget »%s« konnte nicht in Interface »%s« gefunden werden"
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "Es wurde eine ungültige Adressliste erhalten"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "Anwendung konnte selbst nicht in einem Modul geöffnet werden: %s"
+
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "Signalverarbeiter »%s« wurde nicht gefunden"
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "Es wurde eine ungültige Mozilla-Adresse erhalten"
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Es ist ein Drag'n'Drop-Fehler aufgetreten"
-#: src/mn-util.c:519
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Eine ungültige Adressliste wurde empfangen."
+
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Eine ungültige Mozilla-Adresse wurde empfangen."
+
+#: ../src/mn-util.c:678
msgid "Unable to display help"
msgstr "Die Hilfe kann nicht angezeigt werden"
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
#, c-format
msgid "Unable to create a thread: %s."
msgstr "Es konnte kein Thread erzeugt werden: %s."
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
msgid "_Do not show this message again"
msgstr "_Diese Meldung nicht erneut anzeigen"
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr ""
+"Der folgende Ort ist ungültig:\n"
+"\n"
+"%s"
+"Die folgenden Orte sind ungültig:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
msgid "A fatal error has occurred in Mail Notification"
msgstr ""
"Ein schwerwiegender Fehler ist beim Ausführen der E-Mail-Eingangsüberwachung "
"aufgetreten"
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
#, c-format
msgid "unable to get current time: %s"
msgstr "Die aktuelle Zeit konnte nicht ermittelt werden: %s"
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "Ungültige Signalspezifikation »%s«"
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
msgid "A command error has occurred in Mail Notification"
msgstr ""
"Es ist ein Fehler beim Ausführen eines Befehls in der E-Mail-"
"Eingangsüberwachung aufgetreten."
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
#, c-format
msgid "Unable to execute \"%s\": %s."
msgstr "»%s« konnte nicht ausgeführt werden: %s."
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "_Authentifizieren:"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "%s konnte nicht in %s umbenannt werden: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr "Postfachinhalt (%s) können nicht überwacht werden, Abfragemodus wurde aktiviert"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr "Postfachtyp (%s) kann nicht überwacht werden, Abfragemodus wurde aktiviert"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "unbekanntes Postfachformat"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "existiert nicht"
+
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Properties Dialog)."
+msgstr ""
+"Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+"Als Rücksicherung werden diese alle %i Sekunden überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Properties Dialog)."
+msgstr ""
+"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+"Als Rücksicherung werden diese alle %i Minuten überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Properties Dialog)."
+msgstr ""
+"Als Rücksicherung werden diese durchschnittlich jede %i Minute überprüft (dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+"Als Rücksicherung werden diese durchschnittlich alle %i Minuten überprüft (dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Bei der Überwachung ist ein Fehler aufgetreten"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"Die E-Mail-Eingangsüberwachung konnte die Sofortbenachrichtigung für ein "
+"oder mehrere Postfächer nicht aktivieren: %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
msgid "Edit Toolbars"
msgstr "Werkzeugleisten bearbeiten"
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
msgid "_Add a New Toolbar"
msgstr "_Neue Werkzeugleiste hinzufügen"
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
msgid "_Use Default"
msgstr "_Vorgabe verwenden"
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span size=\"larger\" weight=\"bold\">Nachrichtenübersicht</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Allgemein</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "Postfach_name:"
+
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
msgstr "_Art des Postfachs:"
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Befehle</span>"
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
msgid "<span weight=\"bold\">Double-click Action</span>"
msgstr "<span weight=\"bold\">Aktion bei Doppelklick</span>"
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
msgid "<span weight=\"bold\">Fonts</span>"
msgstr "<span weight=\"bold\">Schriften</span>"
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Allgemein</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Postfächer</span>"
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Position</span>"
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
msgid "Co_ntents:"
msgstr "_Inhalt:"
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
msgid "Dis_play mail summary in tooltip"
msgstr "_Nachrichtenübersicht anzeigen"
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
msgid "General"
msgstr "Allgemein"
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "_Horizontaler Abstand:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Einstellung der E-Mail-Eingangsüberwachung"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
msgid "Mail Summary Popup"
msgstr "Aufklappende Nachrichtenübersicht"
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
msgid "Mailboxes"
msgstr "Postfächer"
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
msgid "Only display _recent mail"
msgstr "Nur a_ktuelle Nachrichten anzeigen"
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "P_osition:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Die Wartedauer ehe die Nachrichtenübersicht geschlossen wurde"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "Die Zeit die zwischen zwei Überprüfungen auf neue Nachrichten vergeht"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "Der Befehl um das E-Mail-Programm zustarten"
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "Der auszuführende Befehl wenn alle Nachrichten gelesen wurden"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr ""
-"Geben Sie hier den Befehl ein, der ausgeführt wird sobald eine neue "
-"Nachricht eintrifft."
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
-"der Nachrichtenübersicht."
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Die Anzahl an Pixel zwischen dem oberen oder unteren Bildschirmrand und der "
-"Nachrichtenübersicht."
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
msgid "Use these _fonts:"
msgstr "Folgende _Schriften verwenden:"
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Wenn alle Nachricht _gelesen wurden:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Wenn alle _Nachricht gelesen wurden:"
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
msgid "When _new mail arrives:"
msgstr "Wenn neue Nachricht _eintrifft:"
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr ""
-"Wenn diese Option gewählt ist, blinkt das Nachrichtensymbol bei Auftreten "
-"eines Fehlers."
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Legt fest, ob die Nachrichtenübersicht automatisch geschlossen wird"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-"Legt fest, ob die Nachrichtenübersicht in der Minihilfe des Statussymbols "
-"angezeigt wird"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Legt fest, ob die Nachrichtenübersicht aufklappt wenn eine neue Nachricht "
-"eintrifft"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Legt fest, ob zuvor angezeigte Nachrichten erneut angezeigt werden"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-"Legt fest, ob ein Befehl ausgeführt wird wenn alle Nachrichten gelesen wurden"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-"Wenn diese Option ausgewählt ist, können Sie einen Befehl angeben der "
-"ausgeführt wird, sobald eine neue Nachricht eintrifft."
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Legt das E-Mail-Programm fest"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-"Wenn diese Option ausgewählt ist, wird die E-Mail-Eingangsüberwachnung beim "
-"Starten von GNOME ebenfalls gestartet."
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
msgid "_Automatically close after:"
msgstr "_Automatisch schließen nach:"
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
msgid "_Blink on errors"
msgstr "_Bei Fehler blinken"
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
msgid "_Delay between mail checks:"
msgstr "_Nach neuen Nachrichten sehen alle:"
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "_Test-Popup anzeigen"
+
+#: ../ui/properties-dialog.glade.h:21
msgid "_Display the main window"
msgstr "_Hauptfenster anzeigen"
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
msgid "_Enable mail summary popup"
msgstr "_Aufklappende Nachrichtenübersicht aktivieren"
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "_Horizontaler Abstand:"
+
+#: ../ui/properties-dialog.glade.h:24
msgid "_Launch the mail reader"
msgstr "E-Mail-Programm _starten"
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
msgid "_Mail reader:"
msgstr "_E-Mail-Programm:"
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Position:"
+
+#: ../ui/properties-dialog.glade.h:27
msgid "_Start Mail Notification on GNOME login"
msgstr "_Laden beim Starten von GNOME"
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
msgid "_Title:"
msgstr "_Titel:"
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
msgid "_Update the mail status"
msgstr "_Nach neuen Nachrichten sehen"
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
msgid "_Use fonts from theme"
msgstr "Schriften des _Themas verwenden"
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
msgid "_Vertical offset:"
msgstr "_Vertikaler Abstand:"
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
msgid "minutes"
msgstr "Minuten"
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
msgid "pixels"
msgstr "Pixel"
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
msgid "seconds"
msgstr "Sekunden"
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span size=\"larger\" weight=\"bold\">Nachrichtenübersicht</span>"
-
-#: ui/welcome.glade.h:1
-msgid ""
-"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
-"\n"
-"Mail Notification has been loaded successfully.\n"
-"\n"
-"Since this is the first time you run Mail Notification, you need to "
-"configure it.\n"
-"\n"
-"Note: this message will not be shown anymore. To configure Mail Notification "
-"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
-"span> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Erster Start</span>\n"
-"\n"
-"Die E-Mail-Eingangsüberwachung wurde erfolgreich geladen.\n"
-"\n"
-"Da dies das erste Mal ist, dass Sie die E-Mail-Eingangsüberwachnung starten, "
-"möchten Sie vielleicht einige Einstellungen vornehmen.\n"
-"\n"
-"Hinweis: Diese Meldung wird nicht erneut angezeigt. Um die E-Mail-"
-"Eingangsüberwachnung zu einem später Zeitpunkt einzustellen, starten Sie "
-"bitte <span weight=\"bold\">Desktop</span> → <span weight=\"bold"
-"\">Einstellungen</span> → <span weight=\"bold\">E-Mail-Eingangsüberwachnung</"
-"span> (auf einigen Systemen auch <span weight=\"bold\">Anwendungen</span> → "
-"<span weight=\"bold\">Desktop-Einstellungen</span> → <span weight=\"bold\">E-"
-"Mail-Eingansüberwachung</span>)."
-
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr "Die E-Mail-Eingangsüberwachung anpassen"
-
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr "Konfiguration über_springen"
-
-#~ msgid "received non-ASCII data from server"
-#~ msgstr "Vom Server wurden nicht-ASCII-Daten übermittelt"
-
-#~ msgid ""
-#~ "As a fallback, they will be checked approximately every %i minute (this "
-#~ "delay is configurable from the Properties Dialog).As a fallback, they "
-#~ "will be checked approximately every %i minutes (this delay is "
-#~ "configurable from the Properties Dialog)."
-#~ msgstr ""
-#~ "Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-#~ "über den Einstellungsdialog angepasst werden).Als Rücksicherung werden "
-#~ "diese alle %i Minuten überprüft (Dieser Wert kann über den "
-#~ "Einstellungsdialog angepasst werden)."
diff --git a/po/fr.gmo b/po/fr.gmo
Binary files differ.
diff --git a/po/fr.po b/po/fr.po
@@ -8,10 +8,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-06 22:30+0100\n"
+"POT-Creation-Date: 2005-08-09 18:03+0200\n"
+"PO-Revision-Date: 2005-08-09 21:21+0200\n"
"Last-Translator: Jean-Yves Lefort <jylefort@brutele.be>\n"
"Language-Team: Jean-Yves Lefort <jylefort@brutele.be>\n"
"MIME-Version: 1.0\n"
@@ -19,158 +19,167 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
msgid "Mail Notification automation"
msgstr "automation Notification de Courrier"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
msgid "Mail Notification automation factory"
msgstr "usine d'automation Notification de Courrier"
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "contrôle Evolution \"hiérarchie de dossiers\""
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "usine de contrôle Evolution \"hiérarchie de dossiers\""
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "colle Notification de Courrier / Evolution"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "usine de colle Notification de Courrier / Evolution"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
msgid "Configure Mail Notification"
msgstr "Configurer la Notification de Courrier"
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
msgid "Mail Notification"
msgstr "Notification de Courrier"
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
msgid "Get notified when new mail arrives"
msgstr "Etre notifié lorsque du nouveau courrier arrive"
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
msgid "Automatically close the mail summary popup"
msgstr "Fermer automatiquement le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
msgid "Blink on errors"
msgstr "Clignoter lors d'erreurs"
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
msgid "Delay between mail checks (minutes part)."
msgstr "Délai entre les vérifications de courrier (partie minutes)."
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
msgid "Delay between mail checks (seconds part)."
msgstr "Délai entre les vérifications de courrier (partie secondes)."
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
msgid "Display mail summary in tooltip"
msgstr "Afficher l'aperçu du courrier dans le tooltip"
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
msgid "Do not show the immediate notification error dialog"
msgstr ""
"Ne pas afficher la boîte de dialogue contenant l'erreur de notification "
"immédiate"
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
msgid "Double-click action"
msgstr "Action du Double-click"
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
msgid "Enable mail summary popup"
msgstr "Activer le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
msgid "Fingerprints of trusted X509 certificates"
msgstr "Empreintes digitales des certificats X509 de confiance"
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "A déjà été exécuté"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
msgid "Height of edit toolbars dialog"
msgstr "Hauteur de la boîte de dialogue contenant l'éditeur de barres d'outils"
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
msgid "Height of main window"
msgstr "Hauteur de la fenêtre principale"
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
msgid "Height of properties dialog"
msgstr "Hauteur de la boîte de dialogue contenant les propriétés"
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
msgid "Mail read command"
msgstr "Commande de courrier lu"
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
msgid "Mail reader command"
msgstr "Commande de lecteur de courrier"
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
msgid "Mail summary popup contents font"
msgstr "Police du contenu du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
msgid "Mail summary popup fonts aspect source"
msgstr ""
"Source d'aspect des polices de caractères du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
msgid "Mail summary popup horizontal offset"
msgstr "Décalage horizontal du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
msgid "Mail summary popup position"
msgstr "Position du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
msgid "Mail summary popup title font"
msgstr "Police du titre du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
msgid "Mail summary popup vertical offset"
msgstr "Décalage vertical du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Liste des boîtes aux lettres"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
msgid "Minutes between mail checks"
msgstr "Minutes entre les vérifications de courrier"
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
msgid "Minutes to wait before closing the mail summary popup"
msgstr "Minutes à attendre avant de fermer le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
msgid "New mail command"
msgstr "Commande de nouveau message"
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
msgid "Only display recent mail in mail summary popup"
msgstr ""
"Afficher uniquement le courrier récent dans le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
msgid "Run a command when all mail is read"
msgstr "Exécuter une commande lorsque tout le courrier est lu"
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
msgid "Run a command when new mail arrives"
msgstr "Exécuter une commande lorsque du nouveau courrier arrive"
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
msgid "Seconds between mail checks"
msgstr "Secondes entre les vérifications de courrier"
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Secondes à attendre avant de fermer le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
msgid "Set a mail reader"
msgstr "Spécifier un lecteur de courrier"
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
msgid ""
"The action to perform when the icon is double-clicked. Must be \"display-"
"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
@@ -178,7 +187,7 @@ msgstr ""
"L'action à effectuer lorsque l'icône est double-clickée. Doit être \"display-"
"main-window\", \"launch-mail-reader\" ou \"update-mail-status\"."
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
@@ -186,7 +195,7 @@ msgstr ""
"La quantité de temps à attendre avant de fermer le popup d'aperçu du "
"courrier (partie minutes)."
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
@@ -194,7 +203,7 @@ msgstr ""
"La quantité de temps à attendre avant de fermer le popup d'aperçu du "
"courrier (partie secondes)."
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
msgid ""
"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
"\"custom\"."
@@ -202,49 +211,45 @@ msgstr ""
"La source d'aspect des polices de caractères du popup d'aperçu du courrier. "
"Doit être \"theme\" ou \"custom\"."
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
msgid "The command to run to launch the mail reader."
msgstr "La commande à exécuter pour démarrer le lecteur de courrier."
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
msgid "The command to run when all mail is read."
msgstr "La commande à exécuter lorsque tout le courrier est lu"
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
msgid "The command to run when new mail arrives."
msgstr "La commande à exécuter lorsque du nouveau courrier arrive."
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
msgid "The custom font to use for the contents of the mail summary popup."
msgstr ""
"La police de caractères à utiliser pour le contenu du popup d'aperçu du "
"courrier."
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
msgid "The custom font to use for the title of the mail summary popup."
msgstr ""
"La police de caractères à utiliser pour le titre du popup d'aperçu du "
"courrier."
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
msgid "The height of the edit toolbars dialog in pixels."
msgstr ""
"La hauteur de la boîte de dialogue contenant l'éditeur de barres d'outils en "
"pixels."
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
msgid "The height of the main window in pixels."
msgstr "La hauteur de la fenêtre principale en pixels."
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
msgid "The height of the properties dialog in pixels."
msgstr "La hauteur de la boîte de dialogue contenant les propriétés en pixels."
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "La liste des boîtes aux lettres à surveiller."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
@@ -252,14 +257,14 @@ msgstr ""
"La liste des serveurs SSL/TLS (hôte:port) de confiance auxquels il manque un "
"certificat X509."
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
"La liste des certificats X509 de confiance, représentés par leur empreinte "
"digitale."
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -267,7 +272,7 @@ msgstr ""
"Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
"popup d'aperçu du courrier."
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -275,7 +280,7 @@ msgstr ""
"Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
"d'aperçu du courrier."
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -283,7 +288,7 @@ msgstr ""
"La position du popup d'aperçu du courrier. Doit être \"top-left\", \"top-"
"right\", \"bottom-left\" or \"bottom-right\"."
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
msgid ""
"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
"\"both\" or \"both-horiz\"."
@@ -291,77 +296,73 @@ msgstr ""
"Le style des barres d'outils. Doit être \"desktop-default\", \"icons\", "
"\"text\", \"both\" ou \"both-horiz\"."
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
msgid "The width of the edit toolbars dialog in pixels."
msgstr ""
"La largeur de la boîte de dialogue contenant l'éditeur de barres d'outils en "
"pixels."
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
msgid "The width of the main window in pixels."
msgstr "La largeur de la fenêtre principale en pixels."
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
msgid "The width of the properties dialog in pixels."
msgstr "La largeur de la boîte de dialogue contenant les propriétés en pixels."
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
msgid "Toolbars style"
msgstr "Style des barres d'outils"
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
msgid "Trusted servers list"
msgstr "Liste des serveurs de confiance"
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
msgid "View statusbar"
msgstr "Afficher la barre d'état"
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
msgid "View toolbars"
msgstr "Afficher les barres d'outils"
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr "Si la Notification de Courrier a déjà été exécutée ou pas."
-
-#: data/mail-notification.schemas.in.h:59
+#: ../data/mail-notification.schemas.in.h:55
msgid "Whether the status icon should blink on errors or not."
msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas."
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
msgid "Whether the statusbar should be visible or not."
msgstr "Si la barre d'état doit être visible ou pas."
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
msgid "Whether the toolbars should be visible or not."
msgstr "Si les barres d'outils doivent être visibles ou pas."
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas."
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
msgid "Whether to display the mail summary in the status icon tooltip or not."
msgstr ""
"Si l'aperçu du courrier doit être affiché dans le tooltip de l'icône de "
"statut ou pas."
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr ""
"Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
"courrier arrive ou pas."
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
msgid ""
"Whether to hide previously displayed mail in the mail summary popup or not."
msgstr ""
"Si le courrier précédemment affiché dans le popup d'aperçu du courrier doit "
"être caché ou pas."
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
@@ -369,204 +370,200 @@ msgstr ""
"Si il faut empêcher la boîte de dialogue contenant l'erreur de notification "
"immédiate de s'afficher ou pas."
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Si une commande doit être exécutée lorsque tout le courrier est lu ou pas."
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
msgid "Whether to run a command when new mail arrives or not."
msgstr ""
"Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas."
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
msgid "Whether to set a mail reader or not."
msgstr "Si un lecteur de courrier est spécifié ou pas."
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
msgid "Width of edit toolbars dialog"
msgstr "Largeur de la boîte de dialogue contenant l'éditeur de barres d'outils"
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
msgid "Width of main window"
msgstr "Largeur de la fenêtre principale"
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
msgid "Width of properties dialog"
msgstr "Largeur de la boîte de dialogue contenant les propriétés"
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
msgid "New Mail"
-msgstr "Nouveau Courrier"
+msgstr "Nouveau courrier"
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
msgid "_Remove Toolbar"
-msgstr "_Enlever la Barre d'Outils"
+msgstr "_Enlever la barre d'outils"
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
msgid "Separator"
msgstr "Séparateur"
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Glissez un élément sur la barre d'outils pour l'y ajouter, et de celle-ci "
-"vers le tableau d'icônes pour l'en enlever."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
msgid "Orientation"
msgstr "Orientation"
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
msgid "The orientation of the tray."
msgstr "L'orientation du plateau."
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
msgid "A Mail Notification Icon"
-msgstr "Une Icône de Notification de Courrier"
+msgstr "Une icône de notification de courrier"
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
msgstr "Jean-Yves Lefort <jylefort@brutele.be>"
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "Impossible d'ouvrir le lien"
+
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
msgid "<span style=\"italic\">autodetect</span>"
msgstr "<span style=\"italic\">autodétecter</span>"
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "_Nom d'utilisateur:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Mot de passe:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
#, c-format
msgid ""
"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
"\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
msgstr ""
"La Notification de Courrier n'a pas été en mesure d'ouvrir une session dans "
-"la boîte aux lettres %s %s, peut-être parce que le mot de passe que vous "
-"avez saisi est invalide.\n"
+"la boîte aux lettres %s %s, peut-être parce que les données "
+"d'authentification que vous avez saisies sont invalides.\n"
"\n"
-"Veuillez à nouveau saisir votre mot de passe."
+"Veuillez à nouveau saisir vos données d'authentification."
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
#, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr "Entrez votre mot de passe pour la boîte aux lettres %s %s."
+msgid "Enter your credentials for %s mailbox %s."
+msgstr "Entrez vos données d'authentification pour la boîte aux lettres %s %s."
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">La Notification de Courrier nécessite "
-"un mot de passe</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Authentification requise"
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Emplacement"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:103
msgid "_Location:"
msgstr "_Emplacement:"
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
msgid "_Browse..."
msgstr "_Parcourir..."
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "L'URI de la boîte aux lettres"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
msgid "Select a File or Folder"
-msgstr "Sélectionnez un Fichier ou Dossier"
-
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Si l'image clignote ou pas"
+msgstr "Sélectionnez un fichier ou dossier"
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
#, c-format
msgid "resolving %s"
msgstr "résolution de %s en cours"
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
#, c-format
msgid "unable to resolve %s: %s"
msgstr "impossible de résoudre %s: %s"
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
#, c-format
msgid "%s: unsupported address family"
msgstr "%s: famille d'adresse non prise en charge"
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
#, c-format
msgid "%s: unable to create socket: %s"
msgstr "%s: impossible de créer un socket: %s"
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
#, c-format
msgid "connecting to %s (%s) port %i"
msgstr "connection à %s (%s) port %i en cours"
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
#, c-format
msgid "unable to connect: %s"
msgstr "impossible de se connecter: %s"
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
msgid "connected successfully"
msgstr "connecté avec succès"
#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
#, c-format
msgid "unable to connect to %s"
msgstr "impossible de se connecter à %s"
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
#, c-format
msgid "unable to initialize the OpenSSL library: %s"
msgstr "impossible d'initialiser la bibliothèque OpenSSL: %s"
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
#, c-format
msgid "unable to create a SSL/TLS object: %s"
msgstr "impossible de créer un objet SSL/TLS: %s"
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
#, c-format
msgid "unable to set the SSL/TLS file descriptor: %s"
msgstr "impossible de spécifier le descripteur de fichier SSL/TLS: %s"
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
#, c-format
msgid "unable to perform the SSL/TLS handshake: %s"
msgstr "impossible d'accomplir la négociation SSL/TLS: %s"
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
msgid "untrusted server"
msgstr "serveur non fiable"
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
#, c-format
msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
msgstr "une couche SSL/TLS est maintenant active (%s, %s %i-bit)"
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
#, c-format
msgid "%s, fingerprint: %s"
msgstr "%s, empreinte digitale: %s"
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
msgid "missing certificate"
msgstr "certificat manquant"
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
#, c-format
msgid ""
"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -585,342 +582,332 @@ msgstr ""
"vous êtes connecté à \"%s\". Si vous choisissez de vous connecter au "
"serveur, ce message ne sera plus affiché."
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
msgid "Connect to untrusted server?"
msgstr "Se connecter au serveur non fiable?"
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "Se co_nnecter"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
#, c-format
msgid "response \"%s\" is not valid in current context"
msgstr "la réponse \"%s\" n'est pas valable dans le contexte actuel"
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
#, c-format
msgid "unable to parse response \"%s\""
msgstr "impossible d'interpréter la réponse \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
#, c-format
msgid "unable to read from server: %s"
msgstr "impossible de lire depuis le serveur: %s"
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
msgid "unable to read from server: EOF"
msgstr "impossible de lire depuis le serveur: EOF"
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "impossible de décoder les données en utilisant SASL: %s"
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "impossible d'encoder les données en utilisant SASL: %s"
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
#, c-format
msgid "unable to write to server: %s"
msgstr "impossible d'écrire vers le serveur: %s"
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
msgid "unable to write to server: EOF"
msgstr "impossible d'écrire vers le serveur: EOF"
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
#, c-format
msgid "unable to encode Base64: %s"
msgstr "impossible d'encoder en Base64: %s"
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "impossible d'initialiser la bibliothèque SASL: %s"
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "impossible d'obtenir l'adresse locale du socket: %s"
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "impossible d'obtenir l'adresse distante du socket: %s"
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
#, c-format
msgid "unable to set SASL security properties: %s"
msgstr "impossible de spécifier les propriétés de sécurité SASL: %s"
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
"impossible de démarrer l'authentification SASL: SASL a demandé quelque chose "
"que nous ne connaissions pas"
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "impossible de démarrer l'authentification SASL: %s"
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "impossible de créer une connection SASL: %s"
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
"SASL a demandé quelque chose que nous ne connaissions pas, annulation de "
"l'authentification SASL"
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, annulation de l'authentification SASL"
#. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "impossible de décoder l'entrée Base64 du serveur: %s"
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-"le serveur a envoyé un défi SASL, mais il y avait une réponse client SASL "
-"initiale en attente"
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-"le serveur n'a pas envoyé de défi SASL, mais il n'y avait pas de réponse "
-"client SASL initiale en attente"
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr ""
"une couche de sécurité SASL de facteur de force %i est maintenant active"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "impossible d'obtenir la propriété SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "avertissement: impossible d'obtenir la propriété SASL_SSF: %s"
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
msgid "A directory creation error has occurred"
msgstr "Une erreur de création de répertoire s'est produite"
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
#, c-format
msgid "Unable to create directory \"%s\": %s."
msgstr "Impossible de créer le répertoire \"%s\": %s."
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
#, c-format
msgid "recursively unsetting %s"
msgstr "en train de supprimer récursivement %s"
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
msgid "syncing the GConf database"
msgstr "en train de synchroniser la base de données GConf"
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
msgid "completed"
msgstr "terminé"
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Votre nom d'utilisateur Gmail"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "emplacement invalide"
-#: src/mn-gmail-mailbox-properties.gob:77
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "L'URI actuellement sélectionnée"
+
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Dossier"
+
+#: ../src/mn-evolution-mailbox-properties.gob:169
msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
msgstr ""
-"Votre mot de passe Gmail (si laissé vide, le mot de passe vous sera demandé "
-"en temps utile)"
+"La Notification de Courrier ne peut contacter Evolution. Assurez-vous "
+"qu'Evolution est en cours de fonctionnement et que l'extension Evolution "
+"Notification de Courrier est chargée."
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "libsoup n'a pas été compilé avec le support SSL/TLS"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "dossier non trouvé"
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "impossible d'interpréter l'URI \"%s\""
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "impossible de contacter Evolution"
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "des données non-UTF-8 ont été reçues du serveur"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Impossible d'activer l'extension Notification de Courrier"
-#: src/mn-gmail-mailbox.gob:224
+#: ../src/mn-evolution-plugin.c:130
#, c-format
-msgid "unable to transfer data: %s"
-msgstr "impossible de transférer des données: %s"
-
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "ouverture de session en cours"
-
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "l'ouverture de session a échoué"
-
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "recherche du courrier non lu"
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr ""
+"Bonobo n'a pu localiser le serveur %s. Veuillez vérifier votre installation "
+"de la Notification de Courrier."
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "impossible d'initialiser la bibliothèque ICU"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr ""
+"Bonobo n'a pu inscrire le serveur %s. Veuillez vérifier votre installation "
+"de la Notification de Courrier."
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "impossible d'interpréter les données Gmail"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "emplacement d'alimentation non valide"
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
#, c-format
-msgid "unable to open calendar: %s"
-msgstr "impossible d'ouvrir le calendrier: %s"
+msgid "retrieving feed from %s"
+msgstr "obtention de l'alimentation depuis %s en cours"
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
#, c-format
-msgid "unable to set calendar time: %s"
-msgstr "impossible de spécifier l'heure du calendrier: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "impossible d'obtenir l'alimentation: %s"
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "impossible d'obtenir l'heure du calendrier: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "impossible d'interpréter l'alimentation"
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:50
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
#, c-format
msgid "unable to read %s: %s"
msgstr "impossible de lire %s: %s"
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:52
#, c-format
msgid "unable to write to %s: %s"
msgstr "impossible d'écrire vers %s: %s"
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:54
#, c-format
msgid "unable to seek in %s: %s"
msgstr "impossible de chercher dans %s: %s"
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:56
#, c-format
msgid "unable to tell position of %s: %s"
msgstr "impossible de dire la position de %s: %s"
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:58 ../src/mn-mh-mailbox-backend.gob:158
#, c-format
msgid "unable to close %s: %s"
msgstr "impossible de fermer %s: %s"
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
msgid "Mailbox:"
msgstr "Boîte aux lettres:"
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
msgid "in_box"
msgstr "_boîte de réception"
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
msgid "oth_er:"
msgstr "autr_e:"
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "Utili_ser le mode idle si possible"
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Le nom d'hôte ou adresse IP du serveur IMAP"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "_jamais"
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Votre nom d'utilisateur sur le serveur IMAP"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "au_todétecter"
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Votre mot de passe sur le serveur IMAP (si laissé vide, le mot de passe vous "
-"sera demandé en temps utile)"
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Le numéro de port du serveur IMAP"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "t_oujours"
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Le nom de la boîte aux lettres"
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Si possible, si le mode idle doit être utilisé ou pas"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr "le support SSL/TLS n'a pas été inclus lors de la compilation"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Utiliser l'extension <span style=\"italic\">IDLE</span>:"
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
msgid "server did not send capabilities"
msgstr "le serveur n'a pas envoyé ses possibilités"
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
"le serveur a annoncé LOGINDISABLED, pas d'utilisation de l'authentification "
"LOGIN"
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
msgid "unable to login"
msgstr "impossible d'ouvrir la session"
#. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
msgid "server did not send search results"
msgstr "le serveur n'a pas envoyé les résultats de la recherche"
#. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
msgid "server did not send all the messages we requested"
msgstr "le serveur n'a pas envoyé tous les messages que nous avons demandé"
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
msgid "unable to fetch message"
msgstr "impossible d'obtenir le message"
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr ""
+"la valeur de l'option \"Utiliser l'extension IDLE\" dans les propriétés de "
+"la boîte aux lettres est \"jamais\", fermeture de session"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "le serveur distant utilise %s, l'extension IDLE ne sera pas utilisée"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr ""
+"le serveur distant utilise %s, il se peut que l'extension IDLE ne fonctionne "
+"pas correctement"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr ""
+"le serveur distant ne supporte pas l'extension IDLE, fermeture de session"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
msgid "unknown server error"
msgstr "erreur serveur inconnue"
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
msgid "server does not support in-band SSL/TLS"
msgstr "le serveur ne supporte pas le mode SSL/TLS interne"
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -928,431 +915,372 @@ msgstr ""
"un mécanisme d'authentification SASL a été sélectionné mais le support SASL "
"n'a pas été inclus lors de la compilation"
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "mécanisme d'authentification inconnu \"%s\""
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr ""
+"désactivation du mécanisme \"%s\" et nouvelle tentative d'authentification "
+"SASL"
+
+#: ../src/mn-imap-mailbox.gob:1435
msgid "falling back to IMAP LOGIN authentication"
msgstr "rétrogradation vers l'authentification IMAP LOGIN"
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
msgid "authentication failed"
msgstr "l'authentification a échoué"
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
msgid "Main _Window"
-msgstr "_Fenêtre Principale"
+msgstr "_Fenêtre principale"
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
msgid "_Mail Reader"
-msgstr "_Lecteur de Courrier"
+msgstr "_Lecteur de courrier"
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
msgid "_Update"
-msgstr "_Mettre à Jour"
+msgstr "_Mettre à jour"
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
-msgstr "_Enlever de l'Aire de Notification"
+msgstr "_Enlever de l'aire de notification"
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Ajouter une Boîte aux Lettres"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
#, c-format
msgid "%s Properties"
msgstr "Propriétés de %s"
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "_Nom d'utilisateur:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Mot de passe:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Type de connection:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Port:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "Mécanisme d'_authentification:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr "Etiquette"
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr "Le texte marqué à afficher dans la boîte de type"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr "Groupe de taille"
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr "Un GtkSizeGroup pour aligner les étiquettes des contrôles"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Complet"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Ajouter une boîte aux lettres"
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr "Si les propriétés sont complètement remplies ou pas"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Une erreur de collage s'est produite"
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
msgid "Mailbox"
msgstr "Boîte aux lettres"
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Format"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "boîte aux lettres %s non prise en charge (%s)"
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Impossible d'ajouter la boîte aux lettres"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "boîte aux lettres %s"
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "La boîte aux lettres est déjà dans la liste."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "détection du type de boîte aux lettres en cours..."
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "L'URI de la boîte aux lettres"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "attribut \"type\" manquant"
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Le nom, lisible par un humain, de la boîte aux lettres"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "type de boîte aux lettres \"%s\" inconnu"
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Si la boîte aux lettres doit être vérifiée explicitement ou pas"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr ""
+"propriété \"%s\": impossible de transformer la chaîne de caractères \"%s\" "
+"en une valeur de type \"%s\""
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "La liste des objets MNMessage neufs et non lus"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "la propriété \"%s\" n'a pas de valeur"
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "L'erreur de la boîte aux lettres si il y en a une"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr ""
+"Une erreur s'est produite lors de l'importation des anciennes boîtes aux "
+"lettres"
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "n'existe pas"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Impossible de charger la configuration des boîtes aux lettres"
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "format inconnu"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "Impossible d'interpréter le document XML."
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "impossible d'activer la notification immédiate: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "L'élément racine est manquant."
-#: src/mn-mailbox.gob:421
+#: ../src/mn-mailboxes.gob:307
#, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Comme solution de secours, elles seront vérifiées toutes les %i seconde (ce "
-"délai est configurable depuis les Propriétés)."
-msgstr[1] ""
-"Comme solution de secours, elles seront vérifiées toutes les %i secondes (ce "
-"délai est configurable depuis les Propriétés)."
+msgid "The root element \"%s\" is invalid."
+msgstr "L'élément racine \"%s\" est invalide."
-#: src/mn-mailbox.gob:432
+#: ../src/mn-mailboxes.gob:330
#, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
-"délai est configurable depuis les Propriétés)."
-msgstr[1] ""
-"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
-"délai est configurable depuis les Propriétés)."
+msgid "On line %i: %s."
+msgstr "A la ligne %i: %s."
-#: src/mn-mailbox.gob:443
+#: ../src/mn-mailboxes.gob:335
#, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
+msgid "On line %i: unknown element \"%s\"."
+msgstr "A la ligne %i: élément \"%s\" inconnu."
+
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
msgstr[0] ""
-"Comme solution de secours, elles seront vérifiées approximativement toutes "
-"les %i minute (ce délai est configurable depuis les Propriétés)."
+"Une erreur s'est produite lors du chargement de la configuration des boîtes "
+"aux lettres"
msgstr[1] ""
-"Comme solution de secours, elles seront vérifiées approximativement toutes "
-"les %i minutes (ce délai est configurable depuis les Propriétés)."
-
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Une erreur de surveillance s'est produite"
+"Des erreurs se sont produites lors du chargement de la configuration des "
+"boîtes aux lettres"
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"La Notification de Courrier n'a pas été en mesure d'activer la notification "
-"immédiate pour une ou plusieures boîtes aux lettres. %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Impossible de sauvegarder la configuration des boîtes aux lettres"
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-"Si une ou plusieurs boîtes aux lettres doivent être vérifiées explicitement"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Impossible d'écrire le document XML."
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
#, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s n'est pas pris en charge: %s"
+msgid "unable to delete %s: %s"
+msgstr "impossible de supprimer %s: %s"
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
#, c-format
msgid "%s has %i new message"
msgid_plural "%s has %i new messages"
msgstr[0] "%s a %i nouveau message"
msgstr[1] "%s a %i nouveaux messages"
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
#, c-format
msgid "%s reported an error: %s"
msgstr "%s a indiqué une erreur: %s"
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
#, c-format
msgid "unable to open folder \"new\": %s"
msgstr "impossible d'ouvrir le dossier \"new\": %s"
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
#, c-format
msgid "unable to close folder \"new\": %s"
msgstr "impossible de fermer le dossier \"new\": %s"
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
#, c-format
msgid "error while reading folder \"new\": %s"
msgstr "erreur lors de la lecture du dossier \"new\": %s"
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Messages d'aide"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Messages de comptes"
+
#. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
msgid "_Mail"
msgstr "_Courrier"
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
msgid "_Edit"
msgstr "_Edition"
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
msgid "_View"
msgstr "Afficha_ge"
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
msgid "_Help"
msgstr "_Aide"
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
msgid "Launch the mail reader"
msgstr "Exécuter le lecteur de courrier"
#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
msgid "Update the mail status"
msgstr "Mettre à jour le statut du courrier"
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
msgid "_Close"
msgstr "_Fermer"
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
msgid "Close this window"
msgstr "Fermer cette fenêtre"
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
msgid "_Quit"
msgstr "_Quitter"
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
msgid "Quit Mail Notification"
msgstr "Quitter la Notification de Courrier"
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
msgid "_Toolbars"
-msgstr "_Barres d'Outils"
+msgstr "_Barres d'outils"
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
msgid "Customize the toolbars"
msgstr "Personnaliser les barres d'outils"
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
msgid "_Preferences"
msgstr "_Préférences"
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
msgid "Toolbars Styl_e"
-msgstr "Styl_e des Barres d'Outils"
+msgstr "Styl_e des barres d'outils"
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
msgid "Customize the toolbars style"
msgstr "Personnaliser le style des barres d'outils"
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
msgid "_Contents"
msgstr "_Contenu"
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
msgid "Display help"
msgstr "Afficher l'aide"
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
msgid "_About"
-msgstr "_A Propos"
+msgstr "_A propos"
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
msgid "Display credits"
msgstr "Afficher les crédits"
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
msgid "Show or hide the toolbars"
msgstr "Afficher ou cacher les barres d'outils"
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
msgid "_Statusbar"
-msgstr "Barre d'_Etat"
+msgstr "Barre d'_état"
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
msgid "Show or hide the statusbar"
msgstr "Afficher ou cacher la barre d'état"
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
msgid "_Desktop Default"
-msgstr "Valeur par Défaut du _Bureau"
+msgstr "Valeur par défaut du _bureau"
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
msgid "Set the toolbars style to the desktop default setting"
msgstr ""
"Utiliser la valeur par défaut du bureau pour le style des barres d'outils"
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
msgid "I_cons Only"
-msgstr "Seulement _Icônes"
+msgstr "Seulement _icônes"
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
msgid "Only display the toolbars icons"
msgstr "Afficher uniquement les icônes des barres d'outils"
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
msgid "_Text Only"
-msgstr "Seulement _Texte"
+msgstr "Seulement _texte"
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
msgid "Only display the toolbars text"
msgstr "Afficher uniquement le texte des barres d'outils"
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
msgid "Text Belo_w Icons"
-msgstr "Texte en _Dessous des Icônes"
+msgstr "Texte en _dessous des icônes"
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
msgid "Display the toolbars text below the icons"
msgstr "Afficher le texte des barres d'outils en dessous des icônes"
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
msgid "Text Be_side Icons"
-msgstr "Texte à _Côté des Icônes"
+msgstr "Texte à _côté des icônes"
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
msgid "Display the toolbars text beside the icons"
msgstr "Afficher le texte des barres d'outils à côté des icônes"
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
#, c-format
msgid "unable to load menus.xml: %s"
msgstr "impossible de charger menus.xml: %s"
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Messages d'aide"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Messages de comptes"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "impossible de charger toolbars.xml"
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
#, c-format
msgid "%i new message"
msgid_plural "%i new messages"
msgstr[0] "%i nouveau message"
msgstr[1] "%i nouveaux messages"
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "impossible de charger toolbars.xml"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Prises en charge de boîtes aux lettres disponibles: %s\n"
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "timestamps Gmail"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Prises en charge de boîtes aux lettres disponibles: "
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Fonctionnalités disponibles: %s\n"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Fonctionnalités POP3 and IMAP disponibles: "
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
msgid "Enable informational output"
msgstr "Activer la sortie informationnelle"
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
msgid "List the compiled-in features"
msgstr "Afficher les fonctionnalités disponibles"
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
msgid "Display the main window"
msgstr "Afficher la fenêtre principale"
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
msgid "Display the properties dialog"
msgstr "Afficher la boîte de dialogue contenant les propriétés"
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
msgid "Display the about dialog"
msgstr "Afficher la boîte de dialogue \"à propos\""
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
msgid "Close the mail summary popup"
msgstr "Fermer le popup d'aperçu du courrier"
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Rapporter le statut du courrier"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
msgid "Unset obsolete GConf configuration"
msgstr "Supprimer la configuration GConf obsolète"
@@ -1360,638 +1288,663 @@ msgstr "Supprimer la configuration GConf obsolète"
#. * We can't use mn_error_dialog() because gtk_init() has not been
#. * called yet.
#.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
msgid "multi-threading is not available"
msgstr "le multi-threading n'est pas disponible"
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
msgid ""
"Bonobo could not locate the automation object. Please check your Mail "
"Notification installation."
msgstr ""
-"Bonobo n'a pas pu localiser l'objet automation. Veuillez vérifier votre "
+"Bonobo n'a pu localiser l'objet automation. Veuillez vérifier votre "
"installation de la Notification de Courrier."
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
msgid "quitting Mail Notification"
msgstr "en train de quitter la Notification de Courrier"
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
msgid "Mail Notification is not running"
msgstr "La Notification de Courrier n'est pas en cours d'exécution"
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
msgid "Unable to initialize the GnomeVFS library."
msgstr "Impossible d'initialiser la bibliothèque GnomeVFS."
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
msgid "updating the mail status"
msgstr "mise à jour du statut du courrier"
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
msgid "Mail Notification is already running"
msgstr "La Notification de Courrier est déjà en cours d'exécution"
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
+"Bonobo could not locate the %s file. Please check your Mail Notification "
+"installation."
msgstr ""
-"Bonobo n'a pas pu localiser le fichier GNOME_MailNotification_Automation."
-"server. Veuillez vérifier votre installation de la Notification de Courrier."
+"Bonobo n'a pu localiser le fichier %s. Veuillez vérifier votre installation "
+"de la Notification de Courrier."
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-"Bonobo n'a pas été en mesure d'inscrire le serveur d'automation. Veuillez "
-"vérifier votre installation de la Notification de Courrier."
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "impossible de fermer le fichier: %s"
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:226
#, c-format
msgid "unable to open mailbox: %s"
msgstr "impossible d'ouvrir la boîte aux lettres: %s"
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
msgid "unable to parse MIME message"
msgstr "impossible d'interpréter le message MIME"
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
msgid "You have no new mail."
msgstr "Vous n'avez pas de nouveau courrier."
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
msgid "Unreadable message"
msgstr "Message non lisible"
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
msgid "From"
msgstr "De"
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
msgid "Subject"
msgstr "Sujet"
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
msgid "Sent"
msgstr "Envoyé"
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
msgid "Unknown"
msgstr "Inconnu"
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] "il y a %i seconde"
msgstr[1] "il y a %i secondes"
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
#, c-format
msgid "about %i minute ago"
msgid_plural "about %i minutes ago"
msgstr[0] "il y a approximativement %i minute"
msgstr[1] "il y a approximativement %i minutes"
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
#, c-format
msgid "about %i hour ago"
msgid_plural "about %i hours ago"
msgstr[0] "il y a approximativement %i heure"
msgstr[1] "il y a approximativement %i heures"
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
#, c-format
msgid "about %i day ago"
msgid_plural "about %i days ago"
msgstr[0] "il y a approximativement %i jour"
msgstr[1] "il y a approximativement %i jours"
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
#, c-format
msgid "about %i week ago"
msgid_plural "about %i weeks ago"
msgstr[0] "il y a approximativement %i semaine"
msgstr[1] "il y a approximativement %i semaines"
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "erreur lors de la lecture de .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "aucune"
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr "impossible d'ouvrir .mh_sequences: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "en cours de détection"
+msgid "error while reading %s: %s"
+msgstr "erreur lors de la lecture de %s: %s"
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "Nom d'_hôte:"
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Détails"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "impossible d'ouvrir %s: %s"
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
msgid "sta_ndard"
msgstr "sta_ndard"
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
msgid "_in-band SSL/TLS"
msgstr "SSL/TLS _interne"
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS sur port sépa_ré"
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Le nom d'hôte ou adresse IP du serveur POP3"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "Nom d'_hôte:"
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Votre nom d'utilisateur sur le serveur POP3"
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Détails"
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Votre mot de passe sur le serveur POP3 (si laissé vide, le mot de passe vous "
-"sera demandé en temps utile)"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Type de connection:"
+
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Port:"
+
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "Mécanisme d'_authentification:"
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Le numéro de port du serveur POP3"
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr "le support SSL/TLS n'a pas été inclus lors de la compilation"
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pop3-mailbox.gob:359
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "arguments invalides pour la possibilité LOGIN-DELAY"
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr ""
+"l'authentification SASL avec réponse client SASL initiale a échoué, nouvel "
+"essai sans réponse client SASL initiale"
+
+#: ../src/mn-pop3-mailbox.gob:733
msgid "unknown error"
msgstr "erreur inconnue"
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
msgstr[0] "attente de %i seconde afin d'obéir à LOGIN-DELAY"
msgstr[1] "attente de %i secondes afin d'obéir à LOGIN-DELAY"
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
msgid "server does not support APOP authentication"
msgstr "le serveur ne supporte pas l'authentification APOP"
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
msgid "falling back to APOP authentication"
msgstr "rétrogradation vers l'authentification APOP"
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
msgid "falling back to USER/PASS authentication"
msgstr "rétrogradation vers l'authentification USER/PASS"
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Propriétés de la Notification de Courrier"
+
+#: ../src/mn-properties-dialog.gob:207
msgid "top left"
msgstr "en haut à gauche"
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
msgid "top right"
msgstr "en haut à droite"
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
msgid "bottom left"
msgstr "en bas à gauche"
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
msgid "bottom right"
msgstr "en bas à droite"
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
msgid "No mailbox selected."
msgstr "Pas de boîte aux lettres sélectionnée."
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] "%i boîte aux lettres sélectionnée"
msgstr[1] "%i boîtes aux lettres sélectionnées"
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Message test %i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr ""
+"Boîte de dialogue contenant les propriétés de la Notification de Courrier"
+
+#: ../src/mn-shell.gob:109
msgid "You have new mail."
msgstr "Vous avez du nouveau courrier."
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
msgid "Mailboxes Having New Mail"
-msgstr "Boîtes aux Lettres Ayant du Nouveau Courrier"
+msgstr "Boîtes aux lettres ayant du nouveau courrier"
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
msgid "Errors"
msgstr "Erreurs"
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Boîtes aux Lettres Non Supportées"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
msgid "Mail Summary"
-msgstr "Aperçu du Courrier"
-
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "impossible d'interpréter l'URI de proxy \"%s\""
+msgstr "Aperçu du courrier"
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
msgid "unknown SSL/TLS error"
msgstr "erreur SSL/TLS inconnue"
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
msgid "Select _All"
-msgstr "Sélectionner _Tout"
+msgstr "Sélectionner _tout"
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
msgid "Leave Fullscreen"
-msgstr "Quitter le Mode Plein Ecran"
+msgstr "Quitter le mode plein écran"
+
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "Se co_nnecter"
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
#, c-format
msgid "unable to open folder: %s"
msgstr "impossible d'ouvrir le dossier: %s"
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
#, c-format
msgid "unable to close folder: %s"
msgstr "impossible de fermer le dossier: %s"
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
#, c-format
msgid "error while reading folder: %s"
msgstr "erreur lors de la lecture du dossier: %s"
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr "Boîte aux Lettres Système"
+#: ../src/mn-sylpheed-mailbox-backend.gob:256
+msgid "unexpected end of file"
+msgstr "fin de fichier inattendue"
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-sylpheed-mailbox-backend.gob:270
#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr ""
-"Votre boîte aux lettres système (<span weight=\"bold\">%s</span>) sera "
-"utilisée."
+msgid "incompatible file version \"%i\""
+msgstr "version de fichier \"%i\" incompatible"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:273
+msgid "file version missing"
+msgstr "version de fichier manquante"
-#: src/mn-system-mailbox-properties.gob:64
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
+msgstr "Boîte aux lettres système"
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
+#, c-format
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
+msgstr "Votre boîte aux lettres système est <span weight=\"bold\">%s</span>."
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
+"The location of your system mailbox could not be detected. Check the MAIL "
+"environment variable."
msgstr ""
"L'emplacement de votre boîte aux lettres système n'a pu être détecté. "
-"Veuillez spécifier la variable d'environnement MAIL."
+"Vérifiez la variable d'environnement MAIL."
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "La raison pour laquelle la boîte aux lettres n'est pas prise en charge"
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "variable d'environnement MAIL non définie"
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "non pris en charge"
-
-#: src/mn-util.c:245
+#: ../src/mn-util.c:281
#, c-format
msgid "error loading image: %s"
msgstr "erreur de chargement d'image: %s"
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
#, c-format
msgid "widget \"%s\" not found in interface \"%s\""
msgstr "élément \"%s\" non trouvé dans interface \"%s\""
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "une liste d'URI invalide a été reçue"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "impossible de s'auto-ouvrir en tant que module: %s"
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "une URL Mozilla invalide a été reçue"
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "gestionnaire de signal \"%s\" non trouvé"
-#: src/mn-util.c:519
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Une erreur de glisser-déposer s'est produite"
+
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Une liste d'emplacements non valide a été reçue."
+
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Un emplacement Mozilla non valide a été reçu."
+
+#: ../src/mn-util.c:678
msgid "Unable to display help"
msgstr "Impossible d'afficher l'aide"
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
#, c-format
msgid "Unable to create a thread: %s."
msgstr "Impossible de créer un thread: %s."
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
msgid "_Do not show this message again"
msgstr "_Ne plus afficher ce message"
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+msgid_plural ""
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr[0] ""
+"L'emplacement suivant est invalide:\n"
+"\n"
+"%s"
+msgstr[1] ""
+"Les emplacements suivants sont invalides:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
msgid "A fatal error has occurred in Mail Notification"
msgstr "Une erreur fatale s'est produite dans la Notification de Courrier"
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
#, c-format
msgid "unable to get current time: %s"
msgstr "impossible d'obtenir l'heure courante: %s"
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "spécification de signal \"%s\" invalide"
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
msgid "A command error has occurred in Mail Notification"
msgstr "Une erreur de commande s'est produite dans la Notification de Courrier"
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
#, c-format
msgid "Unable to execute \"%s\": %s."
msgstr "Impossible d'exécuter \"%s\": %s"
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "S'_Authentifier"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "impossible de renommer %s en %s: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr ""
+"impossible de surveiller le contenu de la boîte aux lettres (%s), "
+"vérification explicite activée"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr ""
+"impossible de surveiller le type de la boîte aux lettres (%s), vérification "
+"explicite activée"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "format de boîte aux lettres inconnu"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "n'existe pas"
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Comme solution de secours, elles seront vérifiées toutes les %i seconde (ce "
+"délai est configurable depuis les Propriétés)."
+msgstr[1] ""
+"Comme solution de secours, elles seront vérifiées toutes les %i secondes (ce "
+"délai est configurable depuis les Propriétés)."
+
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
+"délai est configurable depuis les Propriétés)."
+msgstr[1] ""
+"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
+"délai est configurable depuis les Propriétés)."
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Properties Dialog)."
+msgstr[0] ""
+"Comme solution de secours, elles seront vérifiées approximativement toutes "
+"les %i minute (ce délai est configurable depuis les Propriétés)."
+msgstr[1] ""
+"Comme solution de secours, elles seront vérifiées approximativement toutes "
+"les %i minutes (ce délai est configurable depuis les Propriétés)."
+
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Une erreur de surveillance s'est produite"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"La Notification de Courrier n'a pas été en mesure d'activer la notification "
+"immédiate pour une ou plusieures boîtes aux lettres. %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
msgid "Edit Toolbars"
-msgstr "Editer les Barres d'Outils"
+msgstr "Editer les barres d'outils"
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
msgid "_Add a New Toolbar"
-msgstr "_Ajouter une Nouvelle Barre d'Outils"
+msgstr "_Ajouter une nouvelle barre d'outils"
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
msgid "_Use Default"
-msgstr "_Par Défaut"
+msgstr "_Par défaut"
+
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span size=\"larger\" weight=\"bold\">Aperçu du courrier</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Général</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "_Nom de la boîte aux lettres:"
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
msgstr "_Type de boîte aux lettres:"
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Commandes</span>"
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr "<span weight=\"bold\">Action du Double-Click</span>"
+msgstr "<span weight=\"bold\">Action du double-click</span>"
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
msgid "<span weight=\"bold\">Fonts</span>"
msgstr "<span weight=\"bold\">Polices de Caractères</span>"
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Général</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
msgid "<span weight=\"bold\">Mailbox List</span>"
-msgstr "<span weight=\"bold\">Liste des Boîtes aux Lettres</span>"
+msgstr "<span weight=\"bold\">Liste des boîtes aux lettres</span>"
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Position</span>"
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
msgid "Co_ntents:"
msgstr "Co_ntenu:"
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
msgid "Dis_play mail summary in tooltip"
msgstr "Afficher l'a_perçu du courrier dans le tooltip"
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
msgid "General"
msgstr "Général"
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "Décalage hori_zontal:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Propriétés de la Notification de Courrier"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
msgid "Mail Summary Popup"
-msgstr "Popup d'Aperçu du Courrier"
+msgstr "Popup d'aperçu du courrier"
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
msgid "Mailboxes"
-msgstr "Boîtes aux Lettres"
+msgstr "Boîtes aux lettres"
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
msgid "Only display _recent mail"
msgstr "Afficher uniquement le courrier _récent"
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "P_osition:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr ""
-"La quantité de temps à attendre avant de fermer le popup d'aperçu du courrier"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "La quantité de temps à attendre entre les vérifications de courrier"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "La commande à exécuter pour démarrer le lecteur de courrier."
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "La commande à exécuter lorsque tout le courrier est lu"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr "La commande à exécuter lorsque du nouveau courrier arrive"
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
-"popup d'aperçu du courrier"
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
-"d'aperçu du courrier"
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
msgid "Use these _fonts:"
msgstr "Utiliser ces _polices de caractères:"
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Quand _tout le courrier est lu:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Quand _tout le courrier a été lu:"
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
msgid "When _new mail arrives:"
msgstr "Quand du _nouveau courrier arrive:"
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas"
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-"Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-"Si l'aperçu du courrier doit être affiché dans le tooltip de l'icône de "
-"statut ou pas"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
-"courrier arrive ou pas"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Si le courrier précédemment affiché doit être caché ou pas"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-"Si une commande doit être exécutée lorsque tout le courrier est lu ou pas"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-"Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas"
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Si un lecteur de courrier est spécifié ou pas"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-"Si la Notification de Courrier doit être démarrée lorsque vous ouvrez votre "
-"session GNOME ou pas"
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
msgid "_Automatically close after:"
msgstr "_Fermer automatiquement après:"
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
msgid "_Blink on errors"
msgstr "_Clignoter lors d'erreurs"
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
msgid "_Delay between mail checks:"
msgstr "_Délai entre les vérifications de courrier:"
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "_Afficher un popup de test"
+
+#: ../ui/properties-dialog.glade.h:21
msgid "_Display the main window"
msgstr "_Afficher la fenêtre principale"
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
msgid "_Enable mail summary popup"
msgstr "_Activer le popup d'aperçu du courrier"
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "Décalage _horizontal:"
+
+#: ../ui/properties-dialog.glade.h:24
msgid "_Launch the mail reader"
msgstr "_Exécuter le lecteur de courrier"
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
msgid "_Mail reader:"
msgstr "_Lecteur de courrier:"
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Position:"
+
+#: ../ui/properties-dialog.glade.h:27
msgid "_Start Mail Notification on GNOME login"
msgstr ""
"_Démarrer la Notification de Courrier lors de l'ouverture de session GNOME"
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
msgid "_Title:"
msgstr "_Titre:"
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
msgid "_Update the mail status"
msgstr "_Mettre à jour le statut du courrier"
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
msgid "_Use fonts from theme"
msgstr "_Utiliser les polices de caractères du thème"
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
msgid "_Vertical offset:"
msgstr "Décalage _vertical:"
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
msgid "minutes"
msgstr "minutes"
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
msgid "pixels"
msgstr "pixels"
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
msgid "seconds"
msgstr "secondes"
-
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span size=\"larger\" weight=\"bold\">Aperçu du Courrier</span>"
-
-#: ui/welcome.glade.h:1
-msgid ""
-"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
-"\n"
-"Mail Notification has been loaded successfully.\n"
-"\n"
-"Since this is the first time you run Mail Notification, you need to "
-"configure it.\n"
-"\n"
-"Note: this message will not be shown anymore. To configure Mail Notification "
-"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
-"span> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Premier démarrage</span>\n"
-"\n"
-"La Notification de Courrier a été chargée avec succès.\n"
-"\n"
-"Etant donné que c'est la première fois que vous utilisez la Notification de "
-"Courrier, il est nécessaire que vous la configuriez.\n"
-"\n"
-"Note: ce message ne sera plus affiché à nouveau. Pour configurer la "
-"Notification de Courrier ultérieurement, choisissez <span weight=\"bold"
-"\">Applications</span> → <span weight=\"bold\">Préférences du bureau</span> "
-"→ <span weight=\"bold\">Notification de Courrier</span> (ou pour certains "
-"systèmes <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Préférences</span> → <span weight=\"bold\">Plus de préférences</span> → "
-"<span weight=\"bold\">Notification de Courrier</span>)."
-
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr "_Configurer la Notification de Courrier"
-
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr "_Passer la configuration"
diff --git a/po/mail-notification.pot b/po/mail-notification.pot
@@ -1,1860 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
-msgid "Mail Notification automation"
-msgstr ""
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
-msgid "Mail Notification automation factory"
-msgstr ""
-
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
-msgid "Configure Mail Notification"
-msgstr ""
-
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
-msgid "Mail Notification"
-msgstr ""
-
-#: data/mail-notification.desktop.in.h:1
-msgid "Get notified when new mail arrives"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:1
-msgid "Automatically close the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:2
-msgid "Blink on errors"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:3
-msgid "Delay between mail checks (minutes part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:4
-msgid "Delay between mail checks (seconds part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:5
-msgid "Display mail summary in tooltip"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:6
-msgid "Do not show the immediate notification error dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:7
-msgid "Double-click action"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:8
-msgid "Enable mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:9
-msgid "Fingerprints of trusted X509 certificates"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:11
-msgid "Height of edit toolbars dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:12
-msgid "Height of main window"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:13
-msgid "Height of properties dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:14
-msgid "Mail read command"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:15
-msgid "Mail reader command"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:16
-msgid "Mail summary popup contents font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:17
-msgid "Mail summary popup fonts aspect source"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:18
-msgid "Mail summary popup horizontal offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:19
-msgid "Mail summary popup position"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:20
-msgid "Mail summary popup title font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:21
-msgid "Mail summary popup vertical offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:23
-msgid "Minutes between mail checks"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:24
-msgid "Minutes to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:25
-msgid "New mail command"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:26
-msgid "Only display recent mail in mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:27
-msgid "Run a command when all mail is read"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:28
-msgid "Run a command when new mail arrives"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:29
-msgid "Seconds between mail checks"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:30
-msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:31
-msgid "Set a mail reader"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:32
-msgid ""
-"The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:33
-msgid ""
-"The amount of time to wait before closing the mail summary popup (minutes "
-"part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:34
-msgid ""
-"The amount of time to wait before closing the mail summary popup (seconds "
-"part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:35
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:36
-msgid "The command to run to launch the mail reader."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:37
-msgid "The command to run when all mail is read."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:38
-msgid "The command to run when new mail arrives."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:39
-msgid "The custom font to use for the contents of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:40
-msgid "The custom font to use for the title of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:41
-msgid "The height of the edit toolbars dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:42
-msgid "The height of the main window in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:43
-msgid "The height of the properties dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:45
-msgid ""
-"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
-"certificate."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:46
-msgid ""
-"The list of trusted X509 certificates, represented by their MD5 fingerprint."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:47
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:48
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:49
-msgid ""
-"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
-"\"bottom-left\" or \"bottom-right\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:50
-msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:51
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:52
-msgid "The width of the main window in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:53
-msgid "The width of the properties dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
-msgid "Trusted servers list"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:59
-msgid "Whether the status icon should blink on errors or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:60
-msgid "Whether the statusbar should be visible or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:61
-msgid "Whether the toolbars should be visible or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:62
-msgid "Whether to automatically close the mail summary popup or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:63
-msgid "Whether to display the mail summary in the status icon tooltip or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:64
-msgid "Whether to display the mail summary popup when new mail arrives or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:65
-msgid ""
-"Whether to hide previously displayed mail in the mail summary popup or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:66
-msgid ""
-"Whether to prevent the immediate notification error dialog from being "
-"displayed or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:67
-msgid "Whether to run a command when all mail is read or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:68
-msgid "Whether to run a command when new mail arrives or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:69
-msgid "Whether to set a mail reader or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:70
-msgid "Width of edit toolbars dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:71
-msgid "Width of main window"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:72
-msgid "Width of properties dialog"
-msgstr ""
-
-#: data/mail-notification.soundlist.in.h:2
-msgid "New Mail"
-msgstr ""
-
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-
-#: src/eggtrayicon.c:109
-msgid "Orientation"
-msgstr ""
-
-#: src/eggtrayicon.c:110
-msgid "The orientation of the tray."
-msgstr ""
-
-#: src/mn-about-dialog.gob:42
-msgid "A Mail Notification Icon"
-msgstr ""
-
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
-msgstr ""
-
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
-msgid "<span style=\"italic\">autodetect</span>"
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:85
-#, c-format
-msgid ""
-"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
-"\n"
-"Please re-enter your password."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:86
-#, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:70
-msgid "_Location:"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:76
-msgid "_Browse..."
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:123
-msgid "Select a File or Folder"
-msgstr ""
-
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr ""
-
-#: src/mn-client-session.c:220
-#, c-format
-msgid "resolving %s"
-msgstr ""
-
-#: src/mn-client-session.c:230
-#, c-format
-msgid "unable to resolve %s: %s"
-msgstr ""
-
-#: src/mn-client-session.c:267
-#, c-format
-msgid "%s: unsupported address family"
-msgstr ""
-
-#: src/mn-client-session.c:274
-#, c-format
-msgid "%s: unable to create socket: %s"
-msgstr ""
-
-#: src/mn-client-session.c:278
-#, c-format
-msgid "connecting to %s (%s) port %i"
-msgstr ""
-
-#: src/mn-client-session.c:281
-#, c-format
-msgid "unable to connect: %s"
-msgstr ""
-
-#: src/mn-client-session.c:286
-msgid "connected successfully"
-msgstr ""
-
-#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
-#, c-format
-msgid "unable to connect to %s"
-msgstr ""
-
-#: src/mn-client-session.c:308
-#, c-format
-msgid "unable to initialize the OpenSSL library: %s"
-msgstr ""
-
-#: src/mn-client-session.c:316
-#, c-format
-msgid "unable to create a SSL/TLS object: %s"
-msgstr ""
-
-#: src/mn-client-session.c:322
-#, c-format
-msgid "unable to set the SSL/TLS file descriptor: %s"
-msgstr ""
-
-#: src/mn-client-session.c:328
-#, c-format
-msgid "unable to perform the SSL/TLS handshake: %s"
-msgstr ""
-
-#: src/mn-client-session.c:334
-msgid "untrusted server"
-msgstr ""
-
-#: src/mn-client-session.c:338
-#, c-format
-msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
-msgstr ""
-
-#: src/mn-client-session.c:385
-#, c-format
-msgid "%s, fingerprint: %s"
-msgstr ""
-
-#: src/mn-client-session.c:414
-msgid "missing certificate"
-msgstr ""
-
-#: src/mn-client-session.c:440
-#, c-format
-msgid ""
-"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
-"someone is intercepting your communication to obtain your confidential "
-"information.\n"
-"\n"
-"You should only connect to the server if you are certain you are connected "
-"to \"%s\". If you choose to connect to the server, this message will not be "
-"shown again."
-msgstr ""
-
-#: src/mn-client-session.c:457
-msgid "Connect to untrusted server?"
-msgstr ""
-
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr ""
-
-#: src/mn-client-session.c:518
-#, c-format
-msgid "response \"%s\" is not valid in current context"
-msgstr ""
-
-#: src/mn-client-session.c:544
-#, c-format
-msgid "unable to parse response \"%s\""
-msgstr ""
-
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
-#, c-format
-msgid "unable to read from server: %s"
-msgstr ""
-
-#: src/mn-client-session.c:597
-msgid "unable to read from server: EOF"
-msgstr ""
-
-#: src/mn-client-session.c:609
-#, c-format
-msgid "unable to decode data using SASL: %s"
-msgstr ""
-
-#: src/mn-client-session.c:743
-#, c-format
-msgid "unable to encode data using SASL: %s"
-msgstr ""
-
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
-#, c-format
-msgid "unable to write to server: %s"
-msgstr ""
-
-#: src/mn-client-session.c:779
-msgid "unable to write to server: EOF"
-msgstr ""
-
-#: src/mn-client-session.c:811
-#, c-format
-msgid "unable to encode Base64: %s"
-msgstr ""
-
-#: src/mn-client-session.c:922
-#, c-format
-msgid "unable to initialize the SASL library: %s"
-msgstr ""
-
-#: src/mn-client-session.c:931
-#, c-format
-msgid "unable to retrieve local address of socket: %s"
-msgstr ""
-
-#: src/mn-client-session.c:937
-#, c-format
-msgid "unable to retrieve remote address of socket: %s"
-msgstr ""
-
-#: src/mn-client-session.c:971
-#, c-format
-msgid "unable to set SASL security properties: %s"
-msgstr ""
-
-#: src/mn-client-session.c:995
-msgid ""
-"unable to start SASL authentication: SASL asked for something we did not know"
-msgstr ""
-
-#: src/mn-client-session.c:1014
-#, c-format
-msgid "unable to start SASL authentication: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1018
-#, c-format
-msgid "unable to create a SASL connection: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1055
-msgid "SASL asked for something we did not know, aborting SASL authentication"
-msgstr ""
-
-#: src/mn-client-session.c:1072
-#, c-format
-msgid "%s, aborting SASL authentication"
-msgstr ""
-
-#. compliance error
-#: src/mn-client-session.c:1077
-#, c-format
-msgid "unable to decode Base64 input from server: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-
-#: src/mn-client-session.c:1119
-#, c-format
-msgid "a SASL security layer of strength factor %i is now active"
-msgstr ""
-
-#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
-#, c-format
-msgid "unable to get SASL_MAXOUTBUF property: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1130
-#, c-format
-msgid "warning: unable to get SASL_SSF property: %s"
-msgstr ""
-
-#: src/mn-conf.c:238
-msgid "A directory creation error has occurred"
-msgstr ""
-
-#: src/mn-conf.c:239
-#, c-format
-msgid "Unable to create directory \"%s\": %s."
-msgstr ""
-
-#: src/mn-conf.c:313
-#, c-format
-msgid "recursively unsetting %s"
-msgstr ""
-
-#: src/mn-conf.c:317
-msgid "syncing the GConf database"
-msgstr ""
-
-#: src/mn-conf.c:320
-msgid "completed"
-msgstr ""
-
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr ""
-
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:891
-#, c-format
-msgid "unable to open calendar: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:899
-#, c-format
-msgid "unable to set calendar time: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:49
-#, c-format
-msgid "unable to read %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:51
-#, c-format
-msgid "unable to write to %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:53
-#, c-format
-msgid "unable to seek in %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:55
-#, c-format
-msgid "unable to tell position of %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:57
-#, c-format
-msgid "unable to close %s: %s"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:95
-msgid "Mailbox:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:99
-msgid "in_box"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:110
-msgid "oth_er:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:236
-msgid "server did not send capabilities"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:408
-msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:409
-msgid "unable to login"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:542
-msgid "server did not send search results"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:617
-msgid "server did not send all the messages we requested"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:671
-msgid "unable to fetch message"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
-msgid "unknown server error"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
-msgid "server does not support in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
-msgid ""
-"a SASL authentication mechanism was selected but SASL support has not been "
-"compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
-#, c-format
-msgid "unknown authentication mechanism \"%s\""
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1160
-msgid "falling back to IMAP LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
-msgid "authentication failed"
-msgstr ""
-
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
-
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-msgid "_Mail Reader"
-msgstr ""
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
-msgid "_Update"
-msgstr ""
-
-#: src/mn-mail-icon.gob:99
-msgid "R_emove From Notification Area"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:325
-#, c-format
-msgid "%s Properties"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
-msgid "Mailbox"
-msgstr ""
-
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr ""
-
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr ""
-
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr ""
-
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr ""
-
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr ""
-
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr ""
-
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr ""
-
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr ""
-
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr ""
-
-#: src/mn-mailbox.gob:421
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:432
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:443
-#, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr ""
-
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-
-#: src/mn-mailboxes.gob:260
-#, c-format
-msgid "%s is unsupported: %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:290
-#, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailboxes.gob:307
-#, c-format
-msgid "%s reported an error: %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:112
-#, c-format
-msgid "unable to open folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:141
-#, c-format
-msgid "unable to close folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:144
-#, c-format
-msgid "error while reading folder \"new\": %s"
-msgstr ""
-
-#. Toplevel
-#: src/mn-main-window.c:92
-msgid "_Mail"
-msgstr ""
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-msgid "Launch the mail reader"
-msgstr ""
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr ""
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-msgid "Quit Mail Notification"
-msgstr ""
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-msgid "_Contents"
-msgstr ""
-
-#: src/mn-main-window.c:165
-msgid "Display help"
-msgstr ""
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-msgid "Only display the toolbars icons"
-msgstr ""
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, c-format
-msgid "unable to load menus.xml: %s"
-msgstr ""
-
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr ""
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr ""
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr ""
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr ""
-
-#: src/mn-main.c:176
-msgid "Enable informational output"
-msgstr ""
-
-#: src/mn-main.c:185
-msgid "List the compiled-in features"
-msgstr ""
-
-#: src/mn-main.c:194
-msgid "Display the main window"
-msgstr ""
-
-#: src/mn-main.c:203
-msgid "Display the properties dialog"
-msgstr ""
-
-#: src/mn-main.c:212
-msgid "Display the about dialog"
-msgstr ""
-
-#: src/mn-main.c:221
-msgid "Close the mail summary popup"
-msgstr ""
-
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr ""
-
-#: src/mn-main.c:248
-msgid "Unset obsolete GConf configuration"
-msgstr ""
-
-#.
-#. * We can't use mn_error_dialog() because gtk_init() has not been
-#. * called yet.
-#.
-#: src/mn-main.c:284
-msgid "multi-threading is not available"
-msgstr ""
-
-#: src/mn-main.c:338
-msgid ""
-"Bonobo could not locate the automation object. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-main.c:344
-msgid "quitting Mail Notification"
-msgstr ""
-
-#: src/mn-main.c:348
-msgid "Mail Notification is not running"
-msgstr ""
-
-#: src/mn-main.c:355
-msgid "Unable to initialize the GnomeVFS library."
-msgstr ""
-
-#: src/mn-main.c:391
-msgid "updating the mail status"
-msgstr ""
-
-#: src/mn-main.c:409
-msgid "Mail Notification is already running"
-msgstr ""
-
-#: src/mn-main.c:417
-msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-mbox-mailbox.gob:184
-#, c-format
-msgid "unable to open mailbox: %s"
-msgstr ""
-
-#: src/mn-message-mime.c:105
-msgid "unable to parse MIME message"
-msgstr ""
-
-#: src/mn-message-view.gob:81
-msgid "You have no new mail."
-msgstr ""
-
-#: src/mn-message-view.gob:321
-msgid "Unreadable message"
-msgstr ""
-
-#: src/mn-message-view.gob:329
-msgid "From"
-msgstr ""
-
-#: src/mn-message-view.gob:337
-msgid "Subject"
-msgstr ""
-
-#: src/mn-message-view.gob:348
-msgid "Sent"
-msgstr ""
-
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr ""
-
-#: src/mn-message.gob:126
-#, c-format
-msgid "%i second ago"
-msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:130
-#, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:135
-#, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:140
-#, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:145
-#, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-mh-mailbox.gob:157
-#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:105
-msgid "sta_ndard"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:115
-msgid "_in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:125
-msgid "SSL/TLS on sepa_rate port"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:266
-msgid "invalid arguments for the LOGIN-DELAY capability"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:569
-msgid "unknown error"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:656
-#, c-format
-msgid "honouring LOGIN-DELAY, sleeping for %i second"
-msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-pop3-mailbox.gob:849
-msgid "server does not support APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:884
-msgid "falling back to APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:889
-msgid "falling back to USER/PASS authentication"
-msgstr ""
-
-#: src/mn-properties-dialog.c:218
-msgid "top left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:219
-msgid "top right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:220
-msgid "bottom left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:221
-msgid "bottom right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:323
-msgid "No mailbox selected."
-msgstr ""
-
-#: src/mn-properties-dialog.c:328
-#, c-format
-msgid "%i mailbox selected."
-msgid_plural "%i mailboxes selected."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:96
-msgid "You have new mail."
-msgstr ""
-
-#: src/mn-shell.gob:361
-msgid "Mailboxes Having New Mail"
-msgstr ""
-
-#: src/mn-shell.gob:382
-msgid "Errors"
-msgstr ""
-
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr ""
-
-#: src/mn-shell.gob:418
-msgid "Mail Summary"
-msgstr ""
-
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr ""
-
-#: src/mn-ssl.c:79
-msgid "unknown SSL/TLS error"
-msgstr ""
-
-#: src/mn-stock.c:28
-msgid "Select _All"
-msgstr ""
-
-#: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:113
-#, c-format
-msgid "unable to open folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:147
-#, c-format
-msgid "unable to close folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:150
-#, c-format
-msgid "error while reading folder: %s"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:57
-#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr ""
-
-#: src/mn-util.c:245
-#, c-format
-msgid "error loading image: %s"
-msgstr ""
-
-#: src/mn-util.c:276
-#, c-format
-msgid "widget \"%s\" not found in interface \"%s\""
-msgstr ""
-
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr ""
-
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr ""
-
-#: src/mn-util.c:519
-msgid "Unable to display help"
-msgstr ""
-
-#: src/mn-util.c:533
-#, c-format
-msgid "Unable to create a thread: %s."
-msgstr ""
-
-#: src/mn-util.c:626
-msgid "_Do not show this message again"
-msgstr ""
-
-#: src/mn-util.c:710
-msgid "A fatal error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:725
-#, c-format
-msgid "unable to get current time: %s"
-msgstr ""
-
-#: src/mn-util.c:787
-#, c-format
-msgid "invalid signal specification \"%s\""
-msgstr ""
-
-#: src/mn-util.c:826
-msgid "A command error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:827
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr ""
-
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
-msgstr ""
-
-#: ui/properties.glade.h:1
-msgid "<span weight=\"bold\">Commands</span>"
-msgstr ""
-
-#: ui/properties.glade.h:2
-msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr ""
-
-#: ui/properties.glade.h:3
-msgid "<span weight=\"bold\">Fonts</span>"
-msgstr ""
-
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr ""
-
-#: ui/properties.glade.h:5
-msgid "<span weight=\"bold\">Mailbox List</span>"
-msgstr ""
-
-#: ui/properties.glade.h:6
-msgid "<span weight=\"bold\">Position</span>"
-msgstr ""
-
-#: ui/properties.glade.h:7
-msgid "Co_ntents:"
-msgstr ""
-
-#: ui/properties.glade.h:8
-msgid "Dis_play mail summary in tooltip"
-msgstr ""
-
-#: ui/properties.glade.h:9
-msgid "General"
-msgstr ""
-
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr ""
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr ""
-
-#: ui/properties.glade.h:12
-msgid "Mail Summary Popup"
-msgstr ""
-
-#: ui/properties.glade.h:13
-msgid "Mailboxes"
-msgstr ""
-
-#: ui/properties.glade.h:14
-msgid "Only display _recent mail"
-msgstr ""
-
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr ""
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr ""
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr ""
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr ""
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr ""
-
-#: ui/properties.glade.h:25
-msgid "When _new mail arrives:"
-msgstr ""
-
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr ""
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr ""
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr ""
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-
-#: ui/properties.glade.h:35
-msgid "_Automatically close after:"
-msgstr ""
-
-#: ui/properties.glade.h:36
-msgid "_Blink on errors"
-msgstr ""
-
-#: ui/properties.glade.h:37
-msgid "_Delay between mail checks:"
-msgstr ""
-
-#: ui/properties.glade.h:38
-msgid "_Display the main window"
-msgstr ""
-
-#: ui/properties.glade.h:39
-msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:40
-msgid "_Launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:41
-msgid "_Mail reader:"
-msgstr ""
-
-#: ui/properties.glade.h:42
-msgid "_Start Mail Notification on GNOME login"
-msgstr ""
-
-#: ui/properties.glade.h:43
-msgid "_Title:"
-msgstr ""
-
-#: ui/properties.glade.h:44
-msgid "_Update the mail status"
-msgstr ""
-
-#: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
-
-#: ui/properties.glade.h:46
-msgid "_Vertical offset:"
-msgstr ""
-
-#: ui/properties.glade.h:47
-msgid "minutes"
-msgstr ""
-
-#: ui/properties.glade.h:48
-msgid "pixels"
-msgstr ""
-
-#: ui/properties.glade.h:49
-msgid "seconds"
-msgstr ""
-
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr ""
-
-#: ui/welcome.glade.h:1
-msgid ""
-"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
-"\n"
-"Mail Notification has been loaded successfully.\n"
-"\n"
-"Since this is the first time you run Mail Notification, you need to "
-"configure it.\n"
-"\n"
-"Note: this message will not be shown anymore. To configure Mail Notification "
-"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
-"span> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr ""
-
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr ""
diff --git a/po/pl.gmo b/po/pl.gmo
Binary files differ.
diff --git a/po/pl.po b/po/pl.po
@@ -1,5 +1,5 @@
# Polish translations for mail-notification.
-# Copyright (c) 2003, 2004 Jean-Yves Lefort.
+# Copyright (C) 2003-2005 Jean-Yves Lefort.
#
# This file is distributed under the same license as the
# mail-notification package.
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2004-11-25 01:43+0100\n"
"PO-Revision-Date: 2004-11-23 18:06+0100\n"
"Last-Translator: Maurycy Pawłowski-Wieroński <maurycy@abstrakcja.pl>\n"
"Language-Team: Polish\n"
@@ -29,14 +29,14 @@ msgstr "Automatyzacja Zawiadomienia Pocztowego"
msgid "Mail Notification automation factory"
msgstr "Fabryka automatyzacji Zawiadomienia Pocztowego"
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: data/mail-notification-properties.desktop.in.h:1
msgid "Configure Mail Notification"
msgstr "Konfiguracja zawiadomienia pocztowego"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
+#: src/mn-mail-icon.gob:194 src/mn-main.c:281
msgid "Mail Notification"
msgstr "Zawiadomienie pocztowe"
@@ -85,106 +85,94 @@ msgid "Has already been run"
msgstr "Polecenie już było wykonane"
#: data/mail-notification.schemas.in.h:11
-#, fuzzy
-msgid "Height of edit toolbars dialog"
+msgid "Height of mail summary dialog"
msgstr "Wysokość dialogu streszenia poczty"
#: data/mail-notification.schemas.in.h:12
-#, fuzzy
-msgid "Height of main window"
-msgstr "Wysokość dialogu streszenia poczty"
-
-#: data/mail-notification.schemas.in.h:13
msgid "Height of properties dialog"
msgstr "Wysokość dialogu wlaściwości"
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:13
msgid "Mail read command"
msgstr "Rozkaz do przeczytania poczty"
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:14
msgid "Mail reader command"
msgstr "Rozkaz do uruchomienia czytnika poczty"
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:15
msgid "Mail summary popup contents font"
msgstr "Czcionka zawartości wyskakującego okienka streszczenia poczty"
-#: data/mail-notification.schemas.in.h:17
-#, fuzzy
-msgid "Mail summary popup fonts aspect source"
-msgstr "Czcionka zawartości wyskakującego okienka streszczenia poczty"
-
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:16
msgid "Mail summary popup horizontal offset"
msgstr "Poziomę przesunięcie wyskakującego okienka streszczenia poczty"
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:17
msgid "Mail summary popup position"
msgstr "Pozycja wyskakującego okienka streszczenia poczty"
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:18
msgid "Mail summary popup title font"
msgstr "Czcionka tytułu wyskakującego okienka streszczenia poczty"
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:19
msgid "Mail summary popup vertical offset"
msgstr "Pionowę przesunięcie wyskakującego okienka streszczenia poczty"
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:20
msgid "Mailbox list"
msgstr "Lista skrzynek pocztowych"
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:21
msgid "Minutes between mail checks"
msgstr "Ilość minut pomiędzy sprawdzaniem poczty"
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:22
msgid "Minutes to wait before closing the mail summary popup"
msgstr ""
"Ile minut czekać przed zamknięciem wyskakującego okienka streszczenia poczty"
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:23
msgid "New mail command"
msgstr "Rozkaz do rozpoczęcia nowej poczty"
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:24
msgid "Only display recent mail in mail summary popup"
msgstr ""
"Tylko wyświetlaj niedawną pocztę w wyskakującym okienku streszczenia poczty"
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:25
msgid "Run a command when all mail is read"
msgstr "Wykonaj rozkaz kiedy cała poczta jest przeczytana"
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:26
msgid "Run a command when new mail arrives"
msgstr "Wykonaj rozkaz po nadejściu nowej poczty"
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:27
msgid "Seconds between mail checks"
msgstr "Sekundy pomiędzy sprawdzaniem poczty"
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:28
msgid "Seconds to wait before closing the mail summary popup"
msgstr ""
"Ilość sekund do poczekania przed zamknięciem wyskakującego okienka "
"streszczenia poczty"
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:29
msgid "Set a mail reader"
msgstr "Ustaw czytnika poczty"
-#: data/mail-notification.schemas.in.h:32
-#, fuzzy
+#: data/mail-notification.schemas.in.h:30
msgid ""
"The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
+"mail-summary\" or \"launch-mail-reader\"."
msgstr ""
"Akcja do wykonania kiedy ikon jest podwójnię kliknięty. Musi być \"display-"
"mail-summary\" lub \"launch-mail-reader\"."
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:31
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
@@ -192,7 +180,7 @@ msgstr ""
"Ilość czasu do czekania przed zamknięciem wyskakującego okienka streszczenia "
"poczty (minuty)."
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:32
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
@@ -200,71 +188,56 @@ msgstr ""
"Ilość czasu do czekania przed zamknięciem wyskakującego okienka streszczenia "
"poczty (sekundy)."
-#: data/mail-notification.schemas.in.h:35
-#, fuzzy
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
-msgstr ""
-"Pozycja wyskakującego okienka streszczenia poczty. Musi być \"top-left\", "
-"\"top-right\", \"bottom-left\" lub \"bottom-right\"."
-
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:33
msgid "The command to run to launch the mail reader."
msgstr "Rozkaz do wykonania żeby uruchomić czytnika poczty."
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:34
msgid "The command to run when all mail is read."
msgstr "Rozkaz do wykonania kiedy cała poczta jest przeczytana."
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:35
msgid "The command to run when new mail arrives."
msgstr "Polecenie do wykonania po nadejściu owej poczty."
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:36
msgid "The custom font to use for the contents of the mail summary popup."
msgstr ""
"Niestandardowa czcionka użyta dla zawartości wyskakującego okienka "
"streszczenia poczty."
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:37
msgid "The custom font to use for the title of the mail summary popup."
msgstr ""
"Niestandardowa czcionka użyta dla tytułu wyskakującego okienka streszczenia "
"poczty."
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
-msgid "The height of the edit toolbars dialog in pixels."
-msgstr "Wysokość dialogu streszczenia poczty w pikselach."
-
-#: data/mail-notification.schemas.in.h:42
-#, fuzzy
-msgid "The height of the main window in pixels."
+#: data/mail-notification.schemas.in.h:38
+msgid "The height of the mail summary dialog in pixels."
msgstr "Wysokość dialogu streszczenia poczty w pikselach."
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:39
msgid "The height of the properties dialog in pixels."
msgstr "Wysokość dialogu właściwości w pikselach."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:40
msgid "The list of mailboxes to monitor."
msgstr "Lista monitorowanych skrzynek pocztowych."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:41
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr "Lista zaufanych serwerów SSL/TSL (hostname:port) bez certyfikatu X509."
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:42
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
"Lista zaufanych certyfikatów X509, przedstawionych przez ich MD5 odciski "
"palców."
-#: data/mail-notification.schemas.in.h:47
+#: data/mail-notification.schemas.in.h:43
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -272,7 +245,7 @@ msgstr ""
"Ilość pikselów do pozostawienia pomiędzy lewą lub prawą stroną ekranu i "
"wyskakującym okienkiem streszczenia poczty."
-#: data/mail-notification.schemas.in.h:48
+#: data/mail-notification.schemas.in.h:44
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -280,7 +253,7 @@ msgstr ""
"Ilość pikselów do pozostawienia pomiędzy górną lub dolną stroną ekranu i "
"wyskakującym okienkiem streszczenia poczty."
-#: data/mail-notification.schemas.in.h:49
+#: data/mail-notification.schemas.in.h:45
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -288,86 +261,60 @@ msgstr ""
"Pozycja wyskakującego okienka streszczenia poczty. Musi być \"top-left\", "
"\"top-right\", \"bottom-left\" lub \"bottom-right\"."
-#: data/mail-notification.schemas.in.h:50
-#, fuzzy
-msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-"Pozycja wyskakującego okienka streszczenia poczty. Musi być \"top-left\", "
-"\"top-right\", \"bottom-left\" lub \"bottom-right\"."
-
-#: data/mail-notification.schemas.in.h:51
-#, fuzzy
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr "Szerokość dialogu streszczenia poczty w pikselach."
-
-#: data/mail-notification.schemas.in.h:52
-#, fuzzy
-msgid "The width of the main window in pixels."
+#: data/mail-notification.schemas.in.h:46
+msgid "The width of the mail summary dialog in pixels."
msgstr "Szerokość dialogu streszczenia poczty w pikselach."
-#: data/mail-notification.schemas.in.h:53
+#: data/mail-notification.schemas.in.h:47
msgid "The width of the properties dialog in pixels."
msgstr "Szerokość dialogu właściwości w pikselach."
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
+#: data/mail-notification.schemas.in.h:48
msgid "Trusted servers list"
msgstr "Lista zaufanych serwerów"
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
+#: data/mail-notification.schemas.in.h:49
+msgid "Use a custom font for the contents of the mail summary popup"
msgstr ""
+"Użyj niestandardową czcionkę dla zawartości wyskakującego okienka "
+"streszczenia poczty"
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
+#: data/mail-notification.schemas.in.h:50
+msgid "Use a custom font for the title of the mail summary popup"
msgstr ""
+"Użyj niestandardową czcionkę dla tytułu wyskakującego okienka streszczenia "
+"poczty"
-#: data/mail-notification.schemas.in.h:58
+#: data/mail-notification.schemas.in.h:51
msgid "Whether Mail Notification has already been run or not."
msgstr "Czy Zawiadomienie pocztowe było już uruchomione czy nie."
-#: data/mail-notification.schemas.in.h:59
+#: data/mail-notification.schemas.in.h:52
msgid "Whether the status icon should blink on errors or not."
msgstr "Czy ikona statusu ma migać przy błędach"
-#: data/mail-notification.schemas.in.h:60
-#, fuzzy
-msgid "Whether the statusbar should be visible or not."
-msgstr "Czy ikona statusu ma migać przy błędach"
-
-#: data/mail-notification.schemas.in.h:61
-#, fuzzy
-msgid "Whether the toolbars should be visible or not."
-msgstr "Czy skrzynka pocztowa była sprawdzona czy nie"
-
-#: data/mail-notification.schemas.in.h:62
+#: data/mail-notification.schemas.in.h:53
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
-"Automatycznie zamyka okienko ze streszczeniem poczty po upływie zadanego "
-"czasu"
+"Automatycznie zamyka okienko ze streszczeniem poczty po upływie zadanego czasu"
-#: data/mail-notification.schemas.in.h:63
+#: data/mail-notification.schemas.in.h:54
msgid "Whether to display the mail summary in the status icon tooltip or not."
msgstr ""
"Czy wyświetlać streszczenie poczty w ikonie stanu etykiety narzędzi czy nie."
-#: data/mail-notification.schemas.in.h:64
+#: data/mail-notification.schemas.in.h:55
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr "Wyświetl streszczenie poczty po nadejściu nowych listów"
-#: data/mail-notification.schemas.in.h:65
+#: data/mail-notification.schemas.in.h:56
msgid ""
"Whether to hide previously displayed mail in the mail summary popup or not."
msgstr ""
"Czy schować poprzednio wyświetloną pocztę w wyskakującym okienku "
"streszczenia poczty czy nie."
-#: data/mail-notification.schemas.in.h:66
+#: data/mail-notification.schemas.in.h:57
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
@@ -375,29 +322,38 @@ msgstr ""
"Czy zapobiegać wyświetleniu dialogu błędowego natychmiastowego "
"zawiadomieniaczy nie."
-#: data/mail-notification.schemas.in.h:67
+#: data/mail-notification.schemas.in.h:58
msgid "Whether to run a command when all mail is read or not."
msgstr "Czy wykonać rozkaz kiedy cała poczta jest przeczytanacza czy nie."
-#: data/mail-notification.schemas.in.h:68
+#: data/mail-notification.schemas.in.h:59
msgid "Whether to run a command when new mail arrives or not."
msgstr "Czy wykonać rozkaz kiedy przyjdzie nowa poczta czy nie."
-#: data/mail-notification.schemas.in.h:69
+#: data/mail-notification.schemas.in.h:60
msgid "Whether to set a mail reader or not."
msgstr "Czy ustawić czytnika poczty."
-#: data/mail-notification.schemas.in.h:70
-#, fuzzy
-msgid "Width of edit toolbars dialog"
-msgstr "Szerokość dialogu streszczenia poczty"
+#: data/mail-notification.schemas.in.h:61
+msgid ""
+"Whether to use a custom font for the contents of the mail summary popup or "
+"not."
+msgstr ""
+"Czy użyć niestandardową czcionkę dla zawartości wyskakującego okienka "
+"streszczenia poczty czy nie."
+
+#: data/mail-notification.schemas.in.h:62
+msgid ""
+"Whether to use a custom font for the title of the mail summary popup or not."
+msgstr ""
+"Czy użyć niestandardową czcionkę dla tytułu wyskakującego okienka "
+"streszczenia poczty czy nie."
-#: data/mail-notification.schemas.in.h:71
-#, fuzzy
-msgid "Width of main window"
+#: data/mail-notification.schemas.in.h:63
+msgid "Width of mail summary dialog"
msgstr "Szerokość dialogu streszczenia poczty"
-#: data/mail-notification.schemas.in.h:72
+#: data/mail-notification.schemas.in.h:64
msgid "Width of properties dialog"
msgstr "Szerokość dialogu właściwości"
@@ -405,20 +361,6 @@ msgstr "Szerokość dialogu właściwości"
msgid "New Mail"
msgstr "Nowa Poczta"
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-
#: src/eggtrayicon.c:109
msgid "Orientation"
msgstr "Orientacja"
@@ -427,20 +369,20 @@ msgstr "Orientacja"
msgid "The orientation of the tray."
msgstr "Orientacja tacy."
-#: src/mn-about-dialog.gob:42
+#: src/mn-about-dialog.gob:43
msgid "A Mail Notification Icon"
msgstr "Ikon Zawiadomienia Pocztowego"
#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
+#: src/mn-about-dialog.gob:47
msgid "Jean-Yves Lefort <jylefort@brutele.be>"
msgstr "Tomasz Sarota-Raczek <tomasz.sarota.raczek@gmail.com>"
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: src/mn-auth-combo-box.gob:101 src/mn-autodetect-mailbox-properties.gob:37
msgid "<span style=\"italic\">autodetect</span>"
msgstr "<span style=\"italic\">automatycznie</span>"
-#: src/mn-authenticated-mailbox.gob:85
+#: src/mn-authenticated-mailbox.gob:80
#, c-format
msgid ""
"Mail Notification was unable to log into %s mailbox %s, possibly because the "
@@ -453,12 +395,12 @@ msgstr ""
"\n"
"Proszę jeszcze raz wpisać hasło."
-#: src/mn-authenticated-mailbox.gob:86
+#: src/mn-authenticated-mailbox.gob:81
#, c-format
msgid "Enter your password for %s mailbox %s."
msgstr "Wpisz twoje hasło dla skrzynki %s %s."
-#: src/mn-authenticated-mailbox.gob:137
+#: src/mn-authenticated-mailbox.gob:132
#, c-format
msgid ""
"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
@@ -471,11 +413,11 @@ msgstr ""
"\n"
"%s"
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: src/mn-autodetect-mailbox-properties.gob:68
msgid "_Location:"
msgstr "_Lokacja:"
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: src/mn-autodetect-mailbox-properties.gob:74
msgid "_Browse..."
msgstr "_Przeglądaj..."
@@ -483,7 +425,7 @@ msgstr "_Przeglądaj..."
msgid "The URI of the mailbox"
msgstr "URI skrzynki pocztowej"
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: src/mn-autodetect-mailbox-properties.gob:118
msgid "Select a File or Folder"
msgstr "Wybierz Plik lub Teczkę"
@@ -619,80 +561,80 @@ msgstr "niezdolny do przeczytania z serwera: EOF"
msgid "unable to decode data using SASL: %s"
msgstr "niezdolny do rozszyfrowania danych używając SASL: %s"
-#: src/mn-client-session.c:743
+#: src/mn-client-session.c:746
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "niezdolny do rozszyfrowania danych używając SASL: %s"
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: src/mn-client-session.c:777 src/mn-client-session.c:784
#, c-format
msgid "unable to write to server: %s"
msgstr "niezdolny do pisania do serwera: %s"
-#: src/mn-client-session.c:779
+#: src/mn-client-session.c:782
msgid "unable to write to server: EOF"
msgstr "niezdolny do pisania do serwera: EOF"
-#: src/mn-client-session.c:811
+#: src/mn-client-session.c:814
#, c-format
msgid "unable to encode Base64: %s"
msgstr "niezdolny do zakodowania Base64: %s"
-#: src/mn-client-session.c:922
+#: src/mn-client-session.c:925
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "niezdolny do inicjalizacji biblioteki SASL: %s"
-#: src/mn-client-session.c:931
+#: src/mn-client-session.c:934
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "niezdolny odzyskać lokalnego adresu gniazda: %s"
-#: src/mn-client-session.c:937
+#: src/mn-client-session.c:940
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "niezdolny odzyskać odległego adresu gniazda: %s"
-#: src/mn-client-session.c:971
-#, fuzzy, c-format
-msgid "unable to set SASL security properties: %s"
+#: src/mn-client-session.c:974
+#, c-format
+msgid "warning: unable to set SASL security properties: %s"
msgstr "ostrzeżenie: niezdolny ustawić właściwości ochronnę SASL: %s"
-#: src/mn-client-session.c:995
+#: src/mn-client-session.c:998
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
"niezdolny rozpocząć potwierdzenie tożsamości SASL: SASL zapytało się o coś "
"czego nie wiemy"
-#: src/mn-client-session.c:1014
+#: src/mn-client-session.c:1017
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "niezdolny rozpocząć potwierdzenie tożsamości SASL: %s"
-#: src/mn-client-session.c:1018
+#: src/mn-client-session.c:1021
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "niezdolny do stworzenia połączenia SASL: %s"
-#: src/mn-client-session.c:1055
+#: src/mn-client-session.c:1058
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
"SASL zapytał się o coś czego nie wiemy, przerywam potwierdzenie tożsamości "
"SASL"
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1075
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, przerywam potwierdzenie tożsamości SASL"
#. compliance error
-#: src/mn-client-session.c:1077
+#: src/mn-client-session.c:1080
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "niezdolny rozszyfrować wprowadzenie Base64 od serweru : %s"
-#: src/mn-client-session.c:1080
+#: src/mn-client-session.c:1083
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
@@ -700,7 +642,7 @@ msgstr ""
"serwer wysłał wyzwanie SASL, ale już była początkowa odpowiedź SASL od "
"klienta."
-#: src/mn-client-session.c:1094
+#: src/mn-client-session.c:1097
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
@@ -708,50 +650,40 @@ msgstr ""
"serwer nie wysłał wyzwania SASL, ale nie było początkowej odpowiedź SASL od "
"klienta."
-#: src/mn-client-session.c:1119
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "warstwa ochronna SASL czynnika mocy %i jest teraz aktywna"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "niezdolny otrzymać właściwość SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1130
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "ostrzeżenie: niezdolny otrzymać właściwość SASL_SSF: %s"
-#: src/mn-conf.c:238
-#, fuzzy
-msgid "A directory creation error has occurred"
-msgstr "Wydarzył się błąd nasłuchowy"
-
-#: src/mn-conf.c:239
-#, fuzzy, c-format
-msgid "Unable to create directory \"%s\": %s."
-msgstr "Niezdolny do wykonania \"%s\": %s"
-
-#: src/mn-conf.c:313
+#: src/mn-conf.c:145
#, c-format
msgid "recursively unsetting %s"
msgstr "rekursywnie usuwam %s"
-#: src/mn-conf.c:317
+#: src/mn-conf.c:149
msgid "syncing the GConf database"
msgstr "synchronizacja bazy danych GConf"
-#: src/mn-conf.c:320
+#: src/mn-conf.c:152
msgid "completed"
msgstr "skończonę"
-#: src/mn-gmail-mailbox-properties.gob:76
+#: src/mn-gmail-mailbox-properties.gob:77
msgid "Your Gmail username"
msgstr "Twoję Gmail imię użytkownika"
-#: src/mn-gmail-mailbox-properties.gob:77
+#: src/mn-gmail-mailbox-properties.gob:78
msgid ""
"Your Gmail password (if left blank, you will be prompted for the password "
"when needed)"
@@ -759,60 +691,36 @@ msgstr ""
"Twoję Gmail hasło (jeśli pozostawione pustę, to będziesz zapytany o hasło "
"wtedy kiedy będzie potrzebnę)"
-#: src/mn-gmail-mailbox.gob:86
+#: src/mn-gmail-mailbox.gob:82
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr "libsoup nie było kompilowanę z poparciem SSL/TLS"
-#: src/mn-gmail-mailbox.gob:164
+#: src/mn-gmail-mailbox.gob:160
#, c-format
msgid "unable to parse URI \"%s\""
msgstr "niezdolny wykonać rozbiór URI \"%s\""
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:224
+#: src/mn-gmail-mailbox.gob:214
#, c-format
msgid "unable to transfer data: %s"
msgstr "niezdolny do przesłania danych: %s"
-#: src/mn-gmail-mailbox.gob:345
+#: src/mn-gmail-mailbox.gob:335
msgid "logging in"
msgstr "logowanie"
-#: src/mn-gmail-mailbox.gob:423
+#: src/mn-gmail-mailbox.gob:413
msgid "login failed"
msgstr "nieudanę logowanie"
-#: src/mn-gmail-mailbox.gob:496
+#: src/mn-gmail-mailbox.gob:488
msgid "searching for unread mail"
msgstr "szukam nieprzeczytanej poczty"
#: src/mn-gmail-mailbox.gob:527
-#, fuzzy
-msgid "unable to initialize the ICU library"
-msgstr "niezdolny do inicjalizacji biblioteki SASL: %s"
-
-#: src/mn-gmail-mailbox.gob:554
msgid "unable to parse Gmail data"
msgstr "niezdolny wykonać rozbioru danych Gmail"
-#: src/mn-gmail-mailbox.gob:891
-#, fuzzy, c-format
-msgid "unable to open calendar: %s"
-msgstr "niezdolny otworzyć teczkę: %s"
-
-#: src/mn-gmail-mailbox.gob:899
-#, fuzzy, c-format
-msgid "unable to set calendar time: %s"
-msgstr "niezdolny otrzymać aktualny czas: %s"
-
-#: src/mn-gmail-mailbox.gob:968
-#, fuzzy, c-format
-msgid "unable to get calendar time: %s"
-msgstr "niezdolny otrzymać aktualny czas: %s"
-
#: src/mn-gmime-stream-vfs.gob:49
#, c-format
msgid "unable to read %s: %s"
@@ -838,19 +746,19 @@ msgstr "niezdolny opisać pozycję %s: %s"
msgid "unable to close %s: %s"
msgstr "niezdolny zamknąć %s: %s"
-#: src/mn-imap-mailbox-properties.gob:95
+#: src/mn-imap-mailbox-properties.gob:94
msgid "Mailbox:"
msgstr "Skrzynka pocztowa:"
-#: src/mn-imap-mailbox-properties.gob:99
+#: src/mn-imap-mailbox-properties.gob:98
msgid "in_box"
msgstr "_skrzynka odbiorcza"
-#: src/mn-imap-mailbox-properties.gob:110
+#: src/mn-imap-mailbox-properties.gob:109
msgid "oth_er:"
msgstr "innę:"
-#: src/mn-imap-mailbox-properties.gob:122
+#: src/mn-imap-mailbox-properties.gob:121
msgid "U_se idle mode if possible"
msgstr "Użyj bezczynny tryb jeśli to jest możliwę"
@@ -883,74 +791,75 @@ msgstr "Imię skrzynki pocztowej"
msgid "If possible, whether to use idle mode or not"
msgstr "Jeśli możliwę, czy użyć bezczynny tryb czy nie"
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
+#: src/mn-imap-mailbox.gob:166 src/mn-pop3-mailbox.gob:143
msgid "SSL/TLS support has not been compiled in"
msgstr "Protokół SSL/TLS nie jest obsługiwany"
-#: src/mn-imap-mailbox.gob:236
+#: src/mn-imap-mailbox.gob:246
msgid "server did not send capabilities"
msgstr "serwer nie wysłał możliwości"
-#: src/mn-imap-mailbox.gob:408
+#: src/mn-imap-mailbox.gob:418
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
"serwer reklamował LOGINDISABLED, bez używania potwierdzenia tożsamości LOGIN"
-#: src/mn-imap-mailbox.gob:409
+#: src/mn-imap-mailbox.gob:419
msgid "unable to login"
msgstr "niezdolny do logowania"
#. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: src/mn-imap-mailbox.gob:571
msgid "server did not send search results"
msgstr "serwer nie wysłał wyników poszukiwania"
#. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:651
msgid "server did not send all the messages we requested"
msgstr "serwer nie wysłał wszystkich wiadomości o które prosiliśmy"
-#: src/mn-imap-mailbox.gob:671
+#: src/mn-imap-mailbox.gob:700
msgid "unable to fetch message"
msgstr "niezdolny do sprowadzenia wiadomości"
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#. compliance error
+#: src/mn-imap-mailbox.gob:818
+msgid "server did not send status"
+msgstr "serwer nie wysłał stanu"
+
+#: src/mn-imap-mailbox.gob:1096 src/mn-pop3-mailbox.gob:972
msgid "unknown server error"
msgstr "nieznany błąd serweru"
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: src/mn-imap-mailbox.gob:1198 src/mn-pop3-mailbox.gob:227
msgid "server does not support in-band SSL/TLS"
msgstr "serwer nie popiera wewnątrzpasmowego SSL/TSL"
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: src/mn-imap-mailbox.gob:1217 src/mn-pop3-mailbox.gob:885
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
-msgstr "wybrany został nieobsługiwany mechanizm potwierdzania tożsamości SASL"
+msgstr ""
+"wybrany został nieobsługiwany mechanizm potwierdzania tożsamości SASL"
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: src/mn-imap-mailbox.gob:1225 src/mn-pop3-mailbox.gob:897
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "nieznany mechanizm potwierdzenia tożsamości \"%s\""
-#: src/mn-imap-mailbox.gob:1160
+#: src/mn-imap-mailbox.gob:1246
msgid "falling back to IMAP LOGIN authentication"
msgstr "powrót do potwierdzenia tożsamości IMAP LOGIN"
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: src/mn-imap-mailbox.gob:1257 src/mn-pop3-mailbox.gob:938
msgid "authentication failed"
msgstr "logowanie nie udało się"
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr "_Uruchom czytnik poczty"
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-#, fuzzy
-msgid "_Mail Reader"
-msgstr "C_zytnik poczty:"
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr "_Odśwież"
@@ -958,20 +867,20 @@ msgstr "_Odśwież"
msgid "R_emove From Notification Area"
msgstr "U_suń z obszaru powiadomienia"
-#: src/mn-mailbox-properties-dialog.c:156
+#: src/mn-mailbox-properties-dialog.c:109
msgid "Add a Mailbox"
msgstr "Dodaj skrzynkę pocztową"
-#: src/mn-mailbox-properties-dialog.c:325
+#: src/mn-mailbox-properties-dialog.c:328
#, c-format
msgid "%s Properties"
msgstr "Właściwości %s"
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
msgid "_Username:"
msgstr "_Użytkownik:"
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
msgid "_Password:"
msgstr "_Hasło:"
@@ -1011,57 +920,61 @@ msgstr "Skończonę"
msgid "Whether the properties are completely filled or not"
msgstr "Czy właściwości są całkowicię wypełnione czy nie"
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:61
msgid "Mailbox"
msgstr "Skrzynka pocztowa"
#. format column
-#: src/mn-mailbox-view.gob:287
+#: src/mn-mailbox-view.gob:279
msgid "Format"
msgstr "Format"
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:569
msgid "Unable to add mailbox"
msgstr "Niezdolny dodać skrzynkę pocztową"
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:569
msgid "The mailbox is already in the list."
msgstr "Skrzynka pocztowa już jest w spisie."
-#: src/mn-mailbox.gob:131
+#: src/mn-mailbox.gob:130
msgid "The mailbox URI"
msgstr "URI skrzynki pocztowej"
-#: src/mn-mailbox.gob:142
+#: src/mn-mailbox.gob:141
msgid "The mailbox human-readable name"
msgstr "Ludzko-czytelne imię skrzynki pocztowej"
-#: src/mn-mailbox.gob:146
+#: src/mn-mailbox.gob:145
msgid "Whether the mailbox has to be polled or not"
msgstr "Czy skrzynka pocztowa była sprawdzona czy nie"
-#: src/mn-mailbox.gob:152
+#: src/mn-mailbox.gob:151
+msgid "Whether the mailbox has new mail or not"
+msgstr "Czy skrzynka pocztowa ma nową pocztę czy nie"
+
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr "Spis przeczytanych i nie przeczytanych obiektów MNMessage"
-#: src/mn-mailbox.gob:206
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr "Błąd skrzynki pocztowej, jeżeli wszelki"
-#: src/mn-mailbox.gob:305
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr "nie istnieje"
-#: src/mn-mailbox.gob:337
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr "nieznany format"
-#: src/mn-mailbox.gob:403
-#, fuzzy, c-format
-msgid "unable to enable immediate notification: %s"
+#: src/mn-mailbox.gob:407
+#, c-format
+msgid "unable to enable immediate notification for %s: %s"
msgstr "niezdolny umożliwić natychmiastowę zawiadomienie dla %s: %s"
-#: src/mn-mailbox.gob:421
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -1079,7 +992,7 @@ msgstr[2] ""
"Pod reżimem awaryjnym, one będą sprawdzanę co każdę %i sekundy (ta zwłoka "
"może być skonfigurowana w Dialogu Właściowści)."
-#: src/mn-mailbox.gob:432
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -1097,7 +1010,7 @@ msgstr[2] ""
"Pod reżimem awaryjnym, one będą sprawdzanę co każdę %i minuty (ta zwłoka "
"może być skonfigurowana w Dialogu Właściowści)."
-#: src/mn-mailbox.gob:443
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -1115,11 +1028,11 @@ msgstr[2] ""
"Pod reżimem awaryjnym, one będą sprawdzanę co mniej więcej każdę %i minuty "
"(ta zwłoka może być skonfigurowana w Dialogu Właściowści)."
-#: src/mn-mailbox.gob:459
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr "Wydarzył się błąd nasłuchowy"
-#: src/mn-mailbox.gob:460
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
@@ -1128,264 +1041,100 @@ msgstr ""
"Zawiadomienie pocztowe było niezdolnę umożliwić natychmiastowę zawiadomienie "
"jednej albo większej ilość skrzynek pocztowych. %s"
-#: src/mn-mailboxes.gob:130
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr "Czy jedna lub więcej szkrzynek pocztowych była sprawdzona czy nie"
-#: src/mn-mailboxes.gob:260
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s jest nieobsługiwane: %s"
-#: src/mn-mailboxes.gob:290
-#, fuzzy, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] "%s ma nową pocztę"
-msgstr[1] "%s ma nową pocztę"
-msgstr[2] "%s ma nową pocztę"
+#: src/mn-mailboxes.gob:304
+#, c-format
+msgid "%s has new mail"
+msgstr "%s ma nową pocztę"
+
+#: src/mn-mailboxes.gob:304
+#, c-format
+msgid "%s has no new mail"
+msgstr "%s nie ma nowej poczty"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr "%s zgłosiło błąd: %s"
-#: src/mn-maildir-mailbox.gob:112
+#: src/mn-maildir-mailbox.gob:119
#, c-format
msgid "unable to open folder \"new\": %s"
msgstr "niezdolny otworzyć teczkę \"new\": %s"
-#: src/mn-maildir-mailbox.gob:141
+#: src/mn-maildir-mailbox.gob:161
#, c-format
msgid "unable to close folder \"new\": %s"
msgstr "niezdolny zamknąć teczkę \"new\": %s"
-#: src/mn-maildir-mailbox.gob:144
+#: src/mn-maildir-mailbox.gob:164
#, c-format
msgid "error while reading folder \"new\": %s"
msgstr "błąd podczas czytania teczki \"new\": %s"
-#. Toplevel
-#: src/mn-main-window.c:92
-#, fuzzy
-msgid "_Mail"
-msgstr "Skrzynka pocztowa"
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-#, fuzzy
-msgid "Launch the mail reader"
-msgstr "U_ruchom czytnik poczty"
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr "Odśwież stan poczty"
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-#, fuzzy
-msgid "Quit Mail Notification"
-msgstr "Zawiadomienie pocztowe"
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-#, fuzzy
-msgid "_Contents"
-msgstr "_Wybór czcionki treści:"
-
-#: src/mn-main-window.c:165
-#, fuzzy
-msgid "Display help"
-msgstr "Niezdolny do wyświetlenia pomocy"
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-#, fuzzy
-msgid "Only display the toolbars icons"
-msgstr "Wyświetlanie tylko nieprzeczytanych listów"
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, fuzzy, c-format
-msgid "unable to load menus.xml: %s"
-msgstr "niezdolny przeczytać %s: %s"
-
-#: src/mn-main-window.c:398
-#, fuzzy
-msgid "Help messages"
-msgstr "Nieczytalna wiadomość"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, fuzzy, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] "Nieczytalna wiadomość"
-msgstr[1] "Nieczytalna wiadomość"
-msgstr[2] "Nieczytalna wiadomość"
-
-#: src/mn-main-window.c:540
-#, fuzzy
-msgid "unable to load toolbars.xml"
-msgstr "niezdolny zamknąć teczkę: %s"
-
#: src/mn-main.c:99
#, c-format
msgid "Compiled-in mailbox backends: %s\n"
msgstr "Wkompilowanę wewnętrzne cechy skrzynki pocztowej: %s\n"
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
#: src/mn-main.c:116
#, c-format
msgid "Compiled-in features: %s\n"
msgstr "Wkompilowanę cechy: %s\n"
-#: src/mn-main.c:176
+#: src/mn-main.c:175
msgid "Enable informational output"
msgstr "Umożliw informacyjny wydruk"
-#: src/mn-main.c:185
-#, fuzzy
-msgid "List the compiled-in features"
+#: src/mn-main.c:184
+msgid "List compiled-in features and exit"
msgstr "Wydrukuj spis wkompilowanych cech i zakończ"
-#: src/mn-main.c:194
-#, fuzzy
-msgid "Display the main window"
-msgstr "Wyświetlij dialog \"O\""
+#: src/mn-main.c:193
+msgid "Display the mail summary dialog"
+msgstr "Wyświetlij dialog streszczenia poczty"
-#: src/mn-main.c:203
+#: src/mn-main.c:202
msgid "Display the properties dialog"
msgstr "Wyświetlij dialog właściwości"
-#: src/mn-main.c:212
+#: src/mn-main.c:211
msgid "Display the about dialog"
msgstr "Wyświetlij dialog \"O\""
-#: src/mn-main.c:221
+#: src/mn-main.c:220
msgid "Close the mail summary popup"
msgstr "Zamknij wyskakujące okienko streszczenia poczty"
-#: src/mn-main.c:239
+#: src/mn-main.c:229
+msgid "Update the mail status"
+msgstr "Odśwież stan poczty"
+
+#: src/mn-main.c:238
msgid "Report the mail status"
msgstr "Zgłoś stan poczty"
-#: src/mn-main.c:248
-#, fuzzy
-msgid "Unset obsolete GConf configuration"
+#: src/mn-main.c:247
+msgid "Unset obsolete GConf configuration and exit"
msgstr "Usuń przestarzałą konfigurację GConf i zakończ"
#.
#. * We can't use mn_error_dialog() because gtk_init() has not been
#. * called yet.
#.
-#: src/mn-main.c:284
+#: src/mn-main.c:273
msgid "multi-threading is not available"
msgstr "wielowątkowość nie jest dostępna "
-#: src/mn-main.c:338
+#: src/mn-main.c:320
msgid ""
"Bonobo could not locate the automation object. Please check your Mail "
"Notification installation."
@@ -1393,29 +1142,19 @@ msgstr ""
"Bonobo nie potrafiło znaleźć obiektu automatyzacyjnego. Proszę sprawdzić "
"instalację Zawiadomienie pocztowego"
-#: src/mn-main.c:344
-#, fuzzy
-msgid "quitting Mail Notification"
-msgstr "Zawiadomienie pocztowe"
-
-#: src/mn-main.c:348
-#, fuzzy
-msgid "Mail Notification is not running"
-msgstr "Zawiadomienie pocztowe jest już uruchomione."
-
-#: src/mn-main.c:355
+#: src/mn-main.c:325
msgid "Unable to initialize the GnomeVFS library."
msgstr "Niezdolny do inicjalizacji biblioteki GnomeVFS."
-#: src/mn-main.c:391
+#: src/mn-main.c:361
msgid "updating the mail status"
msgstr "odświeżanie stanu poczty"
-#: src/mn-main.c:409
+#: src/mn-main.c:379
msgid "Mail Notification is already running"
msgstr "Zawiadomienie pocztowe jest już uruchomione."
-#: src/mn-main.c:417
+#: src/mn-main.c:386
msgid ""
"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
"Please check your Mail Notification installation."
@@ -1423,7 +1162,7 @@ msgstr ""
"Bonobo nie mogło znaleźć pliku GNOME_MailNotification_Automation.server."
"Proszę sprawdzić swoją instalację Zawiadomienia Pocztowego."
-#: src/mn-main.c:421
+#: src/mn-main.c:390
msgid ""
"Bonobo was unable to register the automation server. Please check your Mail "
"Notification installation."
@@ -1431,41 +1170,33 @@ msgstr ""
"Bonobo nie potrafiło zarejestrować serwera automatyzacyjnego. Proszę "
"sprawdzić instalację Zawiadomienia Pocztowego"
-#: src/mn-mbox-mailbox.gob:184
+#: src/mn-mbox-mailbox.gob:221
+#, c-format
+msgid "error while reading mailbox: %s"
+msgstr "błąd podczas odczytywania skrzynki pocztowej: %s"
+
+#: src/mn-mbox-mailbox.gob:230
#, c-format
msgid "unable to open mailbox: %s"
msgstr "niezdolny otworzyć skrzynkę pocztową: %s"
-#: src/mn-message-mime.c:105
-msgid "unable to parse MIME message"
-msgstr "niezdolny do zrobienia rozbioru wiadomości MIME"
-
-#: src/mn-message-view.gob:81
-#, fuzzy
-msgid "You have no new mail."
-msgstr "Masz wiadomość!"
-
-#: src/mn-message-view.gob:321
+#: src/mn-message-box.gob:64
msgid "Unreadable message"
msgstr "Nieczytalna wiadomość"
-#: src/mn-message-view.gob:329
+#: src/mn-message-box.gob:69
msgid "From"
msgstr "Od"
-#: src/mn-message-view.gob:337
+#: src/mn-message-box.gob:70
msgid "Subject"
msgstr "Temat"
-#: src/mn-message-view.gob:348
+#: src/mn-message-box.gob:75
msgid "Sent"
msgstr "Posłanę"
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr "Nieznany"
-
-#: src/mn-message.gob:126
+#: src/mn-message-box.gob:192
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
@@ -1473,44 +1204,52 @@ msgstr[0] "%i sekundę temu"
msgstr[1] "%i sekund temu"
msgstr[2] "%i sekundy temu"
-#: src/mn-message.gob:130
-#, fuzzy, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
+#: src/mn-message-box.gob:196
+#, c-format
+msgid "%i minute ago"
+msgid_plural "%i minutes ago"
msgstr[0] "%i minutę temu"
msgstr[1] "%i minut temu"
msgstr[2] "%i minuty temu"
-#: src/mn-message.gob:135
-#, fuzzy, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
+#: src/mn-message-box.gob:201
+#, c-format
+msgid "%i hour ago"
+msgid_plural "%i hours ago"
msgstr[0] "%i godzinę temu"
msgstr[1] "%i godzin temu"
msgstr[2] "%i godziny temu"
-#: src/mn-message.gob:140
-#, fuzzy, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
+#: src/mn-message-box.gob:206
+#, c-format
+msgid "%i day ago"
+msgid_plural "%i days ago"
msgstr[0] "%i dzień temu"
msgstr[1] "%i dni temu"
msgstr[2] "%i dni temu"
-#: src/mn-message.gob:145
-#, fuzzy, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
+#: src/mn-message-box.gob:211
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
msgstr[0] "%i tydzień temu"
msgstr[1] "%i tygodni temu"
msgstr[2] "%i tygodnie temu"
-#: src/mn-mh-mailbox.gob:147
+#: src/mn-message-mime.c:105
+msgid "unable to parse MIME message"
+msgstr "niezdolny do zrobienia rozbioru wiadomości MIME"
+
+#: src/mn-message.gob:101
+msgid "Unknown"
+msgstr "Nieznany"
+
+#: src/mn-mh-mailbox.gob:184
#, c-format
msgid "error while reading .mh_sequences: %s"
msgstr "błąd podczas czytania .mh_sequences: %s"
-#: src/mn-mh-mailbox.gob:157
+#: src/mn-mh-mailbox.gob:196
#, c-format
msgid "unable to open .mh_sequences: %s"
msgstr "niezdolny do otwarcia .mh_sequences: %s"
@@ -1519,23 +1258,23 @@ msgstr "niezdolny do otwarcia .mh_sequences: %s"
msgid "detecting"
msgstr "odkrywanie"
-#: src/mn-pi-mailbox-properties.gob:75
+#: src/mn-pi-mailbox-properties.gob:76
msgid "_Hostname:"
msgstr "Nazwa serwera:"
-#: src/mn-pi-mailbox-properties.gob:93
+#: src/mn-pi-mailbox-properties.gob:94
msgid "_Details"
msgstr "_Szczegóły"
-#: src/mn-pi-mailbox-properties.gob:105
+#: src/mn-pi-mailbox-properties.gob:106
msgid "sta_ndard"
msgstr "bez szyfrowania"
-#: src/mn-pi-mailbox-properties.gob:115
+#: src/mn-pi-mailbox-properties.gob:116
msgid "_in-band SSL/TLS"
msgstr "wewnątrzpasmowy TLS"
-#: src/mn-pi-mailbox-properties.gob:125
+#: src/mn-pi-mailbox-properties.gob:126
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS na oddzielnym porcie"
@@ -1559,15 +1298,15 @@ msgstr ""
msgid "The port number of the POP3 server"
msgstr "Numer portu serweru POP3"
-#: src/mn-pop3-mailbox.gob:266
+#: src/mn-pop3-mailbox.gob:273
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "nieważne argumenty do zdolności LOGIN-DELAY"
-#: src/mn-pop3-mailbox.gob:569
+#: src/mn-pop3-mailbox.gob:590
msgid "unknown error"
msgstr "nieznany błąd"
-#: src/mn-pop3-mailbox.gob:656
+#: src/mn-pop3-mailbox.gob:729
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1575,39 +1314,39 @@ msgstr[0] "honorujemy LOGIN-DELAY, śpimy przez %i sekundę"
msgstr[1] "honorujemy LOGIN-DELAY, śpimy przez %i sekund"
msgstr[2] "honorujemy LOGIN-DELAY, śpimy przez %i sekundy"
-#: src/mn-pop3-mailbox.gob:849
+#: src/mn-pop3-mailbox.gob:893
msgid "server does not support APOP authentication"
msgstr "serwer nie popiera potwierdzenia tożsamości APOP"
-#: src/mn-pop3-mailbox.gob:884
+#: src/mn-pop3-mailbox.gob:922
msgid "falling back to APOP authentication"
msgstr "wycofanię do potwierdzenia tożsamości APOP"
-#: src/mn-pop3-mailbox.gob:889
+#: src/mn-pop3-mailbox.gob:927
msgid "falling back to USER/PASS authentication"
msgstr "wycofanię do potwierdzenia tożsamości USER/PASS"
-#: src/mn-properties-dialog.c:218
+#: src/mn-properties.c:193
msgid "top left"
msgstr "lewy górny róg ekranu"
-#: src/mn-properties-dialog.c:219
+#: src/mn-properties.c:194
msgid "top right"
msgstr "prawy górny róg ekranu"
-#: src/mn-properties-dialog.c:220
+#: src/mn-properties.c:195
msgid "bottom left"
msgstr "lewy dolny róg ekranu"
-#: src/mn-properties-dialog.c:221
+#: src/mn-properties.c:196
msgid "bottom right"
msgstr "prawy dolny róg ekranu"
-#: src/mn-properties-dialog.c:323
+#: src/mn-properties.c:287
msgid "No mailbox selected."
msgstr "Żadna skrzynka pocztowa nie została wybrana."
-#: src/mn-properties-dialog.c:328
+#: src/mn-properties.c:292
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
@@ -1615,23 +1354,23 @@ msgstr[0] "%i skrzynka pocztowa wybrana"
msgstr[1] "%i skrzynek pocztowych wybranych"
msgstr[2] "%i skrzynki pocztowe wybranę"
-#: src/mn-shell.gob:96
+#: src/mn-shell.gob:93
msgid "You have new mail."
msgstr "Masz wiadomość!"
-#: src/mn-shell.gob:361
+#: src/mn-shell.gob:360
msgid "Mailboxes Having New Mail"
msgstr "Skrzynki pocztowe z nową pocztą"
-#: src/mn-shell.gob:382
+#: src/mn-shell.gob:362
msgid "Errors"
msgstr "Błędy"
-#: src/mn-shell.gob:403
+#: src/mn-shell.gob:364
msgid "Unsupported Mailboxes"
msgstr "Nieskonfigurowane skrzynki pocztowe"
-#: src/mn-shell.gob:418
+#: src/mn-shell.gob:381 ui/summary-dialog.glade.h:1
msgid "Mail Summary"
msgstr "Streszczenie poczty"
@@ -1649,20 +1388,20 @@ msgid "Select _All"
msgstr "Wybierz _Wszystkie"
#: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
+msgid "_Mail Summary"
+msgstr "_Streszczenie poczty"
-#: src/mn-sylpheed-mailbox.gob:113
+#: src/mn-sylpheed-mailbox.gob:119
#, c-format
msgid "unable to open folder: %s"
msgstr "niezdolny otworzyć teczkę: %s"
-#: src/mn-sylpheed-mailbox.gob:147
+#: src/mn-sylpheed-mailbox.gob:165
#, c-format
msgid "unable to close folder: %s"
msgstr "niezdolny zamknąć teczkę: %s"
-#: src/mn-sylpheed-mailbox.gob:150
+#: src/mn-sylpheed-mailbox.gob:168
#, c-format
msgid "error while reading folder: %s"
msgstr "błąd podczas czytania teczki: %s"
@@ -1694,109 +1433,100 @@ msgstr "Powód z powodu którego skrzynka pocztowa nie jest popierana"
msgid "unsupported"
msgstr "nieobsługiwany"
-#: src/mn-util.c:245
+#: src/mn-util.c:233
#, c-format
msgid "error loading image: %s"
msgstr "błąd w ładowaniu obrazka: %s"
-#: src/mn-util.c:276
+#: src/mn-util.c:271
#, c-format
msgid "widget \"%s\" not found in interface \"%s\""
msgstr "element \"%s\" nie mógł byc znaleziony w interfejsie \"%s\""
-#: src/mn-util.c:390
+#: src/mn-util.c:385
msgid "received an invalid URI list"
msgstr "otrzymano nieważną listę URIów"
-#: src/mn-util.c:426
+#: src/mn-util.c:421
msgid "received an invalid Mozilla URL"
msgstr "otrzymano nieważny Mozillowy URL"
-#: src/mn-util.c:519
+#: src/mn-util.c:514
msgid "Unable to display help"
msgstr "Niezdolny do wyświetlenia pomocy"
-#: src/mn-util.c:533
+#: src/mn-util.c:528
#, c-format
msgid "Unable to create a thread: %s."
msgstr "Niezdolny do stworzenia wątku: %s."
-#: src/mn-util.c:626
+#: src/mn-util.c:705
msgid "_Do not show this message again"
msgstr "_Nie pokazuj tej wiadomości ponownie"
-#: src/mn-util.c:710
+#: src/mn-util.c:789
msgid "A fatal error has occurred in Mail Notification"
msgstr "Fatalny błąd zdarzył się w Zawiadomieniu Pocztowym"
-#: src/mn-util.c:725
+#: src/mn-util.c:804
#, c-format
msgid "unable to get current time: %s"
msgstr "niezdolny otrzymać aktualny czas: %s"
-#: src/mn-util.c:787
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "nieważna specyfikacja sygnału \"%s\""
-#: src/mn-util.c:826
+#: src/mn-util.c:945
msgid "A command error has occurred in Mail Notification"
msgstr "Błąd rozkazowy występił w Zawiadomieniu Pocztowym"
-#: src/mn-util.c:827
+#: src/mn-util.c:946
#, c-format
msgid "Unable to execute \"%s\": %s."
msgstr "Niezdolny do wykonania \"%s\": %s"
#: ui/authentication.glade.h:1
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
msgid "_Authenticate"
msgstr "_Potwierdź tożsamości"
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
#: ui/mailbox-properties.glade.h:1
msgid "_Mailbox type:"
msgstr "_Typ połączenia:"
#: ui/properties.glade.h:1
+msgid " "
+msgstr " "
+
+#: ui/properties.glade.h:2
msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Polecenia</span>"
-#: ui/properties.glade.h:2
+#: ui/properties.glade.h:3
msgid "<span weight=\"bold\">Double-click Action</span>"
msgstr "<span weight=\"bold\">Podwójne kliknięcie</span>"
-#: ui/properties.glade.h:3
+#: ui/properties.glade.h:4
msgid "<span weight=\"bold\">Fonts</span>"
msgstr "<span weight=\"bold\">Czcionki</span>"
-#: ui/properties.glade.h:4
+#: ui/properties.glade.h:5
msgid "<span weight=\"bold\">General</span>"
msgstr "<span weight=\"bold\">Ogólne</span>"
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Skrzynki pocztowe</span>"
-
-#: ui/properties.glade.h:6
+
+#: ui/properties.glade.h:7
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Pozycja</span>"
-#: ui/properties.glade.h:7
-#, fuzzy
-msgid "Co_ntents:"
-msgstr "_Wybór czcionki treści:"
-
#: ui/properties.glade.h:8
msgid "Dis_play mail summary in tooltip"
msgstr "_Wyświetlanie streszczenia poczty na obszarze powiadamiania"
@@ -1868,101 +1598,106 @@ msgstr ""
"wyskakującym okienkiem streszczenia poczty."
#: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
msgid "When _all mail is read:"
msgstr "Po przeczytaniu całej poczty:"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:24
msgid "When _new mail arrives:"
msgstr "Po nadejściu nowej poczty:"
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:25
msgid "Whether the status icon should blink on errors or not"
msgstr "Migaj przy wystąpieniu błędów"
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:26
msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Zamknij automatycznie streszczenie poczty po upływie zadanego czasu"
+msgstr ""
+"Zamknij automatycznie streszczenie poczty po upływie zadanego czasu"
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:27
msgid "Whether to display the mail summary in the status icon tooltip or not"
msgstr "Wyświetl streszczenie poczty w obszarze powiadamiania"
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:28
msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr "Wyświetl streszczenie poczty po nadejściu nowych wiadomości"
+msgstr ""
+"Wyświetl streszczenie poczty po nadejściu nowych wiadomości"
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:29
msgid "Whether to hide previously displayed mail or not"
msgstr "Ukrywaj przeczytane listy"
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:30
msgid "Whether to run a command when all mail is read or not"
msgstr "Uruchom polecenie, gdy cała poczta zostanie przeczytana"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:31
msgid "Whether to run a command when new mail arrives or not"
msgstr "Uruchom polecenie, gdy nadejdzie nowa poczta"
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:32
msgid "Whether to set a mail reader or not"
msgstr "Ustaw czytnik poczty"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:33
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
msgstr "Uruchom zawiadomienie pocztowe w trakcie startu środowiska graficznego"
+#: ui/properties.glade.h:34
+msgid ""
+"Whether to use a custom font for the contents of the mail summary popup or "
+"not"
+msgstr ""
+"Ustaw czcionkę dla tytułu streszczenia poczty"
+
#: ui/properties.glade.h:35
+msgid ""
+"Whether to use a custom font for the title of the mail summary popup or not"
+msgstr ""
+"Czy użyć niestandardową czcionkę do tytułu wyskakującego okienka "
+"streszczenia poczty czy nie"
+
+#: ui/properties.glade.h:36
msgid "_Automatically close after:"
msgstr "_Automatyczne zamknięcie okienka po:"
-#: ui/properties.glade.h:36
+#: ui/properties.glade.h:37
msgid "_Blink on errors"
msgstr "_Miganie przy błędach"
-#: ui/properties.glade.h:37
+#: ui/properties.glade.h:38
+msgid "_Contents font:"
+msgstr "_Wybór czcionki treści:"
+
+#: ui/properties.glade.h:39
msgid "_Delay between mail checks:"
msgstr "_Sprawdzanie poczty co:"
-#: ui/properties.glade.h:38
-#, fuzzy
-msgid "_Display the main window"
+#: ui/properties.glade.h:40
+msgid "_Display the mail summary dialog"
msgstr "_Wyświetl streszczenie poczty"
-#: ui/properties.glade.h:39
+#: ui/properties.glade.h:41
msgid "_Enable mail summary popup"
msgstr "_Streszczenie poczty"
-#: ui/properties.glade.h:40
+#: ui/properties.glade.h:42
msgid "_Launch the mail reader"
msgstr "U_ruchom czytnik poczty"
-#: ui/properties.glade.h:41
+#: ui/properties.glade.h:43
msgid "_Mail reader:"
msgstr "C_zytnik poczty:"
-#: ui/properties.glade.h:42
+#: ui/properties.glade.h:44
msgid "_Start Mail Notification on GNOME login"
msgstr "_Uruchomienie zawiadomienia pocztowego podczas logowania"
-#: ui/properties.glade.h:43
-#, fuzzy
-msgid "_Title:"
-msgstr "_Wybór czcionki tytułu:"
-
-#: ui/properties.glade.h:44
-#, fuzzy
-msgid "_Update the mail status"
-msgstr "Odśwież stan poczty"
-
#: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
+msgid "_Title font:"
+msgstr "_Wybór czcionki tytułu:"
#: ui/properties.glade.h:46
msgid "_Vertical offset:"
@@ -1985,13 +1720,12 @@ msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr "<span size=\"larger\" weight=\"bold\">Zawiadomienie pocztowe</span>"
#: ui/welcome.glade.h:1
-#, fuzzy
msgid ""
"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
"\n"
"Mail Notification has been loaded successfully.\n"
"\n"
-"Since this is the first time you run Mail Notification, you need to "
+"Since this is the first time you run Mail Notification, you might want to "
"configure it.\n"
"\n"
"Note: this message will not be shown anymore. To configure Mail Notification "
@@ -2022,66 +1756,3 @@ msgstr "_Konfiguracja Zawiadomienia pocztowego"
#: ui/welcome.glade.h:9
msgid "_Skip configuration"
msgstr "_Pomiń konfigurację"
-
-#~ msgid "Use a custom font for the contents of the mail summary popup"
-#~ msgstr ""
-#~ "Użyj niestandardową czcionkę dla zawartości wyskakującego okienka "
-#~ "streszczenia poczty"
-
-#~ msgid "Use a custom font for the title of the mail summary popup"
-#~ msgstr ""
-#~ "Użyj niestandardową czcionkę dla tytułu wyskakującego okienka "
-#~ "streszczenia poczty"
-
-#~ msgid ""
-#~ "Whether to use a custom font for the contents of the mail summary popup "
-#~ "or not."
-#~ msgstr ""
-#~ "Czy użyć niestandardową czcionkę dla zawartości wyskakującego okienka "
-#~ "streszczenia poczty czy nie."
-
-#~ msgid ""
-#~ "Whether to use a custom font for the title of the mail summary popup or "
-#~ "not."
-#~ msgstr ""
-#~ "Czy użyć niestandardową czcionkę dla tytułu wyskakującego okienka "
-#~ "streszczenia poczty czy nie."
-
-#~ msgid "server did not send status"
-#~ msgstr "serwer nie wysłał stanu"
-
-#~ msgid "_Launch Mail Reader"
-#~ msgstr "_Uruchom czytnik poczty"
-
-#~ msgid "Whether the mailbox has new mail or not"
-#~ msgstr "Czy skrzynka pocztowa ma nową pocztę czy nie"
-
-#~ msgid "%s has no new mail"
-#~ msgstr "%s nie ma nowej poczty"
-
-#~ msgid "Display the mail summary dialog"
-#~ msgstr "Wyświetlij dialog streszczenia poczty"
-
-#~ msgid "error while reading mailbox: %s"
-#~ msgstr "błąd podczas odczytywania skrzynki pocztowej: %s"
-
-#~ msgid "_Mail Summary"
-#~ msgstr "_Streszczenie poczty"
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid " "
-#~ msgstr " "
-
-#~ msgid ""
-#~ "Whether to use a custom font for the contents of the mail summary popup "
-#~ "or not"
-#~ msgstr "Ustaw czcionkę dla tytułu streszczenia poczty"
-
-#~ msgid ""
-#~ "Whether to use a custom font for the title of the mail summary popup or "
-#~ "not"
-#~ msgstr ""
-#~ "Czy użyć niestandardową czcionkę do tytułu wyskakującego okienka "
-#~ "streszczenia poczty czy nie"
diff --git a/po/pt.gmo b/po/pt.gmo
Binary files differ.
diff --git a/po/pt.po b/po/pt.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2005-02-27 15:47+0100\n"
"PO-Revision-Date: 2005-03-01 02:19+0100\n"
"Last-Translator: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
"Language-Team: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
@@ -171,8 +171,8 @@ msgid ""
"The action to perform when the icon is double-clicked. Must be \"display-"
"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
msgstr ""
-"A acção a efectuar quando se faz duplo-clique no ícone. Tem de ser \"display-"
-"main-window\", \"launch-mail-reader\" ou \"update-mail-status\"."
+"A acção a efectuar quando se faz duplo-clique no ícone. Tem de ser "
+"\"display-main-window\", \"launch-mail-reader\" ou \"update-mail-status\"."
#: data/mail-notification.schemas.in.h:33
msgid ""
@@ -397,8 +397,8 @@ msgid ""
"Drag an item onto the toolbars above to add it, from the toolbars in the "
"items table to remove it."
msgstr ""
-"Arraste um item para as barras para o adicionar, das barras para a tabela de "
-"items para o remover"
+"Arraste um item para as barras para o adicionar, das barras para a tabela "
+"de items para o remover"
#: src/eggtrayicon.c:109
msgid "Orientation"
@@ -600,77 +600,81 @@ msgstr "incapaz de ler do servidor: EOF"
msgid "unable to decode data using SASL: %s"
msgstr "incapaz de descodificar dados usando SASL: %s"
-#: src/mn-client-session.c:743
+#: src/mn-client-session.c:709
+msgid "received non-ASCII data from server"
+msgstr "dados não-ASCII recebidos do servidor"
+
+#: src/mn-client-session.c:756
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "incapaz de encodificar dados usando SASL: %s"
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: src/mn-client-session.c:787 src/mn-client-session.c:794
#, c-format
msgid "unable to write to server: %s"
msgstr "incapaz de escrever para o servidor: %s"
-#: src/mn-client-session.c:779
+#: src/mn-client-session.c:792
msgid "unable to write to server: EOF"
msgstr "incapaz de escrever para o servidor: EOF"
-#: src/mn-client-session.c:811
+#: src/mn-client-session.c:824
#, c-format
msgid "unable to encode Base64: %s"
msgstr "incapaz de encodificar em Base64: %s"
-#: src/mn-client-session.c:922
+#: src/mn-client-session.c:935
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "incapaz de inicializar a biblioteca SASL: %s"
-#: src/mn-client-session.c:931
+#: src/mn-client-session.c:944
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "incapaz de obter o endereço local do socket: %s"
-#: src/mn-client-session.c:937
+#: src/mn-client-session.c:950
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "incapaz de obter endereço remoto do socket: %s"
-#: src/mn-client-session.c:971
+#: src/mn-client-session.c:984
#, c-format
msgid "unable to set SASL security properties: %s"
msgstr "incapaz de definir as propriedades de segurança SASL: %s"
-#: src/mn-client-session.c:995
+#: src/mn-client-session.c:1008
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
"incapaz de iniciar a autenticação SASL: SASL perguntou algo que não sabíamos"
-#: src/mn-client-session.c:1014
+#: src/mn-client-session.c:1027
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "incapaz de iniciar autenticação SASL: %s"
-#: src/mn-client-session.c:1018
+#: src/mn-client-session.c:1031
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "incapaz de criar uma ligação SASL: %s"
-#: src/mn-client-session.c:1055
+#: src/mn-client-session.c:1068
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr "SASL perguntou algo que não sabíamos, abortando a autenticação SASL"
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1085
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, abortando a autenticação SASL"
#. compliance error
-#: src/mn-client-session.c:1077
+#: src/mn-client-session.c:1090
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "incapaz de descodificar o input em Base64 do servidor: %s"
-#: src/mn-client-session.c:1080
+#: src/mn-client-session.c:1093
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
@@ -678,7 +682,7 @@ msgstr ""
"o servidor enviou um desafio SASL, mas havia uma resposta SASL inicial "
"pendente do cliente"
-#: src/mn-client-session.c:1094
+#: src/mn-client-session.c:1107
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
@@ -686,18 +690,18 @@ msgstr ""
"o servidor não enviou um desafio SASL, mas não havia uma resposta SASL "
"inicial pendente do cliente"
-#: src/mn-client-session.c:1119
+#: src/mn-client-session.c:1132
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "está agora activa uma camada de segurança SASL com factor de força %i"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: src/mn-client-session.c:1137
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "incapaz de obter a propriedade SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1130
+#: src/mn-client-session.c:1143
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "aviso: incapaz de obter a propriedade SASL_SSF: %s"
@@ -859,7 +863,7 @@ msgstr "O nome da caixa de correio"
msgid "If possible, whether to use idle mode or not"
msgstr "Se possível, usar modo inactivo ou não"
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
+#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:135
msgid "SSL/TLS support has not been compiled in"
msgstr "suporte SSL/TLS não foi compilado"
@@ -889,15 +893,15 @@ msgstr "servidor não enviou todas as mensagens pedidas"
msgid "unable to fetch message"
msgstr "incapaz de obter mensagem"
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: src/mn-imap-mailbox.gob:999 src/mn-pop3-mailbox.gob:907
msgid "unknown server error"
msgstr "erro de servidor desconhecido"
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: src/mn-imap-mailbox.gob:1101 src/mn-pop3-mailbox.gob:219
msgid "server does not support in-band SSL/TLS"
msgstr "servidor não suporta SSL/TLS in-band"
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: src/mn-imap-mailbox.gob:1120 src/mn-pop3-mailbox.gob:817
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -905,16 +909,16 @@ msgstr ""
"foi escolhido um mecanismo de autenticação SASL, mas o suporte SASL não foi "
"compilado"
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: src/mn-imap-mailbox.gob:1130 src/mn-pop3-mailbox.gob:837
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "mecanismo de autenticação desconhecido \"%s\""
-#: src/mn-imap-mailbox.gob:1160
+#: src/mn-imap-mailbox.gob:1153
msgid "falling back to IMAP LOGIN authentication"
msgstr "recorrendo à autenticação IMAP LOGIN"
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: src/mn-imap-mailbox.gob:1165 src/mn-pop3-mailbox.gob:881
msgid "authentication failed"
msgstr "autenticação falhou"
@@ -1227,9 +1231,7 @@ msgstr "_Omissão do Ambiente"
#: src/mn-main-window.c:207
msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-"Definir o estilo de barras de ferramentas para a definição por omissão do "
-"ambiente de trabalho"
+msgstr "Definir o estilo de barras de ferramentas para a definição por omissão do ambiente de trabalho"
#: src/mn-main-window.c:213
msgid "I_cons Only"
@@ -1268,22 +1270,22 @@ msgstr "Mostrar o texto das barras de ferramentas ao lado dos ícones"
msgid "unable to load menus.xml: %s"
msgstr "incapaz de varregar menus.xml: %s"
-#: src/mn-main-window.c:398
+#: src/mn-main-window.c:397
msgid "Help messages"
msgstr "Mensagens de Ajuda"
-#: src/mn-main-window.c:399
+#: src/mn-main-window.c:398
msgid "Count messages"
msgstr "Mensagens de contagem"
-#: src/mn-main-window.c:503
+#: src/mn-main-window.c:502
#, c-format
msgid "%i new message"
msgid_plural "%i new messages"
msgstr[0] "%i mensagem nova"
msgstr[1] "%i mensagens novas"
-#: src/mn-main-window.c:540
+#: src/mn-main-window.c:539
msgid "unable to load toolbars.xml"
msgstr "incapaz de carregar barras de ferramentas.xml"
@@ -1507,30 +1509,30 @@ msgstr ""
msgid "The port number of the POP3 server"
msgstr "O número do porto do servidor POP3"
-#: src/mn-pop3-mailbox.gob:266
+#: src/mn-pop3-mailbox.gob:265
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "argumentos inválidos para a habilidade LOGIN-DELAY"
-#: src/mn-pop3-mailbox.gob:569
+#: src/mn-pop3-mailbox.gob:568
msgid "unknown error"
msgstr "erro desconhecido"
-#: src/mn-pop3-mailbox.gob:656
+#: src/mn-pop3-mailbox.gob:655
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
msgstr[0] "honrando LOGIN-DELAY, dormindo por %i segundo"
msgstr[1] "honrando LOGIN-DELAY, dormindo por %i segundos"
-#: src/mn-pop3-mailbox.gob:849
+#: src/mn-pop3-mailbox.gob:829
msgid "server does not support APOP authentication"
msgstr "servidor não suporta autenticação APOP"
-#: src/mn-pop3-mailbox.gob:884
+#: src/mn-pop3-mailbox.gob:864
msgid "falling back to APOP authentication"
msgstr "recorrendo a autenticação APOP"
-#: src/mn-pop3-mailbox.gob:889
+#: src/mn-pop3-mailbox.gob:869
msgid "falling back to USER/PASS authentication"
msgstr "recorrendo a autenticação USER/PASS"
@@ -1949,8 +1951,8 @@ msgstr ""
"\n"
"A Notificação de Correio foi carregada com sucesso.\n"
"\n"
-"Como esta é a primeira vez que executa a Notificação de Correio, precisa de "
-"a configurar.\n"
+"Como esta é a primeira vez que executa a Notificação de Correio, precisa "
+"de a configurar.\n"
"\n"
"Nota: esta mensagem não será mostrada de novo. Para configurar a Notificação "
"de Correio outra vez, escolha <span weight=\"bold\">Aplicações</span> → "
@@ -1967,9 +1969,6 @@ msgstr "_Configurar Notificação de Correio"
msgid "_Skip configuration"
msgstr "_Saltar configuração"
-#~ msgid "received non-ASCII data from server"
-#~ msgstr "dados não-ASCII recebidos do servidor"
-
#~ msgid "Use a custom font for the contents of the mail summary popup"
#~ msgstr ""
#~ "Usar uma fonte personalizada para o conteúdo do popup de resumo de correio"
diff --git a/po/ru.gmo b/po/ru.gmo
Binary files differ.
diff --git a/po/ru.po b/po/ru.po
@@ -1,5 +1,5 @@
# Russian translations for mail-notification.
-# Copyright (C) 2003, 2004 Jean-Yves Lefort.
+# Copyright (C) 2003-2005 Jean-Yves Lefort.
#
# This file is distributed under the same license as the
# mail-notification package.
@@ -10,1895 +10,630 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 0.5.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2004-07-18 01:21+0200\n"
"PO-Revision-Date: 2004-07-21 21:58+0200\n"
"Last-Translator: Dan Korostelev <dan@ats.energo.ru>\n"
"Language-Team: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
-#, fuzzy
-msgid "Mail Notification automation"
-msgstr "Иконка входящих сообщений"
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
-#, fuzzy
-msgid "Mail Notification automation factory"
-msgstr "Иконка входящих сообщений"
-
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
-#, fuzzy
-msgid "Configure Mail Notification"
-msgstr "Иконка входящих сообщений"
-
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
-msgid "Mail Notification"
-msgstr "Иконка входящих сообщений"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: data/mail-notification.desktop.in.h:1
msgid "Get notified when new mail arrives"
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+#: data/mail-notification.desktop.in.h:2 src/mn-main.c:112 src/mn-ui.c:250
+msgid "Mail Notification"
+msgstr "Иконка входящих сообщений"
+
#: data/mail-notification.schemas.in.h:1
-msgid "Automatically close the mail summary popup"
+msgid "Clicked command"
msgstr ""
#: data/mail-notification.schemas.in.h:2
-msgid "Blink on errors"
+msgid "Delay between mail checks (minutes part)."
msgstr ""
#: data/mail-notification.schemas.in.h:3
-msgid "Delay between mail checks (minutes part)."
+msgid "Delay between mail checks (seconds part)."
msgstr ""
#: data/mail-notification.schemas.in.h:4
-msgid "Delay between mail checks (seconds part)."
+msgid "Height of preferences dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:5
-msgid "Display mail summary in tooltip"
+msgid "Mailboxes list"
msgstr ""
#: data/mail-notification.schemas.in.h:6
-msgid "Do not show the immediate notification error dialog"
+msgid "Minutes between mail checks"
msgstr ""
#: data/mail-notification.schemas.in.h:7
-msgid "Double-click action"
+msgid "New mail command"
msgstr ""
#: data/mail-notification.schemas.in.h:8
-msgid "Enable mail summary popup"
+#, fuzzy
+msgid "Run a command when new mail arrives"
msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
#: data/mail-notification.schemas.in.h:9
-msgid "Fingerprints of trusted X509 certificates"
+msgid "Run a command when the icon is clicked"
msgstr ""
#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
+msgid "Seconds between mail checks"
msgstr ""
#: data/mail-notification.schemas.in.h:11
-msgid "Height of edit toolbars dialog"
+#, fuzzy
+msgid "The command to run when new mail arrives."
msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
#: data/mail-notification.schemas.in.h:12
-msgid "Height of main window"
+msgid "The command to run when the icon is clicked."
msgstr ""
#: data/mail-notification.schemas.in.h:13
-msgid "Height of properties dialog"
+msgid "The height of the preferences dialog in pixels."
msgstr ""
#: data/mail-notification.schemas.in.h:14
-msgid "Mail read command"
+msgid "The list of mailboxes to monitor."
msgstr ""
#: data/mail-notification.schemas.in.h:15
-msgid "Mail reader command"
+msgid "The width of the preferences dialog in pixels."
msgstr ""
#: data/mail-notification.schemas.in.h:16
-msgid "Mail summary popup contents font"
+#, fuzzy
+msgid "Whether to run a command when new mail arrives or not."
msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
#: data/mail-notification.schemas.in.h:17
-msgid "Mail summary popup fonts aspect source"
+msgid "Whether to run a command when the icon is clicked or not."
msgstr ""
#: data/mail-notification.schemas.in.h:18
-msgid "Mail summary popup horizontal offset"
+msgid "Width of preferences dialog"
msgstr ""
-#: data/mail-notification.schemas.in.h:19
-msgid "Mail summary popup position"
+#: src/eggtrayicon.c:109
+msgid "Orientation"
msgstr ""
-#: data/mail-notification.schemas.in.h:20
-msgid "Mail summary popup title font"
+#: src/eggtrayicon.c:110
+msgid "The orientation of the tray."
msgstr ""
-#: data/mail-notification.schemas.in.h:21
-msgid "Mail summary popup vertical offset"
+#: src/mn-gmail-mailbox.c:165 src/mn-pop3-mailbox.c:177
+msgid "unable to parse URI"
msgstr ""
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
+#: src/mn-gmail-mailbox.c:261
+#, c-format
+msgid "logging into Gmail as user %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:23
-msgid "Minutes between mail checks"
+#: src/mn-gmail-mailbox.c:277 src/mn-gmail-mailbox.c:356
+#, c-format
+msgid "unable to transfer data: %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:24
-msgid "Minutes to wait before closing the mail summary popup"
+#: src/mn-gmail-mailbox.c:283
+#, c-format
+msgid "successfully logged into Gmail as user %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:25
-msgid "New mail command"
+#: src/mn-gmail-mailbox.c:288
+msgid "login failed"
msgstr ""
-#: data/mail-notification.schemas.in.h:26
-msgid "Only display recent mail in mail summary popup"
+#: src/mn-gmail-mailbox.c:341
+#, c-format
+msgid "searching for unread mail in %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:27
-#, fuzzy
-msgid "Run a command when all mail is read"
+#: src/mn-gmail-mailbox.c:363
+msgid "unable to parse Gmail data"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:28
-#, fuzzy
-msgid "Run a command when new mail arrives"
+#: src/mn-mail-icon.c:130
+msgid "You have no new mail"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:29
-msgid "Seconds between mail checks"
+#: src/mn-mailbox-properties-dialog.c:131
+msgid "Add a Mailbox"
msgstr ""
-#: data/mail-notification.schemas.in.h:30
-msgid "Seconds to wait before closing the mail summary popup"
+#: src/mn-mailbox-properties-dialog.c:285
+#, c-format
+msgid "%s Properties"
msgstr ""
-#: data/mail-notification.schemas.in.h:31
-msgid "Set a mail reader"
+#: src/mn-mailbox-properties-dialog.c:450
+msgid "Select a File or Folder"
msgstr ""
-#: data/mail-notification.schemas.in.h:32
-msgid ""
-"The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
+#: src/mn-mailbox.c:199
+msgid "URI"
msgstr ""
-#: data/mail-notification.schemas.in.h:33
-msgid ""
-"The amount of time to wait before closing the mail summary popup (minutes "
-"part)."
+#: src/mn-mailbox.c:200
+msgid "The mailbox URI"
msgstr ""
-#: data/mail-notification.schemas.in.h:34
-msgid ""
-"The amount of time to wait before closing the mail summary popup (seconds "
-"part)."
+#: src/mn-mailbox.c:206
+msgid "Name"
msgstr ""
-#: data/mail-notification.schemas.in.h:35
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
+#: src/mn-mailbox.c:207
+msgid "The mailbox human-readable name"
msgstr ""
-#: data/mail-notification.schemas.in.h:36
-#, fuzzy
-msgid "The command to run to launch the mail reader."
+#: src/mn-mailbox.c:213
+msgid "Automatic"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
-msgid "The command to run when all mail is read."
+#: src/mn-mailbox.c:214
+msgid "Whether the mailbox has to be manually checked or not"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:38
-#, fuzzy
-msgid "The command to run when new mail arrives."
+#: src/mn-mailbox.c:220
+msgid "Has new"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:39
-msgid "The custom font to use for the contents of the mail summary popup."
+#: src/mn-mailbox.c:221
+msgid "Whether the mailbox has new mail or not"
msgstr ""
-#: data/mail-notification.schemas.in.h:40
-msgid "The custom font to use for the title of the mail summary popup."
+#: src/mn-mailbox.c:227
+msgid "Error"
msgstr ""
-#: data/mail-notification.schemas.in.h:41
-msgid "The height of the edit toolbars dialog in pixels."
+#: src/mn-mailbox.c:228
+msgid "The mailbox error if any"
msgstr ""
-#: data/mail-notification.schemas.in.h:42
-msgid "The height of the main window in pixels."
+#: src/mn-mailbox.c:254
+#, c-format
+msgid "unable to cancel monitoring of %s: %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:43
-msgid "The height of the properties dialog in pixels."
+#: src/mn-mailbox.c:443
+msgid "does not exist"
msgstr ""
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
+#: src/mn-mailbox.c:460
+msgid "unknown format"
msgstr ""
-#: data/mail-notification.schemas.in.h:45
-msgid ""
-"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
-"certificate."
+#: src/mn-mailbox.c:553
+#, c-format
+msgid "unable to monitor %s: %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:46
+#: src/mn-mailbox.c:567
+#, c-format
msgid ""
-"The list of trusted X509 certificates, represented by their MD5 fingerprint."
-msgstr ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Preferences Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Preferences Dialog)."
+msgstr[0] ""
+msgstr[1] ""
-#: data/mail-notification.schemas.in.h:47
+#: src/mn-mailbox.c:578
+#, c-format
msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup."
-msgstr ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Preferences Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Preferences Dialog)."
+msgstr[0] ""
+msgstr[1] ""
-#: data/mail-notification.schemas.in.h:48
+#: src/mn-mailbox.c:589
+#, c-format
msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup."
-msgstr ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Preferences Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Preferences Dialog)."
+msgstr[0] ""
+msgstr[1] ""
-#: data/mail-notification.schemas.in.h:49
-msgid ""
-"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
-"\"bottom-left\" or \"bottom-right\"."
+#: src/mn-mailbox.c:603
+msgid "A monitoring error has occurred."
msgstr ""
-#: data/mail-notification.schemas.in.h:50
+#: src/mn-mailbox.c:604
+#, c-format
msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:51
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:52
-msgid "The width of the main window in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:53
-msgid "The width of the properties dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
-msgid "Trusted servers list"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:59
-msgid "Whether the status icon should blink on errors or not."
+"Mail Notification was unable to enable automatic notification for one or "
+"more mailboxes. %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:60
-msgid "Whether the statusbar should be visible or not."
+#: src/mn-mailboxes.c:133
+#, c-format
+msgid "%s has new mail"
msgstr ""
-#: data/mail-notification.schemas.in.h:61
-msgid "Whether the toolbars should be visible or not."
+#: src/mn-mailboxes.c:133
+#, c-format
+msgid "%s has no new mail"
msgstr ""
-#: data/mail-notification.schemas.in.h:62
-#, fuzzy
-msgid "Whether to automatically close the mail summary popup or not."
+#: src/mn-mailboxes.c:143
+#, c-format
+msgid "%s reported an error: %s"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:63
-msgid "Whether to display the mail summary in the status icon tooltip or not."
+#: src/mn-maildir-mailbox.c:226 src/mn-sylpheed-mailbox.c:209
+#, c-format
+msgid "error while reading folder: %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:64
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not."
+#: src/mn-main.c:49
+msgid "Compiled in handlers:\n"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:65
-msgid ""
-"Whether to hide previously displayed mail in the mail summary popup or not."
+#: src/mn-main.c:83
+msgid "Enable informational output"
msgstr ""
-#: data/mail-notification.schemas.in.h:66
-msgid ""
-"Whether to prevent the immediate notification error dialog from being "
-"displayed or not."
+#: src/mn-main.c:92
+msgid "List compiled-in handlers and exit"
msgstr ""
-#: data/mail-notification.schemas.in.h:67
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not."
+#: src/mn-main.c:124
+msgid "unable to initialize GnomeVFS"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:68
-#, fuzzy
-msgid "Whether to run a command when new mail arrives or not."
+#: src/mn-mbox-mailbox.c:339
+#, c-format
+msgid "unable to get mailbox information: %s"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:69
-#, fuzzy
-msgid "Whether to set a mail reader or not."
+#: src/mn-mbox-mailbox.c:364
+#, c-format
+msgid "unable to open mailbox: %s"
msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:70
-msgid "Width of edit toolbars dialog"
+#: src/mn-mbox-mailbox.c:401
+#, c-format
+msgid "error while reading mailbox: %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:71
-msgid "Width of main window"
+#: src/mn-mbox-mailbox.c:417
+#, c-format
+msgid "unable to close mailbox: %s"
msgstr ""
-#: data/mail-notification.schemas.in.h:72
-msgid "Width of properties dialog"
+#: src/mn-mh-mailbox.c:185
+#, c-format
+msgid "unable to open .mh_sequences: %s"
msgstr ""
-#: data/mail-notification.soundlist.in.h:2
-msgid "New Mail"
+#: src/mn-mh-mailbox.c:215
+#, c-format
+msgid "error while reading .mh_sequences: %s"
msgstr ""
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
+#: src/mn-mh-mailbox.c:231
+#, c-format
+msgid "unable to close .mh_sequences: %s"
msgstr ""
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
+#: src/mn-pending-mailbox.c:64
+msgid "detecting..."
msgstr ""
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
+#: src/mn-pop3-mailbox.c:202
+#, c-format
+msgid "connecting to POP3 server %s:%i"
msgstr ""
-#: src/eggtrayicon.c:109
-msgid "Orientation"
+#: src/mn-pop3-mailbox.c:222
+#, c-format
+msgid "successfully connected to %s:%i"
msgstr ""
-#: src/eggtrayicon.c:110
-msgid "The orientation of the tray."
+#: src/mn-pop3-mailbox.c:231
+msgid "unable to resolve hostname"
msgstr ""
-#: src/mn-about-dialog.gob:42
-msgid "A Mail Notification Icon"
+#: src/mn-pop3-mailbox.c:235
+msgid "unable to connect to server"
msgstr ""
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
-msgstr "Dan Korostelev <dan@ats.energo.ru>"
-
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
-msgid "<span style=\"italic\">autodetect</span>"
+#: src/mn-pop3-mailbox.c:239
+msgid "unknown error"
msgstr ""
-#: src/mn-authenticated-mailbox.gob:85
+#: src/mn-pop3-mailbox.c:270
#, c-format
-msgid ""
-"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
-"\n"
-"Please re-enter your password."
+msgid "unable to write to server: %s"
msgstr ""
-#: src/mn-authenticated-mailbox.gob:86
+#: src/mn-pop3-mailbox.c:329
#, c-format
-msgid "Enter your password for %s mailbox %s."
+msgid "invalid STAT reply \"%s\""
msgstr ""
-#: src/mn-authenticated-mailbox.gob:137
+#: src/mn-pop3-mailbox.c:367 src/mn-pop3-mailbox.c:378
#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
+msgid "invalid POP3 reply \"%s\""
msgstr ""
-#: src/mn-autodetect-mailbox-properties.gob:70
-msgid "_Location:"
+#: src/mn-pop3-mailbox.c:387
+msgid "connection unexpectedly closed"
msgstr ""
-#: src/mn-autodetect-mailbox-properties.gob:76
-msgid "_Browse..."
+#: src/mn-pop3-mailbox.c:393
+#, c-format
+msgid "unable to read from server: %s"
msgstr ""
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
+#: src/mn-preferences.c:195
+msgid "Mailbox"
msgstr ""
-#: src/mn-autodetect-mailbox-properties.gob:123
-msgid "Select a File or Folder"
+#: src/mn-preferences.c:209
+msgid "Format"
msgstr ""
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
+#: src/mn-preferences.c:361
+msgid "No mailbox selected."
msgstr ""
-#: src/mn-client-session.c:220
+#: src/mn-preferences.c:366
#, c-format
-msgid "resolving %s"
-msgstr ""
+msgid "%i mailbox selected."
+msgid_plural "%i mailboxes selected."
+msgstr[0] ""
+msgstr[1] ""
-#: src/mn-client-session.c:230
-#, c-format
-msgid "unable to resolve %s: %s"
+#: src/mn-preferences.c:423
+msgid "Unable to add mailbox."
msgstr ""
-#: src/mn-client-session.c:267
-#, c-format
-msgid "%s: unsupported address family"
+#: src/mn-preferences.c:423
+msgid "The mailbox is already in the list."
msgstr ""
-#: src/mn-client-session.c:274
-#, c-format
-msgid "%s: unable to create socket: %s"
+#: src/mn-ui.c:87
+msgid "A command error has occurred."
msgstr ""
-#: src/mn-client-session.c:278
+#: src/mn-ui.c:88
#, c-format
-msgid "connecting to %s (%s) port %i"
+msgid "Unable to execute clicked command: %s."
msgstr ""
-#: src/mn-client-session.c:281
-#, c-format
-msgid "unable to connect: %s"
-msgstr ""
+#: src/mn-ui.c:179
+msgid "The following mailbox has new mail:\n"
+msgid_plural "The following mailboxes have new mail:\n"
+msgstr[0] ""
+msgstr[1] ""
-#: src/mn-client-session.c:286
-msgid "connected successfully"
+#: src/mn-ui.c:186
+msgid "You have no new mail."
msgstr ""
-#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
-#, c-format
-msgid "unable to connect to %s"
-msgstr ""
+#: src/mn-ui.c:190
+msgid "The following mailbox reported an error:\n"
+msgid_plural "The following mailboxes reported an error:\n"
+msgstr[0] ""
+msgstr[1] ""
-#: src/mn-client-session.c:308
-#, c-format
-msgid "unable to initialize the OpenSSL library: %s"
-msgstr ""
+#: src/mn-ui.c:195
+msgid "The following mailbox is unsupported:\n"
+msgid_plural "The following mailboxes are unsupported:\n"
+msgstr[0] ""
+msgstr[1] ""
-#: src/mn-client-session.c:316
-#, c-format
-msgid "unable to create a SSL/TLS object: %s"
+#: src/mn-ui.c:253
+msgid "A Mail Notification Icon"
msgstr ""
-#: src/mn-client-session.c:322
-#, c-format
-msgid "unable to set the SSL/TLS file descriptor: %s"
-msgstr ""
+#: src/mn-ui.c:256
+msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+msgstr "Dan Korostelev <dan@ats.energo.ru>"
-#: src/mn-client-session.c:328
-#, c-format
-msgid "unable to perform the SSL/TLS handshake: %s"
+#: src/mn-unsupported-mailbox.c:98
+msgid "unsupported"
msgstr ""
-#: src/mn-client-session.c:334
-msgid "untrusted server"
+#: src/mn-unsupported-mailbox.c:103
+msgid "Reason"
msgstr ""
-#: src/mn-client-session.c:338
-#, c-format
-msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
+#: src/mn-unsupported-mailbox.c:104
+msgid "The reason why the mailbox is unsupported"
msgstr ""
-#: src/mn-client-session.c:385
+#: src/mn-util.c:110
#, c-format
-msgid "%s, fingerprint: %s"
-msgstr ""
-
-#: src/mn-client-session.c:414
-msgid "missing certificate"
+msgid "error loading image: %s"
msgstr ""
-#: src/mn-client-session.c:440
+#: src/mn-util.c:148
#, c-format
-msgid ""
-"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
-"someone is intercepting your communication to obtain your confidential "
-"information.\n"
-"\n"
-"You should only connect to the server if you are certain you are connected "
-"to \"%s\". If you choose to connect to the server, this message will not be "
-"shown again."
+msgid "widget %s not found in interface %s"
msgstr ""
-#: src/mn-client-session.c:457
-msgid "Connect to untrusted server?"
+#: src/mn-util.c:255
+msgid "received an invalid URI list"
msgstr ""
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
+#: src/mn-util.c:291
+msgid "received an invalid Mozilla URL"
msgstr ""
-#: src/mn-client-session.c:518
-#, c-format
-msgid "response \"%s\" is not valid in current context"
+#: src/mn-util.c:383
+msgid "Unable to display help."
msgstr ""
-#: src/mn-client-session.c:544
-#, c-format
-msgid "unable to parse response \"%s\""
+#: ui/mailbox-properties.glade.h:1 ui/preferences.glade.h:1
+msgid " "
msgstr ""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
-#, c-format
-msgid "unable to read from server: %s"
+#: ui/mailbox-properties.glade.h:2 ui/preferences.glade.h:2
+msgid "*"
msgstr ""
-#: src/mn-client-session.c:597
-msgid "unable to read from server: EOF"
+#: ui/mailbox-properties.glade.h:3
+msgid "P_assword:"
msgstr ""
-#: src/mn-client-session.c:609
-#, c-format
-msgid "unable to decode data using SASL: %s"
+#: ui/mailbox-properties.glade.h:4
+msgid "P_ort:"
msgstr ""
-#: src/mn-client-session.c:743
-#, c-format
-msgid "unable to encode data using SASL: %s"
+#: ui/mailbox-properties.glade.h:5
+msgid "The URI of the file or folder"
msgstr ""
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
-#, c-format
-msgid "unable to write to server: %s"
+#: ui/mailbox-properties.glade.h:6
+msgid "The hostname or IP address of the POP3 server"
msgstr ""
-#: src/mn-client-session.c:779
-msgid "unable to write to server: EOF"
+#: ui/mailbox-properties.glade.h:7
+msgid "The port number of the POP3 server"
msgstr ""
-#: src/mn-client-session.c:811
-#, c-format
-msgid "unable to encode Base64: %s"
+#: ui/mailbox-properties.glade.h:8
+msgid "Us_ername:"
msgstr ""
-#: src/mn-client-session.c:922
-#, c-format
-msgid "unable to initialize the SASL library: %s"
+#: ui/mailbox-properties.glade.h:9
+msgid "Your Gmail password"
msgstr ""
-#: src/mn-client-session.c:931
-#, c-format
-msgid "unable to retrieve local address of socket: %s"
+#: ui/mailbox-properties.glade.h:10
+msgid "Your Gmail username"
msgstr ""
-#: src/mn-client-session.c:937
-#, c-format
-msgid "unable to retrieve remote address of socket: %s"
+#: ui/mailbox-properties.glade.h:11
+msgid "Your password on the POP3 server"
msgstr ""
-#: src/mn-client-session.c:971
-#, c-format
-msgid "unable to set SASL security properties: %s"
+#: ui/mailbox-properties.glade.h:12
+msgid "Your username on the POP3 server"
msgstr ""
-#: src/mn-client-session.c:995
-msgid ""
-"unable to start SASL authentication: SASL asked for something we did not know"
+#: ui/mailbox-properties.glade.h:13
+msgid "_Browse..."
msgstr ""
-#: src/mn-client-session.c:1014
-#, c-format
-msgid "unable to start SASL authentication: %s"
+#: ui/mailbox-properties.glade.h:14
+msgid "_File or folder"
msgstr ""
-#: src/mn-client-session.c:1018
-#, c-format
-msgid "unable to create a SASL connection: %s"
+#: ui/mailbox-properties.glade.h:15
+msgid "_Gmail mailbox"
msgstr ""
-#: src/mn-client-session.c:1055
-msgid "SASL asked for something we did not know, aborting SASL authentication"
+#: ui/mailbox-properties.glade.h:16
+msgid "_Hostname:"
msgstr ""
-#: src/mn-client-session.c:1072
-#, c-format
-msgid "%s, aborting SASL authentication"
+#: ui/mailbox-properties.glade.h:17
+msgid "_Location:"
msgstr ""
-#. compliance error
-#: src/mn-client-session.c:1077
-#, c-format
-msgid "unable to decode Base64 input from server: %s"
+#: ui/mailbox-properties.glade.h:18
+msgid "_POP3 mailbox"
msgstr ""
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
+#: ui/menu.glade.h:1
+msgid "Show help"
msgstr ""
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
+#: ui/menu.glade.h:2
+msgid "Update the icon"
msgstr ""
-#: src/mn-client-session.c:1119
-#, c-format
-msgid "a SASL security layer of strength factor %i is now active"
+#: ui/menu.glade.h:3
+msgid "_Help"
msgstr ""
-#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
-#, c-format
-msgid "unable to get SASL_MAXOUTBUF property: %s"
+#: ui/menu.glade.h:4
+msgid "_Update"
msgstr ""
-#: src/mn-client-session.c:1130
-#, c-format
-msgid "warning: unable to get SASL_SSF property: %s"
+#: ui/preferences.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
msgstr ""
-#: src/mn-conf.c:238
-msgid "A directory creation error has occurred"
+#: ui/preferences.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
msgstr ""
-#: src/mn-conf.c:239
-#, c-format
-msgid "Unable to create directory \"%s\": %s."
+#: ui/preferences.glade.h:5
+msgid "<span weight=\"bold\">Mailboxes</span>"
msgstr ""
-#: src/mn-conf.c:313
-#, c-format
-msgid "recursively unsetting %s"
+#: ui/preferences.glade.h:6
+msgid "Mail Notification Preferences"
msgstr ""
-#: src/mn-conf.c:317
-msgid "syncing the GConf database"
+#: ui/preferences.glade.h:7
+msgid "The amount of time to wait between mail checks"
msgstr ""
-#: src/mn-conf.c:320
-msgid "completed"
+#: ui/preferences.glade.h:8
+msgid "The command to run when new mail arrives"
msgstr ""
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
+#: ui/preferences.glade.h:9
+msgid "The command to run when the icon is clicked"
msgstr ""
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
+#: ui/preferences.glade.h:10
+msgid "When _new mail arrives:"
msgstr ""
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
+#: ui/preferences.glade.h:11
+msgid "When click_ed:"
msgstr ""
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
+#: ui/preferences.glade.h:12
+msgid "Whether to run a command when new mail arrives or not"
msgstr ""
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
+#: ui/preferences.glade.h:13
+msgid "Whether to run a command when the icon is clicked or not"
msgstr ""
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
+#: ui/preferences.glade.h:14
+msgid "_Add"
msgstr ""
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
+#: ui/preferences.glade.h:15
+msgid "_Delay between mail checks:"
msgstr ""
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
+#: ui/preferences.glade.h:16
+msgid "_Remove"
msgstr ""
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
+#: ui/preferences.glade.h:17
+msgid "minutes"
msgstr ""
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:891
-#, c-format
-msgid "unable to open calendar: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:899
-#, c-format
-msgid "unable to set calendar time: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:49
-#, c-format
-msgid "unable to read %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:51
-#, c-format
-msgid "unable to write to %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:53
-#, c-format
-msgid "unable to seek in %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:55
-#, c-format
-msgid "unable to tell position of %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:57
-#, c-format
-msgid "unable to close %s: %s"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:95
-msgid "Mailbox:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:99
-msgid "in_box"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:110
-msgid "oth_er:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:236
-msgid "server did not send capabilities"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:408
-msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:409
-msgid "unable to login"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:542
-msgid "server did not send search results"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:617
-msgid "server did not send all the messages we requested"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:671
-msgid "unable to fetch message"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
-msgid "unknown server error"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
-msgid "server does not support in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
-msgid ""
-"a SASL authentication mechanism was selected but SASL support has not been "
-"compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
-#, c-format
-msgid "unknown authentication mechanism \"%s\""
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1160
-msgid "falling back to IMAP LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
-msgid "authentication failed"
-msgstr ""
-
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
-
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-msgid "_Mail Reader"
-msgstr ""
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
-msgid "_Update"
-msgstr ""
-
-#: src/mn-mail-icon.gob:99
-msgid "R_emove From Notification Area"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:325
-#, c-format
-msgid "%s Properties"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
-msgid "Mailbox"
-msgstr ""
-
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr ""
-
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr ""
-
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr ""
-
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr ""
-
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr ""
-
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr ""
-
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr ""
-
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr ""
-
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr ""
-
-#: src/mn-mailbox.gob:421
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:432
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:443
-#, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr ""
-
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-
-#: src/mn-mailboxes.gob:260
-#, c-format
-msgid "%s is unsupported: %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:290
-#, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailboxes.gob:307
-#, c-format
-msgid "%s reported an error: %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:112
-#, c-format
-msgid "unable to open folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:141
-#, c-format
-msgid "unable to close folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:144
-#, c-format
-msgid "error while reading folder \"new\": %s"
-msgstr ""
-
-#. Toplevel
-#: src/mn-main-window.c:92
-msgid "_Mail"
-msgstr ""
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-msgid "Launch the mail reader"
-msgstr ""
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr ""
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-#, fuzzy
-msgid "Quit Mail Notification"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-msgid "_Contents"
-msgstr ""
-
-#: src/mn-main-window.c:165
-msgid "Display help"
-msgstr ""
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-msgid "Only display the toolbars icons"
-msgstr ""
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, c-format
-msgid "unable to load menus.xml: %s"
-msgstr ""
-
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr ""
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr ""
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr ""
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr ""
-
-#: src/mn-main.c:176
-msgid "Enable informational output"
-msgstr ""
-
-#: src/mn-main.c:185
-msgid "List the compiled-in features"
-msgstr ""
-
-#: src/mn-main.c:194
-msgid "Display the main window"
-msgstr ""
-
-#: src/mn-main.c:203
-msgid "Display the properties dialog"
-msgstr ""
-
-#: src/mn-main.c:212
-msgid "Display the about dialog"
-msgstr ""
-
-#: src/mn-main.c:221
-msgid "Close the mail summary popup"
-msgstr ""
-
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr ""
-
-#: src/mn-main.c:248
-msgid "Unset obsolete GConf configuration"
-msgstr ""
-
-#.
-#. * We can't use mn_error_dialog() because gtk_init() has not been
-#. * called yet.
-#.
-#: src/mn-main.c:284
-msgid "multi-threading is not available"
-msgstr ""
-
-#: src/mn-main.c:338
-msgid ""
-"Bonobo could not locate the automation object. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-main.c:344
-#, fuzzy
-msgid "quitting Mail Notification"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main.c:348
-#, fuzzy
-msgid "Mail Notification is not running"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main.c:355
-msgid "Unable to initialize the GnomeVFS library."
-msgstr ""
-
-#: src/mn-main.c:391
-msgid "updating the mail status"
-msgstr ""
-
-#: src/mn-main.c:409
-#, fuzzy
-msgid "Mail Notification is already running"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main.c:417
-msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-mbox-mailbox.gob:184
-#, c-format
-msgid "unable to open mailbox: %s"
-msgstr ""
-
-#: src/mn-message-mime.c:105
-msgid "unable to parse MIME message"
-msgstr ""
-
-#: src/mn-message-view.gob:81
-msgid "You have no new mail."
-msgstr ""
-
-#: src/mn-message-view.gob:321
-msgid "Unreadable message"
-msgstr ""
-
-#: src/mn-message-view.gob:329
-msgid "From"
-msgstr ""
-
-#: src/mn-message-view.gob:337
-msgid "Subject"
-msgstr ""
-
-#: src/mn-message-view.gob:348
-msgid "Sent"
-msgstr ""
-
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr ""
-
-#: src/mn-message.gob:126
-#, c-format
-msgid "%i second ago"
-msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:130
-#, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:135
-#, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:140
-#, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:145
-#, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-mh-mailbox.gob:157
-#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:105
-msgid "sta_ndard"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:115
-msgid "_in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:125
-msgid "SSL/TLS on sepa_rate port"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:266
-msgid "invalid arguments for the LOGIN-DELAY capability"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:569
-msgid "unknown error"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:656
-#, c-format
-msgid "honouring LOGIN-DELAY, sleeping for %i second"
-msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-pop3-mailbox.gob:849
-msgid "server does not support APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:884
-msgid "falling back to APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:889
-msgid "falling back to USER/PASS authentication"
-msgstr ""
-
-#: src/mn-properties-dialog.c:218
-msgid "top left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:219
-msgid "top right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:220
-msgid "bottom left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:221
-msgid "bottom right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:323
-msgid "No mailbox selected."
-msgstr ""
-
-#: src/mn-properties-dialog.c:328
-#, c-format
-msgid "%i mailbox selected."
-msgid_plural "%i mailboxes selected."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:96
-msgid "You have new mail."
-msgstr ""
-
-#: src/mn-shell.gob:361
-msgid "Mailboxes Having New Mail"
-msgstr ""
-
-#: src/mn-shell.gob:382
-msgid "Errors"
-msgstr ""
-
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr ""
-
-#: src/mn-shell.gob:418
-msgid "Mail Summary"
-msgstr ""
-
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr ""
-
-#: src/mn-ssl.c:79
-msgid "unknown SSL/TLS error"
-msgstr ""
-
-#: src/mn-stock.c:28
-msgid "Select _All"
-msgstr ""
-
-#: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:113
-#, c-format
-msgid "unable to open folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:147
-#, c-format
-msgid "unable to close folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:150
-#, c-format
-msgid "error while reading folder: %s"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:57
-#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr ""
-
-#: src/mn-util.c:245
-#, c-format
-msgid "error loading image: %s"
-msgstr ""
-
-#: src/mn-util.c:276
-#, c-format
-msgid "widget \"%s\" not found in interface \"%s\""
-msgstr ""
-
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr ""
-
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr ""
-
-#: src/mn-util.c:519
-msgid "Unable to display help"
-msgstr ""
-
-#: src/mn-util.c:533
-#, c-format
-msgid "Unable to create a thread: %s."
-msgstr ""
-
-#: src/mn-util.c:626
-msgid "_Do not show this message again"
-msgstr ""
-
-#: src/mn-util.c:710
-msgid "A fatal error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:725
-#, c-format
-msgid "unable to get current time: %s"
-msgstr ""
-
-#: src/mn-util.c:787
-#, c-format
-msgid "invalid signal specification \"%s\""
-msgstr ""
-
-#: src/mn-util.c:826
-msgid "A command error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:827
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr ""
-
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
-msgstr ""
-
-#: ui/properties.glade.h:1
-msgid "<span weight=\"bold\">Commands</span>"
-msgstr ""
-
-#: ui/properties.glade.h:2
-msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr ""
-
-#: ui/properties.glade.h:3
-msgid "<span weight=\"bold\">Fonts</span>"
-msgstr ""
-
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr ""
-
-#: ui/properties.glade.h:5
-msgid "<span weight=\"bold\">Mailbox List</span>"
-msgstr ""
-
-#: ui/properties.glade.h:6
-msgid "<span weight=\"bold\">Position</span>"
-msgstr ""
-
-#: ui/properties.glade.h:7
-msgid "Co_ntents:"
-msgstr ""
-
-#: ui/properties.glade.h:8
-msgid "Dis_play mail summary in tooltip"
-msgstr ""
-
-#: ui/properties.glade.h:9
-msgid "General"
-msgstr ""
-
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr ""
-
-#: ui/properties.glade.h:11
-#, fuzzy
-msgid "Mail Notification Properties"
-msgstr "Иконка входящих сообщений"
-
-#: ui/properties.glade.h:12
-msgid "Mail Summary Popup"
-msgstr ""
-
-#: ui/properties.glade.h:13
-msgid "Mailboxes"
-msgstr ""
-
-#: ui/properties.glade.h:14
-msgid "Only display _recent mail"
-msgstr ""
-
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr ""
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr ""
-
-#: ui/properties.glade.h:18
-#, fuzzy
-msgid "The command to run to launch the mail reader"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:19
-#, fuzzy
-msgid "The command to run when all mail is read"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr ""
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr ""
-
-#: ui/properties.glade.h:25
-msgid "When _new mail arrives:"
-msgstr ""
-
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr ""
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-
-#: ui/properties.glade.h:29
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr ""
-
-#: ui/properties.glade.h:31
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-
-#: ui/properties.glade.h:33
-#, fuzzy
-msgid "Whether to set a mail reader or not"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-
-#: ui/properties.glade.h:35
-msgid "_Automatically close after:"
-msgstr ""
-
-#: ui/properties.glade.h:36
-msgid "_Blink on errors"
-msgstr ""
-
-#: ui/properties.glade.h:37
-msgid "_Delay between mail checks:"
-msgstr ""
-
-#: ui/properties.glade.h:38
-msgid "_Display the main window"
-msgstr ""
-
-#: ui/properties.glade.h:39
-msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:40
-msgid "_Launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:41
-msgid "_Mail reader:"
-msgstr ""
-
-#: ui/properties.glade.h:42
-#, fuzzy
-msgid "_Start Mail Notification on GNOME login"
-msgstr "Иконка входящих сообщений"
-
-#: ui/properties.glade.h:43
-msgid "_Title:"
-msgstr ""
-
-#: ui/properties.glade.h:44
-msgid "_Update the mail status"
-msgstr ""
-
-#: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
-
-#: ui/properties.glade.h:46
-msgid "_Vertical offset:"
-msgstr ""
-
-#: ui/properties.glade.h:47
-msgid "minutes"
-msgstr ""
-
-#: ui/properties.glade.h:48
-msgid "pixels"
-msgstr ""
-
-#: ui/properties.glade.h:49
+#: ui/preferences.glade.h:18
msgid "seconds"
msgstr ""
-
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr ""
-
-#: ui/welcome.glade.h:1
-msgid ""
-"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
-"\n"
-"Mail Notification has been loaded successfully.\n"
-"\n"
-"Since this is the first time you run Mail Notification, you need to "
-"configure it.\n"
-"\n"
-"Note: this message will not be shown anymore. To configure Mail Notification "
-"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
-"span> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-
-#: ui/welcome.glade.h:8
-#, fuzzy
-msgid "_Configure Mail Notification"
-msgstr "Иконка входящих сообщений"
-
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr ""
diff --git a/po/sr.gmo b/po/sr.gmo
Binary files differ.
diff --git a/po/sr.po b/po/sr.po
@@ -11,167 +11,175 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-01 02:17+0100\n"
+"POT-Creation-Date: 2005-07-31 04:17+0200\n"
+"PO-Revision-Date: 2005-07-31 11:13+0100\n"
"Last-Translator: Филип Милетић <filmil@gmail.com>\n"
"Language-Team: Serbian (sr) <gnu@prevod.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
msgid "Mail Notification automation"
msgstr "Дојава приспећа поште"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
msgid "Mail Notification automation factory"
-msgstr "Фабрика ѕа дојаву приспећа поште"
+msgstr "Фабрика за дојаву приспећа поште"
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "Управљање Еволуцијиним дрветом директоријума"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "Фабрика за управљач Еволуцијиним дрветом директоријума"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "Сучеље за Дојаву поште и Еволуцију"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "Фабрика за Дојаву поште и Еволуцију"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
msgid "Configure Mail Notification"
msgstr "Подеси дојаву приспећа поште"
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
msgid "Mail Notification"
msgstr "Дојава поште"
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
msgid "Get notified when new mail arrives"
msgstr "Обавести када стигне нова пошта"
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
msgid "Automatically close the mail summary popup"
msgstr "Аутоматски затвори прозор са сажетком порука"
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
msgid "Blink on errors"
msgstr "Трепери ако дође до грешке"
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
msgid "Delay between mail checks (minutes part)."
msgstr "Размак између две провере (минути)"
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
msgid "Delay between mail checks (seconds part)."
msgstr "Размак између две провере (секунде)."
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
msgid "Display mail summary in tooltip"
msgstr "Прикажи сажетат порука у облачићу"
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
msgid "Do not show the immediate notification error dialog"
msgstr "Не показуј прозор са обавештењем о грешкама"
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
msgid "Double-click action"
msgstr "Изврши на двоструки клик"
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
msgid "Enable mail summary popup"
msgstr "Дозволи приказ сажетка порука"
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
msgid "Fingerprints of trusted X509 certificates"
msgstr "Отисци проверених X509 сертификата"
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "Већ је покренут"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
msgid "Height of edit toolbars dialog"
msgstr "Висина прозора за уређивање алатних трака"
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
msgid "Height of main window"
msgstr "Висина главног прозора"
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
msgid "Height of properties dialog"
msgstr "Висина прозора са поставкама"
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
msgid "Mail read command"
msgstr "Команда за читање поште"
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
msgid "Mail reader command"
msgstr "Команда за читање поште"
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
msgid "Mail summary popup contents font"
msgstr "Писмо које се користи за садржај прозора са сажетком порука"
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
msgid "Mail summary popup fonts aspect source"
msgstr "Извор за аспект за писмо у прозору за сажетак (???)"
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
msgid "Mail summary popup horizontal offset"
msgstr "Померај хоризонталних тачака за прозор са сажетком порука"
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
msgid "Mail summary popup position"
msgstr "Број хоризонталних тачака за прозор са сажетком порука"
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
msgid "Mail summary popup title font"
msgstr "Писмо које се користи за наслов прозора са сажетком порука"
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
msgid "Mail summary popup vertical offset"
msgstr "Померај вертикалних тачака ѕа прозор са сажетком порука"
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Списак сандучића"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
msgid "Minutes between mail checks"
msgstr "Минута између две провере"
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
msgid "Minutes to wait before closing the mail summary popup"
msgstr ""
"Број минута који треба да протекне пре затварања прозора са сажетком порука"
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
msgid "New mail command"
msgstr "Изврши када пошта стигне"
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
msgid "Only display recent mail in mail summary popup"
msgstr "Прикажи само скоро приспеле поруке у сажетку"
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
msgid "Run a command when all mail is read"
msgstr "Покрени команду када је сва пошта прочитана"
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
msgid "Run a command when new mail arrives"
msgstr "Покрени команду када стигне нова пошта"
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
msgid "Seconds between mail checks"
msgstr "Секунди између две провере"
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Број секунди који треба да протекне пре затварања сажетка порука"
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
msgid "Set a mail reader"
msgstr "Изаберите читач поште"
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
msgid ""
"The action to perform when the icon is double-clicked. Must be \"display-"
"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
@@ -180,75 +188,71 @@ msgstr ""
"избори су: ?главни-прозор?, ?покрени-читач-поште? или ?ажурирај-статус-"
"поште?."
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr "Пауза пре затварања прозора са сажетком порука (минути)."
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr "Пауза пре затварања прозора са сажетком порука (секунде)."
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
msgid ""
"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
"\"custom\"."
msgstr "Извор за подешавања писма. Може бити: ?тема? или ?посебан?."
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
msgid "The command to run to launch the mail reader."
msgstr "Команда којом се покреће читач поште"
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
msgid "The command to run when all mail is read."
msgstr "Команда коју треба покренути када је сва пошта прочитана."
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
msgid "The command to run when new mail arrives."
msgstr "Покрени ову команду када стигне нова пошта."
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
msgid "The custom font to use for the contents of the mail summary popup."
msgstr ""
"Посебно писмо које се користи за испис садржаја прозора са сажетком порука."
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
msgid "The custom font to use for the title of the mail summary popup."
msgstr ""
"Посебно писмо које се користи за испис наслова прозора са сажетком порука."
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
msgid "The height of the edit toolbars dialog in pixels."
msgstr "Висина прозора за уређивање статусних трака, изражена у тачкама."
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
msgid "The height of the main window in pixels."
msgstr "Висина главног прозора изражена у тачкама."
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
msgid "The height of the properties dialog in pixels."
msgstr "Висина прозора са поставкама изражена у тачкама."
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "Списак сандучића који се прате."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
"Списак проверених SSL/TLS сервера (рачунар:порт) који немају X509 сертификат."
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr "Списак проверених X509 сертификата, представљених MD5 отиском."
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -256,7 +260,7 @@ msgstr ""
"Број тачака које треба оставити између леве, одн. десне стране екрана и "
"прозора са сажетком порука."
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -264,7 +268,7 @@ msgstr ""
"Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
"сажетком порука."
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -272,7 +276,7 @@ msgstr ""
"Положај прозора са сажетком порука. Може бити: ?горе-лево?, ?горе-десно?, ?"
"доле-лево? или ?доле-десно?."
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
msgid ""
"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
"\"both\" or \"both-horiz\"."
@@ -280,273 +284,264 @@ msgstr ""
"Стил алатних трака. Може бити: ?подразумеван?, ?слике?, ?текст?, ?оба?, ?оба-"
"водоравно?."
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
msgid "The width of the edit toolbars dialog in pixels."
msgstr "Ширина прозора за уређивање статусних трака, изражена у тачкама."
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
msgid "The width of the main window in pixels."
msgstr "Ширина прозора главног прозора изражена у тачкама."
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
msgid "The width of the properties dialog in pixels."
msgstr "Ширина прозора са поставкама изражена у тачкама."
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
msgid "Toolbars style"
msgstr "Стил алатне траке"
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
msgid "Trusted servers list"
msgstr "Списак проверених сервера"
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
msgid "View statusbar"
msgstr "Прикажи статусну траку"
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
msgid "View toolbars"
msgstr "Прикажи алатну траку"
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr "Да ли је програм покретан пре или није."
-
-#: data/mail-notification.schemas.in.h:59
+#: ../data/mail-notification.schemas.in.h:55
msgid "Whether the status icon should blink on errors or not."
msgstr "Да ли сличица треба да трепери ако дође до грешке или не."
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
msgid "Whether the statusbar should be visible or not."
msgstr "Да ли статусна линија треба да се види или не."
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
msgid "Whether the toolbars should be visible or not."
msgstr "Да ли алатне траке треба да се виде или не"
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Да ли треба или не треба аутоматски затворити прозор са сажетком поште."
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
msgid "Whether to display the mail summary in the status icon tooltip or not."
msgstr ""
"Да ли треба приказати сажетак порука у облачићу статусне сличице или не."
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr "Да ли треба приказати сажетак порука када стигне нова пошта."
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
msgid ""
"Whether to hide previously displayed mail in the mail summary popup or not."
msgstr ""
"Да ли из сажетка треба уклонити поруке које су се у њему већ пре појавиле."
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr "Да ли треба или не треба спречити појаву прозора са описом грешака."
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Да ли треба или не треба покренути неку команду када је сва пошта прочитана."
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
msgid "Whether to run a command when new mail arrives or not."
msgstr "Да ли треба покренути неку команду када стигне нова пошта."
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
msgid "Whether to set a mail reader or not."
msgstr "Да ли треба поставити читач поште или не."
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
msgid "Width of edit toolbars dialog"
msgstr "Ширина прозора за уређивање статусних трака"
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
msgid "Width of main window"
msgstr "Ширина главног прозора"
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
msgid "Width of properties dialog"
msgstr "Ширина прозора са поставкама"
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
msgid "New Mail"
msgstr "Нова пошта"
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
msgid "_Remove Toolbar"
msgstr "_Уклони алатну траку"
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
msgid "Separator"
msgstr "Граничник"
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Превуците ставку на алатну траку како бисте је додали, или са алатне траке у "
-"табелу, како бисте је уклонили."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
msgid "Orientation"
msgstr "Оријентација"
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
msgid "The orientation of the tray."
msgstr "Оријентација обавештајне зоне."
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
msgid "A Mail Notification Icon"
msgstr "Сличица за дојаву приспећа поште"
-# The email of the translator goes here
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
msgstr "Филип Милетић <filmil@gmail.com>"
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "није могуће отворити везу"
+
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
msgid "<span style=\"italic\">autodetect</span>"
msgstr "<span style=\"italic\">сам пронађи</span>"
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "_Кор.име:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Лозинка:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
#, c-format
msgid ""
"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
"\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
msgstr ""
"Није могуће пријавити се за читање %s сандучета %s, највероватније зато што "
"унета лозинка није исправна.\n"
"\n"
"Молим унесите поново лозинку."
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
#, c-format
-msgid "Enter your password for %s mailbox %s."
+msgid "Enter your credentials for %s mailbox %s."
msgstr "Унесите лозинку за %s сандуче %s."
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Дојава поште захтева да упишете "
-"лозинку</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Потребна је пријава"
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Место"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:103
msgid "_Location:"
msgstr "_Место:"
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
msgid "_Browse..."
msgstr "_Прегледај..."
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "URI ознака поштанског сандучега"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
msgid "Select a File or Folder"
msgstr "Изаберите датотеку или директоријум"
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Да ли слика трепери или не"
-
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
#, c-format
msgid "resolving %s"
msgstr "проналазим %s"
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
#, c-format
msgid "unable to resolve %s: %s"
msgstr "Није могуће пронаћи %s: %s"
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
#, c-format
msgid "%s: unsupported address family"
msgstr "%s: ова врста адресе није подржана"
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
#, c-format
msgid "%s: unable to create socket: %s"
msgstr "%s: није могуће направити утичницу: %s"
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
#, c-format
msgid "connecting to %s (%s) port %i"
msgstr "повезујем се са %s (%s) порт %i"
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
#, c-format
msgid "unable to connect: %s"
msgstr "није могуће повезати се са: %s"
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
msgid "connected successfully"
msgstr "повезивање је успело"
#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
#, c-format
msgid "unable to connect to %s"
msgstr "није могуће повезати се са %s"
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
#, c-format
msgid "unable to initialize the OpenSSL library: %s"
msgstr "није могуће покренути OpenSSL библиотеку: %s"
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
#, c-format
msgid "unable to create a SSL/TLS object: %s"
msgstr "није могуће направити SSL/TLS објекат: %s"
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
#, c-format
msgid "unable to set the SSL/TLS file descriptor: %s"
msgstr "није могуће поставити SSL/TLS опис за датотеку: %s"
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
#, c-format
msgid "unable to perform the SSL/TLS handshake: %s"
msgstr "није могуће обавити SSL/TLS контакт: %s"
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
msgid "untrusted server"
msgstr "непроверен сервер"
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
#, c-format
msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
msgstr "SSL/TLS слој је покренут (%s, %s %i-бит)"
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
#, c-format
msgid "%s, fingerprint: %s"
msgstr "%s, отисак: %s"
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
msgid "missing certificate"
msgstr "недостаје сертификат"
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
#, c-format
msgid ""
"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -565,333 +560,313 @@ msgstr ""
"са \"%s\". Ако одлучите да се повежете на сервер, ова порука неће поново "
"бити приказана."
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
msgid "Connect to untrusted server?"
msgstr "Да ли да се повежем на непроверени сервер?"
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "_Повежи се"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
#, c-format
msgid "response \"%s\" is not valid in current context"
msgstr "одговор \"%s\" није исправан у тренутно важећем контексту"
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
#, c-format
msgid "unable to parse response \"%s\""
msgstr "није могуће обрадити одговор \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
#, c-format
msgid "unable to read from server: %s"
msgstr "Није могуће читање са сервера: %s"
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
msgid "unable to read from server: EOF"
msgstr "Није могуће читање са сервера: EOF"
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "Не могу се декодовати подаци путем SASL: %s"
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "није могуће кодирати податке уз помоћ SASL: %s"
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
#, c-format
msgid "unable to write to server: %s"
msgstr "није могућ упис на сервер: %s"
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
msgid "unable to write to server: EOF"
msgstr "није могућ упис на сервер: EOF"
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
#, c-format
msgid "unable to encode Base64: %s"
msgstr "није могуће кодирати Base64: %s"
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "не може се покренути SASL библиотека: %s"
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "не може да се добави локална адреса утичнице: %s"
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "не може да се добави удаљена адреса утичнице: %s"
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
#, c-format
msgid "unable to set SASL security properties: %s"
msgstr "није могуће поставити SASL сигурносне поставке: %s"
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr "не може се покренути SASL пријава: SASL тражи податке које немамо"
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "не може се покренути SASL пријава: %s"
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "није могуће успоставити SASL везу: %s"
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr "SASL је тражио нама непознате податке, обустављам SASL пријаву"
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, обустављам SASL пријаву"
#. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "није могуће декодовати Base64 улаз са сервера: %s"
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-"сервер је започео SASL разговор, али одговор од клијента стигао пре тога"
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-"сервер није послао SASL разговор, али није било ни одговора од клијента."
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "SASL сигурносни слој нивоа снаге %i је успостављен"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "не могу да прочитам поставку SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "упозорење: не могу да прочитам поставку SASL_SSF: %s"
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
msgid "A directory creation error has occurred"
msgstr "Дошло је до грешке при прављењу директоријума"
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
#, c-format
msgid "Unable to create directory \"%s\": %s."
msgstr "Није могуће направити директоријум ?%s?: %s."
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
#, c-format
msgid "recursively unsetting %s"
msgstr "рекурзивно поништавам %s"
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
msgid "syncing the GConf database"
msgstr "усклађујем GConf базу података"
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
msgid "completed"
msgstr "урађено"
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Ваш налог на сервису Gmail"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "неважеће место"
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-"Ваша лозинка на сервису Gmail (ако не упишете лозинку, програм ће Вас "
-"замолити да је унесете када то буде потребно)"
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "Тренутно изабран URI"
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "libsoup није изграђен са подршком за SSL/TLS"
-
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "није могуће обрадити URI \"%s\""
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Директоријум"
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "сервер је послао знаке који не спадају у скуп УТФ-8"
+#: ../src/mn-evolution-mailbox-properties.gob:169
+msgid ""
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
+msgstr "Дојава поште не може да се повеже са Еволуцијом. Покрените Еволуцију и укључите додатак за повезивање са Дојавом поште."
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "не могу да преузмем податке: %s"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "директоријум није нађен"
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "пријава у току"
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "није могуће повезати се са Еволуцијом"
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "пријава није успела"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Није могуће укључити прикључак за Дојаву поште"
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "тражим нову пошту"
+#: ../src/mn-evolution-plugin.c:130
+#, c-format
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr "Бонобо није успео да пронађе %s сервер. Молим проверите инсталацију Дојаве поште."
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "не може се покренути ICU библиотека"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr "Бонобо није успео да забележи %s сервер. Молим проверите инсталацију Дојаве поште."
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "не могу да обрадим податке са сервиса Gmail"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "место довода није исправно наведено"
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
#, c-format
-msgid "unable to open calendar: %s"
-msgstr "није могуће отворити календар: %s"
+msgid "retrieving feed from %s"
+msgstr "преузимање извора са %s"
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
#, c-format
-msgid "unable to set calendar time: %s"
-msgstr "није могуће поставити време из календара: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "није могуће пронаћи довод: %s"
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "није могуће добавити време из календара: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "није могуће обрадити довод"
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
#, c-format
msgid "unable to read %s: %s"
msgstr "Није могуће прочитати %s: %s"
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:51
#, c-format
msgid "unable to write to %s: %s"
msgstr "није могућ упис на %s: %s"
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:53
#, c-format
msgid "unable to seek in %s: %s"
msgstr "Није могуће пронаћи у %s: %s"
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:55
#, c-format
msgid "unable to tell position of %s: %s"
msgstr "није могуће сазнати положај за %s: %s"
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:57 ../src/mn-mh-mailbox-backend.gob:158
#, c-format
msgid "unable to close %s: %s"
msgstr "није могуће затворити %s: %s"
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
msgid "Mailbox:"
msgstr "Сандуче:"
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
msgid "in_box"
msgstr "in_box"
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
msgid "oth_er:"
msgstr "_друго:"
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "К_ористи време доколице, ако је могуће"
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Име или IP број IMAP сервера"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "ни_кад"
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Ваше име на IMAP серверу"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "а_утодетекција"
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ваша лозинка на IMAP серверу (ако не упишете лозинку, програм ће Вас "
-"замолити да је унесете када то буде потребно)"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "_увек"
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Број порта на IMAP серверу"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Користи <span style=\"italic\">IDLE</span> продужетак:"
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Име сандучета"
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Да ли треба користити време доколице или не"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr "Подршка за SSL/TLS није уграђена"
-
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
msgid "server did not send capabilities"
msgstr "сервер није обавестио о својим могућностима"
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr "сервер је дојавио LOGINDISABLED, LOGIN пријавa неће бити коришћена"
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
msgid "unable to login"
msgstr "пријава није могућа"
#. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
msgid "server did not send search results"
msgstr "сервер није послао резултате претраге"
#. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
msgid "server did not send all the messages we requested"
msgstr "сервер није послао све тражене поруке"
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
msgid "unable to fetch message"
msgstr "није могуће добавити поруку"
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr "„Користи IDLE проширење“ је постављено на „никад“ у поставкама сандучића, одјављујем се"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "удаљени сервер користи %s, не користим IDLE продужетак"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr "удаљени сервер користи %s, IDLE проширење можда неће исправно радити"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr "удаљени сервер не подржава IDLE проширење, одјављујем се"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
msgid "unknown server error"
msgstr "непозната грешка на серверу"
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
msgid "server does not support in-band SSL/TLS"
msgstr "сервер не подржава заштиту путем SSL/TLS"
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -899,216 +874,145 @@ msgstr ""
"изабран је механизам за пријаву који користи SASL али подршка за SASL није "
"уграђена у програм"
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "непознат механизам за пријаву \"%s\""
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr "искључујем механизам „%s“ и покушавам SASL пријаву"
+
+#: ../src/mn-imap-mailbox.gob:1435
msgid "falling back to IMAP LOGIN authentication"
msgstr "повратак на IMAP LOGIN пријаву"
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
msgid "authentication failed"
msgstr "пријава није успела"
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
msgid "Main _Window"
msgstr "Главни _прозор"
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
msgid "_Mail Reader"
msgstr "_Читач поште"
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
msgid "_Update"
msgstr "_Освежи"
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "_Уклони са обавештајне зоне"
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Додај сандуче"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
#, c-format
msgid "%s Properties"
msgstr "Поставке за %s"
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "_Кор.име:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Лозинка:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Врста везе:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Порт:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "_Начин пријаве:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr "Ознака"
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr "Означени текст који се појављује у ознаци типа"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr "Величина групе"
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr "GtkSizeGroup за уравнање контролних ознака"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Готово"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Додај сандуче"
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr "Да ли су поставке сасвим попуњене или не"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Дошло је до грешке приликом налепљивања"
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
msgid "Mailbox"
msgstr "Сандуче"
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Формат"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "необрађено %s сандуче (%s)"
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Није могуће додати сандуче"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "%s сандуче"
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "Сандуче је већ у списку."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "препознајем врсту сандучета..."
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "URI ознака за сандуче"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "недостаје атрибут „врста“"
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Име сандучета"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "непозната врста сандучета „%s“"
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Да ли се ово сандуче ручно проверава или не"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr "особина „%s“: није могуће пребацити ниску „%s“ у вредност врсте „%s“"
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "Списак нових и непрочитаних MNMessage објеката"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "особина „%s“ нема постављену вредност"
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "Грешка у приступу сандучету, ако постоји"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr "Дошло је до грешке приликом увожења старих сандучића"
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "не постоји"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Није могуће увести подешавања сандучића"
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "непознат формат"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "није могуће обрадити XML документ."
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "Није могуће наместити непосредну дојаву нове поште: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "Недостаје корени елемент."
-#: src/mn-mailbox.gob:421
+#: ../src/mn-mailboxes.gob:307
#, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Пошто нема друге могућности, биће проверавани сваку %i секунду (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[1] ""
-"Пошто нема друге могућности, биће проверавани сваке %i секунде (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[2] ""
-"Пошто нема друге могућности, биће проверавани сваких %i секунди (ово кашњење "
-"се може променити из прозора са поставкама)"
+msgid "The root element \"%s\" is invalid."
+msgstr "Корени елемент „%s“ је неважећи."
-#: src/mn-mailbox.gob:432
+#: ../src/mn-mailboxes.gob:330
#, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Пошто нема друге могућности, биће проверавани сваки %i минут (ово кашњење се "
-"може променити из прозора са поставкама)"
-msgstr[1] ""
-"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[2] ""
-"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
+msgid "On line %i: %s."
+msgstr "У линији %i: %s."
-#: src/mn-mailbox.gob:443
+#: ../src/mn-mailboxes.gob:335
#, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-"Пошто нема друге могућности, биће проверавани на око %i минут (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[1] ""
-"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[2] ""
-"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
+msgid "On line %i: unknown element \"%s\"."
+msgstr "У линији %i: непознати елемент „%s“."
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Дошло је до грешке при мотрењу"
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
+msgstr[0] "Дошло је до грешке приликом учитавања подешавања сандучића"
+msgstr[1] "Дошло је до грешака приликом учитавања подешавања сандучића"
+msgstr[2] "Дошло је до грешака приликом учитавања подешавања сандучића"
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"Није могуће наместити непосредну дојаву нове поште за један или више "
-"сандучића. %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Није могуће сачувати подешавања сандучића"
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-"Показује да ли постоји бар једно сандуче које мора да се учестало проверава"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Нијем могуће записати XML документ."
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
#, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s није подржан: %s"
+msgid "unable to delete %s: %s"
+msgstr "није могуће обрисати %s: %s"
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
#, c-format
msgid "%s has %i new message"
msgid_plural "%s has %i new messages"
@@ -1116,170 +1020,174 @@ msgstr[0] "Сандуче %s има %i нову поруку"
msgstr[1] "Сандуче %s има %i нове поруке"
msgstr[2] "Сандуче %s има %i нових порука"
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
#, c-format
msgid "%s reported an error: %s"
msgstr "%s је дојавио грешку: %s"
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
#, c-format
msgid "unable to open folder \"new\": %s"
msgstr "није могуће отворити директоријум \"new\": %s"
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
#, c-format
msgid "unable to close folder \"new\": %s"
msgstr "није могуће затворити директоријум \"new\": %s"
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
#, c-format
msgid "error while reading folder \"new\": %s"
msgstr "грешка при читању директоријума \"new\": %s"
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Поруке за помоћ"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Преброј поруке"
+
#. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
msgid "_Mail"
msgstr "_Пошта"
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
msgid "_Edit"
msgstr "_Уреди"
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
msgid "_View"
msgstr "_Преглед"
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
msgid "_Help"
msgstr "П_омоћ"
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
msgid "Launch the mail reader"
msgstr "П_окрени читач поште"
#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
msgid "Update the mail status"
msgstr "Освежи податке о пошти"
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
msgid "_Close"
msgstr "_Затвори"
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
msgid "Close this window"
msgstr "Затвори овај прозор"
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
msgid "_Quit"
msgstr "_Крај"
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
msgid "Quit Mail Notification"
msgstr "Угаси дојаву поште"
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
msgid "_Toolbars"
msgstr "_Алатне траке"
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
msgid "Customize the toolbars"
msgstr "Уреди алатне траке"
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
msgid "_Preferences"
msgstr "_Поставке"
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
msgid "Toolbars Styl_e"
msgstr "Стил алатних _трака"
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
msgid "Customize the toolbars style"
msgstr "Прилагоди стил алатних трака"
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
msgid "_Contents"
msgstr "_Садржај"
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
msgid "Display help"
msgstr "Прикажи помоћ"
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
msgid "_About"
msgstr "_О програму"
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
msgid "Display credits"
msgstr "Прикажи заслуге"
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
msgid "Show or hide the toolbars"
msgstr "Прикажи или уклони алатну траку"
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
msgid "_Statusbar"
msgstr "_Статусна трака"
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
msgid "Show or hide the statusbar"
msgstr "Прикажи или уклони статусну траку"
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
msgid "_Desktop Default"
msgstr "_Подразумевано у окружењу"
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
msgid "Set the toolbars style to the desktop default setting"
msgstr "Постави стилове трака на стил који важи у целом радном окружењу"
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
msgid "I_cons Only"
msgstr "Само _слике"
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
msgid "Only display the toolbars icons"
msgstr "Прикажи само слике у статусној траци"
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
msgid "_Text Only"
msgstr "Само _текст"
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
msgid "Only display the toolbars text"
msgstr "Прикажи само текст у алатној траци"
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
msgid "Text Belo_w Icons"
msgstr "Текст _испод слика"
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
msgid "Display the toolbars text below the icons"
msgstr "Прикажи текст испод одговарајуће слике у алатној траци"
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
msgid "Text Be_side Icons"
msgstr "Текст _поред слика"
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
msgid "Display the toolbars text beside the icons"
msgstr "Прикажи текст поред одговарајуће слике у алатној траци"
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
#, c-format
msgid "unable to load menus.xml: %s"
msgstr "Није могуће прочитати menus.xml: %s"
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Поруке за помоћ"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Преброј поруке"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "није могуће учитати toolbars.xml: %s"
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
#, c-format
msgid "%i new message"
msgid_plural "%i new messages"
@@ -1287,53 +1195,43 @@ msgstr[0] "%i нова порука"
msgstr[1] "%i нове поруке"
msgstr[2] "%i нових порука"
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "није могуће учитати toolbars.xml: %s"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Програм уме да чита сандучиће у форматима: %s\n"
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "ГМАИЛ временски печат"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Уграђене могућности за сандучиће:"
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Уграђене могућности: %s\n"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Уграђене могућности за POP3 и IMAP: "
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
msgid "Enable informational output"
msgstr "Дозволи речитији излаз"
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
msgid "List the compiled-in features"
msgstr "Испиши уграђене могућности"
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
msgid "Display the main window"
msgstr "Прикажи главни прозор"
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
msgid "Display the properties dialog"
msgstr "Прикажи прозор са поставкама"
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
msgid "Display the about dialog"
msgstr "Прикажи податке о програму"
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
msgid "Close the mail summary popup"
msgstr "Затвори прозор са сажетком порука"
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Провери пошту"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
msgid "Unset obsolete GConf configuration"
msgstr "Поништи застарела GConf подешавања"
@@ -1341,11 +1239,11 @@ msgstr "Поништи застарела GConf подешавања"
#. * We can't use mn_error_dialog() because gtk_init() has not been
#. * called yet.
#.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
msgid "multi-threading is not available"
msgstr "вишенитни рад није подржан"
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
msgid ""
"Bonobo could not locate the automation object. Please check your Mail "
"Notification installation."
@@ -1355,80 +1253,72 @@ msgstr ""
"Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
"одјавите и поново пријавите на систем да би све почело да ради)"
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
msgid "quitting Mail Notification"
msgstr "Гасим дојаву поште"
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
msgid "Mail Notification is not running"
msgstr "Програм за дојаву поште није покренут."
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
msgid "Unable to initialize the GnomeVFS library."
msgstr "Није могуће покренути библиотеку GnomeVFS."
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
msgid "updating the mail status"
msgstr "Проверавам пошту"
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
msgid "Mail Notification is already running"
msgstr "Програм за дојаву поште је већ покренут."
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-"Бонобо није успео да пронађе објекат за аутоматизацију. Проверите "
-"инсталацију програма за дојаву поште. (Прим. прев: услед грешке у програму "
-"Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
-"одјавите и поново пријавите на систем да би све почело да ради)"
+"Bonobo could not locate the %s file. Please check your Mail Notification "
+"installation."
+msgstr "Бонобо није могао да пронађе датотеку %s. Молимо проверите подешавања Дојаве поште."
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-"Бонобо није успео да пронађе објекат за аутоматизацију. Проверите "
-"инсталацију програма за дојаву поште. (Прим. прев: услед грешке у програму "
-"Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
-"одјавите и поново пријавите на систем да би све почело да ради)"
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "није могуће затворити датотеку: %s"
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:222
#, c-format
msgid "unable to open mailbox: %s"
msgstr "није могуће отворити сандуче: %s"
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
msgid "unable to parse MIME message"
msgstr "није могуће обрадити MIME поруку"
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
msgid "You have no new mail."
msgstr "Нема поште."
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
msgid "Unreadable message"
msgstr "Нечитљива порука"
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
msgid "From"
msgstr "Од"
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
msgid "Subject"
msgstr "Тема"
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
msgid "Sent"
msgstr "Послато"
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
msgid "Unknown"
msgstr "Непознато"
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
@@ -1436,7 +1326,7 @@ msgstr[0] "пре %i секунду"
msgstr[1] "пре %i секунде"
msgstr[2] "пре %i секунди"
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
#, c-format
msgid "about %i minute ago"
msgid_plural "about %i minutes ago"
@@ -1444,7 +1334,7 @@ msgstr[0] "пре око %i минут"
msgstr[1] "пре око %i минута"
msgstr[2] "пре око %i минута"
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
#, c-format
msgid "about %i hour ago"
msgid_plural "about %i hours ago"
@@ -1452,7 +1342,7 @@ msgstr[0] "пре око %i сат"
msgstr[1] "пре око %i сата"
msgstr[2] "пре око %i сати"
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
#, c-format
msgid "about %i day ago"
msgid_plural "about %i days ago"
@@ -1460,7 +1350,7 @@ msgstr[0] "пре око %i дан"
msgstr[1] "пре око %i дана"
msgstr[2] "пре око %i дана"
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
#, c-format
msgid "about %i week ago"
msgid_plural "about %i weeks ago"
@@ -1468,69 +1358,78 @@ msgstr[0] "пре око %i недељу"
msgstr[1] "пре око %i недеље"
msgstr[2] "пре око %i недеља"
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "грешка при читању датотеке .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "ниједно"
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr "није могуће отворити датотеку .mh_sequences: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "истражујем"
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "_Рачунар:"
+msgid "error while reading %s: %s"
+msgstr "грешка при читању %s: %s"
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Детаљи"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "није могуће отворити %s: %s"
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
msgid "sta_ndard"
msgstr "_стандард"
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
msgid "_in-band SSL/TLS"
msgstr "_уграђени SSL/TLS"
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS на посебном порту"
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Име или IP број POP3 сервера"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "_Рачунар:"
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Ваше име на POP3 серверу"
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Детаљи"
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ваша лозинка на POP3 серверу (ако не упишете лозинку, програм ће Вас "
-"замолити да је унесете када то буде потребно)"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Врста везе:"
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Број порта на POP3 серверу"
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Порт:"
+
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "_Начин пријаве:"
+
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr "Подршка за SSL/TLS није уграђена"
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pop3-mailbox.gob:359
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "параметри за могућност LOGIN-DELAY нису исправно постављени"
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr "SASL аутентификација са почетним клијентским одговором није успела, покушавам поново без почетног клијентског одговора"
+
+#: ../src/mn-pop3-mailbox.gob:733
msgid "unknown error"
msgstr "непозната грешка"
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1538,39 +1437,43 @@ msgstr[0] "тражен је застој при пријави, паузира
msgstr[1] "тражен је застој при пријави, паузирам %i секундe"
msgstr[2] "тражен је застој при пријави, паузирам %i секунди"
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
msgid "server does not support APOP authentication"
msgstr "сервер не подржава пријаву коришћењем механизма APOP"
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
msgid "falling back to APOP authentication"
msgstr "прелазим на APOP пријаву"
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
msgid "falling back to USER/PASS authentication"
msgstr "прелазим на пријаву помоћу имена и лозинке"
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Поставке за дојаву"
+
+#: ../src/mn-properties-dialog.gob:207
msgid "top left"
msgstr "горе-лево"
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
msgid "top right"
msgstr "горе-десно"
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
msgid "bottom left"
msgstr "доле-лево"
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
msgid "bottom right"
msgstr "доле-десно"
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
msgid "No mailbox selected."
msgstr "Ниједно сандуче није изабрано."
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
@@ -1578,408 +1481,763 @@ msgstr[0] "Изабрано %i сандуче"
msgstr[1] "Изабрана %i сандучета"
msgstr[2] "Изабрано %i сандучета"
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Текст поруке #%i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr "Дијалог за поставке Дојаве поште"
+
+#: ../src/mn-shell.gob:109
msgid "You have new mail."
msgstr "Имате нову пошту."
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
msgid "Mailboxes Having New Mail"
msgstr "Сандучићи са новом поштом"
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
msgid "Errors"
msgstr "Грешке"
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Неподржани сандучићи"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
msgid "Mail Summary"
msgstr "Сажетак порука"
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "није могуће обрадити заступнички URI ?%s?"
-
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
msgid "unknown SSL/TLS error"
msgstr "непозната грешка у SSL/TLS"
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
msgid "Select _All"
msgstr "Изабери _све"
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
msgid "Leave Fullscreen"
msgstr "Остави на целом екрану"
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "_Повежи се"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
#, c-format
msgid "unable to open folder: %s"
msgstr "није могуће отворити директоријум: %s"
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
#, c-format
msgid "unable to close folder: %s"
msgstr "није могуће затворити директоријум: %s"
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
#, c-format
msgid "error while reading folder: %s"
msgstr "грешка при читању директоријума: %s"
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr "Локално сандуче"
+#: ../src/mn-sylpheed-mailbox-backend.gob:255
+msgid "unexpected end of file"
+msgstr "неочекивани крај датотеке"
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-sylpheed-mailbox-backend.gob:269
#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr "Користи се локално сандуче (<span weight=\"bold\">%s</span>)."
+msgid "incompatible file version \"%i\""
+msgstr "издање датотеке није сагласно „%i“"
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-"Програм није успео да пронађе локално сандуче. Поставите променљиву MAIL да "
-"показује на њега."
+#: ../src/mn-sylpheed-mailbox-backend.gob:272
+msgid "file version missing"
+msgstr "недостаје издање датотеке"
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
+msgstr "Системско сандуче"
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "Разлог зашто сандуче није подржано"
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
+#, c-format
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
+msgstr "Ваше системско сандуче је <span weight=\"bold\">%s</span>."
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
+msgid ""
+"The location of your system mailbox could not be detected. Check the MAIL "
+"environment variable."
+msgstr "Место системског сандучета није пронађено. Проверите променљиву MAIL."
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "није подржано"
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "променљива MAIL није дефинисана"
-#: src/mn-util.c:245
+#: ../src/mn-util.c:281
#, c-format
msgid "error loading image: %s"
msgstr "грешка при учитавању слике: %s"
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
#, c-format
msgid "widget \"%s\" not found in interface \"%s\""
msgstr "елемент ?%s? није пронађен у сучељу ?%s?"
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "примљен је неисправан списак URI ознака"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "није могуће отворити као модул: %s"
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "примљен је неисправан Мозилин URL"
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "обрађивач сигнала „%s“ није пронађен"
+
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Дошло је до грешке при превлачењу/пуштању"
+
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Примљен је неважећи списак места."
+
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Примљен је неважећи Мозилин списак места."
-#: src/mn-util.c:519
+#: ../src/mn-util.c:678
msgid "Unable to display help"
msgstr "Није могуће приказати помоћ"
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
#, c-format
msgid "Unable to create a thread: %s."
msgstr "Није могуће покренути нит: %s."
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
msgid "_Do not show this message again"
msgstr "_Не приказуј више ову поруку"
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+msgid_plural ""
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr[0] "Следеће место је неважеће:\n"
+"\n"
+"%s"
+msgstr[1] "Следећа места су неважећа:\n"
+"\n"
+"%s"
+msgstr[2] "Следећа места су неважећа:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
msgid "A fatal error has occurred in Mail Notification"
msgstr "Дошло је до кобне грешке у програму за дојаву поште"
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
#, c-format
msgid "unable to get current time: %s"
msgstr "није могуће добавити тренутно време: %s"
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "неважећа одредница за сигнал ?%s?"
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
msgid "A command error has occurred in Mail Notification"
msgstr "Дошло је до грешке у командама"
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
#, c-format
msgid "Unable to execute \"%s\": %s."
msgstr "Није могуће извршити %s: %s"
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "Пријави се"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "Није могуће преименовати %s у %s: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr "није могуће надгледати садржај сандучета (%s), упити су активирани"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr "није могуће надгледати садржај сандучета (%s), упити су активирани"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "формат сандучета није препознат"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "не постоји"
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Пошто нема друге могућности, биће проверавани сваку %i секунду (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[1] ""
+"Пошто нема друге могућности, биће проверавани сваке %i секунде (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[2] ""
+"Пошто нема друге могућности, биће проверавани сваких %i секунди (ово кашњење "
+"се може променити из прозора са поставкама)"
+
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Пошто нема друге могућности, биће проверавани сваки %i минут (ово кашњење се "
+"може променити из прозора са поставкама)"
+msgstr[1] ""
+"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[2] ""
+"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Properties Dialog)."
+msgstr[0] ""
+"Пошто нема друге могућности, биће проверавани на око %i минут (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[1] ""
+"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[2] ""
+"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Дошло је до грешке при мотрењу"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"Није могуће наместити непосредну дојаву нове поште за један или више "
+"сандучића. %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
msgid "Edit Toolbars"
msgstr "Уреди алатне траке"
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
msgid "_Add a New Toolbar"
msgstr "_Додај нову алатну траку"
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
msgid "_Use Default"
msgstr "_Користи подразумевано"
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span weight=\"bold\">Сажетак порука</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Опште</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "_Име сандучета:"
+
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
msgstr "_Врста сандучета:"
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Наредбе</span>"
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
msgid "<span weight=\"bold\">Double-click Action</span>"
msgstr "<span weight=\"bold\">Наредба за дупли клик</span>"
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
msgid "<span weight=\"bold\">Fonts</span>"
msgstr "<span weight=\"bold\">Писма</span>"
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Опште</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Сандучићи</span>"
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Место</span>"
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
msgid "Co_ntents:"
msgstr "_Садржај:"
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
msgid "Dis_play mail summary in tooltip"
msgstr "Прикажи прозор са сажетком порука у облачићу"
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
msgid "General"
msgstr "Опште"
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "Хори_зонтални помак:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Поставке за дојаву"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
msgid "Mail Summary Popup"
msgstr "Сажетак порука"
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
msgid "Mailboxes"
msgstr "Сандучићи"
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
msgid "Only display _recent mail"
msgstr "Прикажи само скорашње поруке"
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "_Место:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Пауза пре затварања прозора са сажетком порука"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "Пауза између две узастопне провере"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "Наредба за покретање читача поште"
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "Наредба која се покреће када је сва пошта прочитана"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr "Наредба која се покреће када стиже нова пошта"
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Број тачака које треба оставити између леве, одн. десне стране екрана и "
-"прозора са сажетком порука"
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
-"сажетком порука"
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
msgid "Use these _fonts:"
msgstr "Користи ова _писма:"
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Када је с_ва пошта прочитана:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Када је _сва пошта прочитана:"
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
msgid "When _new mail arrives:"
msgstr "Када _стигне нова пошта:"
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr "Да ли статусна сличица трепери при грешкама или не"
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-"Да ли треба или не треба аутоматски затворити прозор са сажетком порука"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr "Да ли треба или не треба приказивати сажетак порука у облачићу"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Да ли треба или не треба приказивати сажетак порука када стигне нова пошта"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Да ли треба приказивати претходно приказане поруке или не"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr "Да ли се покреће или не покреће команда када је сва пошта прочитана"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr "Да ли се покреће команда када стигне пошта или не"
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Да ли треба поставити читач поште"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr "Да ли покренути дојаву поште када се пријавите на систем"
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
msgid "_Automatically close after:"
msgstr "_Аутоматски затвори после:"
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
msgid "_Blink on errors"
msgstr "_Трепери при грешкама"
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
msgid "_Delay between mail checks:"
msgstr "_Пауза између провера:"
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "Прикажи пробно прозорче"
+
+#: ../ui/properties-dialog.glade.h:21
msgid "_Display the main window"
msgstr "_Прикажи главни прозор"
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
msgid "_Enable mail summary popup"
msgstr "Дозволи приказ сажетка порука"
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "_Хоризонтални помак:"
+
+#: ../ui/properties-dialog.glade.h:24
msgid "_Launch the mail reader"
msgstr "П_окрени читач поште"
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
msgid "_Mail reader:"
msgstr "_Читач поште:"
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Место:"
+
+#: ../ui/properties-dialog.glade.h:27
msgid "_Start Mail Notification on GNOME login"
msgstr "Покрени _дојаву при пријави"
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
msgid "_Title:"
msgstr "_Наслов:"
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
msgid "_Update the mail status"
msgstr "_Освежи податке о пошти"
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
msgid "_Use fonts from theme"
msgstr "Користи писма из _теме"
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
msgid "_Vertical offset:"
msgstr "_Вертикални помак:"
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
msgid "minutes"
msgstr "минута"
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
msgid "pixels"
msgstr "тачака"
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
msgid "seconds"
msgstr "секунди"
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Сажетак порука</span>"
+#~ msgid "Has already been run"
+#~ msgstr "Већ је покренут"
-#: ui/welcome.glade.h:1
-msgid ""
-"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
-"\n"
-"Mail Notification has been loaded successfully.\n"
-"\n"
-"Since this is the first time you run Mail Notification, you need to "
-"configure it.\n"
-"\n"
-"Note: this message will not be shown anymore. To configure Mail Notification "
-"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
-"span> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Прво покретање</span>\n"
-"\n"
-"Програм за дојаву поште је успешно покренут.\n"
-"\n"
-"Пошто сте програм за дојаву поште први пут покренули, вероватно желите и да "
-"га подесите.\n"
-"\n"
-"Пажња: ова порука се убудуће неће приказивати. Да бисте подесили дојаву "
-"поште, изаберите ставку Програми <span weight=\"bold\">Програми</span> → "
-"<span weight=\"bold\">Поставке окружења</span> → <span weight=\"bold"
-"\">Дојава поште</span> (или на неким системима <span weight=\"bold"
-"\">Програми → Поставке → Још поставки → Дојава поште</span>)."
+#~ msgid "Mailbox list"
+#~ msgstr "Списак сандучића"
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr "_Подеси дојаву поште"
+#~ msgid "The list of mailboxes to monitor."
+#~ msgstr "Списак сандучића који се прате."
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr "П_рескочи подешавања"
+#~ msgid "Whether Mail Notification has already been run or not."
+#~ msgstr "Да ли је програм покретан пре или није."
+
+#~ msgid ""
+#~ "Drag an item onto the toolbars above to add it, from the toolbars in the "
+#~ "items table to remove it."
+#~ msgstr ""
+#~ "Превуците ставку на алатну траку како бисте је додали, или са алатне "
+#~ "траке у табелу, како бисте је уклонили."
+
+# The email of the translator goes here
+#~ msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#~ msgstr "Филип Милетић <filmil@gmail.com>"
+
+#~ msgid ""
+#~ "<span weight=\"bold\" size=\"larger\">Mail Notification requires a "
+#~ "password</span>\n"
+#~ "\n"
+#~ "%s"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Дојава поште захтева да упишете "
+#~ "лозинку</span>\n"
+#~ "\n"
+#~ "%s"
+
+#~ msgid "The URI of the mailbox"
+#~ msgstr "URI ознака поштанског сандучега"
+
+#~ msgid "Whether the image is blinking or not"
+#~ msgstr "Да ли слика трепери или не"
#~ msgid "received non-ASCII data from server"
#~ msgstr "сервер је послао знаке који не спадају у скуп АСКРИ"
+#~ msgid ""
+#~ "the server sent a SASL challenge, but there was a pending initial SASL "
+#~ "client response"
+#~ msgstr ""
+#~ "сервер је започео SASL разговор, али одговор од клијента стигао пре тога"
+
+#~ msgid ""
+#~ "the server did not send a SASL challenge, but there was no pending "
+#~ "initial SASL client response"
+#~ msgstr ""
+#~ "сервер није послао SASL разговор, али није било ни одговора од клијента."
+
+#~ msgid "Your Gmail username"
+#~ msgstr "Ваш налог на сервису Gmail"
+
+#~ msgid ""
+#~ "Your Gmail password (if left blank, you will be prompted for the password "
+#~ "when needed)"
+#~ msgstr ""
+#~ "Ваша лозинка на сервису Gmail (ако не упишете лозинку, програм ће Вас "
+#~ "замолити да је унесете када то буде потребно)"
+
+#~ msgid "libsoup has not been compiled with SSL/TLS support"
+#~ msgstr "libsoup није изграђен са подршком за SSL/TLS"
+
+#~ msgid "unable to parse URI \"%s\""
+#~ msgstr "није могуће обрадити URI \"%s\""
+
+#~ msgid "received non-UTF-8 data from server"
+#~ msgstr "сервер је послао знаке који не спадају у скуп УТФ-8"
+
+#~ msgid "unable to transfer data: %s"
+#~ msgstr "не могу да преузмем податке: %s"
+
+#~ msgid "logging in"
+#~ msgstr "пријава у току"
+
+#~ msgid "login failed"
+#~ msgstr "пријава није успела"
+
+#~ msgid "searching for unread mail"
+#~ msgstr "тражим нову пошту"
+
+#~ msgid "unable to initialize the ICU library"
+#~ msgstr "не може се покренути ICU библиотека"
+
+#~ msgid "unable to parse Gmail data"
+#~ msgstr "не могу да обрадим податке са сервиса Gmail"
+
+#~ msgid "unable to open calendar: %s"
+#~ msgstr "није могуће отворити календар: %s"
+
+#~ msgid "unable to set calendar time: %s"
+#~ msgstr "није могуће поставити време из календара: %s"
+
+#~ msgid "unable to get calendar time: %s"
+#~ msgstr "није могуће добавити време из календара: %s"
+
+#~ msgid "U_se idle mode if possible"
+#~ msgstr "К_ористи време доколице, ако је могуће"
+
+#~ msgid "The hostname or IP address of the IMAP server"
+#~ msgstr "Име или IP број IMAP сервера"
+
+#~ msgid "Your username on the IMAP server"
+#~ msgstr "Ваше име на IMAP серверу"
+
+#~ msgid ""
+#~ "Your password on the IMAP server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Ваша лозинка на IMAP серверу (ако не упишете лозинку, програм ће Вас "
+#~ "замолити да је унесете када то буде потребно)"
+
+#~ msgid "The port number of the IMAP server"
+#~ msgstr "Број порта на IMAP серверу"
+
+#~ msgid "If possible, whether to use idle mode or not"
+#~ msgstr "Да ли треба користити време доколице или не"
+
+#~ msgid "Label"
+#~ msgstr "Ознака"
+
+#~ msgid "The marked up text to show in the type combo box"
+#~ msgstr "Означени текст који се појављује у ознаци типа"
+
+#~ msgid "Size group"
+#~ msgstr "Величина групе"
+
+#~ msgid "A GtkSizeGroup for aligning control labels"
+#~ msgstr "GtkSizeGroup за уравнање контролних ознака"
+
+#~ msgid "Complete"
+#~ msgstr "Готово"
+
+#~ msgid "Whether the properties are completely filled or not"
+#~ msgstr "Да ли су поставке сасвим попуњене или не"
+
+#~ msgid "Format"
+#~ msgstr "Формат"
+
+#~ msgid "The mailbox is already in the list."
+#~ msgstr "Сандуче је већ у списку."
+
+#~ msgid "The mailbox URI"
+#~ msgstr "URI ознака за сандуче"
+
+#~ msgid "The mailbox human-readable name"
+#~ msgstr "Име сандучета"
+
+#~ msgid "Whether the mailbox has to be polled or not"
+#~ msgstr "Да ли се ово сандуче ручно проверава или не"
+
+#~ msgid "The list of new and unread MNMessage objects"
+#~ msgstr "Списак нових и непрочитаних MNMessage објеката"
+
+#~ msgid "The mailbox error, if any"
+#~ msgstr "Грешка у приступу сандучету, ако постоји"
+
+#~ msgid "unable to enable immediate notification: %s"
+#~ msgstr "Није могуће наместити непосредну дојаву нове поште: %s"
+
+#~ msgid "Whether one or more of the mailboxes has to be polled"
+#~ msgstr ""
+#~ "Показује да ли постоји бар једно сандуче које мора да се учестало "
+#~ "проверава"
+
+#~ msgid "%s is unsupported: %s"
+#~ msgstr "%s није подржан: %s"
+
+#~ msgid "Gmail timestamps"
+#~ msgstr "ГМАИЛ временски печат"
+
+#~ msgid "Report the mail status"
+#~ msgstr "Провери пошту"
+
+#~ msgid ""
+#~ "Bonobo could not locate the GNOME_MailNotification_Automation.server "
+#~ "file. Please check your Mail Notification installation."
+#~ msgstr ""
+#~ "Бонобо није успео да пронађе објекат за аутоматизацију. Проверите "
+#~ "инсталацију програма за дојаву поште. (Прим. прев: услед грешке у "
+#~ "програму Бонобо у Гному 2.6, када инсталирате програм за обавештења, "
+#~ "треба да се одјавите и поново пријавите на систем да би све почело да "
+#~ "ради)"
+
+#~ msgid "error while reading .mh_sequences: %s"
+#~ msgstr "грешка при читању датотеке .mh_sequences: %s"
+
+#~ msgid "unable to open .mh_sequences: %s"
+#~ msgstr "није могуће отворити датотеку .mh_sequences: %s"
+
+#~ msgid "detecting"
+#~ msgstr "истражујем"
+
+#~ msgid "The hostname or IP address of the POP3 server"
+#~ msgstr "Име или IP број POP3 сервера"
+
+#~ msgid "Your username on the POP3 server"
+#~ msgstr "Ваше име на POP3 серверу"
+
+#~ msgid ""
+#~ "Your password on the POP3 server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Ваша лозинка на POP3 серверу (ако не упишете лозинку, програм ће Вас "
+#~ "замолити да је унесете када то буде потребно)"
+
+#~ msgid "The port number of the POP3 server"
+#~ msgstr "Број порта на POP3 серверу"
+
+#~ msgid "Unsupported Mailboxes"
+#~ msgstr "Неподржани сандучићи"
+
+#~ msgid "unable to parse proxy URI \"%s\""
+#~ msgstr "није могуће обрадити заступнички URI ?%s?"
+
+#~ msgid "The reason why the mailbox is unsupported"
+#~ msgstr "Разлог зашто сандуче није подржано"
+
+#~ msgid "unsupported"
+#~ msgstr "није подржано"
+
+#~ msgid "received an invalid URI list"
+#~ msgstr "примљен је неисправан списак URI ознака"
+
+#~ msgid "received an invalid Mozilla URL"
+#~ msgstr "примљен је неисправан Мозилин URL"
+
+#~ msgid "_Authenticate"
+#~ msgstr "Пријави се"
+
+#~ msgid "The amount of time to wait before closing the mail summary popup"
+#~ msgstr "Пауза пре затварања прозора са сажетком порука"
+
+#~ msgid "The amount of time to wait between mail checks"
+#~ msgstr "Пауза између две узастопне провере"
+
+#~ msgid "The command to run to launch the mail reader"
+#~ msgstr "Наредба за покретање читача поште"
+
+#~ msgid "The command to run when all mail is read"
+#~ msgstr "Наредба која се покреће када је сва пошта прочитана"
+
+#~ msgid "The command to run when new mail arrives"
+#~ msgstr "Наредба која се покреће када стиже нова пошта"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the left or right side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Број тачака које треба оставити између леве, одн. десне стране екрана и "
+#~ "прозора са сажетком порука"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the top or bottom side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
+#~ "сажетком порука"
+
+#~ msgid "Whether the status icon should blink on errors or not"
+#~ msgstr "Да ли статусна сличица трепери при грешкама или не"
+
+#~ msgid "Whether to automatically close the mail summary popup or not"
+#~ msgstr ""
+#~ "Да ли треба или не треба аутоматски затворити прозор са сажетком порука"
+
+#~ msgid ""
+#~ "Whether to display the mail summary in the status icon tooltip or not"
+#~ msgstr "Да ли треба или не треба приказивати сажетак порука у облачићу"
+
+#~ msgid ""
+#~ "Whether to display the mail summary popup when new mail arrives or not"
+#~ msgstr ""
+#~ "Да ли треба или не треба приказивати сажетак порука када стигне нова пошта"
+
+#~ msgid "Whether to hide previously displayed mail or not"
+#~ msgstr "Да ли треба приказивати претходно приказане поруке или не"
+
+#~ msgid "Whether to run a command when all mail is read or not"
+#~ msgstr "Да ли се покреће или не покреће команда када је сва пошта прочитана"
+
+#~ msgid "Whether to run a command when new mail arrives or not"
+#~ msgstr "Да ли се покреће команда када стигне пошта или не"
+
+#~ msgid "Whether to set a mail reader or not"
+#~ msgstr "Да ли треба поставити читач поште"
+
+#~ msgid ""
+#~ "Whether to start Mail Notification when you log into your GNOME session "
+#~ "or not"
+#~ msgstr "Да ли покренути дојаву поште када се пријавите на систем"
+
+#~ msgid ""
+#~ "<span weight=\"bold\" size=\"larger\">First startup</span>\n"
+#~ "\n"
+#~ "Mail Notification has been loaded successfully.\n"
+#~ "\n"
+#~ "Since this is the first time you run Mail Notification, you need to "
+#~ "configure it.\n"
+#~ "\n"
+#~ "Note: this message will not be shown anymore. To configure Mail "
+#~ "Notification again, choose <span weight=\"bold\">Applications</span> → "
+#~ "<span weight=\"bold\">Desktop Preferences</span> → <span weight=\"bold"
+#~ "\">Mail Notification</span> (or on some systems <span weight=\"bold"
+#~ "\">Applications → Preferences → More Preferences → Mail Notification</"
+#~ "span>)."
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Прво покретање</span>\n"
+#~ "\n"
+#~ "Програм за дојаву поште је успешно покренут.\n"
+#~ "\n"
+#~ "Пошто сте програм за дојаву поште први пут покренули, вероватно желите и "
+#~ "да га подесите.\n"
+#~ "\n"
+#~ "Пажња: ова порука се убудуће неће приказивати. Да бисте подесили дојаву "
+#~ "поште, изаберите ставку Програми <span weight=\"bold\">Програми</span> → "
+#~ "<span weight=\"bold\">Поставке окружења</span> → <span weight=\"bold"
+#~ "\">Дојава поште</span> (или на неким системима <span weight=\"bold"
+#~ "\">Програми → Поставке → Још поставки → Дојава поште</span>)."
+
+#~ msgid "_Configure Mail Notification"
+#~ msgstr "_Подеси дојаву поште"
+
+#~ msgid "_Skip configuration"
+#~ msgstr "П_рескочи подешавања"
+
#~ msgid "Use a custom font for the contents of the mail summary popup"
#~ msgstr "Користи посебно писмо за садржај прозора са сажетком порука"
@@ -2041,12 +2299,6 @@ msgstr "П_рескочи подешавања"
#~ "Да ли треба или не треба користити посебно писмо за наслов прозора са "
#~ "сажетком порука"
-#~ msgid "The following mailbox has new mail:\n"
-#~ msgid_plural "The following mailboxes have new mail:\n"
-#~ msgstr[0] "Сандуче са новом поштом:\n"
-#~ msgstr[1] "Сандучићи са новом поштом:\n"
-#~ msgstr[2] "Сандучићи са новом поштом:\n"
-
#~ msgid "The following mailbox reported an error:\n"
#~ msgid_plural "The following mailboxes reported an error:\n"
#~ msgstr[0] "Ово сандуче има грешку:\n"
@@ -2087,9 +2339,6 @@ msgstr "П_рескочи подешавања"
#~ msgid "Your password on the POP3 server"
#~ msgstr "Ваша лозинка на POP3 серверу"
-#~ msgid "A command error has occurred"
-#~ msgstr "Дошло је до грешке у командама"
-
#~ msgid "Unable to execute double-clicked command: %s."
#~ msgstr "Није могуће извршити команду на двоструки клик: %s."
diff --git a/po/sr@Latn.gmo b/po/sr@Latn.gmo
Binary files differ.
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
@@ -11,244 +11,248 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-01 02:18+0100\n"
+"POT-Creation-Date: 2005-07-31 04:17+0200\n"
+"PO-Revision-Date: 2005-07-31 11:13+0100\n"
"Last-Translator: Filip Miletić <filmil@gmail.com>\n"
"Language-Team: Serbian (sr) <gnu@prevod.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
msgid "Mail Notification automation"
msgstr "Dojava prispeća pošte"
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
msgid "Mail Notification automation factory"
-msgstr "Fabrika ѕa dojavu prispeća pošte"
+msgstr "Fabrika za dojavu prispeća pošte"
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "Upravljanje Evolucijinim drvetom direktorijuma"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "Fabrika za upravljač Evolucijinim drvetom direktorijuma"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "Sučelje za Dojavu pošte i Evoluciju"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "Fabrika za Dojavu pošte i Evoluciju"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
msgid "Configure Mail Notification"
msgstr "Podesi dojavu prispeća pošte"
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
msgid "Mail Notification"
msgstr "Dojava pošte"
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
msgid "Get notified when new mail arrives"
msgstr "Obavesti kada stigne nova pošta"
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
msgid "Automatically close the mail summary popup"
msgstr "Automatski zatvori prozor sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
msgid "Blink on errors"
msgstr "Treperi ako dođe do greške"
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
msgid "Delay between mail checks (minutes part)."
msgstr "Razmak između dve provere (minuti)"
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
msgid "Delay between mail checks (seconds part)."
msgstr "Razmak između dve provere (sekunde)."
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
msgid "Display mail summary in tooltip"
msgstr "Prikaži sažetat poruka u oblačiću"
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
msgid "Do not show the immediate notification error dialog"
msgstr "Ne pokazuj prozor sa obaveštenjem o greškama"
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
msgid "Double-click action"
msgstr "Izvrši na dvostruki klik"
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
msgid "Enable mail summary popup"
msgstr "Dozvoli prikaz sažetka poruka"
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
msgid "Fingerprints of trusted X509 certificates"
msgstr "Otisci proverenih X509 sertifikata"
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "Već je pokrenut"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
msgid "Height of edit toolbars dialog"
msgstr "Visina prozora za uređivanje alatnih traka"
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
msgid "Height of main window"
msgstr "Visina glavnog prozora"
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
msgid "Height of properties dialog"
msgstr "Visina prozora sa postavkama"
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
msgid "Mail read command"
msgstr "Komanda za čitanje pošte"
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
msgid "Mail reader command"
msgstr "Komanda za čitanje pošte"
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
msgid "Mail summary popup contents font"
msgstr "Pismo koje se koristi za sadržaj prozora sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
msgid "Mail summary popup fonts aspect source"
msgstr "Izvor za aspekt za pismo u prozoru za sažetak (???)"
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
msgid "Mail summary popup horizontal offset"
msgstr "Pomeraj horizontalnih tačaka za prozor sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
msgid "Mail summary popup position"
msgstr "Broj horizontalnih tačaka za prozor sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
msgid "Mail summary popup title font"
msgstr "Pismo koje se koristi za naslov prozora sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
msgid "Mail summary popup vertical offset"
msgstr "Pomeraj vertikalnih tačaka ѕa prozor sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Spisak sandučića"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
msgid "Minutes between mail checks"
msgstr "Minuta između dve provere"
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
msgid "Minutes to wait before closing the mail summary popup"
msgstr ""
"Broj minuta koji treba da protekne pre zatvaranja prozora sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
msgid "New mail command"
msgstr "Izvrši kada pošta stigne"
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
msgid "Only display recent mail in mail summary popup"
msgstr "Prikaži samo skoro prispele poruke u sažetku"
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
msgid "Run a command when all mail is read"
msgstr "Pokreni komandu kada je sva pošta pročitana"
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
msgid "Run a command when new mail arrives"
msgstr "Pokreni komandu kada stigne nova pošta"
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
msgid "Seconds between mail checks"
msgstr "Sekundi između dve provere"
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Broj sekundi koji treba da protekne pre zatvaranja sažetka poruka"
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
msgid "Set a mail reader"
msgstr "Izaberite čitač pošte"
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
msgid ""
"The action to perform when the icon is double-clicked. Must be \"display-"
"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
msgstr ""
-"Postavljanje naredbe koja se izvršava pri dvostrukom kliku na sličicu. "
-"Mogući izbori su: ?glavni-prozor?, ?pokreni-čitač-pošte? ili ?ažuriraj-"
-"status-pošte?."
+"Postavljanje naredbe koja se izvršava pri dvostrukom kliku na sličicu. Mogući "
+"izbori su: ?glavni-prozor?, ?pokreni-čitač-pošte? ili ?ažuriraj-status-"
+"pošte?."
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (minuti)."
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (sekunde)."
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
msgid ""
"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
"\"custom\"."
msgstr "Izvor za podešavanja pisma. Može biti: ?tema? ili ?poseban?."
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
msgid "The command to run to launch the mail reader."
msgstr "Komanda kojom se pokreće čitač pošte"
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
msgid "The command to run when all mail is read."
msgstr "Komanda koju treba pokrenuti kada je sva pošta pročitana."
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
msgid "The command to run when new mail arrives."
msgstr "Pokreni ovu komandu kada stigne nova pošta."
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
msgid "The custom font to use for the contents of the mail summary popup."
msgstr ""
"Posebno pismo koje se koristi za ispis sadržaja prozora sa sažetkom poruka."
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
msgid "The custom font to use for the title of the mail summary popup."
msgstr ""
"Posebno pismo koje se koristi za ispis naslova prozora sa sažetkom poruka."
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
msgid "The height of the edit toolbars dialog in pixels."
msgstr "Visina prozora za uređivanje statusnih traka, izražena u tačkama."
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
msgid "The height of the main window in pixels."
msgstr "Visina glavnog prozora izražena u tačkama."
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
msgid "The height of the properties dialog in pixels."
msgstr "Visina prozora sa postavkama izražena u tačkama."
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "Spisak sandučića koji se prate."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
"Spisak proverenih SSL/TLS servera (računar:port) koji nemaju X509 sertifikat."
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr "Spisak proverenih X509 sertifikata, predstavljenih MD5 otiskom."
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -256,7 +260,7 @@ msgstr ""
"Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
"prozora sa sažetkom poruka."
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -264,7 +268,7 @@ msgstr ""
"Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
"sažetkom poruka."
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -272,7 +276,7 @@ msgstr ""
"Položaj prozora sa sažetkom poruka. Može biti: ?gore-levo?, ?gore-desno?, ?"
"dole-levo? ili ?dole-desno?."
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
msgid ""
"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
"\"both\" or \"both-horiz\"."
@@ -280,273 +284,264 @@ msgstr ""
"Stil alatnih traka. Može biti: ?podrazumevan?, ?slike?, ?tekst?, ?oba?, ?oba-"
"vodoravno?."
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
msgid "The width of the edit toolbars dialog in pixels."
msgstr "Širina prozora za uređivanje statusnih traka, izražena u tačkama."
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
msgid "The width of the main window in pixels."
msgstr "Širina prozora glavnog prozora izražena u tačkama."
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
msgid "The width of the properties dialog in pixels."
msgstr "Širina prozora sa postavkama izražena u tačkama."
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
msgid "Toolbars style"
msgstr "Stil alatne trake"
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
msgid "Trusted servers list"
msgstr "Spisak proverenih servera"
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
msgid "View statusbar"
msgstr "Prikaži statusnu traku"
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
msgid "View toolbars"
msgstr "Prikaži alatnu traku"
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr "Da li je program pokretan pre ili nije."
-
-#: data/mail-notification.schemas.in.h:59
+#: ../data/mail-notification.schemas.in.h:55
msgid "Whether the status icon should blink on errors or not."
msgstr "Da li sličica treba da treperi ako dođe do greške ili ne."
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
msgid "Whether the statusbar should be visible or not."
msgstr "Da li statusna linija treba da se vidi ili ne."
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
msgid "Whether the toolbars should be visible or not."
msgstr "Da li alatne trake treba da se vide ili ne"
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom pošte."
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
msgid "Whether to display the mail summary in the status icon tooltip or not."
msgstr ""
"Da li treba prikazati sažetak poruka u oblačiću statusne sličice ili ne."
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr "Da li treba prikazati sažetak poruka kada stigne nova pošta."
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
msgid ""
"Whether to hide previously displayed mail in the mail summary popup or not."
msgstr ""
"Da li iz sažetka treba ukloniti poruke koje su se u njemu već pre pojavile."
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr "Da li treba ili ne treba sprečiti pojavu prozora sa opisom grešaka."
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Da li treba ili ne treba pokrenuti neku komandu kada je sva pošta pročitana."
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
msgid "Whether to run a command when new mail arrives or not."
msgstr "Da li treba pokrenuti neku komandu kada stigne nova pošta."
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
msgid "Whether to set a mail reader or not."
msgstr "Da li treba postaviti čitač pošte ili ne."
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
msgid "Width of edit toolbars dialog"
msgstr "Širina prozora za uređivanje statusnih traka"
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
msgid "Width of main window"
msgstr "Širina glavnog prozora"
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
msgid "Width of properties dialog"
msgstr "Širina prozora sa postavkama"
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
msgid "New Mail"
msgstr "Nova pošta"
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
msgid "_Remove Toolbar"
msgstr "_Ukloni alatnu traku"
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
msgid "Separator"
msgstr "Graničnik"
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Prevucite stavku na alatnu traku kako biste je dodali, ili sa alatne trake u "
-"tabelu, kako biste je uklonili."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
msgid "Orientation"
msgstr "Orijentacija"
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
msgid "The orientation of the tray."
msgstr "Orijentacija obaveštajne zone."
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
msgid "A Mail Notification Icon"
msgstr "Sličica za dojavu prispeća pošte"
-# The email of the translator goes here
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
msgstr "Filip Miletić <filmil@gmail.com>"
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "nije moguće otvoriti vezu"
+
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
msgid "<span style=\"italic\">autodetect</span>"
msgstr "<span style=\"italic\">sam pronađi</span>"
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "_Kor.ime:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Lozinka:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
#, c-format
msgid ""
"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
"\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
msgstr ""
"Nije moguće prijaviti se za čitanje %s sandučeta %s, najverovatnije zato što "
"uneta lozinka nije ispravna.\n"
"\n"
"Molim unesite ponovo lozinku."
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
#, c-format
-msgid "Enter your password for %s mailbox %s."
+msgid "Enter your credentials for %s mailbox %s."
msgstr "Unesite lozinku za %s sanduče %s."
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Dojava pošte zahteva da upišete "
-"lozinku</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Potrebna je prijava"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Mesto"
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:103
msgid "_Location:"
msgstr "_Mesto:"
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
msgid "_Browse..."
msgstr "_Pregledaj..."
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "URI oznaka poštanskog sandučega"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
msgid "Select a File or Folder"
msgstr "Izaberite datoteku ili direktorijum"
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Da li slika treperi ili ne"
-
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
#, c-format
msgid "resolving %s"
msgstr "pronalazim %s"
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
#, c-format
msgid "unable to resolve %s: %s"
msgstr "Nije moguće pronaći %s: %s"
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
#, c-format
msgid "%s: unsupported address family"
msgstr "%s: ova vrsta adrese nije podržana"
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
#, c-format
msgid "%s: unable to create socket: %s"
msgstr "%s: nije moguće napraviti utičnicu: %s"
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
#, c-format
msgid "connecting to %s (%s) port %i"
msgstr "povezujem se sa %s (%s) port %i"
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
#, c-format
msgid "unable to connect: %s"
msgstr "nije moguće povezati se sa: %s"
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
msgid "connected successfully"
msgstr "povezivanje je uspelo"
#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
#, c-format
msgid "unable to connect to %s"
msgstr "nije moguće povezati se sa %s"
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
#, c-format
msgid "unable to initialize the OpenSSL library: %s"
msgstr "nije moguće pokrenuti OpenSSL biblioteku: %s"
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
#, c-format
msgid "unable to create a SSL/TLS object: %s"
msgstr "nije moguće napraviti SSL/TLS objekat: %s"
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
#, c-format
msgid "unable to set the SSL/TLS file descriptor: %s"
msgstr "nije moguće postaviti SSL/TLS opis za datoteku: %s"
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
#, c-format
msgid "unable to perform the SSL/TLS handshake: %s"
msgstr "nije moguće obaviti SSL/TLS kontakt: %s"
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
msgid "untrusted server"
msgstr "neproveren server"
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
#, c-format
msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
msgstr "SSL/TLS sloj je pokrenut (%s, %s %i-bit)"
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
#, c-format
msgid "%s, fingerprint: %s"
msgstr "%s, otisak: %s"
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
msgid "missing certificate"
msgstr "nedostaje sertifikat"
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
#, c-format
msgid ""
"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -565,333 +560,313 @@ msgstr ""
"sa \"%s\". Ako odlučite da se povežete na server, ova poruka neće ponovo "
"biti prikazana."
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
msgid "Connect to untrusted server?"
msgstr "Da li da se povežem na neprovereni server?"
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "_Poveži se"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
#, c-format
msgid "response \"%s\" is not valid in current context"
msgstr "odgovor \"%s\" nije ispravan u trenutno važećem kontekstu"
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
#, c-format
msgid "unable to parse response \"%s\""
msgstr "nije moguće obraditi odgovor \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
#, c-format
msgid "unable to read from server: %s"
msgstr "Nije moguće čitanje sa servera: %s"
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
msgid "unable to read from server: EOF"
msgstr "Nije moguće čitanje sa servera: EOF"
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "Ne mogu se dekodovati podaci putem SASL: %s"
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "nije moguće kodirati podatke uz pomoć SASL: %s"
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
#, c-format
msgid "unable to write to server: %s"
msgstr "nije moguć upis na server: %s"
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
msgid "unable to write to server: EOF"
msgstr "nije moguć upis na server: EOF"
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
#, c-format
msgid "unable to encode Base64: %s"
msgstr "nije moguće kodirati Base64: %s"
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "ne može se pokrenuti SASL biblioteka: %s"
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "ne može da se dobavi lokalna adresa utičnice: %s"
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "ne može da se dobavi udaljena adresa utičnice: %s"
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
#, c-format
msgid "unable to set SASL security properties: %s"
msgstr "nije moguće postaviti SASL sigurnosne postavke: %s"
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr "ne može se pokrenuti SASL prijava: SASL traži podatke koje nemamo"
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "ne može se pokrenuti SASL prijava: %s"
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "nije moguće uspostaviti SASL vezu: %s"
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr "SASL je tražio nama nepoznate podatke, obustavljam SASL prijavu"
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, obustavljam SASL prijavu"
#. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "nije moguće dekodovati Base64 ulaz sa servera: %s"
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-"server je započeo SASL razgovor, ali odgovor od klijenta stigao pre toga"
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-"server nije poslao SASL razgovor, ali nije bilo ni odgovora od klijenta."
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "SASL sigurnosni sloj nivoa snage %i je uspostavljen"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "ne mogu da pročitam postavku SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "upozorenje: ne mogu da pročitam postavku SASL_SSF: %s"
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
msgid "A directory creation error has occurred"
msgstr "Došlo je do greške pri pravljenju direktorijuma"
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
#, c-format
msgid "Unable to create directory \"%s\": %s."
msgstr "Nije moguće napraviti direktorijum ?%s?: %s."
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
#, c-format
msgid "recursively unsetting %s"
msgstr "rekurzivno poništavam %s"
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
msgid "syncing the GConf database"
msgstr "usklađujem GConf bazu podataka"
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
msgid "completed"
msgstr "urađeno"
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Vaš nalog na servisu Gmail"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "nevažeće mesto"
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-"Vaša lozinka na servisu Gmail (ako ne upišete lozinku, program će Vas "
-"zamoliti da je unesete kada to bude potrebno)"
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "Trenutno izabran URI"
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "libsoup nije izgrađen sa podrškom za SSL/TLS"
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Direktorijum"
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "nije moguće obraditi URI \"%s\""
-
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "server je poslao znake koji ne spadaju u skup UTF-8"
+#: ../src/mn-evolution-mailbox-properties.gob:169
+msgid ""
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
+msgstr "Dojava pošte ne može da se poveže sa Evolucijom. Pokrenite Evoluciju i uključite dodatak za povezivanje sa Dojavom pošte."
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "ne mogu da preuzmem podatke: %s"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "direktorijum nije nađen"
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "prijava u toku"
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "nije moguće povezati se sa Evolucijom"
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "prijava nije uspela"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Nije moguće uključiti priključak za Dojavu pošte"
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "tražim novu poštu"
+#: ../src/mn-evolution-plugin.c:130
+#, c-format
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr "Bonobo nije uspeo da pronađe %s server. Molim proverite instalaciju Dojave pošte."
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "ne može se pokrenuti ICU biblioteka"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr "Bonobo nije uspeo da zabeleži %s server. Molim proverite instalaciju Dojave pošte."
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "ne mogu da obradim podatke sa servisa Gmail"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "mesto dovoda nije ispravno navedeno"
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
#, c-format
-msgid "unable to open calendar: %s"
-msgstr "nije moguće otvoriti kalendar: %s"
+msgid "retrieving feed from %s"
+msgstr "preuzimanje izvora sa %s"
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
#, c-format
-msgid "unable to set calendar time: %s"
-msgstr "nije moguće postaviti vreme iz kalendara: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "nije moguće pronaći dovod: %s"
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "nije moguće dobaviti vreme iz kalendara: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "nije moguće obraditi dovod"
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
#, c-format
msgid "unable to read %s: %s"
msgstr "Nije moguće pročitati %s: %s"
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:51
#, c-format
msgid "unable to write to %s: %s"
msgstr "nije moguć upis na %s: %s"
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:53
#, c-format
msgid "unable to seek in %s: %s"
msgstr "Nije moguće pronaći u %s: %s"
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:55
#, c-format
msgid "unable to tell position of %s: %s"
msgstr "nije moguće saznati položaj za %s: %s"
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:57 ../src/mn-mh-mailbox-backend.gob:158
#, c-format
msgid "unable to close %s: %s"
msgstr "nije moguće zatvoriti %s: %s"
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
msgid "Mailbox:"
msgstr "Sanduče:"
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
msgid "in_box"
msgstr "in_box"
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
msgid "oth_er:"
msgstr "_drugo:"
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "K_oristi vreme dokolice, ako je moguće"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "ni_kad"
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Ime ili IP broj IMAP servera"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "a_utodetekcija"
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Vaše ime na IMAP serveru"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "_uvek"
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Vaša lozinka na IMAP serveru (ako ne upišete lozinku, program će Vas "
-"zamoliti da je unesete kada to bude potrebno)"
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Broj porta na IMAP serveru"
-
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Ime sandučeta"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Koristi <span style=\"italic\">IDLE</span> produžetak:"
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Da li treba koristiti vreme dokolice ili ne"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr "Podrška za SSL/TLS nije ugrađena"
-
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
msgid "server did not send capabilities"
msgstr "server nije obavestio o svojim mogućnostima"
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr "server je dojavio LOGINDISABLED, LOGIN prijava neće biti korišćena"
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
msgid "unable to login"
msgstr "prijava nije moguća"
#. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
msgid "server did not send search results"
msgstr "server nije poslao rezultate pretrage"
#. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
msgid "server did not send all the messages we requested"
msgstr "server nije poslao sve tražene poruke"
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
msgid "unable to fetch message"
msgstr "nije moguće dobaviti poruku"
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr "„Koristi IDLE proširenje“ je postavljeno na „nikad“ u postavkama sandučića, odjavljujem se"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "udaljeni server koristi %s, ne koristim IDLE produžetak"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr "udaljeni server koristi %s, IDLE proširenje možda neće ispravno raditi"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr "udaljeni server ne podržava IDLE proširenje, odjavljujem se"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
msgid "unknown server error"
msgstr "nepoznata greška na serveru"
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
msgid "server does not support in-band SSL/TLS"
msgstr "server ne podržava zaštitu putem SSL/TLS"
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -899,216 +874,145 @@ msgstr ""
"izabran je mehanizam za prijavu koji koristi SASL ali podrška za SASL nije "
"ugrađena u program"
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "nepoznat mehanizam za prijavu \"%s\""
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr "isključujem mehanizam „%s“ i pokušavam SASL prijavu"
+
+#: ../src/mn-imap-mailbox.gob:1435
msgid "falling back to IMAP LOGIN authentication"
msgstr "povratak na IMAP LOGIN prijavu"
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
msgid "authentication failed"
msgstr "prijava nije uspela"
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
msgid "Main _Window"
msgstr "Glavni _prozor"
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
msgid "_Mail Reader"
msgstr "_Čitač pošte"
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
msgid "_Update"
msgstr "_Osveži"
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "_Ukloni sa obaveštajne zone"
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Dodaj sanduče"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
#, c-format
msgid "%s Properties"
msgstr "Postavke za %s"
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "_Kor.ime:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Lozinka:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Vrsta veze:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Port:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "_Način prijave:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr "Oznaka"
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr "Označeni tekst koji se pojavljuje u oznaci tipa"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr "Veličina grupe"
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr "GtkSizeGroup za uravnanje kontrolnih oznaka"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Gotovo"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Dodaj sanduče"
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr "Da li su postavke sasvim popunjene ili ne"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Došlo je do greške prilikom nalepljivanja"
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
msgid "Mailbox"
msgstr "Sanduče"
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Format"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "neobrađeno %s sanduče (%s)"
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Nije moguće dodati sanduče"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "%s sanduče"
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "Sanduče je već u spisku."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "prepoznajem vrstu sandučeta..."
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "URI oznaka za sanduče"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "nedostaje atribut „vrsta“"
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Ime sandučeta"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "nepoznata vrsta sandučeta „%s“"
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Da li se ovo sanduče ručno proverava ili ne"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr "osobina „%s“: nije moguće prebaciti nisku „%s“ u vrednost vrste „%s“"
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "Spisak novih i nepročitanih MNMessage objekata"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "osobina „%s“ nema postavljenu vrednost"
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "Greška u pristupu sandučetu, ako postoji"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr "Došlo je do greške prilikom uvoženja starih sandučića"
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "ne postoji"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Nije moguće uvesti podešavanja sandučića"
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "nepoznat format"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "nije moguće obraditi XML dokument."
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "Nije moguće namestiti neposrednu dojavu nove pošte: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "Nedostaje koreni element."
-#: src/mn-mailbox.gob:421
+#: ../src/mn-mailboxes.gob:307
#, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Pošto nema druge mogućnosti, biće proveravani svaku %i sekundu (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[1] ""
-"Pošto nema druge mogućnosti, biće proveravani svake %i sekunde (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[2] ""
-"Pošto nema druge mogućnosti, biće proveravani svakih %i sekundi (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
+msgid "The root element \"%s\" is invalid."
+msgstr "Koreni element „%s“ je nevažeći."
-#: src/mn-mailbox.gob:432
+#: ../src/mn-mailboxes.gob:330
#, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Pošto nema druge mogućnosti, biće proveravani svaki %i minut (ovo kašnjenje "
-"se može promeniti iz prozora sa postavkama)"
-msgstr[1] ""
-"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[2] ""
-"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
+msgid "On line %i: %s."
+msgstr "U liniji %i: %s."
-#: src/mn-mailbox.gob:443
+#: ../src/mn-mailboxes.gob:335
#, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-"Pošto nema druge mogućnosti, biće proveravani na oko %i minut (ovo kašnjenje "
-"se može promeniti iz prozora sa postavkama)"
-msgstr[1] ""
-"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[2] ""
-"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
+msgid "On line %i: unknown element \"%s\"."
+msgstr "U liniji %i: nepoznati element „%s“."
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Došlo je do greške pri motrenju"
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
+msgstr[0] "Došlo je do greške prilikom učitavanja podešavanja sandučića"
+msgstr[1] "Došlo je do grešaka prilikom učitavanja podešavanja sandučića"
+msgstr[2] "Došlo je do grešaka prilikom učitavanja podešavanja sandučića"
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"Nije moguće namestiti neposrednu dojavu nove pošte za jedan ili više "
-"sandučića. %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Nije moguće sačuvati podešavanja sandučića"
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-"Pokazuje da li postoji bar jedno sanduče koje mora da se učestalo proverava"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Nijem moguće zapisati XML dokument."
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
#, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s nije podržan: %s"
+msgid "unable to delete %s: %s"
+msgstr "nije moguće obrisati %s: %s"
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
#, c-format
msgid "%s has %i new message"
msgid_plural "%s has %i new messages"
@@ -1116,170 +1020,174 @@ msgstr[0] "Sanduče %s ima %i novu poruku"
msgstr[1] "Sanduče %s ima %i nove poruke"
msgstr[2] "Sanduče %s ima %i novih poruka"
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
#, c-format
msgid "%s reported an error: %s"
msgstr "%s je dojavio grešku: %s"
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
#, c-format
msgid "unable to open folder \"new\": %s"
msgstr "nije moguće otvoriti direktorijum \"new\": %s"
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
#, c-format
msgid "unable to close folder \"new\": %s"
msgstr "nije moguće zatvoriti direktorijum \"new\": %s"
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
#, c-format
msgid "error while reading folder \"new\": %s"
msgstr "greška pri čitanju direktorijuma \"new\": %s"
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Poruke za pomoć"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Prebroj poruke"
+
#. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
msgid "_Mail"
msgstr "_Pošta"
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
msgid "_Edit"
msgstr "_Uredi"
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
msgid "_View"
msgstr "_Pregled"
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
msgid "_Help"
msgstr "P_omoć"
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
msgid "Launch the mail reader"
msgstr "P_okreni čitač pošte"
#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
msgid "Update the mail status"
msgstr "Osveži podatke o pošti"
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
msgid "_Close"
msgstr "_Zatvori"
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
msgid "Close this window"
msgstr "Zatvori ovaj prozor"
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
msgid "_Quit"
msgstr "_Kraj"
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
msgid "Quit Mail Notification"
msgstr "Ugasi dojavu pošte"
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
msgid "_Toolbars"
msgstr "_Alatne trake"
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
msgid "Customize the toolbars"
msgstr "Uredi alatne trake"
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
msgid "_Preferences"
msgstr "_Postavke"
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
msgid "Toolbars Styl_e"
msgstr "Stil alatnih _traka"
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
msgid "Customize the toolbars style"
msgstr "Prilagodi stil alatnih traka"
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
msgid "_Contents"
msgstr "_Sadržaj"
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
msgid "Display help"
msgstr "Prikaži pomoć"
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
msgid "_About"
msgstr "_O programu"
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
msgid "Display credits"
msgstr "Prikaži zasluge"
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
msgid "Show or hide the toolbars"
msgstr "Prikaži ili ukloni alatnu traku"
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
msgid "_Statusbar"
msgstr "_Statusna traka"
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
msgid "Show or hide the statusbar"
msgstr "Prikaži ili ukloni statusnu traku"
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
msgid "_Desktop Default"
msgstr "_Podrazumevano u okruženju"
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
msgid "Set the toolbars style to the desktop default setting"
msgstr "Postavi stilove traka na stil koji važi u celom radnom okruženju"
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
msgid "I_cons Only"
msgstr "Samo _slike"
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
msgid "Only display the toolbars icons"
msgstr "Prikaži samo slike u statusnoj traci"
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
msgid "_Text Only"
msgstr "Samo _tekst"
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
msgid "Only display the toolbars text"
msgstr "Prikaži samo tekst u alatnoj traci"
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
msgid "Text Belo_w Icons"
msgstr "Tekst _ispod slika"
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
msgid "Display the toolbars text below the icons"
msgstr "Prikaži tekst ispod odgovarajuće slike u alatnoj traci"
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
msgid "Text Be_side Icons"
msgstr "Tekst _pored slika"
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
msgid "Display the toolbars text beside the icons"
msgstr "Prikaži tekst pored odgovarajuće slike u alatnoj traci"
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
#, c-format
msgid "unable to load menus.xml: %s"
msgstr "Nije moguće pročitati menus.xml: %s"
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Poruke za pomoć"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Prebroj poruke"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "nije moguće učitati toolbars.xml: %s"
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
#, c-format
msgid "%i new message"
msgid_plural "%i new messages"
@@ -1287,53 +1195,43 @@ msgstr[0] "%i nova poruka"
msgstr[1] "%i nove poruke"
msgstr[2] "%i novih poruka"
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "nije moguće učitati toolbars.xml: %s"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Program ume da čita sandučiće u formatima: %s\n"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Ugrađene mogućnosti za sandučiće:"
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "GMAIL vremenski pečat"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Ugrađene mogućnosti za POP3 i IMAP: "
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Ugrađene mogućnosti: %s\n"
-
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
msgid "Enable informational output"
msgstr "Dozvoli rečitiji izlaz"
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
msgid "List the compiled-in features"
msgstr "Ispiši ugrađene mogućnosti"
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
msgid "Display the main window"
msgstr "Prikaži glavni prozor"
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
msgid "Display the properties dialog"
msgstr "Prikaži prozor sa postavkama"
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
msgid "Display the about dialog"
msgstr "Prikaži podatke o programu"
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
msgid "Close the mail summary popup"
msgstr "Zatvori prozor sa sažetkom poruka"
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Proveri poštu"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
msgid "Unset obsolete GConf configuration"
msgstr "Poništi zastarela GConf podešavanja"
@@ -1341,11 +1239,11 @@ msgstr "Poništi zastarela GConf podešavanja"
#. * We can't use mn_error_dialog() because gtk_init() has not been
#. * called yet.
#.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
msgid "multi-threading is not available"
msgstr "višenitni rad nije podržan"
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
msgid ""
"Bonobo could not locate the automation object. Please check your Mail "
"Notification installation."
@@ -1355,80 +1253,72 @@ msgstr ""
"Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
"odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
msgid "quitting Mail Notification"
msgstr "Gasim dojavu pošte"
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
msgid "Mail Notification is not running"
msgstr "Program za dojavu pošte nije pokrenut."
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
msgid "Unable to initialize the GnomeVFS library."
msgstr "Nije moguće pokrenuti biblioteku GnomeVFS."
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
msgid "updating the mail status"
msgstr "Proveravam poštu"
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
msgid "Mail Notification is already running"
msgstr "Program za dojavu pošte je već pokrenut."
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-"Bonobo nije uspeo da pronađe objekat za automatizaciju. Proverite "
-"instalaciju programa za dojavu pošte. (Prim. prev: usled greške u programu "
-"Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
-"odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
+"Bonobo could not locate the %s file. Please check your Mail Notification "
+"installation."
+msgstr "Bonobo nije mogao da pronađe datoteku %s. Molimo proverite podešavanja Dojave pošte."
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-"Bonobo nije uspeo da pronađe objekat za automatizaciju. Proverite "
-"instalaciju programa za dojavu pošte. (Prim. prev: usled greške u programu "
-"Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
-"odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "nije moguće zatvoriti datoteku: %s"
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:222
#, c-format
msgid "unable to open mailbox: %s"
msgstr "nije moguće otvoriti sanduče: %s"
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
msgid "unable to parse MIME message"
msgstr "nije moguće obraditi MIME poruku"
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
msgid "You have no new mail."
msgstr "Nema pošte."
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
msgid "Unreadable message"
msgstr "Nečitljiva poruka"
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
msgid "From"
msgstr "Od"
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
msgid "Subject"
msgstr "Tema"
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
msgid "Sent"
msgstr "Poslato"
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
msgid "Unknown"
msgstr "Nepoznato"
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
@@ -1436,7 +1326,7 @@ msgstr[0] "pre %i sekundu"
msgstr[1] "pre %i sekunde"
msgstr[2] "pre %i sekundi"
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
#, c-format
msgid "about %i minute ago"
msgid_plural "about %i minutes ago"
@@ -1444,7 +1334,7 @@ msgstr[0] "pre oko %i minut"
msgstr[1] "pre oko %i minuta"
msgstr[2] "pre oko %i minuta"
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
#, c-format
msgid "about %i hour ago"
msgid_plural "about %i hours ago"
@@ -1452,7 +1342,7 @@ msgstr[0] "pre oko %i sat"
msgstr[1] "pre oko %i sata"
msgstr[2] "pre oko %i sati"
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
#, c-format
msgid "about %i day ago"
msgid_plural "about %i days ago"
@@ -1460,7 +1350,7 @@ msgstr[0] "pre oko %i dan"
msgstr[1] "pre oko %i dana"
msgstr[2] "pre oko %i dana"
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
#, c-format
msgid "about %i week ago"
msgid_plural "about %i weeks ago"
@@ -1468,69 +1358,78 @@ msgstr[0] "pre oko %i nedelju"
msgstr[1] "pre oko %i nedelje"
msgstr[2] "pre oko %i nedelja"
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "greška pri čitanju datoteke .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "nijedno"
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr "nije moguće otvoriti datoteku .mh_sequences: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "istražujem"
+msgid "error while reading %s: %s"
+msgstr "greška pri čitanju %s: %s"
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "_Računar:"
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Detalji"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "nije moguće otvoriti %s: %s"
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
msgid "sta_ndard"
msgstr "_standard"
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
msgid "_in-band SSL/TLS"
msgstr "_ugrađeni SSL/TLS"
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS na posebnom portu"
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Ime ili IP broj POP3 servera"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "_Računar:"
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Vaše ime na POP3 serveru"
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Detalji"
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Vaša lozinka na POP3 serveru (ako ne upišete lozinku, program će Vas "
-"zamoliti da je unesete kada to bude potrebno)"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Vrsta veze:"
+
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Port:"
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Broj porta na POP3 serveru"
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "_Način prijave:"
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr "Podrška za SSL/TLS nije ugrađena"
+
+#: ../src/mn-pop3-mailbox.gob:359
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "parametri za mogućnost LOGIN-DELAY nisu ispravno postavljeni"
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr "SASL autentifikacija sa početnim klijentskim odgovorom nije uspela, pokušavam ponovo bez početnog klijentskog odgovora"
+
+#: ../src/mn-pop3-mailbox.gob:733
msgid "unknown error"
msgstr "nepoznata greška"
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1538,39 +1437,43 @@ msgstr[0] "tražen je zastoj pri prijavi, pauziram %i sekundu"
msgstr[1] "tražen je zastoj pri prijavi, pauziram %i sekunde"
msgstr[2] "tražen je zastoj pri prijavi, pauziram %i sekundi"
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
msgid "server does not support APOP authentication"
msgstr "server ne podržava prijavu korišćenjem mehanizma APOP"
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
msgid "falling back to APOP authentication"
msgstr "prelazim na APOP prijavu"
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
msgid "falling back to USER/PASS authentication"
msgstr "prelazim na prijavu pomoću imena i lozinke"
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Postavke za dojavu"
+
+#: ../src/mn-properties-dialog.gob:207
msgid "top left"
msgstr "gore-levo"
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
msgid "top right"
msgstr "gore-desno"
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
msgid "bottom left"
msgstr "dole-levo"
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
msgid "bottom right"
msgstr "dole-desno"
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
msgid "No mailbox selected."
msgstr "Nijedno sanduče nije izabrano."
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
@@ -1578,408 +1481,763 @@ msgstr[0] "Izabrano %i sanduče"
msgstr[1] "Izabrana %i sandučeta"
msgstr[2] "Izabrano %i sandučeta"
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Tekst poruke #%i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr "Dijalog za postavke Dojave pošte"
+
+#: ../src/mn-shell.gob:109
msgid "You have new mail."
msgstr "Imate novu poštu."
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
msgid "Mailboxes Having New Mail"
msgstr "Sandučići sa novom poštom"
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
msgid "Errors"
msgstr "Greške"
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Nepodržani sandučići"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
msgid "Mail Summary"
msgstr "Sažetak poruka"
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "nije moguće obraditi zastupnički URI ?%s?"
-
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
msgid "unknown SSL/TLS error"
msgstr "nepoznata greška u SSL/TLS"
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
msgid "Select _All"
msgstr "Izaberi _sve"
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
msgid "Leave Fullscreen"
msgstr "Ostavi na celom ekranu"
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "_Poveži se"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
#, c-format
msgid "unable to open folder: %s"
msgstr "nije moguće otvoriti direktorijum: %s"
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
#, c-format
msgid "unable to close folder: %s"
msgstr "nije moguće zatvoriti direktorijum: %s"
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
#, c-format
msgid "error while reading folder: %s"
msgstr "greška pri čitanju direktorijuma: %s"
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr "Lokalno sanduče"
+#: ../src/mn-sylpheed-mailbox-backend.gob:255
+msgid "unexpected end of file"
+msgstr "neočekivani kraj datoteke"
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-sylpheed-mailbox-backend.gob:269
#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr "Koristi se lokalno sanduče (<span weight=\"bold\">%s</span>)."
+msgid "incompatible file version \"%i\""
+msgstr "izdanje datoteke nije saglasno „%i“"
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-"Program nije uspeo da pronađe lokalno sanduče. Postavite promenljivu MAIL da "
-"pokazuje na njega."
+#: ../src/mn-sylpheed-mailbox-backend.gob:272
+msgid "file version missing"
+msgstr "nedostaje izdanje datoteke"
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "Razlog zašto sanduče nije podržano"
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
+msgstr "Sistemsko sanduče"
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "nije podržano"
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
+#, c-format
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
+msgstr "Vaše sistemsko sanduče je <span weight=\"bold\">%s</span>."
-#: src/mn-util.c:245
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
+msgid ""
+"The location of your system mailbox could not be detected. Check the MAIL "
+"environment variable."
+msgstr "Mesto sistemskog sandučeta nije pronađeno. Proverite promenljivu MAIL."
+
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "promenljiva MAIL nije definisana"
+
+#: ../src/mn-util.c:281
#, c-format
msgid "error loading image: %s"
msgstr "greška pri učitavanju slike: %s"
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
#, c-format
msgid "widget \"%s\" not found in interface \"%s\""
msgstr "element ?%s? nije pronađen u sučelju ?%s?"
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "primljen je neispravan spisak URI oznaka"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "nije moguće otvoriti kao modul: %s"
+
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "obrađivač signala „%s“ nije pronađen"
+
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Došlo je do greške pri prevlačenju/puštanju"
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "primljen je neispravan Mozilin URL"
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Primljen je nevažeći spisak mesta."
-#: src/mn-util.c:519
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Primljen je nevažeći Mozilin spisak mesta."
+
+#: ../src/mn-util.c:678
msgid "Unable to display help"
msgstr "Nije moguće prikazati pomoć"
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
#, c-format
msgid "Unable to create a thread: %s."
msgstr "Nije moguće pokrenuti nit: %s."
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
msgid "_Do not show this message again"
msgstr "_Ne prikazuj više ovu poruku"
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+msgid_plural ""
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr[0] "Sledeće mesto je nevažeće:\n"
+"\n"
+"%s"
+msgstr[1] "Sledeća mesta su nevažeća:\n"
+"\n"
+"%s"
+msgstr[2] "Sledeća mesta su nevažeća:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
msgid "A fatal error has occurred in Mail Notification"
msgstr "Došlo je do kobne greške u programu za dojavu pošte"
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
#, c-format
msgid "unable to get current time: %s"
msgstr "nije moguće dobaviti trenutno vreme: %s"
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "nevažeća odrednica za signal ?%s?"
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
msgid "A command error has occurred in Mail Notification"
msgstr "Došlo je do greške u komandama"
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
#, c-format
msgid "Unable to execute \"%s\": %s."
msgstr "Nije moguće izvršiti %s: %s"
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "Prijavi se"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "Nije moguće preimenovati %s u %s: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr "nije moguće nadgledati sadržaj sandučeta (%s), upiti su aktivirani"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr "nije moguće nadgledati sadržaj sandučeta (%s), upiti su aktivirani"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "format sandučeta nije prepoznat"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "ne postoji"
+
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Pošto nema druge mogućnosti, biće proveravani svaku %i sekundu (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[1] ""
+"Pošto nema druge mogućnosti, biće proveravani svake %i sekunde (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[2] ""
+"Pošto nema druge mogućnosti, biće proveravani svakih %i sekundi (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Pošto nema druge mogućnosti, biće proveravani svaki %i minut (ovo kašnjenje se "
+"može promeniti iz prozora sa postavkama)"
+msgstr[1] ""
+"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[2] ""
+"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Properties Dialog)."
+msgstr[0] ""
+"Pošto nema druge mogućnosti, biće proveravani na oko %i minut (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[1] ""
+"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[2] ""
+"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Došlo je do greške pri motrenju"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"Nije moguće namestiti neposrednu dojavu nove pošte za jedan ili više "
+"sandučića. %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
msgid "Edit Toolbars"
msgstr "Uredi alatne trake"
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
msgid "_Add a New Toolbar"
msgstr "_Dodaj novu alatnu traku"
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
msgid "_Use Default"
msgstr "_Koristi podrazumevano"
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span weight=\"bold\">Sažetak poruka</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Opšte</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "_Ime sandučeta:"
+
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
msgstr "_Vrsta sandučeta:"
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Naredbe</span>"
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
msgid "<span weight=\"bold\">Double-click Action</span>"
msgstr "<span weight=\"bold\">Naredba za dupli klik</span>"
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
msgid "<span weight=\"bold\">Fonts</span>"
msgstr "<span weight=\"bold\">Pisma</span>"
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Opšte</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Sandučići</span>"
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Mesto</span>"
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
msgid "Co_ntents:"
msgstr "_Sadržaj:"
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
msgid "Dis_play mail summary in tooltip"
msgstr "Prikaži prozor sa sažetkom poruka u oblačiću"
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
msgid "General"
msgstr "Opšte"
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "Hori_zontalni pomak:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Postavke za dojavu"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
msgid "Mail Summary Popup"
msgstr "Sažetak poruka"
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
msgid "Mailboxes"
msgstr "Sandučići"
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
msgid "Only display _recent mail"
msgstr "Prikaži samo skorašnje poruke"
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "_Mesto:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "Pauza između dve uzastopne provere"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "Naredba za pokretanje čitača pošte"
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "Naredba koja se pokreće kada je sva pošta pročitana"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr "Naredba koja se pokreće kada stiže nova pošta"
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
-"prozora sa sažetkom poruka"
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
-"sažetkom poruka"
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
msgid "Use these _fonts:"
msgstr "Koristi ova _pisma:"
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Kada je s_va pošta pročitana:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Kada je _sva pošta pročitana:"
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
msgid "When _new mail arrives:"
msgstr "Kada _stigne nova pošta:"
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr "Da li statusna sličica treperi pri greškama ili ne"
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom poruka"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr "Da li treba ili ne treba prikazivati sažetak poruka u oblačiću"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Da li treba ili ne treba prikazivati sažetak poruka kada stigne nova pošta"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Da li treba prikazivati prethodno prikazane poruke ili ne"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr "Da li se pokreće ili ne pokreće komanda kada je sva pošta pročitana"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr "Da li se pokreće komanda kada stigne pošta ili ne"
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Da li treba postaviti čitač pošte"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr "Da li pokrenuti dojavu pošte kada se prijavite na sistem"
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
msgid "_Automatically close after:"
msgstr "_Automatski zatvori posle:"
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
msgid "_Blink on errors"
msgstr "_Treperi pri greškama"
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
msgid "_Delay between mail checks:"
msgstr "_Pauza između provera:"
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "Prikaži probno prozorče"
+
+#: ../ui/properties-dialog.glade.h:21
msgid "_Display the main window"
msgstr "_Prikaži glavni prozor"
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
msgid "_Enable mail summary popup"
msgstr "Dozvoli prikaz sažetka poruka"
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "_Horizontalni pomak:"
+
+#: ../ui/properties-dialog.glade.h:24
msgid "_Launch the mail reader"
msgstr "P_okreni čitač pošte"
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
msgid "_Mail reader:"
msgstr "_Čitač pošte:"
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Mesto:"
+
+#: ../ui/properties-dialog.glade.h:27
msgid "_Start Mail Notification on GNOME login"
msgstr "Pokreni _dojavu pri prijavi"
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
msgid "_Title:"
msgstr "_Naslov:"
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
msgid "_Update the mail status"
msgstr "_Osveži podatke o pošti"
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
msgid "_Use fonts from theme"
msgstr "Koristi pisma iz _teme"
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
msgid "_Vertical offset:"
msgstr "_Vertikalni pomak:"
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
msgid "minutes"
msgstr "minuta"
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
msgid "pixels"
msgstr "tačaka"
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
msgid "seconds"
msgstr "sekundi"
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Sažetak poruka</span>"
+#~ msgid "Has already been run"
+#~ msgstr "Već je pokrenut"
-#: ui/welcome.glade.h:1
-msgid ""
-"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
-"\n"
-"Mail Notification has been loaded successfully.\n"
-"\n"
-"Since this is the first time you run Mail Notification, you need to "
-"configure it.\n"
-"\n"
-"Note: this message will not be shown anymore. To configure Mail Notification "
-"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
-"span> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Prvo pokretanje</span>\n"
-"\n"
-"Program za dojavu pošte je uspešno pokrenut.\n"
-"\n"
-"Pošto ste program za dojavu pošte prvi put pokrenuli, verovatno želite i da "
-"ga podesite.\n"
-"\n"
-"Pažnja: ova poruka se ubuduće neće prikazivati. Da biste podesili dojavu "
-"pošte, izaberite stavku Programi <span weight=\"bold\">Programi</span> → "
-"<span weight=\"bold\">Postavke okruženja</span> → <span weight=\"bold"
-"\">Dojava pošte</span> (ili na nekim sistemima <span weight=\"bold"
-"\">Programi → Postavke → Još postavki → Dojava pošte</span>)."
+#~ msgid "Mailbox list"
+#~ msgstr "Spisak sandučića"
+
+#~ msgid "The list of mailboxes to monitor."
+#~ msgstr "Spisak sandučića koji se prate."
+
+#~ msgid "Whether Mail Notification has already been run or not."
+#~ msgstr "Da li je program pokretan pre ili nije."
+
+#~ msgid ""
+#~ "Drag an item onto the toolbars above to add it, from the toolbars in the "
+#~ "items table to remove it."
+#~ msgstr ""
+#~ "Prevucite stavku na alatnu traku kako biste je dodali, ili sa alatne "
+#~ "trake u tabelu, kako biste je uklonili."
+
+# The email of the translator goes here
+#~ msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#~ msgstr "Filip Miletić <filmil@gmail.com>"
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr "_Podesi dojavu pošte"
+#~ msgid ""
+#~ "<span weight=\"bold\" size=\"larger\">Mail Notification requires a "
+#~ "password</span>\n"
+#~ "\n"
+#~ "%s"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Dojava pošte zahteva da upišete "
+#~ "lozinku</span>\n"
+#~ "\n"
+#~ "%s"
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr "P_reskoči podešavanja"
+#~ msgid "The URI of the mailbox"
+#~ msgstr "URI oznaka poštanskog sandučega"
+
+#~ msgid "Whether the image is blinking or not"
+#~ msgstr "Da li slika treperi ili ne"
#~ msgid "received non-ASCII data from server"
#~ msgstr "server je poslao znake koji ne spadaju u skup ASKRI"
+#~ msgid ""
+#~ "the server sent a SASL challenge, but there was a pending initial SASL "
+#~ "client response"
+#~ msgstr ""
+#~ "server je započeo SASL razgovor, ali odgovor od klijenta stigao pre toga"
+
+#~ msgid ""
+#~ "the server did not send a SASL challenge, but there was no pending "
+#~ "initial SASL client response"
+#~ msgstr ""
+#~ "server nije poslao SASL razgovor, ali nije bilo ni odgovora od klijenta."
+
+#~ msgid "Your Gmail username"
+#~ msgstr "Vaš nalog na servisu Gmail"
+
+#~ msgid ""
+#~ "Your Gmail password (if left blank, you will be prompted for the password "
+#~ "when needed)"
+#~ msgstr ""
+#~ "Vaša lozinka na servisu Gmail (ako ne upišete lozinku, program će Vas "
+#~ "zamoliti da je unesete kada to bude potrebno)"
+
+#~ msgid "libsoup has not been compiled with SSL/TLS support"
+#~ msgstr "libsoup nije izgrađen sa podrškom za SSL/TLS"
+
+#~ msgid "unable to parse URI \"%s\""
+#~ msgstr "nije moguće obraditi URI \"%s\""
+
+#~ msgid "received non-UTF-8 data from server"
+#~ msgstr "server je poslao znake koji ne spadaju u skup UTF-8"
+
+#~ msgid "unable to transfer data: %s"
+#~ msgstr "ne mogu da preuzmem podatke: %s"
+
+#~ msgid "logging in"
+#~ msgstr "prijava u toku"
+
+#~ msgid "login failed"
+#~ msgstr "prijava nije uspela"
+
+#~ msgid "searching for unread mail"
+#~ msgstr "tražim novu poštu"
+
+#~ msgid "unable to initialize the ICU library"
+#~ msgstr "ne može se pokrenuti ICU biblioteka"
+
+#~ msgid "unable to parse Gmail data"
+#~ msgstr "ne mogu da obradim podatke sa servisa Gmail"
+
+#~ msgid "unable to open calendar: %s"
+#~ msgstr "nije moguće otvoriti kalendar: %s"
+
+#~ msgid "unable to set calendar time: %s"
+#~ msgstr "nije moguće postaviti vreme iz kalendara: %s"
+
+#~ msgid "unable to get calendar time: %s"
+#~ msgstr "nije moguće dobaviti vreme iz kalendara: %s"
+
+#~ msgid "U_se idle mode if possible"
+#~ msgstr "K_oristi vreme dokolice, ako je moguće"
+
+#~ msgid "The hostname or IP address of the IMAP server"
+#~ msgstr "Ime ili IP broj IMAP servera"
+
+#~ msgid "Your username on the IMAP server"
+#~ msgstr "Vaše ime na IMAP serveru"
+
+#~ msgid ""
+#~ "Your password on the IMAP server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Vaša lozinka na IMAP serveru (ako ne upišete lozinku, program će Vas "
+#~ "zamoliti da je unesete kada to bude potrebno)"
+
+#~ msgid "The port number of the IMAP server"
+#~ msgstr "Broj porta na IMAP serveru"
+
+#~ msgid "If possible, whether to use idle mode or not"
+#~ msgstr "Da li treba koristiti vreme dokolice ili ne"
+
+#~ msgid "Label"
+#~ msgstr "Oznaka"
+
+#~ msgid "The marked up text to show in the type combo box"
+#~ msgstr "Označeni tekst koji se pojavljuje u oznaci tipa"
+
+#~ msgid "Size group"
+#~ msgstr "Veličina grupe"
+
+#~ msgid "A GtkSizeGroup for aligning control labels"
+#~ msgstr "GtkSizeGroup za uravnanje kontrolnih oznaka"
+
+#~ msgid "Complete"
+#~ msgstr "Gotovo"
+
+#~ msgid "Whether the properties are completely filled or not"
+#~ msgstr "Da li su postavke sasvim popunjene ili ne"
+
+#~ msgid "Format"
+#~ msgstr "Format"
+
+#~ msgid "The mailbox is already in the list."
+#~ msgstr "Sanduče je već u spisku."
+
+#~ msgid "The mailbox URI"
+#~ msgstr "URI oznaka za sanduče"
+
+#~ msgid "The mailbox human-readable name"
+#~ msgstr "Ime sandučeta"
+
+#~ msgid "Whether the mailbox has to be polled or not"
+#~ msgstr "Da li se ovo sanduče ručno proverava ili ne"
+
+#~ msgid "The list of new and unread MNMessage objects"
+#~ msgstr "Spisak novih i nepročitanih MNMessage objekata"
+
+#~ msgid "The mailbox error, if any"
+#~ msgstr "Greška u pristupu sandučetu, ako postoji"
+
+#~ msgid "unable to enable immediate notification: %s"
+#~ msgstr "Nije moguće namestiti neposrednu dojavu nove pošte: %s"
+
+#~ msgid "Whether one or more of the mailboxes has to be polled"
+#~ msgstr ""
+#~ "Pokazuje da li postoji bar jedno sanduče koje mora da se učestalo "
+#~ "proverava"
+
+#~ msgid "%s is unsupported: %s"
+#~ msgstr "%s nije podržan: %s"
+
+#~ msgid "Gmail timestamps"
+#~ msgstr "GMAIL vremenski pečat"
+
+#~ msgid "Report the mail status"
+#~ msgstr "Proveri poštu"
+
+#~ msgid ""
+#~ "Bonobo could not locate the GNOME_MailNotification_Automation.server "
+#~ "file. Please check your Mail Notification installation."
+#~ msgstr ""
+#~ "Bonobo nije uspeo da pronađe objekat za automatizaciju. Proverite "
+#~ "instalaciju programa za dojavu pošte. (Prim. prev: usled greške u "
+#~ "programu Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, "
+#~ "treba da se odjavite i ponovo prijavite na sistem da bi sve počelo da "
+#~ "radi)"
+
+#~ msgid "error while reading .mh_sequences: %s"
+#~ msgstr "greška pri čitanju datoteke .mh_sequences: %s"
+
+#~ msgid "unable to open .mh_sequences: %s"
+#~ msgstr "nije moguće otvoriti datoteku .mh_sequences: %s"
+
+#~ msgid "detecting"
+#~ msgstr "istražujem"
+
+#~ msgid "The hostname or IP address of the POP3 server"
+#~ msgstr "Ime ili IP broj POP3 servera"
+
+#~ msgid "Your username on the POP3 server"
+#~ msgstr "Vaše ime na POP3 serveru"
+
+#~ msgid ""
+#~ "Your password on the POP3 server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Vaša lozinka na POP3 serveru (ako ne upišete lozinku, program će Vas "
+#~ "zamoliti da je unesete kada to bude potrebno)"
+
+#~ msgid "The port number of the POP3 server"
+#~ msgstr "Broj porta na POP3 serveru"
+
+#~ msgid "Unsupported Mailboxes"
+#~ msgstr "Nepodržani sandučići"
+
+#~ msgid "unable to parse proxy URI \"%s\""
+#~ msgstr "nije moguće obraditi zastupnički URI ?%s?"
+
+#~ msgid "The reason why the mailbox is unsupported"
+#~ msgstr "Razlog zašto sanduče nije podržano"
+
+#~ msgid "unsupported"
+#~ msgstr "nije podržano"
+
+#~ msgid "received an invalid URI list"
+#~ msgstr "primljen je neispravan spisak URI oznaka"
+
+#~ msgid "received an invalid Mozilla URL"
+#~ msgstr "primljen je neispravan Mozilin URL"
+
+#~ msgid "_Authenticate"
+#~ msgstr "Prijavi se"
+
+#~ msgid "The amount of time to wait before closing the mail summary popup"
+#~ msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka"
+
+#~ msgid "The amount of time to wait between mail checks"
+#~ msgstr "Pauza između dve uzastopne provere"
+
+#~ msgid "The command to run to launch the mail reader"
+#~ msgstr "Naredba za pokretanje čitača pošte"
+
+#~ msgid "The command to run when all mail is read"
+#~ msgstr "Naredba koja se pokreće kada je sva pošta pročitana"
+
+#~ msgid "The command to run when new mail arrives"
+#~ msgstr "Naredba koja se pokreće kada stiže nova pošta"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the left or right side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
+#~ "prozora sa sažetkom poruka"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the top or bottom side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
+#~ "sažetkom poruka"
+
+#~ msgid "Whether the status icon should blink on errors or not"
+#~ msgstr "Da li statusna sličica treperi pri greškama ili ne"
+
+#~ msgid "Whether to automatically close the mail summary popup or not"
+#~ msgstr ""
+#~ "Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom poruka"
+
+#~ msgid ""
+#~ "Whether to display the mail summary in the status icon tooltip or not"
+#~ msgstr "Da li treba ili ne treba prikazivati sažetak poruka u oblačiću"
+
+#~ msgid ""
+#~ "Whether to display the mail summary popup when new mail arrives or not"
+#~ msgstr ""
+#~ "Da li treba ili ne treba prikazivati sažetak poruka kada stigne nova pošta"
+
+#~ msgid "Whether to hide previously displayed mail or not"
+#~ msgstr "Da li treba prikazivati prethodno prikazane poruke ili ne"
+
+#~ msgid "Whether to run a command when all mail is read or not"
+#~ msgstr "Da li se pokreće ili ne pokreće komanda kada je sva pošta pročitana"
+
+#~ msgid "Whether to run a command when new mail arrives or not"
+#~ msgstr "Da li se pokreće komanda kada stigne pošta ili ne"
+
+#~ msgid "Whether to set a mail reader or not"
+#~ msgstr "Da li treba postaviti čitač pošte"
+
+#~ msgid ""
+#~ "Whether to start Mail Notification when you log into your GNOME session "
+#~ "or not"
+#~ msgstr "Da li pokrenuti dojavu pošte kada se prijavite na sistem"
+
+#~ msgid ""
+#~ "<span weight=\"bold\" size=\"larger\">First startup</span>\n"
+#~ "\n"
+#~ "Mail Notification has been loaded successfully.\n"
+#~ "\n"
+#~ "Since this is the first time you run Mail Notification, you need to "
+#~ "configure it.\n"
+#~ "\n"
+#~ "Note: this message will not be shown anymore. To configure Mail "
+#~ "Notification again, choose <span weight=\"bold\">Applications</span> → "
+#~ "<span weight=\"bold\">Desktop Preferences</span> → <span weight=\"bold"
+#~ "\">Mail Notification</span> (or on some systems <span weight=\"bold"
+#~ "\">Applications → Preferences → More Preferences → Mail Notification</"
+#~ "span>)."
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Prvo pokretanje</span>\n"
+#~ "\n"
+#~ "Program za dojavu pošte je uspešno pokrenut.\n"
+#~ "\n"
+#~ "Pošto ste program za dojavu pošte prvi put pokrenuli, verovatno želite i "
+#~ "da ga podesite.\n"
+#~ "\n"
+#~ "Pažnja: ova poruka se ubuduće neće prikazivati. Da biste podesili dojavu "
+#~ "pošte, izaberite stavku Programi <span weight=\"bold\">Programi</span> → "
+#~ "<span weight=\"bold\">Postavke okruženja</span> → <span weight=\"bold"
+#~ "\">Dojava pošte</span> (ili na nekim sistemima <span weight=\"bold"
+#~ "\">Programi → Postavke → Još postavki → Dojava pošte</span>)."
+
+#~ msgid "_Configure Mail Notification"
+#~ msgstr "_Podesi dojavu pošte"
+
+#~ msgid "_Skip configuration"
+#~ msgstr "P_reskoči podešavanja"
+
#~ msgid "Use a custom font for the contents of the mail summary popup"
#~ msgstr "Koristi posebno pismo za sadržaj prozora sa sažetkom poruka"
@@ -2041,12 +2299,6 @@ msgstr "P_reskoči podešavanja"
#~ "Da li treba ili ne treba koristiti posebno pismo za naslov prozora sa "
#~ "sažetkom poruka"
-#~ msgid "The following mailbox has new mail:\n"
-#~ msgid_plural "The following mailboxes have new mail:\n"
-#~ msgstr[0] "Sanduče sa novom poštom:\n"
-#~ msgstr[1] "Sandučići sa novom poštom:\n"
-#~ msgstr[2] "Sandučići sa novom poštom:\n"
-
#~ msgid "The following mailbox reported an error:\n"
#~ msgid_plural "The following mailboxes reported an error:\n"
#~ msgstr[0] "Ovo sanduče ima grešku:\n"
@@ -2087,9 +2339,6 @@ msgstr "P_reskoči podešavanja"
#~ msgid "Your password on the POP3 server"
#~ msgstr "Vaša lozinka na POP3 serveru"
-#~ msgid "A command error has occurred"
-#~ msgstr "Došlo je do greške u komandama"
-
#~ msgid "Unable to execute double-clicked command: %s."
#~ msgstr "Nije moguće izvršiti komandu na dvostruki klik: %s."
diff --git a/src/GNOME_MailNotification.idl b/src/GNOME_MailNotification.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Bonobo.idl>
+
+module GNOME
+{
+ module MailNotification
+ {
+ interface Automation : Bonobo::Unknown
+ {
+ void update ();
+ void displayMainWindow ();
+ void displayProperties ();
+ void displayAbout ();
+ void closePopup ();
+ void quit ();
+ };
+ };
+};
diff --git a/src/GNOME_MailNotification_Evolution.idl b/src/GNOME_MailNotification_Evolution.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Bonobo.idl>
+
+module GNOME
+{
+ module MailNotification
+ {
+ module Evolution
+ {
+ typedef unsigned long time_t;
+
+ struct Message
+ {
+ time_t sent_time;
+ string id;
+ string from;
+ string subject;
+ };
+ typedef sequence<Message> MessageSeq;
+
+ interface Glue : Bonobo::Unknown
+ {
+ exception FolderNotFound {};
+
+ MessageSeq getUnseenMessages (in string folder_uri)
+ raises (FolderNotFound);
+
+ string getFolderName (in string folder_uri)
+ raises (FolderNotFound);
+ };
+ };
+ };
+};
diff --git a/src/MNAutomation.idl b/src/MNAutomation.idl
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Bonobo.idl>
-
-module GNOME
-{
- interface MNAutomation : Bonobo::Unknown
- {
- void update ();
- void report (out string report);
- void displayMainWindow ();
- void displayProperties ();
- void displayAbout ();
- void closePopup ();
- void quit ();
- };
-};
diff --git a/src/Makefile.am b/src/Makefile.am
@@ -1,27 +1,27 @@
bin_PROGRAMS = mail-notification
if WITH_MBOX
-mbox_gob_sources = mn-mbox-mailbox.gob
+mbox_gob_sources = mn-mbox-mailbox-backend.gob
mbox_gob_built_sources = \
- mn-mbox-mailbox-private.h \
- mn-mbox-mailbox.c \
- mn-mbox-mailbox.h
+ mn-mbox-mailbox-backend-private.h \
+ mn-mbox-mailbox-backend.c \
+ mn-mbox-mailbox-backend.h
endif
if WITH_MH
-mh_gob_sources = mn-mh-mailbox.gob
+mh_gob_sources = mn-mh-mailbox-backend.gob
mh_gob_built_sources = \
- mn-mh-mailbox-private.h \
- mn-mh-mailbox.c \
- mn-mh-mailbox.h
+ mn-mh-mailbox-backend-private.h \
+ mn-mh-mailbox-backend.c \
+ mn-mh-mailbox-backend.h
endif
if WITH_MAILDIR
-maildir_gob_sources = mn-maildir-mailbox.gob
+maildir_gob_sources = mn-maildir-mailbox-backend.gob
maildir_gob_built_sources = \
- mn-maildir-mailbox-private.h \
- mn-maildir-mailbox.c \
- mn-maildir-mailbox.h
+ mn-maildir-mailbox-backend-private.h \
+ mn-maildir-mailbox-backend.c \
+ mn-maildir-mailbox-backend.h
endif
if WITH_POP3
@@ -55,31 +55,39 @@ if WITH_POP3_OR_IMAP
client_session_sources = mn-client-session.c mn-client-session.h
pi_gob_sources = \
mn-auth-combo-box.gob \
- mn-pi-mailbox-properties.gob
+ mn-pi-mailbox-properties.gob \
+ mn-pi-mailbox.gob
pi_gob_built_sources = \
- mn-auth-combo-box-private.h \
- mn-auth-combo-box.c \
- mn-auth-combo-box.h \
- mn-pi-mailbox-properties-private.h \
- mn-pi-mailbox-properties.c \
- mn-pi-mailbox-properties.h
+ mn-auth-combo-box-private.h \
+ mn-auth-combo-box.c \
+ mn-auth-combo-box.h \
+ mn-pi-mailbox-properties-private.h \
+ mn-pi-mailbox-properties.c \
+ mn-pi-mailbox-properties.h \
+ mn-pi-mailbox-private.h \
+ mn-pi-mailbox.c \
+ mn-pi-mailbox.h
endif
if WITH_POP3_OR_IMAP_OR_GMAIL
authenticated_mailbox_gob_sources = \
+ mn-authenticated-mailbox-properties.gob \
mn-authenticated-mailbox.gob
authenticated_mailbox_gob_built_sources = \
- mn-authenticated-mailbox-private.h \
- mn-authenticated-mailbox.c \
+ mn-authenticated-mailbox-properties-private.h \
+ mn-authenticated-mailbox-properties.c \
+ mn-authenticated-mailbox-properties.h \
+ mn-authenticated-mailbox-private.h \
+ mn-authenticated-mailbox.c \
mn-authenticated-mailbox.h
endif
if WITH_SYLPHEED
-sylpheed_gob_sources = mn-sylpheed-mailbox.gob
+sylpheed_gob_sources = mn-sylpheed-mailbox-backend.gob
sylpheed_gob_built_sources = \
- mn-sylpheed-mailbox-private.h \
- mn-sylpheed-mailbox.c \
- mn-sylpheed-mailbox.h
+ mn-sylpheed-mailbox-backend-private.h \
+ mn-sylpheed-mailbox-backend.c \
+ mn-sylpheed-mailbox-backend.h
endif
if WITH_GMAIL
@@ -93,17 +101,39 @@ gmail_gob_built_sources = \
mn-gmail-mailbox-private.h \
mn-gmail-mailbox.c \
mn-gmail-mailbox.h
-gmail_sources = \
- mn-sgml-ref.c \
- mn-sgml-ref.h \
- mn-soup.c \
- mn-soup.h
-gmail_built_sources = \
- mn-sgml-entities.h
-
-if WITH_GMAIL_TIMESTAMPS
-icu_sources = mn-icu.c mn-icu.h
endif
+
+if WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED
+vfs_mailbox_gob_sources = \
+ mn-custom-vfs-mailbox.gob \
+ mn-system-vfs-mailbox-properties.gob \
+ mn-system-vfs-mailbox.gob \
+ mn-vfs-mailbox-backend.gob \
+ mn-vfs-mailbox.gob
+vfs_mailbox_gob_built_sources = \
+ mn-custom-vfs-mailbox-private.h \
+ mn-custom-vfs-mailbox.c \
+ mn-custom-vfs-mailbox.h \
+ mn-system-vfs-mailbox-properties-private.h \
+ mn-system-vfs-mailbox-properties.c \
+ mn-system-vfs-mailbox-properties.h \
+ mn-system-vfs-mailbox-private.h \
+ mn-system-vfs-mailbox.c \
+ mn-system-vfs-mailbox.h \
+ mn-vfs-mailbox-backend-private.h \
+ mn-vfs-mailbox-backend.c \
+ mn-vfs-mailbox-backend.h \
+ mn-vfs-mailbox-private.h \
+ mn-vfs-mailbox.c \
+ mn-vfs-mailbox.h
+endif
+
+if WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION
+reentrant_mailbox_gob_sources = mn-reentrant-mailbox.gob
+reentrant_mailbox_gob_built_sources = \
+ mn-reentrant-mailbox-private.h \
+ mn-reentrant-mailbox.c \
+ mn-reentrant-mailbox.h
endif
if WITH_MIME
@@ -126,12 +156,67 @@ if WITH_SASL
sasl_sources = mn-sasl.c mn-sasl.h
endif
-idl_sources = MNAutomation.idl
+if WITH_EVOLUTION
+evolution_plugin_eplug = org-gnome-mail-notification.eplug
+
+evolution_shared_sources = mn-evolution.h
+
+evolution_shared_idl_sources = GNOME_MailNotification_Evolution.idl
+evolution_shared_idl_built_sources = \
+ GNOME_MailNotification_Evolution-common.c \
+ GNOME_MailNotification_Evolution-stubs.c \
+ GNOME_MailNotification_Evolution-skels.c \
+ GNOME_MailNotification_Evolution.h
+
+evolution_plugin_gob_sources = mn-evolution-glue.gob
+evolution_plugin_gob_built_sources = \
+ mn-evolution-glue-private.h \
+ mn-evolution-glue.c \
+ mn-evolution-glue.h
+
+evolution_gob_sources = \
+ mn-corba-object.gob \
+ mn-evolution-mailbox-properties.gob \
+ mn-evolution-mailbox.gob
+evolution_gob_built_sources = \
+ mn-corba-object-private.h \
+ mn-corba-object.c \
+ mn-corba-object.h \
+ mn-evolution-mailbox-properties-private.h \
+ mn-evolution-mailbox-properties.c \
+ mn-evolution-mailbox-properties.h \
+ mn-evolution-mailbox-private.h \
+ mn-evolution-mailbox.c \
+ mn-evolution-mailbox.h
+
+evolution_plugin_DATA = $(evolution_plugin_eplug)
+evolution_plugin_LTLIBRARIES = liborg-gnome-mail-notification.la
+
+nodist_liborg_gnome_mail_notification_la_SOURCES = \
+ $(evolution_shared_idl_built_sources)
+liborg_gnome_mail_notification_la_SOURCES = \
+ $(evolution_shared_sources) \
+ $(evolution_shared_idl_sources) \
+ $(evolution_plugin_gob_sources) \
+ $(evolution_plugin_gob_built_sources) \
+ mn-evolution-folder-tree-control.c \
+ mn-evolution-folder-tree-control.h \
+ mn-evolution-plugin.c
+
+liborg_gnome_mail_notification_la_CPPFLAGS = $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -DG_LOG_DOMAIN="\"$(PACKAGE)\"" \
+ $(EVOLUTION_PLUGIN_CFLAGS)
+liborg_gnome_mail_notification_la_LDFLAGS = -avoid-version -module $(EVOLUTION_PLUGIN_LIBS)
+endif
+
+idl_sources = $(evolution_shared_idl_sources) GNOME_MailNotification.idl
idl_built_sources = \
- MNAutomation-common.c \
- MNAutomation-stubs.c \
- MNAutomation-skels.c \
- MNAutomation.h
+ $(evolution_shared_idl_built_sources) \
+ GNOME_MailNotification-common.c \
+ GNOME_MailNotification-stubs.c \
+ GNOME_MailNotification-skels.c \
+ GNOME_MailNotification.h
gob_sources = \
$(mbox_gob_sources) \
@@ -143,23 +228,28 @@ gob_sources = \
$(pi_gob_sources) \
$(sylpheed_gob_sources) \
$(gmail_gob_sources) \
+ $(evolution_gob_sources) \
+ $(vfs_mailbox_gob_sources) \
+ $(reentrant_mailbox_gob_sources) \
$(mime_gob_sources) \
mn-about-dialog.gob \
mn-autodetect-mailbox-properties.gob \
mn-automation.gob \
mn-blinking-image.gob \
+ mn-dialog.gob \
mn-mail-icon.gob \
+ mn-mail-summary-popup.gob \
+ mn-mailbox-properties-dialog.gob \
+ mn-mailbox-properties.gob \
mn-mailbox-view.gob \
mn-mailbox.gob \
mn-mailboxes.gob \
+ mn-main-window.gob \
mn-message-view.gob \
mn-message.gob \
- mn-pending-mailbox.gob \
+ mn-properties-dialog.gob \
mn-shell.gob \
- mn-system-mailbox-properties.gob \
- mn-tooltips.gob \
- mn-unsupported-mailbox.gob \
- mn-uri.gob
+ mn-tooltips.gob
gob_built_sources = \
$(mbox_gob_built_sources) \
$(mh_gob_built_sources) \
@@ -170,6 +260,9 @@ gob_built_sources = \
$(pi_gob_built_sources) \
$(sylpheed_gob_built_sources) \
$(gmail_gob_built_sources) \
+ $(evolution_gob_built_sources) \
+ $(vfs_mailbox_gob_built_sources) \
+ $(reentrant_mailbox_gob_built_sources) \
$(mime_gob_built_sources) \
mn-about-dialog-private.h \
mn-about-dialog.c \
@@ -183,9 +276,21 @@ gob_built_sources = \
mn-blinking-image-private.h \
mn-blinking-image.c \
mn-blinking-image.h \
+ mn-dialog-private.h \
+ mn-dialog.c \
+ mn-dialog.h \
mn-mail-icon-private.h \
mn-mail-icon.c \
mn-mail-icon.h \
+ mn-mail-summary-popup-private.h \
+ mn-mail-summary-popup.c \
+ mn-mail-summary-popup.h \
+ mn-mailbox-properties-dialog-private.h \
+ mn-mailbox-properties-dialog.c \
+ mn-mailbox-properties-dialog.h \
+ mn-mailbox-properties-private.h \
+ mn-mailbox-properties.c \
+ mn-mailbox-properties.h \
mn-mailbox-view-private.h \
mn-mailbox-view.c \
mn-mailbox-view.h \
@@ -195,30 +300,24 @@ gob_built_sources = \
mn-mailboxes-private.h \
mn-mailboxes.c \
mn-mailboxes.h \
+ mn-main-window-private.h \
+ mn-main-window.c \
+ mn-main-window.h \
mn-message-view-private.h \
mn-message-view.c \
mn-message-view.h \
mn-message-private.h \
mn-message.c \
mn-message.h \
- mn-pending-mailbox-private.h \
- mn-pending-mailbox.c \
- mn-pending-mailbox.h \
+ mn-properties-dialog-private.h \
+ mn-properties-dialog.c \
+ mn-properties-dialog.h \
mn-shell-private.h \
mn-shell.c \
mn-shell.h \
- mn-system-mailbox-properties-private.h \
- mn-system-mailbox-properties.c \
- mn-system-mailbox-properties.h \
mn-tooltips-private.h \
mn-tooltips.c \
- mn-tooltips.h \
- mn-unsupported-mailbox-private.h \
- mn-unsupported-mailbox.c \
- mn-unsupported-mailbox.h \
- mn-uri-private.h \
- mn-uri.c \
- mn-uri.h
+ mn-tooltips.h
egg_built_sources = \
eggmarshalers.c \
@@ -230,14 +329,12 @@ mail_notification_SOURCES = \
$(gob_sources) \
$(gob_built_sources) \
$(egg_built_sources) \
- $(gmail_sources) \
- $(gmail_built_sources) \
$(md5_sources) \
$(client_session_sources) \
$(ssl_sources) \
$(sasl_sources) \
$(mime_sources) \
- $(icu_sources) \
+ $(evolution_shared_sources) \
egg-editable-toolbar.c \
egg-editable-toolbar.h \
egg-toolbar-editor.c \
@@ -248,32 +345,22 @@ mail_notification_SOURCES = \
eggtrayicon.h \
mn-conf.c \
mn-conf.h \
- mn-mailbox-properties-dialog.c \
- mn-mailbox-properties-dialog.h \
- mn-mailbox-properties-util.c \
- mn-mailbox-properties-util.h \
- mn-mailbox-properties.c \
- mn-mailbox-properties.h \
- mn-main-window.c \
- mn-main-window.h \
mn-main.c \
- mn-properties-dialog.c \
- mn-properties-dialog.h \
mn-stock.c \
mn-stock.h \
- mn-summary-popup.c \
- mn-summary-popup.h \
mn-util.c \
mn-util.h \
mn-vfs.c \
- mn-vfs.h
+ mn-vfs.h \
+ nautilus-cell-renderer-pixbuf-emblem.c \
+ nautilus-cell-renderer-pixbuf-emblem.h
BUILT_SOURCES = \
+ $(evolution_plugin_gob_built_sources) \
$(idl_built_sources) \
$(gob_built_sources) \
- $(egg_built_sources) \
- $(gmail_built_sources)
+ $(egg_built_sources)
-AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) $(ICU_CFLAGS) \
+mail_notification_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) \
-I$(top_srcdir) \
-DPREFIX="\"$(prefix)\"" \
-DSYSCONFDIR="\"$(sysconfdir)\"" \
@@ -283,22 +370,19 @@ AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OP
-DGNOMEPIXMAPSDIR="\"$(datadir)/pixmaps\"" \
-DUIDIR="\"$(pkgdatadir)/ui\"" \
-DG_LOG_DOMAIN="\"$(PACKAGE)\""
-AM_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS) $(ICU_LIBS)
+mail_notification_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
-CLEANFILES = $(idl_built_sources)
-MAINTAINERCLEANFILES = $(gob_built_sources) $(egg_built_sources) $(gmail_built_sources)
+CLEANFILES = $(evolution_plugin_eplug) $(idl_built_sources)
+MAINTAINERCLEANFILES = $(evolution_plugin_gob_built_sources) $(gob_built_sources) $(egg_built_sources)
-entity_sets = xhtml-lat1.ent xhtml-special.ent xhtml-symbol.ent
-EXTRA_DIST = ent2h.sh $(entity_sets) eggmarshalers.list
+EXTRA_DIST = eggmarshalers.list org-gnome-mail-notification.eplug.in
%.c %.h %-private.h: %.gob
$(GOB2) --always-private-header --exit-on-warn $<
+
%-common.c %-stubs.c %-skels.c %.h: %.idl $(ORBIT_IDL)
$(ORBIT_IDL) -I$(LIBBONOBO_IDL) -I$(BONOBO_ACTIVATION_IDL) $<
-mn-sgml-entities.h: ent2h.sh $(entity_sets)
- ./ent2h.sh $(entity_sets) > $@
-
eggmarshalers.h: eggmarshalers.list
cd $(srcdir) \
&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --header > xgen-emh \
@@ -310,3 +394,6 @@ eggmarshalers.c: eggmarshalers.list
&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --body > xgen-emc \
&& cp xgen-emc eggmarshalers.c \
&& rm -f xgen-emc xgen-emc~
+
+%.eplug: %.eplug.in
+ sed -e 's|\@PLUGINDIR\@|$(evolution_plugindir)|' $< > $@
diff --git a/src/Makefile.in b/src/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -14,7 +14,7 @@
@SET_MAKE@
-SOURCES = $(mail_notification_SOURCES) $(nodist_mail_notification_SOURCES)
+
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -36,146 +36,237 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
bin_PROGRAMS = mail-notification$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.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__installdirs = "$(DESTDIR)$(bindir)"
+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)$(evolution_plugindir)" \
+ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(evolution_plugindir)"
+evolution_pluginLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(evolution_plugin_LTLIBRARIES)
+liborg_gnome_mail_notification_la_LIBADD =
+am__liborg_gnome_mail_notification_la_SOURCES_DIST = mn-evolution.h \
+ GNOME_MailNotification_Evolution.idl mn-evolution-glue.gob \
+ mn-evolution-glue-private.h mn-evolution-glue.c \
+ mn-evolution-glue.h mn-evolution-folder-tree-control.c \
+ mn-evolution-folder-tree-control.h mn-evolution-plugin.c
+am__objects_1 =
+@WITH_EVOLUTION_TRUE@am__objects_2 = liborg_gnome_mail_notification_la-mn-evolution-glue.lo
+@WITH_EVOLUTION_TRUE@am_liborg_gnome_mail_notification_la_OBJECTS = \
+@WITH_EVOLUTION_TRUE@ $(am__objects_1) $(am__objects_1) \
+@WITH_EVOLUTION_TRUE@ $(am__objects_1) $(am__objects_2) \
+@WITH_EVOLUTION_TRUE@ liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo \
+@WITH_EVOLUTION_TRUE@ liborg_gnome_mail_notification_la-mn-evolution-plugin.lo
+@WITH_EVOLUTION_TRUE@am__objects_3 = liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo \
+@WITH_EVOLUTION_TRUE@ liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo \
+@WITH_EVOLUTION_TRUE@ liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo
+@WITH_EVOLUTION_TRUE@nodist_liborg_gnome_mail_notification_la_OBJECTS = \
+@WITH_EVOLUTION_TRUE@ $(am__objects_3)
+liborg_gnome_mail_notification_la_OBJECTS = \
+ $(am_liborg_gnome_mail_notification_la_OBJECTS) \
+ $(nodist_liborg_gnome_mail_notification_la_OBJECTS)
+@WITH_EVOLUTION_TRUE@am_liborg_gnome_mail_notification_la_rpath = \
+@WITH_EVOLUTION_TRUE@ -rpath $(evolution_plugindir)
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
-am__mail_notification_SOURCES_DIST = MNAutomation.idl \
- mn-mbox-mailbox.gob mn-mh-mailbox.gob mn-maildir-mailbox.gob \
+am__mail_notification_SOURCES_DIST = \
+ GNOME_MailNotification_Evolution.idl \
+ GNOME_MailNotification.idl mn-mbox-mailbox-backend.gob \
+ mn-mh-mailbox-backend.gob mn-maildir-mailbox-backend.gob \
mn-pop3-mailbox-properties.gob mn-pop3-mailbox.gob \
mn-imap-mailbox-properties.gob mn-imap-mailbox.gob \
+ mn-authenticated-mailbox-properties.gob \
mn-authenticated-mailbox.gob mn-auth-combo-box.gob \
- mn-pi-mailbox-properties.gob mn-sylpheed-mailbox.gob \
+ mn-pi-mailbox-properties.gob mn-pi-mailbox.gob \
+ mn-sylpheed-mailbox-backend.gob \
mn-gmail-mailbox-properties.gob mn-gmail-mailbox.gob \
- mn-gmime-stream-vfs.gob mn-about-dialog.gob \
- mn-autodetect-mailbox-properties.gob mn-automation.gob \
- mn-blinking-image.gob mn-mail-icon.gob mn-mailbox-view.gob \
- mn-mailbox.gob mn-mailboxes.gob mn-message-view.gob \
- mn-message.gob mn-pending-mailbox.gob mn-shell.gob \
- mn-system-mailbox-properties.gob mn-tooltips.gob \
- mn-unsupported-mailbox.gob mn-uri.gob \
- mn-mbox-mailbox-private.h mn-mbox-mailbox.c mn-mbox-mailbox.h \
- mn-mh-mailbox-private.h mn-mh-mailbox.c mn-mh-mailbox.h \
- mn-maildir-mailbox-private.h mn-maildir-mailbox.c \
- mn-maildir-mailbox.h mn-pop3-mailbox-properties-private.h \
+ mn-corba-object.gob mn-evolution-mailbox-properties.gob \
+ mn-evolution-mailbox.gob mn-custom-vfs-mailbox.gob \
+ mn-system-vfs-mailbox-properties.gob mn-system-vfs-mailbox.gob \
+ mn-vfs-mailbox-backend.gob mn-vfs-mailbox.gob \
+ mn-reentrant-mailbox.gob mn-gmime-stream-vfs.gob \
+ mn-about-dialog.gob mn-autodetect-mailbox-properties.gob \
+ mn-automation.gob mn-blinking-image.gob mn-dialog.gob \
+ mn-mail-icon.gob mn-mail-summary-popup.gob \
+ mn-mailbox-properties-dialog.gob mn-mailbox-properties.gob \
+ mn-mailbox-view.gob mn-mailbox.gob mn-mailboxes.gob \
+ mn-main-window.gob mn-message-view.gob mn-message.gob \
+ mn-properties-dialog.gob mn-shell.gob mn-tooltips.gob \
+ mn-mbox-mailbox-backend-private.h mn-mbox-mailbox-backend.c \
+ mn-mbox-mailbox-backend.h mn-mh-mailbox-backend-private.h \
+ mn-mh-mailbox-backend.c mn-mh-mailbox-backend.h \
+ mn-maildir-mailbox-backend-private.h \
+ mn-maildir-mailbox-backend.c mn-maildir-mailbox-backend.h \
+ mn-pop3-mailbox-properties-private.h \
mn-pop3-mailbox-properties.c mn-pop3-mailbox-properties.h \
mn-pop3-mailbox-private.h mn-pop3-mailbox.c mn-pop3-mailbox.h \
mn-imap-mailbox-properties-private.h \
mn-imap-mailbox-properties.c mn-imap-mailbox-properties.h \
mn-imap-mailbox-private.h mn-imap-mailbox.c mn-imap-mailbox.h \
+ mn-authenticated-mailbox-properties-private.h \
+ mn-authenticated-mailbox-properties.c \
+ mn-authenticated-mailbox-properties.h \
mn-authenticated-mailbox-private.h mn-authenticated-mailbox.c \
mn-authenticated-mailbox.h mn-auth-combo-box-private.h \
mn-auth-combo-box.c mn-auth-combo-box.h \
mn-pi-mailbox-properties-private.h mn-pi-mailbox-properties.c \
- mn-pi-mailbox-properties.h mn-sylpheed-mailbox-private.h \
- mn-sylpheed-mailbox.c mn-sylpheed-mailbox.h \
+ mn-pi-mailbox-properties.h mn-pi-mailbox-private.h \
+ mn-pi-mailbox.c mn-pi-mailbox.h \
+ mn-sylpheed-mailbox-backend-private.h \
+ mn-sylpheed-mailbox-backend.c mn-sylpheed-mailbox-backend.h \
mn-gmail-mailbox-properties-private.h \
mn-gmail-mailbox-properties.c mn-gmail-mailbox-properties.h \
mn-gmail-mailbox-private.h mn-gmail-mailbox.c \
- mn-gmail-mailbox.h mn-gmime-stream-vfs-private.h \
+ mn-gmail-mailbox.h mn-corba-object-private.h mn-corba-object.c \
+ mn-corba-object.h mn-evolution-mailbox-properties-private.h \
+ mn-evolution-mailbox-properties.c \
+ mn-evolution-mailbox-properties.h \
+ mn-evolution-mailbox-private.h mn-evolution-mailbox.c \
+ mn-evolution-mailbox.h mn-custom-vfs-mailbox-private.h \
+ mn-custom-vfs-mailbox.c mn-custom-vfs-mailbox.h \
+ mn-system-vfs-mailbox-properties-private.h \
+ mn-system-vfs-mailbox-properties.c \
+ mn-system-vfs-mailbox-properties.h \
+ mn-system-vfs-mailbox-private.h mn-system-vfs-mailbox.c \
+ mn-system-vfs-mailbox.h mn-vfs-mailbox-backend-private.h \
+ mn-vfs-mailbox-backend.c mn-vfs-mailbox-backend.h \
+ mn-vfs-mailbox-private.h mn-vfs-mailbox.c mn-vfs-mailbox.h \
+ mn-reentrant-mailbox-private.h mn-reentrant-mailbox.c \
+ mn-reentrant-mailbox.h mn-gmime-stream-vfs-private.h \
mn-gmime-stream-vfs.c mn-gmime-stream-vfs.h \
mn-about-dialog-private.h mn-about-dialog.c mn-about-dialog.h \
mn-autodetect-mailbox-properties-private.h \
mn-autodetect-mailbox-properties.c \
mn-autodetect-mailbox-properties.h mn-automation-private.h \
mn-automation.c mn-automation.h mn-blinking-image-private.h \
- mn-blinking-image.c mn-blinking-image.h mn-mail-icon-private.h \
- mn-mail-icon.c mn-mail-icon.h mn-mailbox-view-private.h \
+ mn-blinking-image.c mn-blinking-image.h mn-dialog-private.h \
+ mn-dialog.c mn-dialog.h mn-mail-icon-private.h mn-mail-icon.c \
+ mn-mail-icon.h mn-mail-summary-popup-private.h \
+ mn-mail-summary-popup.c mn-mail-summary-popup.h \
+ mn-mailbox-properties-dialog-private.h \
+ mn-mailbox-properties-dialog.c mn-mailbox-properties-dialog.h \
+ mn-mailbox-properties-private.h mn-mailbox-properties.c \
+ mn-mailbox-properties.h mn-mailbox-view-private.h \
mn-mailbox-view.c mn-mailbox-view.h mn-mailbox-private.h \
mn-mailbox.c mn-mailbox.h mn-mailboxes-private.h \
- mn-mailboxes.c mn-mailboxes.h mn-message-view-private.h \
+ mn-mailboxes.c mn-mailboxes.h mn-main-window-private.h \
+ mn-main-window.c mn-main-window.h mn-message-view-private.h \
mn-message-view.c mn-message-view.h mn-message-private.h \
- mn-message.c mn-message.h mn-pending-mailbox-private.h \
- mn-pending-mailbox.c mn-pending-mailbox.h mn-shell-private.h \
- mn-shell.c mn-shell.h mn-system-mailbox-properties-private.h \
- mn-system-mailbox-properties.c mn-system-mailbox-properties.h \
- mn-tooltips-private.h mn-tooltips.c mn-tooltips.h \
- mn-unsupported-mailbox-private.h mn-unsupported-mailbox.c \
- mn-unsupported-mailbox.h mn-uri-private.h mn-uri.c mn-uri.h \
- eggmarshalers.c eggmarshalers.h mn-sgml-ref.c mn-sgml-ref.h \
- mn-soup.c mn-soup.h mn-sgml-entities.h mn-md5.c mn-md5.h \
- mn-client-session.c mn-client-session.h mn-ssl.c mn-ssl.h \
- mn-sasl.c mn-sasl.h mn-message-mime.c mn-message-mime.h \
- mn-icu.c mn-icu.h egg-editable-toolbar.c \
+ mn-message.c mn-message.h mn-properties-dialog-private.h \
+ mn-properties-dialog.c mn-properties-dialog.h \
+ mn-shell-private.h mn-shell.c mn-shell.h mn-tooltips-private.h \
+ mn-tooltips.c mn-tooltips.h eggmarshalers.c eggmarshalers.h \
+ mn-md5.c mn-md5.h mn-client-session.c mn-client-session.h \
+ mn-ssl.c mn-ssl.h mn-sasl.c mn-sasl.h mn-message-mime.c \
+ mn-message-mime.h mn-evolution.h egg-editable-toolbar.c \
egg-editable-toolbar.h egg-toolbar-editor.c \
egg-toolbar-editor.h egg-toolbars-model.c egg-toolbars-model.h \
- eggtrayicon.c eggtrayicon.h mn-conf.c mn-conf.h \
- mn-mailbox-properties-dialog.c mn-mailbox-properties-dialog.h \
- mn-mailbox-properties-util.c mn-mailbox-properties-util.h \
- mn-mailbox-properties.c mn-mailbox-properties.h \
- mn-main-window.c mn-main-window.h mn-main.c \
- mn-properties-dialog.c mn-properties-dialog.h mn-stock.c \
- mn-stock.h mn-summary-popup.c mn-summary-popup.h mn-util.c \
- mn-util.h mn-vfs.c mn-vfs.h
-am__objects_1 =
-am__objects_2 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
+ eggtrayicon.c eggtrayicon.h mn-conf.c mn-conf.h mn-main.c \
+ mn-stock.c mn-stock.h mn-util.c mn-util.h mn-vfs.c mn-vfs.h \
+ nautilus-cell-renderer-pixbuf-emblem.c \
+ nautilus-cell-renderer-pixbuf-emblem.h
+am__objects_4 = $(am__objects_1)
+am__objects_5 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
+ $(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1)
-@WITH_MBOX_TRUE@am__objects_3 = mn-mbox-mailbox.$(OBJEXT)
-@WITH_MH_TRUE@am__objects_4 = mn-mh-mailbox.$(OBJEXT)
-@WITH_MAILDIR_TRUE@am__objects_5 = mn-maildir-mailbox.$(OBJEXT)
-@WITH_POP3_TRUE@am__objects_6 = mn-pop3-mailbox-properties.$(OBJEXT) \
-@WITH_POP3_TRUE@ mn-pop3-mailbox.$(OBJEXT)
-@WITH_IMAP_TRUE@am__objects_7 = mn-imap-mailbox-properties.$(OBJEXT) \
-@WITH_IMAP_TRUE@ mn-imap-mailbox.$(OBJEXT)
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@am__objects_8 = mn-authenticated-mailbox.$(OBJEXT)
-@WITH_POP3_OR_IMAP_TRUE@am__objects_9 = mn-auth-combo-box.$(OBJEXT) \
-@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties.$(OBJEXT)
-@WITH_SYLPHEED_TRUE@am__objects_10 = mn-sylpheed-mailbox.$(OBJEXT)
-@WITH_GMAIL_TRUE@am__objects_11 = \
-@WITH_GMAIL_TRUE@ mn-gmail-mailbox-properties.$(OBJEXT) \
-@WITH_GMAIL_TRUE@ mn-gmail-mailbox.$(OBJEXT)
-@WITH_MIME_TRUE@am__objects_12 = mn-gmime-stream-vfs.$(OBJEXT)
-am__objects_13 = $(am__objects_3) $(am__objects_4) $(am__objects_5) \
- $(am__objects_6) $(am__objects_7) $(am__objects_8) \
+@WITH_MBOX_TRUE@am__objects_6 = mail_notification-mn-mbox-mailbox-backend.$(OBJEXT)
+@WITH_MH_TRUE@am__objects_7 = mail_notification-mn-mh-mailbox-backend.$(OBJEXT)
+@WITH_MAILDIR_TRUE@am__objects_8 = mail_notification-mn-maildir-mailbox-backend.$(OBJEXT)
+@WITH_POP3_TRUE@am__objects_9 = mail_notification-mn-pop3-mailbox-properties.$(OBJEXT) \
+@WITH_POP3_TRUE@ mail_notification-mn-pop3-mailbox.$(OBJEXT)
+@WITH_IMAP_TRUE@am__objects_10 = mail_notification-mn-imap-mailbox-properties.$(OBJEXT) \
+@WITH_IMAP_TRUE@ mail_notification-mn-imap-mailbox.$(OBJEXT)
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@am__objects_11 = mail_notification-mn-authenticated-mailbox-properties.$(OBJEXT) \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mail_notification-mn-authenticated-mailbox.$(OBJEXT)
+@WITH_POP3_OR_IMAP_TRUE@am__objects_12 = mail_notification-mn-auth-combo-box.$(OBJEXT) \
+@WITH_POP3_OR_IMAP_TRUE@ mail_notification-mn-pi-mailbox-properties.$(OBJEXT) \
+@WITH_POP3_OR_IMAP_TRUE@ mail_notification-mn-pi-mailbox.$(OBJEXT)
+@WITH_SYLPHEED_TRUE@am__objects_13 = mail_notification-mn-sylpheed-mailbox-backend.$(OBJEXT)
+@WITH_GMAIL_TRUE@am__objects_14 = mail_notification-mn-gmail-mailbox-properties.$(OBJEXT) \
+@WITH_GMAIL_TRUE@ mail_notification-mn-gmail-mailbox.$(OBJEXT)
+@WITH_EVOLUTION_TRUE@am__objects_15 = mail_notification-mn-corba-object.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@ mail_notification-mn-evolution-mailbox-properties.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@ mail_notification-mn-evolution-mailbox.$(OBJEXT)
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@am__objects_16 = mail_notification-mn-custom-vfs-mailbox.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mail_notification-mn-system-vfs-mailbox-properties.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mail_notification-mn-system-vfs-mailbox.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mail_notification-mn-vfs-mailbox-backend.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mail_notification-mn-vfs-mailbox.$(OBJEXT)
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@am__objects_17 = mail_notification-mn-reentrant-mailbox.$(OBJEXT)
+@WITH_MIME_TRUE@am__objects_18 = mail_notification-mn-gmime-stream-vfs.$(OBJEXT)
+am__objects_19 = $(am__objects_6) $(am__objects_7) $(am__objects_8) \
$(am__objects_9) $(am__objects_10) $(am__objects_11) \
- $(am__objects_12) mn-about-dialog.$(OBJEXT) \
- mn-autodetect-mailbox-properties.$(OBJEXT) \
- mn-automation.$(OBJEXT) mn-blinking-image.$(OBJEXT) \
- mn-mail-icon.$(OBJEXT) mn-mailbox-view.$(OBJEXT) \
- mn-mailbox.$(OBJEXT) mn-mailboxes.$(OBJEXT) \
- mn-message-view.$(OBJEXT) mn-message.$(OBJEXT) \
- mn-pending-mailbox.$(OBJEXT) mn-shell.$(OBJEXT) \
- mn-system-mailbox-properties.$(OBJEXT) mn-tooltips.$(OBJEXT) \
- mn-unsupported-mailbox.$(OBJEXT) mn-uri.$(OBJEXT)
-am__objects_14 = eggmarshalers.$(OBJEXT)
-@WITH_GMAIL_TRUE@am__objects_15 = mn-sgml-ref.$(OBJEXT) \
-@WITH_GMAIL_TRUE@ mn-soup.$(OBJEXT)
-@WITH_POP3_TRUE@am__objects_16 = mn-md5.$(OBJEXT)
-@WITH_POP3_OR_IMAP_TRUE@am__objects_17 = mn-client-session.$(OBJEXT)
-@WITH_SSL_TRUE@am__objects_18 = mn-ssl.$(OBJEXT)
-@WITH_SASL_TRUE@am__objects_19 = mn-sasl.$(OBJEXT)
-@WITH_MIME_TRUE@am__objects_20 = mn-message-mime.$(OBJEXT)
-@WITH_GMAIL_TIMESTAMPS_TRUE@@WITH_GMAIL_TRUE@am__objects_21 = \
-@WITH_GMAIL_TIMESTAMPS_TRUE@@WITH_GMAIL_TRUE@ mn-icu.$(OBJEXT)
-am_mail_notification_OBJECTS = $(am__objects_1) $(am__objects_2) \
- $(am__objects_13) $(am__objects_14) $(am__objects_15) \
- $(am__objects_1) $(am__objects_16) $(am__objects_17) \
- $(am__objects_18) $(am__objects_19) $(am__objects_20) \
- $(am__objects_21) egg-editable-toolbar.$(OBJEXT) \
- egg-toolbar-editor.$(OBJEXT) egg-toolbars-model.$(OBJEXT) \
- eggtrayicon.$(OBJEXT) mn-conf.$(OBJEXT) \
- mn-mailbox-properties-dialog.$(OBJEXT) \
- mn-mailbox-properties-util.$(OBJEXT) \
- mn-mailbox-properties.$(OBJEXT) mn-main-window.$(OBJEXT) \
- mn-main.$(OBJEXT) mn-properties-dialog.$(OBJEXT) \
- mn-stock.$(OBJEXT) mn-summary-popup.$(OBJEXT) \
- mn-util.$(OBJEXT) mn-vfs.$(OBJEXT)
-am__objects_22 = MNAutomation-common.$(OBJEXT) \
- MNAutomation-stubs.$(OBJEXT) MNAutomation-skels.$(OBJEXT)
-nodist_mail_notification_OBJECTS = $(am__objects_22)
+ $(am__objects_12) $(am__objects_13) $(am__objects_14) \
+ $(am__objects_15) $(am__objects_16) $(am__objects_17) \
+ $(am__objects_18) mail_notification-mn-about-dialog.$(OBJEXT) \
+ mail_notification-mn-autodetect-mailbox-properties.$(OBJEXT) \
+ mail_notification-mn-automation.$(OBJEXT) \
+ mail_notification-mn-blinking-image.$(OBJEXT) \
+ mail_notification-mn-dialog.$(OBJEXT) \
+ mail_notification-mn-mail-icon.$(OBJEXT) \
+ mail_notification-mn-mail-summary-popup.$(OBJEXT) \
+ mail_notification-mn-mailbox-properties-dialog.$(OBJEXT) \
+ mail_notification-mn-mailbox-properties.$(OBJEXT) \
+ mail_notification-mn-mailbox-view.$(OBJEXT) \
+ mail_notification-mn-mailbox.$(OBJEXT) \
+ mail_notification-mn-mailboxes.$(OBJEXT) \
+ mail_notification-mn-main-window.$(OBJEXT) \
+ mail_notification-mn-message-view.$(OBJEXT) \
+ mail_notification-mn-message.$(OBJEXT) \
+ mail_notification-mn-properties-dialog.$(OBJEXT) \
+ mail_notification-mn-shell.$(OBJEXT) \
+ mail_notification-mn-tooltips.$(OBJEXT)
+am__objects_20 = mail_notification-eggmarshalers.$(OBJEXT)
+@WITH_POP3_TRUE@am__objects_21 = mail_notification-mn-md5.$(OBJEXT)
+@WITH_POP3_OR_IMAP_TRUE@am__objects_22 = mail_notification-mn-client-session.$(OBJEXT)
+@WITH_SSL_TRUE@am__objects_23 = mail_notification-mn-ssl.$(OBJEXT)
+@WITH_SASL_TRUE@am__objects_24 = mail_notification-mn-sasl.$(OBJEXT)
+@WITH_MIME_TRUE@am__objects_25 = \
+@WITH_MIME_TRUE@ mail_notification-mn-message-mime.$(OBJEXT)
+am_mail_notification_OBJECTS = $(am__objects_4) $(am__objects_5) \
+ $(am__objects_19) $(am__objects_20) $(am__objects_21) \
+ $(am__objects_22) $(am__objects_23) $(am__objects_24) \
+ $(am__objects_25) $(am__objects_1) \
+ mail_notification-egg-editable-toolbar.$(OBJEXT) \
+ mail_notification-egg-toolbar-editor.$(OBJEXT) \
+ mail_notification-egg-toolbars-model.$(OBJEXT) \
+ mail_notification-eggtrayicon.$(OBJEXT) \
+ mail_notification-mn-conf.$(OBJEXT) \
+ mail_notification-mn-main.$(OBJEXT) \
+ mail_notification-mn-stock.$(OBJEXT) \
+ mail_notification-mn-util.$(OBJEXT) \
+ mail_notification-mn-vfs.$(OBJEXT) \
+ mail_notification-nautilus-cell-renderer-pixbuf-emblem.$(OBJEXT)
+@WITH_EVOLUTION_TRUE@am__objects_26 = mail_notification-GNOME_MailNotification_Evolution-common.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@ mail_notification-GNOME_MailNotification_Evolution-stubs.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@ mail_notification-GNOME_MailNotification_Evolution-skels.$(OBJEXT)
+am__objects_27 = $(am__objects_26) \
+ mail_notification-GNOME_MailNotification-common.$(OBJEXT) \
+ mail_notification-GNOME_MailNotification-stubs.$(OBJEXT) \
+ mail_notification-GNOME_MailNotification-skels.$(OBJEXT)
+nodist_mail_notification_OBJECTS = $(am__objects_27)
mail_notification_OBJECTS = $(am_mail_notification_OBJECTS) \
$(nodist_mail_notification_OBJECTS)
mail_notification_LDADD = $(LDADD)
@@ -184,11 +275,20 @@ 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 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(mail_notification_SOURCES) \
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(liborg_gnome_mail_notification_la_SOURCES) \
+ $(nodist_liborg_gnome_mail_notification_la_SOURCES) \
+ $(mail_notification_SOURCES) \
$(nodist_mail_notification_SOURCES)
-DIST_SOURCES = $(am__mail_notification_SOURCES_DIST)
+DIST_SOURCES = $(am__liborg_gnome_mail_notification_la_SOURCES_DIST) \
+ $(am__mail_notification_SOURCES_DIST)
+evolution_pluginDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(evolution_plugin_DATA)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -196,6 +296,7 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -208,15 +309,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -233,10 +343,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -247,9 +353,12 @@ 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@
@@ -262,12 +371,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -275,7 +387,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -292,25 +403,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -331,20 +445,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -359,24 +492,28 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
-@WITH_MBOX_TRUE@mbox_gob_sources = mn-mbox-mailbox.gob
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+@WITH_MBOX_TRUE@mbox_gob_sources = mn-mbox-mailbox-backend.gob
@WITH_MBOX_TRUE@mbox_gob_built_sources = \
-@WITH_MBOX_TRUE@ mn-mbox-mailbox-private.h \
-@WITH_MBOX_TRUE@ mn-mbox-mailbox.c \
-@WITH_MBOX_TRUE@ mn-mbox-mailbox.h
+@WITH_MBOX_TRUE@ mn-mbox-mailbox-backend-private.h \
+@WITH_MBOX_TRUE@ mn-mbox-mailbox-backend.c \
+@WITH_MBOX_TRUE@ mn-mbox-mailbox-backend.h
-@WITH_MH_TRUE@mh_gob_sources = mn-mh-mailbox.gob
+@WITH_MH_TRUE@mh_gob_sources = mn-mh-mailbox-backend.gob
@WITH_MH_TRUE@mh_gob_built_sources = \
-@WITH_MH_TRUE@ mn-mh-mailbox-private.h \
-@WITH_MH_TRUE@ mn-mh-mailbox.c \
-@WITH_MH_TRUE@ mn-mh-mailbox.h
+@WITH_MH_TRUE@ mn-mh-mailbox-backend-private.h \
+@WITH_MH_TRUE@ mn-mh-mailbox-backend.c \
+@WITH_MH_TRUE@ mn-mh-mailbox-backend.h
-@WITH_MAILDIR_TRUE@maildir_gob_sources = mn-maildir-mailbox.gob
+@WITH_MAILDIR_TRUE@maildir_gob_sources = mn-maildir-mailbox-backend.gob
@WITH_MAILDIR_TRUE@maildir_gob_built_sources = \
-@WITH_MAILDIR_TRUE@ mn-maildir-mailbox-private.h \
-@WITH_MAILDIR_TRUE@ mn-maildir-mailbox.c \
-@WITH_MAILDIR_TRUE@ mn-maildir-mailbox.h
+@WITH_MAILDIR_TRUE@ mn-maildir-mailbox-backend-private.h \
+@WITH_MAILDIR_TRUE@ mn-maildir-mailbox-backend.c \
+@WITH_MAILDIR_TRUE@ mn-maildir-mailbox-backend.h
@WITH_POP3_TRUE@pop3_gob_sources = \
@WITH_POP3_TRUE@ mn-pop3-mailbox-properties.gob \
@@ -406,29 +543,37 @@ target_alias = @target_alias@
@WITH_POP3_OR_IMAP_TRUE@client_session_sources = mn-client-session.c mn-client-session.h
@WITH_POP3_OR_IMAP_TRUE@pi_gob_sources = \
@WITH_POP3_OR_IMAP_TRUE@ mn-auth-combo-box.gob \
-@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties.gob
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties.gob \
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox.gob
@WITH_POP3_OR_IMAP_TRUE@pi_gob_built_sources = \
-@WITH_POP3_OR_IMAP_TRUE@ mn-auth-combo-box-private.h \
-@WITH_POP3_OR_IMAP_TRUE@ mn-auth-combo-box.c \
-@WITH_POP3_OR_IMAP_TRUE@ mn-auth-combo-box.h \
-@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties-private.h \
-@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties.c \
-@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties.h
+@WITH_POP3_OR_IMAP_TRUE@ mn-auth-combo-box-private.h \
+@WITH_POP3_OR_IMAP_TRUE@ mn-auth-combo-box.c \
+@WITH_POP3_OR_IMAP_TRUE@ mn-auth-combo-box.h \
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties-private.h \
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties.c \
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-properties.h \
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox-private.h \
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox.c \
+@WITH_POP3_OR_IMAP_TRUE@ mn-pi-mailbox.h
@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authenticated_mailbox_gob_sources = \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox-properties.gob \
@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox.gob
@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authenticated_mailbox_gob_built_sources = \
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox-private.h \
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox.c \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox-properties-private.h \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox-properties.c \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox-properties.h \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox-private.h \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox.c \
@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@ mn-authenticated-mailbox.h
-@WITH_SYLPHEED_TRUE@sylpheed_gob_sources = mn-sylpheed-mailbox.gob
+@WITH_SYLPHEED_TRUE@sylpheed_gob_sources = mn-sylpheed-mailbox-backend.gob
@WITH_SYLPHEED_TRUE@sylpheed_gob_built_sources = \
-@WITH_SYLPHEED_TRUE@ mn-sylpheed-mailbox-private.h \
-@WITH_SYLPHEED_TRUE@ mn-sylpheed-mailbox.c \
-@WITH_SYLPHEED_TRUE@ mn-sylpheed-mailbox.h
+@WITH_SYLPHEED_TRUE@ mn-sylpheed-mailbox-backend-private.h \
+@WITH_SYLPHEED_TRUE@ mn-sylpheed-mailbox-backend.c \
+@WITH_SYLPHEED_TRUE@ mn-sylpheed-mailbox-backend.h
@WITH_GMAIL_TRUE@gmail_gob_sources = \
@WITH_GMAIL_TRUE@ mn-gmail-mailbox-properties.gob \
@@ -442,16 +587,36 @@ target_alias = @target_alias@
@WITH_GMAIL_TRUE@ mn-gmail-mailbox.c \
@WITH_GMAIL_TRUE@ mn-gmail-mailbox.h
-@WITH_GMAIL_TRUE@gmail_sources = \
-@WITH_GMAIL_TRUE@ mn-sgml-ref.c \
-@WITH_GMAIL_TRUE@ mn-sgml-ref.h \
-@WITH_GMAIL_TRUE@ mn-soup.c \
-@WITH_GMAIL_TRUE@ mn-soup.h
-
-@WITH_GMAIL_TRUE@gmail_built_sources = \
-@WITH_GMAIL_TRUE@ mn-sgml-entities.h
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@vfs_mailbox_gob_sources = \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-custom-vfs-mailbox.gob \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox-properties.gob \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox.gob \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox-backend.gob \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox.gob
+
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@vfs_mailbox_gob_built_sources = \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-custom-vfs-mailbox-private.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-custom-vfs-mailbox.c \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-custom-vfs-mailbox.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox-properties-private.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox-properties.c \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox-properties.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox-private.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox.c \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-system-vfs-mailbox.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox-backend-private.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox-backend.c \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox-backend.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox-private.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox.c \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@ mn-vfs-mailbox.h
+
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@reentrant_mailbox_gob_sources = mn-reentrant-mailbox.gob
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@reentrant_mailbox_gob_built_sources = \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@ mn-reentrant-mailbox-private.h \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@ mn-reentrant-mailbox.c \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@ mn-reentrant-mailbox.h
-@WITH_GMAIL_TIMESTAMPS_TRUE@@WITH_GMAIL_TRUE@icu_sources = mn-icu.c mn-icu.h
@WITH_MIME_TRUE@mime_gob_sources = \
@WITH_MIME_TRUE@ mn-gmime-stream-vfs.gob
@@ -466,12 +631,64 @@ target_alias = @target_alias@
@WITH_SSL_TRUE@ssl_sources = mn-ssl.c mn-ssl.h
@WITH_SASL_TRUE@sasl_sources = mn-sasl.c mn-sasl.h
-idl_sources = MNAutomation.idl
+@WITH_EVOLUTION_TRUE@evolution_plugin_eplug = org-gnome-mail-notification.eplug
+@WITH_EVOLUTION_TRUE@evolution_shared_sources = mn-evolution.h
+@WITH_EVOLUTION_TRUE@evolution_shared_idl_sources = GNOME_MailNotification_Evolution.idl
+@WITH_EVOLUTION_TRUE@evolution_shared_idl_built_sources = \
+@WITH_EVOLUTION_TRUE@ GNOME_MailNotification_Evolution-common.c \
+@WITH_EVOLUTION_TRUE@ GNOME_MailNotification_Evolution-stubs.c \
+@WITH_EVOLUTION_TRUE@ GNOME_MailNotification_Evolution-skels.c \
+@WITH_EVOLUTION_TRUE@ GNOME_MailNotification_Evolution.h
+
+@WITH_EVOLUTION_TRUE@evolution_plugin_gob_sources = mn-evolution-glue.gob
+@WITH_EVOLUTION_TRUE@evolution_plugin_gob_built_sources = \
+@WITH_EVOLUTION_TRUE@ mn-evolution-glue-private.h \
+@WITH_EVOLUTION_TRUE@ mn-evolution-glue.c \
+@WITH_EVOLUTION_TRUE@ mn-evolution-glue.h
+
+@WITH_EVOLUTION_TRUE@evolution_gob_sources = \
+@WITH_EVOLUTION_TRUE@ mn-corba-object.gob \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox-properties.gob \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox.gob
+
+@WITH_EVOLUTION_TRUE@evolution_gob_built_sources = \
+@WITH_EVOLUTION_TRUE@ mn-corba-object-private.h \
+@WITH_EVOLUTION_TRUE@ mn-corba-object.c \
+@WITH_EVOLUTION_TRUE@ mn-corba-object.h \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox-properties-private.h \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox-properties.c \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox-properties.h \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox-private.h \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox.c \
+@WITH_EVOLUTION_TRUE@ mn-evolution-mailbox.h
+
+@WITH_EVOLUTION_TRUE@evolution_plugin_DATA = $(evolution_plugin_eplug)
+@WITH_EVOLUTION_TRUE@evolution_plugin_LTLIBRARIES = liborg-gnome-mail-notification.la
+@WITH_EVOLUTION_TRUE@nodist_liborg_gnome_mail_notification_la_SOURCES = \
+@WITH_EVOLUTION_TRUE@ $(evolution_shared_idl_built_sources)
+
+@WITH_EVOLUTION_TRUE@liborg_gnome_mail_notification_la_SOURCES = \
+@WITH_EVOLUTION_TRUE@ $(evolution_shared_sources) \
+@WITH_EVOLUTION_TRUE@ $(evolution_shared_idl_sources) \
+@WITH_EVOLUTION_TRUE@ $(evolution_plugin_gob_sources) \
+@WITH_EVOLUTION_TRUE@ $(evolution_plugin_gob_built_sources) \
+@WITH_EVOLUTION_TRUE@ mn-evolution-folder-tree-control.c \
+@WITH_EVOLUTION_TRUE@ mn-evolution-folder-tree-control.h \
+@WITH_EVOLUTION_TRUE@ mn-evolution-plugin.c
+
+@WITH_EVOLUTION_TRUE@liborg_gnome_mail_notification_la_CPPFLAGS = $(WARN_CFLAGS) \
+@WITH_EVOLUTION_TRUE@ -I$(top_srcdir) \
+@WITH_EVOLUTION_TRUE@ -DG_LOG_DOMAIN="\"$(PACKAGE)\"" \
+@WITH_EVOLUTION_TRUE@ $(EVOLUTION_PLUGIN_CFLAGS)
+
+@WITH_EVOLUTION_TRUE@liborg_gnome_mail_notification_la_LDFLAGS = -avoid-version -module $(EVOLUTION_PLUGIN_LIBS)
+idl_sources = $(evolution_shared_idl_sources) GNOME_MailNotification.idl
idl_built_sources = \
- MNAutomation-common.c \
- MNAutomation-stubs.c \
- MNAutomation-skels.c \
- MNAutomation.h
+ $(evolution_shared_idl_built_sources) \
+ GNOME_MailNotification-common.c \
+ GNOME_MailNotification-stubs.c \
+ GNOME_MailNotification-skels.c \
+ GNOME_MailNotification.h
gob_sources = \
$(mbox_gob_sources) \
@@ -483,23 +700,28 @@ gob_sources = \
$(pi_gob_sources) \
$(sylpheed_gob_sources) \
$(gmail_gob_sources) \
+ $(evolution_gob_sources) \
+ $(vfs_mailbox_gob_sources) \
+ $(reentrant_mailbox_gob_sources) \
$(mime_gob_sources) \
mn-about-dialog.gob \
mn-autodetect-mailbox-properties.gob \
mn-automation.gob \
mn-blinking-image.gob \
+ mn-dialog.gob \
mn-mail-icon.gob \
+ mn-mail-summary-popup.gob \
+ mn-mailbox-properties-dialog.gob \
+ mn-mailbox-properties.gob \
mn-mailbox-view.gob \
mn-mailbox.gob \
mn-mailboxes.gob \
+ mn-main-window.gob \
mn-message-view.gob \
mn-message.gob \
- mn-pending-mailbox.gob \
+ mn-properties-dialog.gob \
mn-shell.gob \
- mn-system-mailbox-properties.gob \
- mn-tooltips.gob \
- mn-unsupported-mailbox.gob \
- mn-uri.gob
+ mn-tooltips.gob
gob_built_sources = \
$(mbox_gob_built_sources) \
@@ -511,6 +733,9 @@ gob_built_sources = \
$(pi_gob_built_sources) \
$(sylpheed_gob_built_sources) \
$(gmail_gob_built_sources) \
+ $(evolution_gob_built_sources) \
+ $(vfs_mailbox_gob_built_sources) \
+ $(reentrant_mailbox_gob_built_sources) \
$(mime_gob_built_sources) \
mn-about-dialog-private.h \
mn-about-dialog.c \
@@ -524,9 +749,21 @@ gob_built_sources = \
mn-blinking-image-private.h \
mn-blinking-image.c \
mn-blinking-image.h \
+ mn-dialog-private.h \
+ mn-dialog.c \
+ mn-dialog.h \
mn-mail-icon-private.h \
mn-mail-icon.c \
mn-mail-icon.h \
+ mn-mail-summary-popup-private.h \
+ mn-mail-summary-popup.c \
+ mn-mail-summary-popup.h \
+ mn-mailbox-properties-dialog-private.h \
+ mn-mailbox-properties-dialog.c \
+ mn-mailbox-properties-dialog.h \
+ mn-mailbox-properties-private.h \
+ mn-mailbox-properties.c \
+ mn-mailbox-properties.h \
mn-mailbox-view-private.h \
mn-mailbox-view.c \
mn-mailbox-view.h \
@@ -536,30 +773,24 @@ gob_built_sources = \
mn-mailboxes-private.h \
mn-mailboxes.c \
mn-mailboxes.h \
+ mn-main-window-private.h \
+ mn-main-window.c \
+ mn-main-window.h \
mn-message-view-private.h \
mn-message-view.c \
mn-message-view.h \
mn-message-private.h \
mn-message.c \
mn-message.h \
- mn-pending-mailbox-private.h \
- mn-pending-mailbox.c \
- mn-pending-mailbox.h \
+ mn-properties-dialog-private.h \
+ mn-properties-dialog.c \
+ mn-properties-dialog.h \
mn-shell-private.h \
mn-shell.c \
mn-shell.h \
- mn-system-mailbox-properties-private.h \
- mn-system-mailbox-properties.c \
- mn-system-mailbox-properties.h \
mn-tooltips-private.h \
mn-tooltips.c \
- mn-tooltips.h \
- mn-unsupported-mailbox-private.h \
- mn-unsupported-mailbox.c \
- mn-unsupported-mailbox.h \
- mn-uri-private.h \
- mn-uri.c \
- mn-uri.h
+ mn-tooltips.h
egg_built_sources = \
eggmarshalers.c \
@@ -571,14 +802,12 @@ mail_notification_SOURCES = \
$(gob_sources) \
$(gob_built_sources) \
$(egg_built_sources) \
- $(gmail_sources) \
- $(gmail_built_sources) \
$(md5_sources) \
$(client_session_sources) \
$(ssl_sources) \
$(sasl_sources) \
$(mime_sources) \
- $(icu_sources) \
+ $(evolution_shared_sources) \
egg-editable-toolbar.c \
egg-editable-toolbar.h \
egg-toolbar-editor.c \
@@ -589,33 +818,23 @@ mail_notification_SOURCES = \
eggtrayicon.h \
mn-conf.c \
mn-conf.h \
- mn-mailbox-properties-dialog.c \
- mn-mailbox-properties-dialog.h \
- mn-mailbox-properties-util.c \
- mn-mailbox-properties-util.h \
- mn-mailbox-properties.c \
- mn-mailbox-properties.h \
- mn-main-window.c \
- mn-main-window.h \
mn-main.c \
- mn-properties-dialog.c \
- mn-properties-dialog.h \
mn-stock.c \
mn-stock.h \
- mn-summary-popup.c \
- mn-summary-popup.h \
mn-util.c \
mn-util.h \
mn-vfs.c \
- mn-vfs.h
+ mn-vfs.h \
+ nautilus-cell-renderer-pixbuf-emblem.c \
+ nautilus-cell-renderer-pixbuf-emblem.h
BUILT_SOURCES = \
+ $(evolution_plugin_gob_built_sources) \
$(idl_built_sources) \
$(gob_built_sources) \
- $(egg_built_sources) \
- $(gmail_built_sources)
+ $(egg_built_sources)
-AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) $(ICU_CFLAGS) \
+mail_notification_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) \
-I$(top_srcdir) \
-DPREFIX="\"$(prefix)\"" \
-DSYSCONFDIR="\"$(sysconfdir)\"" \
@@ -626,16 +845,15 @@ AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OP
-DUIDIR="\"$(pkgdatadir)/ui\"" \
-DG_LOG_DOMAIN="\"$(PACKAGE)\""
-AM_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS) $(ICU_LIBS)
-CLEANFILES = $(idl_built_sources)
-MAINTAINERCLEANFILES = $(gob_built_sources) $(egg_built_sources) $(gmail_built_sources)
-entity_sets = xhtml-lat1.ent xhtml-special.ent xhtml-symbol.ent
-EXTRA_DIST = ent2h.sh $(entity_sets) eggmarshalers.list
+mail_notification_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
+CLEANFILES = $(evolution_plugin_eplug) $(idl_built_sources)
+MAINTAINERCLEANFILES = $(evolution_plugin_gob_built_sources) $(gob_built_sources) $(egg_built_sources)
+EXTRA_DIST = eggmarshalers.list org-gnome-mail-notification.eplug.in
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
-.SUFFIXES: .c .o .obj
+.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 \
@@ -665,16 +883,46 @@ $(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-evolution_pluginLTLIBRARIES: $(evolution_plugin_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(evolution_plugindir)" || $(mkdir_p) "$(DESTDIR)$(evolution_plugindir)"
+ @list='$(evolution_plugin_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(evolution_pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(evolution_plugindir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(evolution_pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(evolution_plugindir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-evolution_pluginLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @set -x; list='$(evolution_plugin_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(evolution_plugindir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(evolution_plugindir)/$$p"; \
+ done
+
+clean-evolution_pluginLTLIBRARIES:
+ -test -z "$(evolution_plugin_LTLIBRARIES)" || rm -f $(evolution_plugin_LTLIBRARIES)
+ @list='$(evolution_plugin_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
+liborg-gnome-mail-notification.la: $(liborg_gnome_mail_notification_la_OBJECTS) $(liborg_gnome_mail_notification_la_DEPENDENCIES)
+ $(LINK) $(am_liborg_gnome_mail_notification_la_rpath) $(liborg_gnome_mail_notification_la_LDFLAGS) $(liborg_gnome_mail_notification_la_OBJECTS) $(liborg_gnome_mail_notification_la_LIBADD) $(LIBS)
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
+ || test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
else :; fi; \
done
@@ -687,7 +935,11 @@ uninstall-binPROGRAMS:
done
clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
mail-notification$(EXEEXT): $(mail_notification_OBJECTS) $(mail_notification_DEPENDENCIES)
@rm -f mail-notification$(EXEEXT)
$(LINK) $(mail_notification_LDFLAGS) $(mail_notification_OBJECTS) $(mail_notification_LDADD) $(LIBS)
@@ -698,63 +950,77 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MNAutomation-common.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MNAutomation-skels.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MNAutomation-stubs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egg-editable-toolbar.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egg-toolbar-editor.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egg-toolbars-model.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggmarshalers.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggtrayicon.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-about-dialog.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-auth-combo-box.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-authenticated-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-autodetect-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-automation.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-blinking-image.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-client-session.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-conf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-gmail-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-gmail-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-gmime-stream-vfs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-icu.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-imap-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-imap-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mail-icon.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-properties-dialog.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-properties-util.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-view.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailboxes.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-maildir-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-main-window.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mbox-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-md5.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message-mime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message-view.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mh-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pending-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pi-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pop3-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pop3-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-properties-dialog.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sasl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sgml-ref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-shell.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-soup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-ssl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-stock.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-summary-popup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sylpheed-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-system-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-tooltips.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-unsupported-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-uri.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-util.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-vfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-egg-editable-toolbar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-egg-toolbar-editor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-egg-toolbars-model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-eggmarshalers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-eggtrayicon.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-about-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-auth-combo-box.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-automation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-blinking-image.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-client-session.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-conf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-corba-object.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-evolution-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-gmail-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-imap-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mail-icon.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mail-summary-popup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox-view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailboxes.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-main-window.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-md5.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-message-mime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-message-view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-message.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pi-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pop3-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-properties-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-sasl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-shell.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-ssl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-stock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-tooltips.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-vfs-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-vfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@@ -769,7 +1035,992 @@ distclean-compile:
@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 $@ $<
+
+liborg_gnome_mail_notification_la-mn-evolution-glue.lo: mn-evolution-glue.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-mn-evolution-glue.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Tpo" -c -o liborg_gnome_mail_notification_la-mn-evolution-glue.lo `test -f 'mn-evolution-glue.c' || echo '$(srcdir)/'`mn-evolution-glue.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-evolution-glue.c' object='liborg_gnome_mail_notification_la-mn-evolution-glue.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) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-mn-evolution-glue.lo `test -f 'mn-evolution-glue.c' || echo '$(srcdir)/'`mn-evolution-glue.c
+
+liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo: mn-evolution-folder-tree-control.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Tpo" -c -o liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo `test -f 'mn-evolution-folder-tree-control.c' || echo '$(srcdir)/'`mn-evolution-folder-tree-control.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-evolution-folder-tree-control.c' object='liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.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) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo `test -f 'mn-evolution-folder-tree-control.c' || echo '$(srcdir)/'`mn-evolution-folder-tree-control.c
+
+liborg_gnome_mail_notification_la-mn-evolution-plugin.lo: mn-evolution-plugin.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-mn-evolution-plugin.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Tpo" -c -o liborg_gnome_mail_notification_la-mn-evolution-plugin.lo `test -f 'mn-evolution-plugin.c' || echo '$(srcdir)/'`mn-evolution-plugin.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-evolution-plugin.c' object='liborg_gnome_mail_notification_la-mn-evolution-plugin.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) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-mn-evolution-plugin.lo `test -f 'mn-evolution-plugin.c' || echo '$(srcdir)/'`mn-evolution-plugin.c
+
+liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo: GNOME_MailNotification_Evolution-common.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Tpo" -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-common.c' object='liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.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) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c
+
+liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo: GNOME_MailNotification_Evolution-stubs.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Tpo" -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-stubs.c' object='liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.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) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c
+
+liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo: GNOME_MailNotification_Evolution-skels.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Tpo" -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-skels.c' object='liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.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) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c
+
+mail_notification-mn-mbox-mailbox-backend.o: mn-mbox-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mbox-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" -c -o mail_notification-mn-mbox-mailbox-backend.o `test -f 'mn-mbox-mailbox-backend.c' || echo '$(srcdir)/'`mn-mbox-mailbox-backend.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mbox-mailbox-backend.c' object='mail_notification-mn-mbox-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mbox-mailbox-backend.o `test -f 'mn-mbox-mailbox-backend.c' || echo '$(srcdir)/'`mn-mbox-mailbox-backend.c
+
+mail_notification-mn-mbox-mailbox-backend.obj: mn-mbox-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mbox-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" -c -o mail_notification-mn-mbox-mailbox-backend.obj `if test -f 'mn-mbox-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mbox-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mbox-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mbox-mailbox-backend.c' object='mail_notification-mn-mbox-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mbox-mailbox-backend.obj `if test -f 'mn-mbox-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mbox-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mbox-mailbox-backend.c'; fi`
+
+mail_notification-mn-mh-mailbox-backend.o: mn-mh-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mh-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" -c -o mail_notification-mn-mh-mailbox-backend.o `test -f 'mn-mh-mailbox-backend.c' || echo '$(srcdir)/'`mn-mh-mailbox-backend.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mh-mailbox-backend.c' object='mail_notification-mn-mh-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mh-mailbox-backend.o `test -f 'mn-mh-mailbox-backend.c' || echo '$(srcdir)/'`mn-mh-mailbox-backend.c
+
+mail_notification-mn-mh-mailbox-backend.obj: mn-mh-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mh-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" -c -o mail_notification-mn-mh-mailbox-backend.obj `if test -f 'mn-mh-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mh-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mh-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mh-mailbox-backend.c' object='mail_notification-mn-mh-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mh-mailbox-backend.obj `if test -f 'mn-mh-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mh-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mh-mailbox-backend.c'; fi`
+
+mail_notification-mn-maildir-mailbox-backend.o: mn-maildir-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-maildir-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" -c -o mail_notification-mn-maildir-mailbox-backend.o `test -f 'mn-maildir-mailbox-backend.c' || echo '$(srcdir)/'`mn-maildir-mailbox-backend.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-maildir-mailbox-backend.c' object='mail_notification-mn-maildir-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-maildir-mailbox-backend.o `test -f 'mn-maildir-mailbox-backend.c' || echo '$(srcdir)/'`mn-maildir-mailbox-backend.c
+
+mail_notification-mn-maildir-mailbox-backend.obj: mn-maildir-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-maildir-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" -c -o mail_notification-mn-maildir-mailbox-backend.obj `if test -f 'mn-maildir-mailbox-backend.c'; then $(CYGPATH_W) 'mn-maildir-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-maildir-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-maildir-mailbox-backend.c' object='mail_notification-mn-maildir-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-maildir-mailbox-backend.obj `if test -f 'mn-maildir-mailbox-backend.c'; then $(CYGPATH_W) 'mn-maildir-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-maildir-mailbox-backend.c'; fi`
+
+mail_notification-mn-pop3-mailbox-properties.o: mn-pop3-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" -c -o mail_notification-mn-pop3-mailbox-properties.o `test -f 'mn-pop3-mailbox-properties.c' || echo '$(srcdir)/'`mn-pop3-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pop3-mailbox-properties.c' object='mail_notification-mn-pop3-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox-properties.o `test -f 'mn-pop3-mailbox-properties.c' || echo '$(srcdir)/'`mn-pop3-mailbox-properties.c
+
+mail_notification-mn-pop3-mailbox-properties.obj: mn-pop3-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" -c -o mail_notification-mn-pop3-mailbox-properties.obj `if test -f 'mn-pop3-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pop3-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pop3-mailbox-properties.c' object='mail_notification-mn-pop3-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox-properties.obj `if test -f 'mn-pop3-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pop3-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox-properties.c'; fi`
+
+mail_notification-mn-pop3-mailbox.o: mn-pop3-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" -c -o mail_notification-mn-pop3-mailbox.o `test -f 'mn-pop3-mailbox.c' || echo '$(srcdir)/'`mn-pop3-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pop3-mailbox.c' object='mail_notification-mn-pop3-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox.o `test -f 'mn-pop3-mailbox.c' || echo '$(srcdir)/'`mn-pop3-mailbox.c
+
+mail_notification-mn-pop3-mailbox.obj: mn-pop3-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" -c -o mail_notification-mn-pop3-mailbox.obj `if test -f 'mn-pop3-mailbox.c'; then $(CYGPATH_W) 'mn-pop3-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pop3-mailbox.c' object='mail_notification-mn-pop3-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox.obj `if test -f 'mn-pop3-mailbox.c'; then $(CYGPATH_W) 'mn-pop3-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox.c'; fi`
+
+mail_notification-mn-imap-mailbox-properties.o: mn-imap-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" -c -o mail_notification-mn-imap-mailbox-properties.o `test -f 'mn-imap-mailbox-properties.c' || echo '$(srcdir)/'`mn-imap-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-imap-mailbox-properties.c' object='mail_notification-mn-imap-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox-properties.o `test -f 'mn-imap-mailbox-properties.c' || echo '$(srcdir)/'`mn-imap-mailbox-properties.c
+
+mail_notification-mn-imap-mailbox-properties.obj: mn-imap-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" -c -o mail_notification-mn-imap-mailbox-properties.obj `if test -f 'mn-imap-mailbox-properties.c'; then $(CYGPATH_W) 'mn-imap-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-imap-mailbox-properties.c' object='mail_notification-mn-imap-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox-properties.obj `if test -f 'mn-imap-mailbox-properties.c'; then $(CYGPATH_W) 'mn-imap-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox-properties.c'; fi`
+
+mail_notification-mn-imap-mailbox.o: mn-imap-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" -c -o mail_notification-mn-imap-mailbox.o `test -f 'mn-imap-mailbox.c' || echo '$(srcdir)/'`mn-imap-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-imap-mailbox.c' object='mail_notification-mn-imap-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox.o `test -f 'mn-imap-mailbox.c' || echo '$(srcdir)/'`mn-imap-mailbox.c
+
+mail_notification-mn-imap-mailbox.obj: mn-imap-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" -c -o mail_notification-mn-imap-mailbox.obj `if test -f 'mn-imap-mailbox.c'; then $(CYGPATH_W) 'mn-imap-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-imap-mailbox.c' object='mail_notification-mn-imap-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox.obj `if test -f 'mn-imap-mailbox.c'; then $(CYGPATH_W) 'mn-imap-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox.c'; fi`
+
+mail_notification-mn-authenticated-mailbox-properties.o: mn-authenticated-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" -c -o mail_notification-mn-authenticated-mailbox-properties.o `test -f 'mn-authenticated-mailbox-properties.c' || echo '$(srcdir)/'`mn-authenticated-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-authenticated-mailbox-properties.c' object='mail_notification-mn-authenticated-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox-properties.o `test -f 'mn-authenticated-mailbox-properties.c' || echo '$(srcdir)/'`mn-authenticated-mailbox-properties.c
+
+mail_notification-mn-authenticated-mailbox-properties.obj: mn-authenticated-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" -c -o mail_notification-mn-authenticated-mailbox-properties.obj `if test -f 'mn-authenticated-mailbox-properties.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-authenticated-mailbox-properties.c' object='mail_notification-mn-authenticated-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox-properties.obj `if test -f 'mn-authenticated-mailbox-properties.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox-properties.c'; fi`
+
+mail_notification-mn-authenticated-mailbox.o: mn-authenticated-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" -c -o mail_notification-mn-authenticated-mailbox.o `test -f 'mn-authenticated-mailbox.c' || echo '$(srcdir)/'`mn-authenticated-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-authenticated-mailbox.c' object='mail_notification-mn-authenticated-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox.o `test -f 'mn-authenticated-mailbox.c' || echo '$(srcdir)/'`mn-authenticated-mailbox.c
+
+mail_notification-mn-authenticated-mailbox.obj: mn-authenticated-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" -c -o mail_notification-mn-authenticated-mailbox.obj `if test -f 'mn-authenticated-mailbox.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-authenticated-mailbox.c' object='mail_notification-mn-authenticated-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox.obj `if test -f 'mn-authenticated-mailbox.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox.c'; fi`
+
+mail_notification-mn-auth-combo-box.o: mn-auth-combo-box.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-auth-combo-box.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" -c -o mail_notification-mn-auth-combo-box.o `test -f 'mn-auth-combo-box.c' || echo '$(srcdir)/'`mn-auth-combo-box.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" "$(DEPDIR)/mail_notification-mn-auth-combo-box.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-auth-combo-box.c' object='mail_notification-mn-auth-combo-box.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-auth-combo-box.o `test -f 'mn-auth-combo-box.c' || echo '$(srcdir)/'`mn-auth-combo-box.c
+
+mail_notification-mn-auth-combo-box.obj: mn-auth-combo-box.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-auth-combo-box.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" -c -o mail_notification-mn-auth-combo-box.obj `if test -f 'mn-auth-combo-box.c'; then $(CYGPATH_W) 'mn-auth-combo-box.c'; else $(CYGPATH_W) '$(srcdir)/mn-auth-combo-box.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" "$(DEPDIR)/mail_notification-mn-auth-combo-box.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-auth-combo-box.c' object='mail_notification-mn-auth-combo-box.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-auth-combo-box.obj `if test -f 'mn-auth-combo-box.c'; then $(CYGPATH_W) 'mn-auth-combo-box.c'; else $(CYGPATH_W) '$(srcdir)/mn-auth-combo-box.c'; fi`
+
+mail_notification-mn-pi-mailbox-properties.o: mn-pi-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" -c -o mail_notification-mn-pi-mailbox-properties.o `test -f 'mn-pi-mailbox-properties.c' || echo '$(srcdir)/'`mn-pi-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pi-mailbox-properties.c' object='mail_notification-mn-pi-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox-properties.o `test -f 'mn-pi-mailbox-properties.c' || echo '$(srcdir)/'`mn-pi-mailbox-properties.c
+
+mail_notification-mn-pi-mailbox-properties.obj: mn-pi-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" -c -o mail_notification-mn-pi-mailbox-properties.obj `if test -f 'mn-pi-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pi-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pi-mailbox-properties.c' object='mail_notification-mn-pi-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox-properties.obj `if test -f 'mn-pi-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pi-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox-properties.c'; fi`
+
+mail_notification-mn-pi-mailbox.o: mn-pi-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" -c -o mail_notification-mn-pi-mailbox.o `test -f 'mn-pi-mailbox.c' || echo '$(srcdir)/'`mn-pi-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pi-mailbox.c' object='mail_notification-mn-pi-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox.o `test -f 'mn-pi-mailbox.c' || echo '$(srcdir)/'`mn-pi-mailbox.c
+
+mail_notification-mn-pi-mailbox.obj: mn-pi-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" -c -o mail_notification-mn-pi-mailbox.obj `if test -f 'mn-pi-mailbox.c'; then $(CYGPATH_W) 'mn-pi-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-pi-mailbox.c' object='mail_notification-mn-pi-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox.obj `if test -f 'mn-pi-mailbox.c'; then $(CYGPATH_W) 'mn-pi-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox.c'; fi`
+
+mail_notification-mn-sylpheed-mailbox-backend.o: mn-sylpheed-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sylpheed-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" -c -o mail_notification-mn-sylpheed-mailbox-backend.o `test -f 'mn-sylpheed-mailbox-backend.c' || echo '$(srcdir)/'`mn-sylpheed-mailbox-backend.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-sylpheed-mailbox-backend.c' object='mail_notification-mn-sylpheed-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sylpheed-mailbox-backend.o `test -f 'mn-sylpheed-mailbox-backend.c' || echo '$(srcdir)/'`mn-sylpheed-mailbox-backend.c
+
+mail_notification-mn-sylpheed-mailbox-backend.obj: mn-sylpheed-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sylpheed-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" -c -o mail_notification-mn-sylpheed-mailbox-backend.obj `if test -f 'mn-sylpheed-mailbox-backend.c'; then $(CYGPATH_W) 'mn-sylpheed-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-sylpheed-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-sylpheed-mailbox-backend.c' object='mail_notification-mn-sylpheed-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sylpheed-mailbox-backend.obj `if test -f 'mn-sylpheed-mailbox-backend.c'; then $(CYGPATH_W) 'mn-sylpheed-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-sylpheed-mailbox-backend.c'; fi`
+
+mail_notification-mn-gmail-mailbox-properties.o: mn-gmail-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" -c -o mail_notification-mn-gmail-mailbox-properties.o `test -f 'mn-gmail-mailbox-properties.c' || echo '$(srcdir)/'`mn-gmail-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-gmail-mailbox-properties.c' object='mail_notification-mn-gmail-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox-properties.o `test -f 'mn-gmail-mailbox-properties.c' || echo '$(srcdir)/'`mn-gmail-mailbox-properties.c
+
+mail_notification-mn-gmail-mailbox-properties.obj: mn-gmail-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" -c -o mail_notification-mn-gmail-mailbox-properties.obj `if test -f 'mn-gmail-mailbox-properties.c'; then $(CYGPATH_W) 'mn-gmail-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-gmail-mailbox-properties.c' object='mail_notification-mn-gmail-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox-properties.obj `if test -f 'mn-gmail-mailbox-properties.c'; then $(CYGPATH_W) 'mn-gmail-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox-properties.c'; fi`
+
+mail_notification-mn-gmail-mailbox.o: mn-gmail-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" -c -o mail_notification-mn-gmail-mailbox.o `test -f 'mn-gmail-mailbox.c' || echo '$(srcdir)/'`mn-gmail-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-gmail-mailbox.c' object='mail_notification-mn-gmail-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox.o `test -f 'mn-gmail-mailbox.c' || echo '$(srcdir)/'`mn-gmail-mailbox.c
+
+mail_notification-mn-gmail-mailbox.obj: mn-gmail-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" -c -o mail_notification-mn-gmail-mailbox.obj `if test -f 'mn-gmail-mailbox.c'; then $(CYGPATH_W) 'mn-gmail-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-gmail-mailbox.c' object='mail_notification-mn-gmail-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox.obj `if test -f 'mn-gmail-mailbox.c'; then $(CYGPATH_W) 'mn-gmail-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox.c'; fi`
+
+mail_notification-mn-corba-object.o: mn-corba-object.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-corba-object.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" -c -o mail_notification-mn-corba-object.o `test -f 'mn-corba-object.c' || echo '$(srcdir)/'`mn-corba-object.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" "$(DEPDIR)/mail_notification-mn-corba-object.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-corba-object.c' object='mail_notification-mn-corba-object.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-corba-object.o `test -f 'mn-corba-object.c' || echo '$(srcdir)/'`mn-corba-object.c
+
+mail_notification-mn-corba-object.obj: mn-corba-object.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-corba-object.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" -c -o mail_notification-mn-corba-object.obj `if test -f 'mn-corba-object.c'; then $(CYGPATH_W) 'mn-corba-object.c'; else $(CYGPATH_W) '$(srcdir)/mn-corba-object.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" "$(DEPDIR)/mail_notification-mn-corba-object.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-corba-object.c' object='mail_notification-mn-corba-object.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-corba-object.obj `if test -f 'mn-corba-object.c'; then $(CYGPATH_W) 'mn-corba-object.c'; else $(CYGPATH_W) '$(srcdir)/mn-corba-object.c'; fi`
+
+mail_notification-mn-evolution-mailbox-properties.o: mn-evolution-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" -c -o mail_notification-mn-evolution-mailbox-properties.o `test -f 'mn-evolution-mailbox-properties.c' || echo '$(srcdir)/'`mn-evolution-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-evolution-mailbox-properties.c' object='mail_notification-mn-evolution-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox-properties.o `test -f 'mn-evolution-mailbox-properties.c' || echo '$(srcdir)/'`mn-evolution-mailbox-properties.c
+
+mail_notification-mn-evolution-mailbox-properties.obj: mn-evolution-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" -c -o mail_notification-mn-evolution-mailbox-properties.obj `if test -f 'mn-evolution-mailbox-properties.c'; then $(CYGPATH_W) 'mn-evolution-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-evolution-mailbox-properties.c' object='mail_notification-mn-evolution-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox-properties.obj `if test -f 'mn-evolution-mailbox-properties.c'; then $(CYGPATH_W) 'mn-evolution-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox-properties.c'; fi`
+
+mail_notification-mn-evolution-mailbox.o: mn-evolution-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" -c -o mail_notification-mn-evolution-mailbox.o `test -f 'mn-evolution-mailbox.c' || echo '$(srcdir)/'`mn-evolution-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-evolution-mailbox.c' object='mail_notification-mn-evolution-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox.o `test -f 'mn-evolution-mailbox.c' || echo '$(srcdir)/'`mn-evolution-mailbox.c
+
+mail_notification-mn-evolution-mailbox.obj: mn-evolution-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" -c -o mail_notification-mn-evolution-mailbox.obj `if test -f 'mn-evolution-mailbox.c'; then $(CYGPATH_W) 'mn-evolution-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-evolution-mailbox.c' object='mail_notification-mn-evolution-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox.obj `if test -f 'mn-evolution-mailbox.c'; then $(CYGPATH_W) 'mn-evolution-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox.c'; fi`
+
+mail_notification-mn-custom-vfs-mailbox.o: mn-custom-vfs-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-custom-vfs-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" -c -o mail_notification-mn-custom-vfs-mailbox.o `test -f 'mn-custom-vfs-mailbox.c' || echo '$(srcdir)/'`mn-custom-vfs-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-custom-vfs-mailbox.c' object='mail_notification-mn-custom-vfs-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-custom-vfs-mailbox.o `test -f 'mn-custom-vfs-mailbox.c' || echo '$(srcdir)/'`mn-custom-vfs-mailbox.c
+
+mail_notification-mn-custom-vfs-mailbox.obj: mn-custom-vfs-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-custom-vfs-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" -c -o mail_notification-mn-custom-vfs-mailbox.obj `if test -f 'mn-custom-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-custom-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-custom-vfs-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-custom-vfs-mailbox.c' object='mail_notification-mn-custom-vfs-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-custom-vfs-mailbox.obj `if test -f 'mn-custom-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-custom-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-custom-vfs-mailbox.c'; fi`
+
+mail_notification-mn-system-vfs-mailbox-properties.o: mn-system-vfs-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" -c -o mail_notification-mn-system-vfs-mailbox-properties.o `test -f 'mn-system-vfs-mailbox-properties.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-system-vfs-mailbox-properties.c' object='mail_notification-mn-system-vfs-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox-properties.o `test -f 'mn-system-vfs-mailbox-properties.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox-properties.c
+
+mail_notification-mn-system-vfs-mailbox-properties.obj: mn-system-vfs-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" -c -o mail_notification-mn-system-vfs-mailbox-properties.obj `if test -f 'mn-system-vfs-mailbox-properties.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-system-vfs-mailbox-properties.c' object='mail_notification-mn-system-vfs-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox-properties.obj `if test -f 'mn-system-vfs-mailbox-properties.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox-properties.c'; fi`
+
+mail_notification-mn-system-vfs-mailbox.o: mn-system-vfs-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" -c -o mail_notification-mn-system-vfs-mailbox.o `test -f 'mn-system-vfs-mailbox.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-system-vfs-mailbox.c' object='mail_notification-mn-system-vfs-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox.o `test -f 'mn-system-vfs-mailbox.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox.c
+
+mail_notification-mn-system-vfs-mailbox.obj: mn-system-vfs-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" -c -o mail_notification-mn-system-vfs-mailbox.obj `if test -f 'mn-system-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-system-vfs-mailbox.c' object='mail_notification-mn-system-vfs-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox.obj `if test -f 'mn-system-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox.c'; fi`
+
+mail_notification-mn-vfs-mailbox-backend.o: mn-vfs-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" -c -o mail_notification-mn-vfs-mailbox-backend.o `test -f 'mn-vfs-mailbox-backend.c' || echo '$(srcdir)/'`mn-vfs-mailbox-backend.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-vfs-mailbox-backend.c' object='mail_notification-mn-vfs-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox-backend.o `test -f 'mn-vfs-mailbox-backend.c' || echo '$(srcdir)/'`mn-vfs-mailbox-backend.c
+
+mail_notification-mn-vfs-mailbox-backend.obj: mn-vfs-mailbox-backend.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" -c -o mail_notification-mn-vfs-mailbox-backend.obj `if test -f 'mn-vfs-mailbox-backend.c'; then $(CYGPATH_W) 'mn-vfs-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-vfs-mailbox-backend.c' object='mail_notification-mn-vfs-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox-backend.obj `if test -f 'mn-vfs-mailbox-backend.c'; then $(CYGPATH_W) 'mn-vfs-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox-backend.c'; fi`
+
+mail_notification-mn-vfs-mailbox.o: mn-vfs-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" -c -o mail_notification-mn-vfs-mailbox.o `test -f 'mn-vfs-mailbox.c' || echo '$(srcdir)/'`mn-vfs-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-vfs-mailbox.c' object='mail_notification-mn-vfs-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox.o `test -f 'mn-vfs-mailbox.c' || echo '$(srcdir)/'`mn-vfs-mailbox.c
+
+mail_notification-mn-vfs-mailbox.obj: mn-vfs-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" -c -o mail_notification-mn-vfs-mailbox.obj `if test -f 'mn-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-vfs-mailbox.c' object='mail_notification-mn-vfs-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox.obj `if test -f 'mn-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox.c'; fi`
+
+mail_notification-mn-reentrant-mailbox.o: mn-reentrant-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-reentrant-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" -c -o mail_notification-mn-reentrant-mailbox.o `test -f 'mn-reentrant-mailbox.c' || echo '$(srcdir)/'`mn-reentrant-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-reentrant-mailbox.c' object='mail_notification-mn-reentrant-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-reentrant-mailbox.o `test -f 'mn-reentrant-mailbox.c' || echo '$(srcdir)/'`mn-reentrant-mailbox.c
+
+mail_notification-mn-reentrant-mailbox.obj: mn-reentrant-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-reentrant-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" -c -o mail_notification-mn-reentrant-mailbox.obj `if test -f 'mn-reentrant-mailbox.c'; then $(CYGPATH_W) 'mn-reentrant-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-reentrant-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-reentrant-mailbox.c' object='mail_notification-mn-reentrant-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-reentrant-mailbox.obj `if test -f 'mn-reentrant-mailbox.c'; then $(CYGPATH_W) 'mn-reentrant-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-reentrant-mailbox.c'; fi`
+
+mail_notification-mn-gmime-stream-vfs.o: mn-gmime-stream-vfs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmime-stream-vfs.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" -c -o mail_notification-mn-gmime-stream-vfs.o `test -f 'mn-gmime-stream-vfs.c' || echo '$(srcdir)/'`mn-gmime-stream-vfs.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-gmime-stream-vfs.c' object='mail_notification-mn-gmime-stream-vfs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmime-stream-vfs.o `test -f 'mn-gmime-stream-vfs.c' || echo '$(srcdir)/'`mn-gmime-stream-vfs.c
+
+mail_notification-mn-gmime-stream-vfs.obj: mn-gmime-stream-vfs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmime-stream-vfs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" -c -o mail_notification-mn-gmime-stream-vfs.obj `if test -f 'mn-gmime-stream-vfs.c'; then $(CYGPATH_W) 'mn-gmime-stream-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmime-stream-vfs.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-gmime-stream-vfs.c' object='mail_notification-mn-gmime-stream-vfs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmime-stream-vfs.obj `if test -f 'mn-gmime-stream-vfs.c'; then $(CYGPATH_W) 'mn-gmime-stream-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmime-stream-vfs.c'; fi`
+
+mail_notification-mn-about-dialog.o: mn-about-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-about-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" -c -o mail_notification-mn-about-dialog.o `test -f 'mn-about-dialog.c' || echo '$(srcdir)/'`mn-about-dialog.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-about-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-about-dialog.c' object='mail_notification-mn-about-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-about-dialog.o `test -f 'mn-about-dialog.c' || echo '$(srcdir)/'`mn-about-dialog.c
+
+mail_notification-mn-about-dialog.obj: mn-about-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-about-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" -c -o mail_notification-mn-about-dialog.obj `if test -f 'mn-about-dialog.c'; then $(CYGPATH_W) 'mn-about-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-about-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-about-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-about-dialog.c' object='mail_notification-mn-about-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-about-dialog.obj `if test -f 'mn-about-dialog.c'; then $(CYGPATH_W) 'mn-about-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-about-dialog.c'; fi`
+
+mail_notification-mn-autodetect-mailbox-properties.o: mn-autodetect-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-autodetect-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" -c -o mail_notification-mn-autodetect-mailbox-properties.o `test -f 'mn-autodetect-mailbox-properties.c' || echo '$(srcdir)/'`mn-autodetect-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-autodetect-mailbox-properties.c' object='mail_notification-mn-autodetect-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-autodetect-mailbox-properties.o `test -f 'mn-autodetect-mailbox-properties.c' || echo '$(srcdir)/'`mn-autodetect-mailbox-properties.c
+
+mail_notification-mn-autodetect-mailbox-properties.obj: mn-autodetect-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-autodetect-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" -c -o mail_notification-mn-autodetect-mailbox-properties.obj `if test -f 'mn-autodetect-mailbox-properties.c'; then $(CYGPATH_W) 'mn-autodetect-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-autodetect-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-autodetect-mailbox-properties.c' object='mail_notification-mn-autodetect-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-autodetect-mailbox-properties.obj `if test -f 'mn-autodetect-mailbox-properties.c'; then $(CYGPATH_W) 'mn-autodetect-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-autodetect-mailbox-properties.c'; fi`
+
+mail_notification-mn-automation.o: mn-automation.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-automation.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-automation.Tpo" -c -o mail_notification-mn-automation.o `test -f 'mn-automation.c' || echo '$(srcdir)/'`mn-automation.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-automation.Tpo" "$(DEPDIR)/mail_notification-mn-automation.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-automation.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-automation.c' object='mail_notification-mn-automation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-automation.o `test -f 'mn-automation.c' || echo '$(srcdir)/'`mn-automation.c
+
+mail_notification-mn-automation.obj: mn-automation.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-automation.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-automation.Tpo" -c -o mail_notification-mn-automation.obj `if test -f 'mn-automation.c'; then $(CYGPATH_W) 'mn-automation.c'; else $(CYGPATH_W) '$(srcdir)/mn-automation.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-automation.Tpo" "$(DEPDIR)/mail_notification-mn-automation.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-automation.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-automation.c' object='mail_notification-mn-automation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-automation.obj `if test -f 'mn-automation.c'; then $(CYGPATH_W) 'mn-automation.c'; else $(CYGPATH_W) '$(srcdir)/mn-automation.c'; fi`
+
+mail_notification-mn-blinking-image.o: mn-blinking-image.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-blinking-image.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" -c -o mail_notification-mn-blinking-image.o `test -f 'mn-blinking-image.c' || echo '$(srcdir)/'`mn-blinking-image.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" "$(DEPDIR)/mail_notification-mn-blinking-image.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-blinking-image.c' object='mail_notification-mn-blinking-image.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-blinking-image.o `test -f 'mn-blinking-image.c' || echo '$(srcdir)/'`mn-blinking-image.c
+
+mail_notification-mn-blinking-image.obj: mn-blinking-image.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-blinking-image.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" -c -o mail_notification-mn-blinking-image.obj `if test -f 'mn-blinking-image.c'; then $(CYGPATH_W) 'mn-blinking-image.c'; else $(CYGPATH_W) '$(srcdir)/mn-blinking-image.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" "$(DEPDIR)/mail_notification-mn-blinking-image.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-blinking-image.c' object='mail_notification-mn-blinking-image.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-blinking-image.obj `if test -f 'mn-blinking-image.c'; then $(CYGPATH_W) 'mn-blinking-image.c'; else $(CYGPATH_W) '$(srcdir)/mn-blinking-image.c'; fi`
+
+mail_notification-mn-dialog.o: mn-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-dialog.Tpo" -c -o mail_notification-mn-dialog.o `test -f 'mn-dialog.c' || echo '$(srcdir)/'`mn-dialog.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-dialog.c' object='mail_notification-mn-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-dialog.o `test -f 'mn-dialog.c' || echo '$(srcdir)/'`mn-dialog.c
+
+mail_notification-mn-dialog.obj: mn-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-dialog.Tpo" -c -o mail_notification-mn-dialog.obj `if test -f 'mn-dialog.c'; then $(CYGPATH_W) 'mn-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-dialog.c' object='mail_notification-mn-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-dialog.obj `if test -f 'mn-dialog.c'; then $(CYGPATH_W) 'mn-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-dialog.c'; fi`
+
+mail_notification-mn-mail-icon.o: mn-mail-icon.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-icon.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" -c -o mail_notification-mn-mail-icon.o `test -f 'mn-mail-icon.c' || echo '$(srcdir)/'`mn-mail-icon.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" "$(DEPDIR)/mail_notification-mn-mail-icon.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mail-icon.c' object='mail_notification-mn-mail-icon.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-icon.o `test -f 'mn-mail-icon.c' || echo '$(srcdir)/'`mn-mail-icon.c
+
+mail_notification-mn-mail-icon.obj: mn-mail-icon.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-icon.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" -c -o mail_notification-mn-mail-icon.obj `if test -f 'mn-mail-icon.c'; then $(CYGPATH_W) 'mn-mail-icon.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-icon.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" "$(DEPDIR)/mail_notification-mn-mail-icon.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mail-icon.c' object='mail_notification-mn-mail-icon.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-icon.obj `if test -f 'mn-mail-icon.c'; then $(CYGPATH_W) 'mn-mail-icon.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-icon.c'; fi`
+
+mail_notification-mn-mail-summary-popup.o: mn-mail-summary-popup.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-summary-popup.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" -c -o mail_notification-mn-mail-summary-popup.o `test -f 'mn-mail-summary-popup.c' || echo '$(srcdir)/'`mn-mail-summary-popup.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mail-summary-popup.c' object='mail_notification-mn-mail-summary-popup.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-summary-popup.o `test -f 'mn-mail-summary-popup.c' || echo '$(srcdir)/'`mn-mail-summary-popup.c
+
+mail_notification-mn-mail-summary-popup.obj: mn-mail-summary-popup.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-summary-popup.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" -c -o mail_notification-mn-mail-summary-popup.obj `if test -f 'mn-mail-summary-popup.c'; then $(CYGPATH_W) 'mn-mail-summary-popup.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-summary-popup.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mail-summary-popup.c' object='mail_notification-mn-mail-summary-popup.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-summary-popup.obj `if test -f 'mn-mail-summary-popup.c'; then $(CYGPATH_W) 'mn-mail-summary-popup.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-summary-popup.c'; fi`
+
+mail_notification-mn-mailbox-properties-dialog.o: mn-mailbox-properties-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" -c -o mail_notification-mn-mailbox-properties-dialog.o `test -f 'mn-mailbox-properties-dialog.c' || echo '$(srcdir)/'`mn-mailbox-properties-dialog.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox-properties-dialog.c' object='mail_notification-mn-mailbox-properties-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties-dialog.o `test -f 'mn-mailbox-properties-dialog.c' || echo '$(srcdir)/'`mn-mailbox-properties-dialog.c
+
+mail_notification-mn-mailbox-properties-dialog.obj: mn-mailbox-properties-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" -c -o mail_notification-mn-mailbox-properties-dialog.obj `if test -f 'mn-mailbox-properties-dialog.c'; then $(CYGPATH_W) 'mn-mailbox-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox-properties-dialog.c' object='mail_notification-mn-mailbox-properties-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties-dialog.obj `if test -f 'mn-mailbox-properties-dialog.c'; then $(CYGPATH_W) 'mn-mailbox-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties-dialog.c'; fi`
+
+mail_notification-mn-mailbox-properties.o: mn-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" -c -o mail_notification-mn-mailbox-properties.o `test -f 'mn-mailbox-properties.c' || echo '$(srcdir)/'`mn-mailbox-properties.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox-properties.c' object='mail_notification-mn-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties.o `test -f 'mn-mailbox-properties.c' || echo '$(srcdir)/'`mn-mailbox-properties.c
+
+mail_notification-mn-mailbox-properties.obj: mn-mailbox-properties.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" -c -o mail_notification-mn-mailbox-properties.obj `if test -f 'mn-mailbox-properties.c'; then $(CYGPATH_W) 'mn-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox-properties.c' object='mail_notification-mn-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties.obj `if test -f 'mn-mailbox-properties.c'; then $(CYGPATH_W) 'mn-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties.c'; fi`
+
+mail_notification-mn-mailbox-view.o: mn-mailbox-view.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-view.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" -c -o mail_notification-mn-mailbox-view.o `test -f 'mn-mailbox-view.c' || echo '$(srcdir)/'`mn-mailbox-view.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox-view.c' object='mail_notification-mn-mailbox-view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-view.o `test -f 'mn-mailbox-view.c' || echo '$(srcdir)/'`mn-mailbox-view.c
+
+mail_notification-mn-mailbox-view.obj: mn-mailbox-view.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-view.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" -c -o mail_notification-mn-mailbox-view.obj `if test -f 'mn-mailbox-view.c'; then $(CYGPATH_W) 'mn-mailbox-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-view.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox-view.c' object='mail_notification-mn-mailbox-view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-view.obj `if test -f 'mn-mailbox-view.c'; then $(CYGPATH_W) 'mn-mailbox-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-view.c'; fi`
+
+mail_notification-mn-mailbox.o: mn-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" -c -o mail_notification-mn-mailbox.o `test -f 'mn-mailbox.c' || echo '$(srcdir)/'`mn-mailbox.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox.c' object='mail_notification-mn-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox.o `test -f 'mn-mailbox.c' || echo '$(srcdir)/'`mn-mailbox.c
+
+mail_notification-mn-mailbox.obj: mn-mailbox.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" -c -o mail_notification-mn-mailbox.obj `if test -f 'mn-mailbox.c'; then $(CYGPATH_W) 'mn-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailbox.c' object='mail_notification-mn-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox.obj `if test -f 'mn-mailbox.c'; then $(CYGPATH_W) 'mn-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox.c'; fi`
+
+mail_notification-mn-mailboxes.o: mn-mailboxes.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailboxes.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" -c -o mail_notification-mn-mailboxes.o `test -f 'mn-mailboxes.c' || echo '$(srcdir)/'`mn-mailboxes.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" "$(DEPDIR)/mail_notification-mn-mailboxes.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailboxes.c' object='mail_notification-mn-mailboxes.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailboxes.o `test -f 'mn-mailboxes.c' || echo '$(srcdir)/'`mn-mailboxes.c
+
+mail_notification-mn-mailboxes.obj: mn-mailboxes.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailboxes.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" -c -o mail_notification-mn-mailboxes.obj `if test -f 'mn-mailboxes.c'; then $(CYGPATH_W) 'mn-mailboxes.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailboxes.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" "$(DEPDIR)/mail_notification-mn-mailboxes.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-mailboxes.c' object='mail_notification-mn-mailboxes.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailboxes.obj `if test -f 'mn-mailboxes.c'; then $(CYGPATH_W) 'mn-mailboxes.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailboxes.c'; fi`
+
+mail_notification-mn-main-window.o: mn-main-window.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main-window.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main-window.Tpo" -c -o mail_notification-mn-main-window.o `test -f 'mn-main-window.c' || echo '$(srcdir)/'`mn-main-window.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo" "$(DEPDIR)/mail_notification-mn-main-window.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-main-window.c' object='mail_notification-mn-main-window.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main-window.o `test -f 'mn-main-window.c' || echo '$(srcdir)/'`mn-main-window.c
+
+mail_notification-mn-main-window.obj: mn-main-window.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main-window.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main-window.Tpo" -c -o mail_notification-mn-main-window.obj `if test -f 'mn-main-window.c'; then $(CYGPATH_W) 'mn-main-window.c'; else $(CYGPATH_W) '$(srcdir)/mn-main-window.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo" "$(DEPDIR)/mail_notification-mn-main-window.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-main-window.c' object='mail_notification-mn-main-window.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main-window.obj `if test -f 'mn-main-window.c'; then $(CYGPATH_W) 'mn-main-window.c'; else $(CYGPATH_W) '$(srcdir)/mn-main-window.c'; fi`
+
+mail_notification-mn-message-view.o: mn-message-view.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-view.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-view.Tpo" -c -o mail_notification-mn-message-view.o `test -f 'mn-message-view.c' || echo '$(srcdir)/'`mn-message-view.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo" "$(DEPDIR)/mail_notification-mn-message-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-message-view.c' object='mail_notification-mn-message-view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-view.o `test -f 'mn-message-view.c' || echo '$(srcdir)/'`mn-message-view.c
+
+mail_notification-mn-message-view.obj: mn-message-view.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-view.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-view.Tpo" -c -o mail_notification-mn-message-view.obj `if test -f 'mn-message-view.c'; then $(CYGPATH_W) 'mn-message-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-view.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo" "$(DEPDIR)/mail_notification-mn-message-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-message-view.c' object='mail_notification-mn-message-view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-view.obj `if test -f 'mn-message-view.c'; then $(CYGPATH_W) 'mn-message-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-view.c'; fi`
+
+mail_notification-mn-message.o: mn-message.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message.Tpo" -c -o mail_notification-mn-message.o `test -f 'mn-message.c' || echo '$(srcdir)/'`mn-message.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-message.Tpo" "$(DEPDIR)/mail_notification-mn-message.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-message.c' object='mail_notification-mn-message.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message.o `test -f 'mn-message.c' || echo '$(srcdir)/'`mn-message.c
+
+mail_notification-mn-message.obj: mn-message.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message.Tpo" -c -o mail_notification-mn-message.obj `if test -f 'mn-message.c'; then $(CYGPATH_W) 'mn-message.c'; else $(CYGPATH_W) '$(srcdir)/mn-message.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-message.Tpo" "$(DEPDIR)/mail_notification-mn-message.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-message.c' object='mail_notification-mn-message.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message.obj `if test -f 'mn-message.c'; then $(CYGPATH_W) 'mn-message.c'; else $(CYGPATH_W) '$(srcdir)/mn-message.c'; fi`
+
+mail_notification-mn-properties-dialog.o: mn-properties-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-properties-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" -c -o mail_notification-mn-properties-dialog.o `test -f 'mn-properties-dialog.c' || echo '$(srcdir)/'`mn-properties-dialog.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-properties-dialog.c' object='mail_notification-mn-properties-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-properties-dialog.o `test -f 'mn-properties-dialog.c' || echo '$(srcdir)/'`mn-properties-dialog.c
+
+mail_notification-mn-properties-dialog.obj: mn-properties-dialog.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-properties-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" -c -o mail_notification-mn-properties-dialog.obj `if test -f 'mn-properties-dialog.c'; then $(CYGPATH_W) 'mn-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-properties-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-properties-dialog.c' object='mail_notification-mn-properties-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-properties-dialog.obj `if test -f 'mn-properties-dialog.c'; then $(CYGPATH_W) 'mn-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-properties-dialog.c'; fi`
+
+mail_notification-mn-shell.o: mn-shell.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-shell.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-shell.Tpo" -c -o mail_notification-mn-shell.o `test -f 'mn-shell.c' || echo '$(srcdir)/'`mn-shell.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-shell.Tpo" "$(DEPDIR)/mail_notification-mn-shell.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-shell.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-shell.c' object='mail_notification-mn-shell.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-shell.o `test -f 'mn-shell.c' || echo '$(srcdir)/'`mn-shell.c
+
+mail_notification-mn-shell.obj: mn-shell.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-shell.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-shell.Tpo" -c -o mail_notification-mn-shell.obj `if test -f 'mn-shell.c'; then $(CYGPATH_W) 'mn-shell.c'; else $(CYGPATH_W) '$(srcdir)/mn-shell.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-shell.Tpo" "$(DEPDIR)/mail_notification-mn-shell.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-shell.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-shell.c' object='mail_notification-mn-shell.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-shell.obj `if test -f 'mn-shell.c'; then $(CYGPATH_W) 'mn-shell.c'; else $(CYGPATH_W) '$(srcdir)/mn-shell.c'; fi`
+
+mail_notification-mn-tooltips.o: mn-tooltips.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-tooltips.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" -c -o mail_notification-mn-tooltips.o `test -f 'mn-tooltips.c' || echo '$(srcdir)/'`mn-tooltips.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" "$(DEPDIR)/mail_notification-mn-tooltips.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-tooltips.c' object='mail_notification-mn-tooltips.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-tooltips.o `test -f 'mn-tooltips.c' || echo '$(srcdir)/'`mn-tooltips.c
+
+mail_notification-mn-tooltips.obj: mn-tooltips.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-tooltips.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" -c -o mail_notification-mn-tooltips.obj `if test -f 'mn-tooltips.c'; then $(CYGPATH_W) 'mn-tooltips.c'; else $(CYGPATH_W) '$(srcdir)/mn-tooltips.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" "$(DEPDIR)/mail_notification-mn-tooltips.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-tooltips.c' object='mail_notification-mn-tooltips.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-tooltips.obj `if test -f 'mn-tooltips.c'; then $(CYGPATH_W) 'mn-tooltips.c'; else $(CYGPATH_W) '$(srcdir)/mn-tooltips.c'; fi`
+
+mail_notification-eggmarshalers.o: eggmarshalers.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggmarshalers.o -MD -MP -MF "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" -c -o mail_notification-eggmarshalers.o `test -f 'eggmarshalers.c' || echo '$(srcdir)/'`eggmarshalers.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" "$(DEPDIR)/mail_notification-eggmarshalers.Po"; else rm -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eggmarshalers.c' object='mail_notification-eggmarshalers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggmarshalers.o `test -f 'eggmarshalers.c' || echo '$(srcdir)/'`eggmarshalers.c
+
+mail_notification-eggmarshalers.obj: eggmarshalers.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggmarshalers.obj -MD -MP -MF "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" -c -o mail_notification-eggmarshalers.obj `if test -f 'eggmarshalers.c'; then $(CYGPATH_W) 'eggmarshalers.c'; else $(CYGPATH_W) '$(srcdir)/eggmarshalers.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" "$(DEPDIR)/mail_notification-eggmarshalers.Po"; else rm -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eggmarshalers.c' object='mail_notification-eggmarshalers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggmarshalers.obj `if test -f 'eggmarshalers.c'; then $(CYGPATH_W) 'eggmarshalers.c'; else $(CYGPATH_W) '$(srcdir)/eggmarshalers.c'; fi`
+
+mail_notification-mn-md5.o: mn-md5.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-md5.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-md5.Tpo" -c -o mail_notification-mn-md5.o `test -f 'mn-md5.c' || echo '$(srcdir)/'`mn-md5.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-md5.Tpo" "$(DEPDIR)/mail_notification-mn-md5.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-md5.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-md5.c' object='mail_notification-mn-md5.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-md5.o `test -f 'mn-md5.c' || echo '$(srcdir)/'`mn-md5.c
+
+mail_notification-mn-md5.obj: mn-md5.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-md5.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-md5.Tpo" -c -o mail_notification-mn-md5.obj `if test -f 'mn-md5.c'; then $(CYGPATH_W) 'mn-md5.c'; else $(CYGPATH_W) '$(srcdir)/mn-md5.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-md5.Tpo" "$(DEPDIR)/mail_notification-mn-md5.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-md5.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-md5.c' object='mail_notification-mn-md5.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-md5.obj `if test -f 'mn-md5.c'; then $(CYGPATH_W) 'mn-md5.c'; else $(CYGPATH_W) '$(srcdir)/mn-md5.c'; fi`
+
+mail_notification-mn-client-session.o: mn-client-session.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-client-session.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-client-session.Tpo" -c -o mail_notification-mn-client-session.o `test -f 'mn-client-session.c' || echo '$(srcdir)/'`mn-client-session.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo" "$(DEPDIR)/mail_notification-mn-client-session.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-client-session.c' object='mail_notification-mn-client-session.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-client-session.o `test -f 'mn-client-session.c' || echo '$(srcdir)/'`mn-client-session.c
+
+mail_notification-mn-client-session.obj: mn-client-session.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-client-session.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-client-session.Tpo" -c -o mail_notification-mn-client-session.obj `if test -f 'mn-client-session.c'; then $(CYGPATH_W) 'mn-client-session.c'; else $(CYGPATH_W) '$(srcdir)/mn-client-session.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo" "$(DEPDIR)/mail_notification-mn-client-session.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-client-session.c' object='mail_notification-mn-client-session.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-client-session.obj `if test -f 'mn-client-session.c'; then $(CYGPATH_W) 'mn-client-session.c'; else $(CYGPATH_W) '$(srcdir)/mn-client-session.c'; fi`
+
+mail_notification-mn-ssl.o: mn-ssl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-ssl.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-ssl.Tpo" -c -o mail_notification-mn-ssl.o `test -f 'mn-ssl.c' || echo '$(srcdir)/'`mn-ssl.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo" "$(DEPDIR)/mail_notification-mn-ssl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-ssl.c' object='mail_notification-mn-ssl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-ssl.o `test -f 'mn-ssl.c' || echo '$(srcdir)/'`mn-ssl.c
+
+mail_notification-mn-ssl.obj: mn-ssl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-ssl.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-ssl.Tpo" -c -o mail_notification-mn-ssl.obj `if test -f 'mn-ssl.c'; then $(CYGPATH_W) 'mn-ssl.c'; else $(CYGPATH_W) '$(srcdir)/mn-ssl.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo" "$(DEPDIR)/mail_notification-mn-ssl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-ssl.c' object='mail_notification-mn-ssl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-ssl.obj `if test -f 'mn-ssl.c'; then $(CYGPATH_W) 'mn-ssl.c'; else $(CYGPATH_W) '$(srcdir)/mn-ssl.c'; fi`
+
+mail_notification-mn-sasl.o: mn-sasl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sasl.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sasl.Tpo" -c -o mail_notification-mn-sasl.o `test -f 'mn-sasl.c' || echo '$(srcdir)/'`mn-sasl.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo" "$(DEPDIR)/mail_notification-mn-sasl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-sasl.c' object='mail_notification-mn-sasl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sasl.o `test -f 'mn-sasl.c' || echo '$(srcdir)/'`mn-sasl.c
+
+mail_notification-mn-sasl.obj: mn-sasl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sasl.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sasl.Tpo" -c -o mail_notification-mn-sasl.obj `if test -f 'mn-sasl.c'; then $(CYGPATH_W) 'mn-sasl.c'; else $(CYGPATH_W) '$(srcdir)/mn-sasl.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo" "$(DEPDIR)/mail_notification-mn-sasl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-sasl.c' object='mail_notification-mn-sasl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sasl.obj `if test -f 'mn-sasl.c'; then $(CYGPATH_W) 'mn-sasl.c'; else $(CYGPATH_W) '$(srcdir)/mn-sasl.c'; fi`
+
+mail_notification-mn-message-mime.o: mn-message-mime.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-mime.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" -c -o mail_notification-mn-message-mime.o `test -f 'mn-message-mime.c' || echo '$(srcdir)/'`mn-message-mime.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" "$(DEPDIR)/mail_notification-mn-message-mime.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-message-mime.c' object='mail_notification-mn-message-mime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-mime.o `test -f 'mn-message-mime.c' || echo '$(srcdir)/'`mn-message-mime.c
+
+mail_notification-mn-message-mime.obj: mn-message-mime.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-mime.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" -c -o mail_notification-mn-message-mime.obj `if test -f 'mn-message-mime.c'; then $(CYGPATH_W) 'mn-message-mime.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-mime.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" "$(DEPDIR)/mail_notification-mn-message-mime.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-message-mime.c' object='mail_notification-mn-message-mime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-mime.obj `if test -f 'mn-message-mime.c'; then $(CYGPATH_W) 'mn-message-mime.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-mime.c'; fi`
+
+mail_notification-egg-editable-toolbar.o: egg-editable-toolbar.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-editable-toolbar.o -MD -MP -MF "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" -c -o mail_notification-egg-editable-toolbar.o `test -f 'egg-editable-toolbar.c' || echo '$(srcdir)/'`egg-editable-toolbar.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" "$(DEPDIR)/mail_notification-egg-editable-toolbar.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egg-editable-toolbar.c' object='mail_notification-egg-editable-toolbar.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-editable-toolbar.o `test -f 'egg-editable-toolbar.c' || echo '$(srcdir)/'`egg-editable-toolbar.c
+
+mail_notification-egg-editable-toolbar.obj: egg-editable-toolbar.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-editable-toolbar.obj -MD -MP -MF "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" -c -o mail_notification-egg-editable-toolbar.obj `if test -f 'egg-editable-toolbar.c'; then $(CYGPATH_W) 'egg-editable-toolbar.c'; else $(CYGPATH_W) '$(srcdir)/egg-editable-toolbar.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" "$(DEPDIR)/mail_notification-egg-editable-toolbar.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egg-editable-toolbar.c' object='mail_notification-egg-editable-toolbar.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-editable-toolbar.obj `if test -f 'egg-editable-toolbar.c'; then $(CYGPATH_W) 'egg-editable-toolbar.c'; else $(CYGPATH_W) '$(srcdir)/egg-editable-toolbar.c'; fi`
+
+mail_notification-egg-toolbar-editor.o: egg-toolbar-editor.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbar-editor.o -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" -c -o mail_notification-egg-toolbar-editor.o `test -f 'egg-toolbar-editor.c' || echo '$(srcdir)/'`egg-toolbar-editor.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" "$(DEPDIR)/mail_notification-egg-toolbar-editor.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egg-toolbar-editor.c' object='mail_notification-egg-toolbar-editor.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbar-editor.o `test -f 'egg-toolbar-editor.c' || echo '$(srcdir)/'`egg-toolbar-editor.c
+
+mail_notification-egg-toolbar-editor.obj: egg-toolbar-editor.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbar-editor.obj -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" -c -o mail_notification-egg-toolbar-editor.obj `if test -f 'egg-toolbar-editor.c'; then $(CYGPATH_W) 'egg-toolbar-editor.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbar-editor.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" "$(DEPDIR)/mail_notification-egg-toolbar-editor.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egg-toolbar-editor.c' object='mail_notification-egg-toolbar-editor.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbar-editor.obj `if test -f 'egg-toolbar-editor.c'; then $(CYGPATH_W) 'egg-toolbar-editor.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbar-editor.c'; fi`
+
+mail_notification-egg-toolbars-model.o: egg-toolbars-model.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbars-model.o -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" -c -o mail_notification-egg-toolbars-model.o `test -f 'egg-toolbars-model.c' || echo '$(srcdir)/'`egg-toolbars-model.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" "$(DEPDIR)/mail_notification-egg-toolbars-model.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egg-toolbars-model.c' object='mail_notification-egg-toolbars-model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbars-model.o `test -f 'egg-toolbars-model.c' || echo '$(srcdir)/'`egg-toolbars-model.c
+
+mail_notification-egg-toolbars-model.obj: egg-toolbars-model.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbars-model.obj -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" -c -o mail_notification-egg-toolbars-model.obj `if test -f 'egg-toolbars-model.c'; then $(CYGPATH_W) 'egg-toolbars-model.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbars-model.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" "$(DEPDIR)/mail_notification-egg-toolbars-model.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egg-toolbars-model.c' object='mail_notification-egg-toolbars-model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbars-model.obj `if test -f 'egg-toolbars-model.c'; then $(CYGPATH_W) 'egg-toolbars-model.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbars-model.c'; fi`
+
+mail_notification-eggtrayicon.o: eggtrayicon.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggtrayicon.o -MD -MP -MF "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" -c -o mail_notification-eggtrayicon.o `test -f 'eggtrayicon.c' || echo '$(srcdir)/'`eggtrayicon.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" "$(DEPDIR)/mail_notification-eggtrayicon.Po"; else rm -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eggtrayicon.c' object='mail_notification-eggtrayicon.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggtrayicon.o `test -f 'eggtrayicon.c' || echo '$(srcdir)/'`eggtrayicon.c
+
+mail_notification-eggtrayicon.obj: eggtrayicon.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggtrayicon.obj -MD -MP -MF "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" -c -o mail_notification-eggtrayicon.obj `if test -f 'eggtrayicon.c'; then $(CYGPATH_W) 'eggtrayicon.c'; else $(CYGPATH_W) '$(srcdir)/eggtrayicon.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" "$(DEPDIR)/mail_notification-eggtrayicon.Po"; else rm -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eggtrayicon.c' object='mail_notification-eggtrayicon.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggtrayicon.obj `if test -f 'eggtrayicon.c'; then $(CYGPATH_W) 'eggtrayicon.c'; else $(CYGPATH_W) '$(srcdir)/eggtrayicon.c'; fi`
+
+mail_notification-mn-conf.o: mn-conf.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-conf.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-conf.Tpo" -c -o mail_notification-mn-conf.o `test -f 'mn-conf.c' || echo '$(srcdir)/'`mn-conf.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-conf.Tpo" "$(DEPDIR)/mail_notification-mn-conf.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-conf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-conf.c' object='mail_notification-mn-conf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-conf.o `test -f 'mn-conf.c' || echo '$(srcdir)/'`mn-conf.c
+
+mail_notification-mn-conf.obj: mn-conf.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-conf.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-conf.Tpo" -c -o mail_notification-mn-conf.obj `if test -f 'mn-conf.c'; then $(CYGPATH_W) 'mn-conf.c'; else $(CYGPATH_W) '$(srcdir)/mn-conf.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-conf.Tpo" "$(DEPDIR)/mail_notification-mn-conf.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-conf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-conf.c' object='mail_notification-mn-conf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-conf.obj `if test -f 'mn-conf.c'; then $(CYGPATH_W) 'mn-conf.c'; else $(CYGPATH_W) '$(srcdir)/mn-conf.c'; fi`
+
+mail_notification-mn-main.o: mn-main.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main.Tpo" -c -o mail_notification-mn-main.o `test -f 'mn-main.c' || echo '$(srcdir)/'`mn-main.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-main.Tpo" "$(DEPDIR)/mail_notification-mn-main.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-main.c' object='mail_notification-mn-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main.o `test -f 'mn-main.c' || echo '$(srcdir)/'`mn-main.c
+
+mail_notification-mn-main.obj: mn-main.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main.Tpo" -c -o mail_notification-mn-main.obj `if test -f 'mn-main.c'; then $(CYGPATH_W) 'mn-main.c'; else $(CYGPATH_W) '$(srcdir)/mn-main.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-main.Tpo" "$(DEPDIR)/mail_notification-mn-main.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-main.c' object='mail_notification-mn-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main.obj `if test -f 'mn-main.c'; then $(CYGPATH_W) 'mn-main.c'; else $(CYGPATH_W) '$(srcdir)/mn-main.c'; fi`
+
+mail_notification-mn-stock.o: mn-stock.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-stock.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-stock.Tpo" -c -o mail_notification-mn-stock.o `test -f 'mn-stock.c' || echo '$(srcdir)/'`mn-stock.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-stock.Tpo" "$(DEPDIR)/mail_notification-mn-stock.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-stock.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-stock.c' object='mail_notification-mn-stock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-stock.o `test -f 'mn-stock.c' || echo '$(srcdir)/'`mn-stock.c
+
+mail_notification-mn-stock.obj: mn-stock.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-stock.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-stock.Tpo" -c -o mail_notification-mn-stock.obj `if test -f 'mn-stock.c'; then $(CYGPATH_W) 'mn-stock.c'; else $(CYGPATH_W) '$(srcdir)/mn-stock.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-stock.Tpo" "$(DEPDIR)/mail_notification-mn-stock.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-stock.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-stock.c' object='mail_notification-mn-stock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-stock.obj `if test -f 'mn-stock.c'; then $(CYGPATH_W) 'mn-stock.c'; else $(CYGPATH_W) '$(srcdir)/mn-stock.c'; fi`
+
+mail_notification-mn-util.o: mn-util.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-util.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-util.Tpo" -c -o mail_notification-mn-util.o `test -f 'mn-util.c' || echo '$(srcdir)/'`mn-util.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-util.Tpo" "$(DEPDIR)/mail_notification-mn-util.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-util.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-util.c' object='mail_notification-mn-util.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-util.o `test -f 'mn-util.c' || echo '$(srcdir)/'`mn-util.c
+
+mail_notification-mn-util.obj: mn-util.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-util.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-util.Tpo" -c -o mail_notification-mn-util.obj `if test -f 'mn-util.c'; then $(CYGPATH_W) 'mn-util.c'; else $(CYGPATH_W) '$(srcdir)/mn-util.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-util.Tpo" "$(DEPDIR)/mail_notification-mn-util.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-util.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-util.c' object='mail_notification-mn-util.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-util.obj `if test -f 'mn-util.c'; then $(CYGPATH_W) 'mn-util.c'; else $(CYGPATH_W) '$(srcdir)/mn-util.c'; fi`
+
+mail_notification-mn-vfs.o: mn-vfs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs.Tpo" -c -o mail_notification-mn-vfs.o `test -f 'mn-vfs.c' || echo '$(srcdir)/'`mn-vfs.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-vfs.c' object='mail_notification-mn-vfs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs.o `test -f 'mn-vfs.c' || echo '$(srcdir)/'`mn-vfs.c
+
+mail_notification-mn-vfs.obj: mn-vfs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs.Tpo" -c -o mail_notification-mn-vfs.obj `if test -f 'mn-vfs.c'; then $(CYGPATH_W) 'mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mn-vfs.c' object='mail_notification-mn-vfs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs.obj `if test -f 'mn-vfs.c'; then $(CYGPATH_W) 'mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs.c'; fi`
+
+mail_notification-nautilus-cell-renderer-pixbuf-emblem.o: nautilus-cell-renderer-pixbuf-emblem.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-nautilus-cell-renderer-pixbuf-emblem.o -MD -MP -MF "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.o `test -f 'nautilus-cell-renderer-pixbuf-emblem.c' || echo '$(srcdir)/'`nautilus-cell-renderer-pixbuf-emblem.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Po"; else rm -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nautilus-cell-renderer-pixbuf-emblem.c' object='mail_notification-nautilus-cell-renderer-pixbuf-emblem.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.o `test -f 'nautilus-cell-renderer-pixbuf-emblem.c' || echo '$(srcdir)/'`nautilus-cell-renderer-pixbuf-emblem.c
+
+mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj: nautilus-cell-renderer-pixbuf-emblem.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj -MD -MP -MF "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj `if test -f 'nautilus-cell-renderer-pixbuf-emblem.c'; then $(CYGPATH_W) 'nautilus-cell-renderer-pixbuf-emblem.c'; else $(CYGPATH_W) '$(srcdir)/nautilus-cell-renderer-pixbuf-emblem.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Po"; else rm -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nautilus-cell-renderer-pixbuf-emblem.c' object='mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj `if test -f 'nautilus-cell-renderer-pixbuf-emblem.c'; then $(CYGPATH_W) 'nautilus-cell-renderer-pixbuf-emblem.c'; else $(CYGPATH_W) '$(srcdir)/nautilus-cell-renderer-pixbuf-emblem.c'; fi`
+
+mail_notification-GNOME_MailNotification_Evolution-common.o: GNOME_MailNotification_Evolution-common.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-common.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-common.o `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-common.c' object='mail_notification-GNOME_MailNotification_Evolution-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-common.o `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c
+
+mail_notification-GNOME_MailNotification_Evolution-common.obj: GNOME_MailNotification_Evolution-common.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-common.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-common.obj `if test -f 'GNOME_MailNotification_Evolution-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-common.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-common.c' object='mail_notification-GNOME_MailNotification_Evolution-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-common.obj `if test -f 'GNOME_MailNotification_Evolution-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-common.c'; fi`
+
+mail_notification-GNOME_MailNotification_Evolution-stubs.o: GNOME_MailNotification_Evolution-stubs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-stubs.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.o `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-stubs.c' object='mail_notification-GNOME_MailNotification_Evolution-stubs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.o `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c
+
+mail_notification-GNOME_MailNotification_Evolution-stubs.obj: GNOME_MailNotification_Evolution-stubs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-stubs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.obj `if test -f 'GNOME_MailNotification_Evolution-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-stubs.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-stubs.c' object='mail_notification-GNOME_MailNotification_Evolution-stubs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.obj `if test -f 'GNOME_MailNotification_Evolution-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-stubs.c'; fi`
+
+mail_notification-GNOME_MailNotification_Evolution-skels.o: GNOME_MailNotification_Evolution-skels.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-skels.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-skels.o `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-skels.c' object='mail_notification-GNOME_MailNotification_Evolution-skels.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-skels.o `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c
+
+mail_notification-GNOME_MailNotification_Evolution-skels.obj: GNOME_MailNotification_Evolution-skels.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-skels.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-skels.obj `if test -f 'GNOME_MailNotification_Evolution-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-skels.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification_Evolution-skels.c' object='mail_notification-GNOME_MailNotification_Evolution-skels.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-skels.obj `if test -f 'GNOME_MailNotification_Evolution-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-skels.c'; fi`
+
+mail_notification-GNOME_MailNotification-common.o: GNOME_MailNotification-common.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-common.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" -c -o mail_notification-GNOME_MailNotification-common.o `test -f 'GNOME_MailNotification-common.c' || echo '$(srcdir)/'`GNOME_MailNotification-common.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification-common.c' object='mail_notification-GNOME_MailNotification-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-common.o `test -f 'GNOME_MailNotification-common.c' || echo '$(srcdir)/'`GNOME_MailNotification-common.c
+
+mail_notification-GNOME_MailNotification-common.obj: GNOME_MailNotification-common.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-common.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" -c -o mail_notification-GNOME_MailNotification-common.obj `if test -f 'GNOME_MailNotification-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-common.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification-common.c' object='mail_notification-GNOME_MailNotification-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-common.obj `if test -f 'GNOME_MailNotification-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-common.c'; fi`
+
+mail_notification-GNOME_MailNotification-stubs.o: GNOME_MailNotification-stubs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-stubs.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification-stubs.o `test -f 'GNOME_MailNotification-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification-stubs.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification-stubs.c' object='mail_notification-GNOME_MailNotification-stubs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-stubs.o `test -f 'GNOME_MailNotification-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification-stubs.c
+
+mail_notification-GNOME_MailNotification-stubs.obj: GNOME_MailNotification-stubs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-stubs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification-stubs.obj `if test -f 'GNOME_MailNotification-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-stubs.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification-stubs.c' object='mail_notification-GNOME_MailNotification-stubs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-stubs.obj `if test -f 'GNOME_MailNotification-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-stubs.c'; fi`
+
+mail_notification-GNOME_MailNotification-skels.o: GNOME_MailNotification-skels.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-skels.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" -c -o mail_notification-GNOME_MailNotification-skels.o `test -f 'GNOME_MailNotification-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification-skels.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification-skels.c' object='mail_notification-GNOME_MailNotification-skels.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-skels.o `test -f 'GNOME_MailNotification-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification-skels.c
+
+mail_notification-GNOME_MailNotification-skels.obj: GNOME_MailNotification-skels.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-skels.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" -c -o mail_notification-GNOME_MailNotification-skels.obj `if test -f 'GNOME_MailNotification-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-skels.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='GNOME_MailNotification-skels.c' object='mail_notification-GNOME_MailNotification-skels.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-skels.obj `if test -f 'GNOME_MailNotification-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-skels.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
uninstall-info-am:
+install-evolution_pluginDATA: $(evolution_plugin_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(evolution_plugindir)" || $(mkdir_p) "$(DESTDIR)$(evolution_plugindir)"
+ @list='$(evolution_plugin_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(evolution_pluginDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(evolution_plugindir)/$$f'"; \
+ $(evolution_pluginDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(evolution_plugindir)/$$f"; \
+ done
+
+uninstall-evolution_pluginDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(evolution_plugin_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(evolution_plugindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(evolution_plugindir)/$$f"; \
+ done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -849,9 +2100,9 @@ distdir: $(DISTFILES)
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
+ for dir in "$(DESTDIR)$(evolution_plugindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(evolution_plugindir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: $(BUILT_SOURCES)
@@ -884,13 +2135,14 @@ maintainer-clean-generic:
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+clean-am: clean-binPROGRAMS clean-evolution_pluginLTLIBRARIES \
+ clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
+ distclean-libtool distclean-tags
dvi: dvi-am
@@ -902,7 +2154,8 @@ info: info-am
info-am:
-install-data-am:
+install-data-am: install-evolution_pluginDATA \
+ install-evolution_pluginLTLIBRARIES
install-exec-am: install-binPROGRAMS
@@ -919,7 +2172,8 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
pdf: pdf-am
@@ -929,28 +2183,31 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+uninstall-am: uninstall-binPROGRAMS uninstall-evolution_pluginDATA \
+ uninstall-evolution_pluginLTLIBRARIES uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
+ clean-evolution_pluginLTLIBRARIES clean-generic 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-binPROGRAMS \
- install-data install-data-am 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-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-binPROGRAMS uninstall-info-am
+ install-data install-data-am install-evolution_pluginDATA \
+ install-evolution_pluginLTLIBRARIES 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-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-evolution_pluginDATA \
+ uninstall-evolution_pluginLTLIBRARIES uninstall-info-am
%.c %.h %-private.h: %.gob
$(GOB2) --always-private-header --exit-on-warn $<
+
%-common.c %-stubs.c %-skels.c %.h: %.idl $(ORBIT_IDL)
$(ORBIT_IDL) -I$(LIBBONOBO_IDL) -I$(BONOBO_ACTIVATION_IDL) $<
-mn-sgml-entities.h: ent2h.sh $(entity_sets)
- ./ent2h.sh $(entity_sets) > $@
-
eggmarshalers.h: eggmarshalers.list
cd $(srcdir) \
&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --header > xgen-emh \
@@ -962,6 +2219,9 @@ eggmarshalers.c: eggmarshalers.list
&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --body > xgen-emc \
&& cp xgen-emc eggmarshalers.c \
&& rm -f xgen-emc xgen-emc~
+
+%.eplug: %.eplug.in
+ sed -e 's|\@PLUGINDIR\@|$(evolution_plugindir)|' $< > $@
# 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:
diff --git a/src/egg-editable-toolbar.c b/src/egg-editable-toolbar.c
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2004 Marco Pesenti Gritti
- * Copyright (C) 2004 Christian Persch
+ * Copyright (C) 2003, 2004 Marco Pesenti Gritti
+ * Copyright (C) 2003, 2004, 2005 Christian Persch
*
* 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
@@ -16,12 +16,10 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * $Id: egg-editable-toolbar.c,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ * $libegg-Id: egg-editable-toolbar.c,v 1.29 2005/07/07 19:09:35 chpe Exp $
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include "egg-editable-toolbar.h"
#include "egg-toolbars-model.h"
@@ -49,10 +47,9 @@ static void egg_editable_toolbar_finalize (GObject *object);
#define MIN_TOOLBAR_HEIGHT 20
-static GtkTargetEntry dest_drag_types[] = {
+static const GtkTargetEntry dest_drag_types[] = {
{EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0},
};
-static int n_dest_drag_types = G_N_ELEMENTS (dest_drag_types);
enum
{
@@ -73,13 +70,12 @@ static GObjectClass *parent_class = NULL;
#define EGG_EDITABLE_TOOLBAR_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarPrivate))
-struct EggEditableToolbarPrivate
+struct _EggEditableToolbarPrivate
{
GtkUIManager *manager;
EggToolbarsModel *model;
gboolean edit_mode;
GtkWidget *selected_toolbar;
- GtkToolItem *fixed;
GtkWidget *fixed_toolbar;
gboolean pending;
@@ -90,9 +86,9 @@ struct EggEditableToolbarPrivate
GType
egg_editable_toolbar_get_type (void)
{
- static GType egg_editable_toolbar_type = 0;
+ static GType type = 0;
- if (egg_editable_toolbar_type == 0)
+ if (G_UNLIKELY (type == 0))
{
static const GTypeInfo our_info = {
sizeof (EggEditableToolbarClass),
@@ -106,12 +102,12 @@ egg_editable_toolbar_get_type (void)
(GInstanceInitFunc) egg_editable_toolbar_init
};
- egg_editable_toolbar_type = g_type_register_static (GTK_TYPE_VBOX,
- "EggEditableToolbar",
- &our_info, 0);
+ type = g_type_register_static (GTK_TYPE_VBOX,
+ "EggEditableToolbar",
+ &our_info, 0);
}
- return egg_editable_toolbar_type;
+ return type;
}
static int
@@ -253,7 +249,8 @@ drag_data_get_cb (GtkWidget *widget,
}
gtk_selection_data_set (selection_data,
- selection_data->target, 8, target, strlen (target));
+ selection_data->target, 8,
+ (const guchar *)target, strlen (target));
g_free (target);
}
@@ -448,7 +445,8 @@ drag_data_received_cb (GtkWidget *widget,
target = gtk_drag_dest_find_target (widget, context, NULL);
type = egg_toolbars_model_get_item_type (etoolbar->priv->model, target);
- id = egg_toolbars_model_get_item_id (etoolbar->priv->model, type, selection_data->data);
+ id = egg_toolbars_model_get_item_id (etoolbar->priv->model, type,
+ (const char*)selection_data->data);
/* This function can be called for two reasons
*
@@ -484,7 +482,7 @@ drag_data_received_cb (GtkWidget *widget,
pos = gtk_toolbar_get_drop_index (GTK_TOOLBAR (widget), x, y);
toolbar_pos = get_toolbar_position (etoolbar, widget);
- if (data_is_separator (selection_data->data))
+ if (data_is_separator ((const char*)selection_data->data))
{
egg_toolbars_model_add_separator (etoolbar->priv->model,
toolbar_pos, pos);
@@ -703,7 +701,7 @@ create_dock (EggEditableToolbar *t)
gtk_box_pack_start (GTK_BOX (hbox), toolbar, TRUE, TRUE, 0);
gtk_drag_dest_set (toolbar, 0,
- dest_drag_types, n_dest_drag_types,
+ dest_drag_types, G_N_ELEMENTS (dest_drag_types),
GDK_ACTION_MOVE | GDK_ACTION_COPY);
g_signal_connect (toolbar, "drag_drop",
@@ -725,7 +723,8 @@ static void
set_fixed_style (EggEditableToolbar *t, GtkToolbarStyle style)
{
g_return_if_fail (GTK_IS_TOOLBAR (t->priv->fixed_toolbar));
- gtk_toolbar_set_style (GTK_TOOLBAR (t->priv->fixed_toolbar), style);
+ gtk_toolbar_set_style (GTK_TOOLBAR (t->priv->fixed_toolbar),
+ style == GTK_TOOLBAR_ICONS ? GTK_TOOLBAR_BOTH_HORIZ : style);
}
static void
@@ -747,19 +746,19 @@ toolbar_changed_cb (EggToolbarsModel *model,
flags = egg_toolbars_model_get_flags (model, position);
toolbar = get_toolbar_nth (t, position);
- if (flags & EGG_TB_MODEL_ICONS_ONLY)
+ if (flags & EGG_TB_MODEL_ICONS)
{
style = GTK_TOOLBAR_ICONS;
}
- else if (flags & EGG_TB_MODEL_TEXT_ONLY)
+ else if (flags & EGG_TB_MODEL_TEXT)
{
style = GTK_TOOLBAR_TEXT;
}
- else if (flags & EGG_TB_MODEL_ICONS_TEXT)
+ else if (flags & EGG_TB_MODEL_BOTH)
{
style = GTK_TOOLBAR_BOTH;
}
- else if (flags & EGG_TB_MODEL_ICONS_TEXT_HORIZ)
+ else if (flags & EGG_TB_MODEL_BOTH_HORIZ)
{
style = GTK_TOOLBAR_BOTH_HORIZ;
}
@@ -808,7 +807,10 @@ update_fixed (EggEditableToolbar *t)
{
gtk_box_pack_end (GTK_BOX (dock), toolbar, FALSE, TRUE, 0);
- gtk_widget_show_all (toolbar);
+ gtk_widget_show (toolbar);
+
+ gtk_widget_set_size_request (dock, -1, -1);
+ gtk_widget_queue_resize_no_redraw (dock);
}
}
@@ -839,6 +841,11 @@ toolbar_removed_cb (EggToolbarsModel *model,
{
GtkWidget *toolbar;
+ if (position == 0 && t->priv->fixed_toolbar != NULL)
+ {
+ unparent_fixed (t);
+ }
+
toolbar = get_dock_nth (t, position);
gtk_widget_destroy (toolbar);
@@ -907,22 +914,11 @@ egg_editable_toolbar_construct (EggEditableToolbar *t)
for (i = 0; i < n_toolbars; i++)
{
GtkWidget *toolbar, *dock;
- EggTbModelFlags flags;
dock = create_dock (t);
gtk_box_pack_start (GTK_BOX (t), dock, TRUE, TRUE, 0);
toolbar = get_toolbar_nth (t, i);
- flags = egg_toolbars_model_get_flags (model, i);
- if (flags & EGG_TB_MODEL_ICONS_ONLY)
- {
- gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
- if (i == 0 && t->priv->fixed_toolbar)
- {
- set_fixed_style (t, GTK_TOOLBAR_ICONS);
- }
- }
-
n_items = egg_toolbars_model_n_items (model, i);
for (l = 0; l < n_items; l++)
{
@@ -955,6 +951,12 @@ egg_editable_toolbar_construct (EggEditableToolbar *t)
}
update_fixed (t);
+
+ /* apply styles */
+ for (i = 0; i < n_toolbars; i ++)
+ {
+ toolbar_changed_cb (model, i, t);
+ }
}
static void
@@ -1267,35 +1269,27 @@ egg_editable_toolbar_hide (EggEditableToolbar *etoolbar,
void
egg_editable_toolbar_set_fixed (EggEditableToolbar *toolbar,
- GtkToolItem *fixed)
+ GtkToolbar *fixed_toolbar)
{
g_return_if_fail (EGG_IS_EDITABLE_TOOLBAR (toolbar));
- g_return_if_fail (!fixed || GTK_IS_TOOL_ITEM (fixed));
+ g_return_if_fail (!fixed_toolbar || GTK_IS_TOOLBAR (fixed_toolbar));
- if (!toolbar->priv->fixed_toolbar)
+ if (toolbar->priv->fixed_toolbar)
{
- toolbar->priv->fixed_toolbar = gtk_toolbar_new ();
- gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar->priv->fixed_toolbar), FALSE);
- g_object_ref (toolbar->priv->fixed_toolbar);
- gtk_object_sink (GTK_OBJECT (toolbar->priv->fixed_toolbar));
+ unparent_fixed (toolbar);
+ g_object_unref (toolbar->priv->fixed_toolbar);
+ toolbar->priv->fixed_toolbar = NULL;
}
- if (toolbar->priv->fixed)
+ if (fixed_toolbar)
{
- gtk_container_remove (GTK_CONTAINER (toolbar->priv->fixed_toolbar),
- GTK_WIDGET (toolbar->priv->fixed));
- g_object_unref (toolbar->priv->fixed);
+ toolbar->priv->fixed_toolbar = GTK_WIDGET (fixed_toolbar);
+ gtk_toolbar_set_show_arrow (fixed_toolbar, FALSE);
+ g_object_ref (fixed_toolbar);
+ gtk_object_sink (GTK_OBJECT (fixed_toolbar));
}
- toolbar->priv->fixed = fixed;
-
- if (fixed)
- {
- g_object_ref (fixed);
- gtk_object_sink (GTK_OBJECT (fixed));
-
- gtk_toolbar_insert (GTK_TOOLBAR (toolbar->priv->fixed_toolbar), fixed, 0);
- }
+ update_fixed (toolbar);
}
void
@@ -1403,7 +1397,7 @@ new_pixbuf_from_widget (GtkWidget *widget)
/* Create a pixmap */
visual = gtk_widget_get_visual (window);
- pixmap = gdk_pixmap_new (NULL, icon_width, icon_height, gdk_visual_get_best_depth());
+ pixmap = gdk_pixmap_new (NULL, icon_width, icon_height, visual->depth);
gdk_drawable_set_colormap (GDK_DRAWABLE (pixmap), gtk_widget_get_colormap (window));
/* Draw the window */
@@ -1417,6 +1411,8 @@ new_pixbuf_from_widget (GtkWidget *widget)
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, icon_width, icon_height);
gdk_pixbuf_get_from_drawable (pixbuf, pixmap, NULL, 0, 0, 0, 0, icon_width, icon_height);
+ gtk_widget_destroy (window);
+
return pixbuf;
}
@@ -1428,7 +1424,6 @@ new_separator_pixbuf ()
separator = gtk_vseparator_new ();
pixbuf = new_pixbuf_from_widget (separator);
- gtk_widget_destroy (separator);
return pixbuf;
}
diff --git a/src/egg-editable-toolbar.h b/src/egg-editable-toolbar.h
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2003-2004 Marco Pesenti Gritti
- * Copyright (C) 2004 Christian Persch
+ * Copyright (C) 2003, 2004 Marco Pesenti Gritti
+ * Copyright (C) 2003, 2004, 2005 Christian Persch
*
* 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
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * $Id: egg-editable-toolbar.h,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ * $libegg-Id: egg-editable-toolbar.h,v 1.13 2005/06/01 17:22:19 chpe Exp $
*/
#ifndef EGG_EDITABLE_TOOLBAR_H
@@ -32,8 +32,6 @@
G_BEGIN_DECLS
-typedef struct EggEditableToolbarClass EggEditableToolbarClass;
-
#define EGG_TYPE_EDITABLE_TOOLBAR (egg_editable_toolbar_get_type ())
#define EGG_EDITABLE_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbar))
#define EGG_EDITABLE_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarClass))
@@ -41,11 +39,11 @@ typedef struct EggEditableToolbarClass EggEditableToolbarClass;
#define EGG_IS_EDITABLE_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_EDITABLE_TOOLBAR))
#define EGG_EDITABLE_TOOLBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarClass))
+typedef struct _EggEditableToolbar EggEditableToolbar;
+typedef struct _EggEditableToolbarPrivate EggEditableToolbarPrivate;
+typedef struct _EggEditableToolbarClass EggEditableToolbarClass;
-typedef struct EggEditableToolbar EggEditableToolbar;
-typedef struct EggEditableToolbarPrivate EggEditableToolbarPrivate;
-
-struct EggEditableToolbar
+struct _EggEditableToolbar
{
GtkVBox parent_object;
@@ -53,7 +51,7 @@ struct EggEditableToolbar
EggEditableToolbarPrivate *priv;
};
-struct EggEditableToolbarClass
+struct _EggEditableToolbarClass
{
GtkVBoxClass parent_class;
@@ -80,7 +78,7 @@ void egg_editable_toolbar_set_drag_dest (EggEditableToolbar *etoolbar,
gint n_targets,
const char *toolbar_name);
void egg_editable_toolbar_set_fixed (EggEditableToolbar *etoolbar,
- GtkToolItem *fixed);
+ GtkToolbar *fixed_toolbar);
/* Private Functions */
diff --git a/src/egg-toolbar-editor.c b/src/egg-toolbar-editor.c
@@ -15,19 +15,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * $Id: egg-toolbar-editor.c,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ * $libegg-Id: egg-toolbar-editor.c,v 1.14 2005/06/01 17:22:19 chpe Exp $
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include "egg-toolbar-editor.h"
#include "egg-editable-toolbar.h"
#include <string.h>
-#include <libxml/tree.h>
#include <glib/gi18n.h>
+#include <libxml/tree.h>
#include <gtk/gtkimage.h>
#include <gtk/gtkeventbox.h>
#include <gtk/gtkdnd.h>
@@ -37,15 +35,13 @@
#include <gtk/gtkstock.h>
#include <gtk/gtkhbox.h>
-static GtkTargetEntry dest_drag_types[] = {
+static const GtkTargetEntry dest_drag_types[] = {
{EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0},
};
-static int n_dest_drag_types = G_N_ELEMENTS (dest_drag_types);
-static GtkTargetEntry source_drag_types[] = {
+static const GtkTargetEntry source_drag_types[] = {
{EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0},
};
-static int n_source_drag_types = G_N_ELEMENTS (source_drag_types);
static void egg_toolbar_editor_class_init (EggToolbarEditorClass *klass);
static void egg_toolbar_editor_init (EggToolbarEditor *t);
@@ -79,9 +75,9 @@ struct EggToolbarEditorPrivate
GType
egg_toolbar_editor_get_type (void)
{
- static GType egg_toolbar_editor_type = 0;
+ static GType type = 0;
- if (egg_toolbar_editor_type == 0)
+ if (G_UNLIKELY (type == 0))
{
static const GTypeInfo our_info = {
sizeof (EggToolbarEditorClass),
@@ -95,12 +91,12 @@ egg_toolbar_editor_get_type (void)
(GInstanceInitFunc) egg_toolbar_editor_init
};
- egg_toolbar_editor_type = g_type_register_static (GTK_TYPE_VBOX,
- "EggToolbarEditor",
- &our_info, 0);
+ type = g_type_register_static (GTK_TYPE_VBOX,
+ "EggToolbarEditor",
+ &our_info, 0);
}
- return egg_toolbar_editor_type;
+ return type;
}
static gint
@@ -370,7 +366,8 @@ drag_data_get_cb (GtkWidget *widget,
}
gtk_selection_data_set (selection_data,
- selection_data->target, 8, target, strlen (target));
+ selection_data->target, 8,
+ (const guchar *)target, strlen (target));
}
static gchar *
@@ -454,7 +451,7 @@ editor_create_item (EggToolbarEditor *editor,
gtk_widget_show (event_box);
gtk_drag_source_set (event_box,
GDK_BUTTON1_MASK,
- source_drag_types, n_source_drag_types, action);
+ source_drag_types, G_N_ELEMENTS (source_drag_types), action);
g_signal_connect (event_box, "drag_data_get",
G_CALLBACK (drag_data_get_cb), editor);
g_signal_connect (event_box, "drag_data_delete",
@@ -511,14 +508,14 @@ update_editor_sheet (EggToolbarEditor *editor)
gtk_scrolled_window_add_with_viewport
(GTK_SCROLLED_WINDOW (editor->priv->scrolled_window), table);
gtk_drag_dest_set (table, GTK_DEST_DEFAULT_ALL,
- dest_drag_types, n_dest_drag_types, GDK_ACTION_MOVE);
+ dest_drag_types, G_N_ELEMENTS (dest_drag_types), GDK_ACTION_MOVE);
g_signal_connect (table, "drag_data_received",
G_CALLBACK (editor_drag_data_received_cb), editor);
to_drag = editor->priv->actions_list;
x = y = 0;
- width = 3;
+ width = 4;
height = (g_list_length (to_drag)) / width + 1;
gtk_table_resize (GTK_TABLE (editor->priv->table), height, width);
@@ -565,11 +562,6 @@ static void
setup_editor (EggToolbarEditor *editor)
{
GtkWidget *scrolled_window;
- GtkWidget *label_hbox;
- GtkWidget *image;
- GtkWidget *label;
-
- g_return_if_fail (EGG_IS_TOOLBAR_EDITOR (editor));
gtk_container_set_border_width (GTK_CONTAINER (editor), 12);
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
@@ -578,18 +570,6 @@ setup_editor (EggToolbarEditor *editor)
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (editor), scrolled_window, TRUE, TRUE, 0);
- label_hbox = gtk_hbox_new (FALSE, 6);
- gtk_widget_show (label_hbox);
- gtk_box_pack_start (GTK_BOX (editor), label_hbox, FALSE, FALSE, 0);
- image =
- gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
- gtk_widget_show (image);
- gtk_box_pack_start (GTK_BOX (label_hbox), image, FALSE, FALSE, 0);
- label = gtk_label_new (_("Drag an item onto the toolbars above to add it, "
- "from the toolbars in the items table to remove it."));
- gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (label_hbox), label, FALSE, TRUE, 0);
}
static void
@@ -623,12 +603,12 @@ parse_item_list (EggToolbarEditor *t,
{
while (child)
{
- if (xmlStrEqual (child->name, "toolitem"))
+ if (xmlStrEqual (child->name, (const xmlChar*) "toolitem"))
{
xmlChar *name;
- name = xmlGetProp (child, "name");
- egg_toolbar_editor_add_action (t, name);
+ name = xmlGetProp (child, (const xmlChar*) "name");
+ egg_toolbar_editor_add_action (t, (const char*)name);
xmlFree (name);
}
child = child->next;
@@ -696,7 +676,7 @@ egg_toolbar_editor_load_actions (EggToolbarEditor *editor,
while (child)
{
- if (xmlStrEqual (child->name, "available"))
+ if (xmlStrEqual (child->name, (const xmlChar*) "available"))
{
parse_item_list (editor, child->children);
}
diff --git a/src/egg-toolbars-model.c b/src/egg-toolbars-model.c
@@ -16,12 +16,10 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * $Id: egg-toolbars-model.c,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ * $libegg-Id: egg-toolbars-model.c,v 1.15 2005/06/01 17:22:19 chpe Exp $
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include "egg-toolbars-model.h"
#include "eggmarshalers.h"
@@ -77,7 +75,7 @@ egg_toolbars_model_get_type (void)
{
static GType type = 0;
- if (type == 0)
+ if (G_UNLIKELY (type == 0))
{
static const GTypeInfo our_info = {
sizeof (EggToolbarsModelClass),
@@ -110,16 +108,16 @@ egg_toolbars_model_to_xml (EggToolbarsModel *t)
tl = t->priv->toolbars;
xmlIndentTreeOutput = TRUE;
- doc = xmlNewDoc ("1.0");
- doc->children = xmlNewDocNode (doc, NULL, "toolbars", NULL);
+ doc = xmlNewDoc ((const xmlChar*) "1.0");
+ doc->children = xmlNewDocNode (doc, NULL, (const xmlChar*) "toolbars", NULL);
for (l1 = tl->children; l1 != NULL; l1 = l1->next)
{
xmlNodePtr tnode;
EggToolbarsToolbar *toolbar = l1->data;
- tnode = xmlNewChild (doc->children, NULL, "toolbar", NULL);
- xmlSetProp (tnode, "name", toolbar->name);
+ tnode = xmlNewChild (doc->children, NULL, (const xmlChar*) "toolbar", NULL);
+ xmlSetProp (tnode, (const xmlChar*) "name", (const xmlChar*) toolbar->name);
for (l2 = l1->children; l2 != NULL; l2 = l2->next)
{
@@ -128,16 +126,16 @@ egg_toolbars_model_to_xml (EggToolbarsModel *t)
if (item->separator)
{
- node = xmlNewChild (tnode, NULL, "separator", NULL);
+ node = xmlNewChild (tnode, NULL, (const xmlChar*) "separator", NULL);
}
else
{
char *data;
- node = xmlNewChild (tnode, NULL, "toolitem", NULL);
+ node = xmlNewChild (tnode, NULL, (const xmlChar*) "toolitem", NULL);
data = egg_toolbars_model_get_item_data (t, item->type, item->id);
- xmlSetProp (node, "type", item->type);
- xmlSetProp (node, "name", data);
+ xmlSetProp (node, (const xmlChar*) "type", (const xmlChar*) item->type);
+ xmlSetProp (node, (const xmlChar*) "name", (const xmlChar*) data);
g_free (data);
}
}
@@ -214,7 +212,7 @@ egg_toolbars_model_save (EggToolbarsModel *t,
doc = egg_toolbars_model_to_xml (t);
root = xmlDocGetRootElement (doc);
- xmlSetProp (root, "version", version);
+ xmlSetProp (root, (const xmlChar*) "version", (const xmlChar*) version);
safe_save_xml (xml_file, doc);
xmlFreeDoc (doc);
}
@@ -365,31 +363,31 @@ parse_item_list (EggToolbarsModel *t,
{
while (child)
{
- if (xmlStrEqual (child->name, "toolitem"))
+ if (xmlStrEqual (child->name, (const xmlChar*) "toolitem"))
{
xmlChar *name, *type;
char *id;
- name = xmlGetProp (child, "name");
- type = xmlGetProp (child, "type");
+ name = xmlGetProp (child, (const xmlChar*) "name");
+ type = xmlGetProp (child, (const xmlChar*) "type");
if (type == NULL)
{
- type = xmlStrdup (EGG_TOOLBAR_ITEM_TYPE);
+ type = xmlCharStrdup (EGG_TOOLBAR_ITEM_TYPE);
}
if (name != NULL && name[0] != '\0' && type != NULL)
{
- id = egg_toolbars_model_get_item_id (t, type, name);
+ id = egg_toolbars_model_get_item_id (t, (const char*)type, (const char*)name);
if (id != NULL)
{
- egg_toolbars_model_add_item (t, position, -1, id, type);
+ egg_toolbars_model_add_item (t, position, -1, id, (const char*)type);
}
g_free (id);
}
xmlFree (name);
xmlFree (type);
}
- else if (xmlStrEqual (child->name, "separator"))
+ else if (xmlStrEqual (child->name, (const xmlChar*) "separator"))
{
egg_toolbars_model_add_separator (t, position, -1);
}
@@ -425,21 +423,21 @@ parse_toolbars (EggToolbarsModel *t,
{
while (child)
{
- if (xmlStrEqual (child->name, "toolbar"))
+ if (xmlStrEqual (child->name, (const xmlChar*) "toolbar"))
{
xmlChar *name;
xmlChar *style;
int position;
- name = xmlGetProp (child, "name");
- position = egg_toolbars_model_add_toolbar (t, -1, name);
+ name = xmlGetProp (child, (const xmlChar*) "name");
+ position = egg_toolbars_model_add_toolbar (t, -1, (const char*) name);
xmlFree (name);
- style = xmlGetProp (child, "style");
- if (style && xmlStrEqual (style, "icons-only"))
+ style = xmlGetProp (child, (const xmlChar*) "style");
+ if (style && xmlStrEqual (style, (const xmlChar*) "icons-only"))
{
/* FIXME: use toolbar position instead of 0 */
- egg_toolbars_model_set_flags (t, 0, EGG_TB_MODEL_ICONS_ONLY);
+ egg_toolbars_model_set_flags (t, 0, EGG_TB_MODEL_ICONS);
}
xmlFree (style);
diff --git a/src/egg-toolbars-model.h b/src/egg-toolbars-model.h
@@ -14,6 +14,8 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $libegg-Id: egg-toolbars-model.h,v 1.13 2005/06/01 17:22:19 chpe Exp $
*/
#ifndef EGG_TOOLBARS_MODEL_H
@@ -25,7 +27,6 @@
G_BEGIN_DECLS
-
#define EGG_TYPE_TOOLBARS_MODEL (egg_toolbars_model_get_type ())
#define EGG_TOOLBARS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModel))
#define EGG_TOOLBARS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModelClass))
@@ -42,10 +43,11 @@ typedef struct EggToolbarsModelClass EggToolbarsModelClass;
typedef enum
{
EGG_TB_MODEL_NOT_REMOVABLE = 1 << 0,
- EGG_TB_MODEL_ICONS_ONLY = 1 << 1,
- EGG_TB_MODEL_TEXT_ONLY = 1 << 2,
- EGG_TB_MODEL_ICONS_TEXT = 1 << 3,
- EGG_TB_MODEL_ICONS_TEXT_HORIZ = 1 << 4,
+ EGG_TB_MODEL_BOTH = 1 << 1,
+ EGG_TB_MODEL_BOTH_HORIZ = 1 << 2,
+ EGG_TB_MODEL_ICONS = 1 << 3,
+ EGG_TB_MODEL_TEXT = 1 << 4,
+ EGG_TB_MODEL_STYLES_MASK = 0x1F,
EGG_TB_MODEL_ACCEPT_ITEMS_ONLY = 1 << 5
} EggTbModelFlags;
@@ -91,6 +93,7 @@ struct EggToolbarsModelClass
const char *type);
};
+GType egg_toolbars_model_flags_get_type (void);
GType egg_toolbars_model_get_type (void);
EggToolbarsModel *egg_toolbars_model_new (void);
gboolean egg_toolbars_model_load (EggToolbarsModel *model,
diff --git a/src/eggtrayicon.c b/src/eggtrayicon.c
@@ -1,7 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* eggtrayicon.c
* Copyright (C) 2002 Anders Carlsson <andersca@gnu.org>
- * Copyright (C) 2003, 2004 Jean-Yves Lefort <jylefort@brutele.be>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,14 +18,30 @@
* Boston, MA 02111-1307, USA.
*/
-#include "config.h"
+#include <config.h>
#include <string.h>
#include <glib/gi18n.h>
+#include <libintl.h>
#include "eggtrayicon.h"
+#include <gdkconfig.h>
+#if defined (GDK_WINDOWING_X11)
#include <gdk/gdkx.h>
#include <X11/Xatom.h>
+#elif defined (GDK_WINDOWING_WIN32)
+#include <gdk/gdkwin32.h>
+#endif
+
+#ifndef EGG_COMPILATION
+#ifndef _
+#define _(x) dgettext (GETTEXT_PACKAGE, x)
+#define N_(x) x
+#endif
+#else
+#define _(x) x
+#define N_(x) x
+#endif
#define SYSTEM_TRAY_REQUEST_DOCK 0
#define SYSTEM_TRAY_BEGIN_MESSAGE 1
@@ -53,7 +68,11 @@ static void egg_tray_icon_get_property (GObject *object,
static void egg_tray_icon_realize (GtkWidget *widget);
static void egg_tray_icon_unrealize (GtkWidget *widget);
-static void egg_tray_icon_update_manager_window (EggTrayIcon *icon);
+#ifdef GDK_WINDOWING_X11
+static void egg_tray_icon_update_manager_window (EggTrayIcon *icon,
+ gboolean dock_if_realized);
+static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon);
+#endif
GType
egg_tray_icon_get_type (void)
@@ -111,6 +130,14 @@ egg_tray_icon_class_init (EggTrayIconClass *klass)
GTK_TYPE_ORIENTATION,
GTK_ORIENTATION_HORIZONTAL,
G_PARAM_READABLE));
+
+#if defined (GDK_WINDOWING_X11)
+ /* Nothing */
+#elif defined (GDK_WINDOWING_WIN32)
+ g_warning ("Port eggtrayicon to Win32");
+#else
+ g_warning ("Port eggtrayicon to this GTK+ backend");
+#endif
}
static void
@@ -132,6 +159,8 @@ egg_tray_icon_get_property (GObject *object,
}
}
+#ifdef GDK_WINDOWING_X11
+
static void
egg_tray_icon_get_orientation_property (EggTrayIcon *icon)
{
@@ -194,7 +223,7 @@ egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_
xev->xclient.message_type == icon->manager_atom &&
xev->xclient.data.l[1] == icon->selection_atom)
{
- egg_tray_icon_update_manager_window (icon);
+ egg_tray_icon_update_manager_window (icon, TRUE);
}
else if (xev->xany.window == icon->manager_window)
{
@@ -205,16 +234,18 @@ egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_
}
if (xev->xany.type == DestroyNotify)
{
- egg_tray_icon_update_manager_window (icon);
+ egg_tray_icon_manager_window_destroyed (icon);
}
}
-
return GDK_FILTER_CONTINUE;
}
+#endif
+
static void
egg_tray_icon_unrealize (GtkWidget *widget)
{
+#ifdef GDK_WINDOWING_X11
EggTrayIcon *icon = EGG_TRAY_ICON (widget);
GdkWindow *root_window;
@@ -234,8 +265,11 @@ egg_tray_icon_unrealize (GtkWidget *widget)
if (GTK_WIDGET_CLASS (parent_class)->unrealize)
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
+#endif
}
+#ifdef GDK_WINDOWING_X11
+
static void
egg_tray_icon_send_manager_message (EggTrayIcon *icon,
long message,
@@ -277,21 +311,15 @@ egg_tray_icon_send_dock_request (EggTrayIcon *icon)
}
static void
-egg_tray_icon_update_manager_window (EggTrayIcon *icon)
+egg_tray_icon_update_manager_window (EggTrayIcon *icon,
+ gboolean dock_if_realized)
{
Display *xdisplay;
- xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-
if (icon->manager_window != None)
- {
- GdkWindow *gdkwin;
+ return;
- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
- icon->manager_window);
-
- gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
- }
+ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
XGrabServer (xdisplay);
@@ -314,16 +342,36 @@ egg_tray_icon_update_manager_window (EggTrayIcon *icon)
gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
- /* Send a request that we'd like to dock */
- egg_tray_icon_send_dock_request (icon);
+ if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
+ egg_tray_icon_send_dock_request (icon);
egg_tray_icon_get_orientation_property (icon);
}
}
static void
+egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon)
+{
+ GdkWindow *gdkwin;
+
+ g_return_if_fail (icon->manager_window != None);
+
+ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+ icon->manager_window);
+
+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+
+ icon->manager_window = None;
+
+ egg_tray_icon_update_manager_window (icon, TRUE);
+}
+
+#endif
+
+static void
egg_tray_icon_realize (GtkWidget *widget)
{
+#ifdef GDK_WINDOWING_X11
EggTrayIcon *icon = EGG_TRAY_ICON (widget);
GdkScreen *screen;
GdkDisplay *display;
@@ -355,13 +403,15 @@ egg_tray_icon_realize (GtkWidget *widget)
"_NET_SYSTEM_TRAY_ORIENTATION",
False);
- egg_tray_icon_update_manager_window (icon);
+ egg_tray_icon_update_manager_window (icon, FALSE);
+ egg_tray_icon_send_dock_request (icon);
root_window = gdk_screen_get_root_window (screen);
/* Add a root window filter so that we get changes on MANAGER */
gdk_window_add_filter (root_window,
egg_tray_icon_manager_filter, icon);
+#endif
}
EggTrayIcon *
@@ -390,14 +440,17 @@ egg_tray_icon_send_message (EggTrayIcon *icon,
g_return_val_if_fail (timeout >= 0, 0);
g_return_val_if_fail (message != NULL, 0);
+#ifdef GDK_WINDOWING_X11
if (icon->manager_window == None)
return 0;
+#endif
if (len < 0)
len = strlen (message);
stamp = icon->stamp++;
+#ifdef GDK_WINDOWING_X11
/* Get ready to send the message */
egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE,
(Window)gtk_plug_get_id (GTK_PLUG (icon)),
@@ -434,6 +487,7 @@ egg_tray_icon_send_message (EggTrayIcon *icon,
XSync (xdisplay, False);
}
gdk_error_trap_pop ();
+#endif
return stamp;
}
@@ -444,10 +498,11 @@ egg_tray_icon_cancel_message (EggTrayIcon *icon,
{
g_return_if_fail (EGG_IS_TRAY_ICON (icon));
g_return_if_fail (id > 0);
-
+#ifdef GDK_WINDOWING_X11
egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE,
(Window)gtk_plug_get_id (GTK_PLUG (icon)),
id, 0, 0);
+#endif
}
GtkOrientation
diff --git a/src/eggtrayicon.h b/src/eggtrayicon.h
@@ -22,7 +22,9 @@
#define __EGG_TRAY_ICON_H__
#include <gtk/gtkplug.h>
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
+#endif
G_BEGIN_DECLS
@@ -42,12 +44,13 @@ struct _EggTrayIcon
guint stamp;
+#ifdef GDK_WINDOWING_X11
Atom selection_atom;
Atom manager_atom;
Atom system_tray_opcode_atom;
Atom orientation_atom;
Window manager_window;
-
+#endif
GtkOrientation orientation;
};
diff --git a/src/ent2h.sh b/src/ent2h.sh
@@ -1,51 +0,0 @@
-#!/bin/sh
-#
-# ent2h.sh - convert one or more SGML entity sets to a C header
-# $Id: ent2h.sh,v 1.2 2005/01/19 01:49:14 jylefort Exp $
-#
-# Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-cat <<EOF
-/*
- * mn-sgml-entities.h - SGML entities table
- *
- * Generated automatically by ent2h.sh.
- * Do not edit this file directly.
- */
-
-#ifndef _MN_SGML_ENTITIES_H
-#define _MN_SGML_ENTITIES_H
-
-static const struct
-{
- const char *name;
- unsigned long character;
-} entities[] = {
-EOF
-
-for f in $@; do
- echo ""
- echo " /* $f */"
- grep '^<!ENTITY' $f \
- | sed -E 's/^<!ENTITY ([a-zA-Z]+).*"&#([0-9]+);.*$/ { "\1", \2 },/'
-done
-
-cat <<EOF
-};
-
-#endif /* _MN_SGML_ENTITIES_H */
-EOF
diff --git a/src/mn-about-dialog-private.h b/src/mn-about-dialog-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_ABOUT_DIALOG_PRIVATE_H__
#define __MN_ABOUT_DIALOG_PRIVATE_H__
diff --git a/src/mn-about-dialog.c b/src/mn-about-dialog.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,11 +23,12 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 25 "mn-about-dialog.gob"
+#line 26 "mn-about-dialog.gob"
+#include <gnome.h>
#include "mn-util.h"
-#line 31 "mn-about-dialog.c"
+#line 32 "mn-about-dialog.c"
/* self casting macros */
#define SELF(x) MN_ABOUT_DIALOG(x)
#define SELF_CONST(x) MN_ABOUT_DIALOG_CONST(x)
@@ -42,14 +43,15 @@ typedef MNAboutDialog Self;
typedef MNAboutDialogClass SelfClass;
/* here are local prototypes */
-static void mn_about_dialog_class_init (MNAboutDialogClass * c) G_GNUC_UNUSED;
+static void mn_about_dialog_class_init (MNAboutDialogClass * class) G_GNUC_UNUSED;
static void mn_about_dialog_init (MNAboutDialog * self) G_GNUC_UNUSED;
+static void mn_about_dialog_activate_link_cb (GtkAboutDialog * about, const char * link, gpointer data) G_GNUC_UNUSED;
/* pointer to the class of our parent */
-static GnomeAboutClass *parent_class = NULL;
+static GtkAboutDialogClass *parent_class = NULL;
/* Short form macros */
-#define self_new mn_about_dialog_new
+#define self_activate_link_cb mn_about_dialog_activate_link_cb
GType
mn_about_dialog_get_type (void)
{
@@ -69,7 +71,7 @@ mn_about_dialog_get_type (void)
NULL
};
- type = g_type_register_static (GNOME_TYPE_ABOUT, "MNAboutDialog", &info, (GTypeFlags)0);
+ type = g_type_register_static (GTK_TYPE_ABOUT_DIALOG, "MNAboutDialog", &info, (GTypeFlags)0);
}
return type;
@@ -92,58 +94,85 @@ GET_NEW_VARG (const char *first, ...)
return ret;
}
+#line 33 "mn-about-dialog.gob"
static void
-mn_about_dialog_class_init (MNAboutDialogClass * c G_GNUC_UNUSED)
+mn_about_dialog_class_init (MNAboutDialogClass * class G_GNUC_UNUSED)
+#line 101 "mn-about-dialog.c"
{
#define __GOB_FUNCTION__ "MN:About:Dialog::class_init"
- parent_class = g_type_class_ref (GNOME_TYPE_ABOUT);
+ parent_class = g_type_class_ref (GTK_TYPE_ABOUT_DIALOG);
+ {
+#line 34 "mn-about-dialog.gob"
+
+ gtk_about_dialog_set_email_hook(self_activate_link_cb, "mailto:", NULL);
+ gtk_about_dialog_set_url_hook(self_activate_link_cb, NULL, NULL);
+
+#line 113 "mn-about-dialog.c"
+ }
}
#undef __GOB_FUNCTION__
-#line 31 "mn-about-dialog.gob"
+#line 39 "mn-about-dialog.gob"
static void
mn_about_dialog_init (MNAboutDialog * self G_GNUC_UNUSED)
-#line 108 "mn-about-dialog.c"
+#line 120 "mn-about-dialog.c"
{
#define __GOB_FUNCTION__ "MN:About:Dialog::init"
{
-#line 32 "mn-about-dialog.gob"
+#line 40 "mn-about-dialog.gob"
+ GtkAboutDialog *about = GTK_ABOUT_DIALOG(self);
const char *authors[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
const char *documenters[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
GdkPixbuf *logo;
+ gtk_about_dialog_set_version(about, VERSION);
+ gtk_about_dialog_set_copyright(about, "Copyright \302\251 2003-2005 Jean-Yves Lefort");
+ gtk_about_dialog_set_comments(about, _("A Mail Notification Icon"));
+ gtk_about_dialog_set_website(about, "http://www.nongnu.org/mailnotify");
+ gtk_about_dialog_set_authors(about, authors);
+ gtk_about_dialog_set_documenters(about, documenters);
+ /*
+ * translators: Your Name <your-email>
+ * optionally followed by one or more: \nOther Contributor's Name <his-email>
+ */
+ gtk_about_dialog_set_translator_credits(about, _("translator-credits"));
+
logo = mn_pixbuf_new(MN_IMAGE_FILE(UIDIR, "logo.png"));
- gnome_about_construct(GNOME_ABOUT(self),
- _("Mail Notification"),
- VERSION,
- "Copyright \302\251 2003-2005 Jean-Yves Lefort",
- _("A Mail Notification Icon"),
- authors,
- documenters,
- /* translator: replace with your name and email */
- _("Jean-Yves Lefort <jylefort@brutele.be>"),
- logo);
- g_object_unref(logo);
+ if (logo)
+ {
+ gtk_about_dialog_set_logo(about, logo);
+ g_object_unref(logo);
+ }
-#line 131 "mn-about-dialog.c"
+#line 150 "mn-about-dialog.c"
}
}
#undef __GOB_FUNCTION__
-#line 51 "mn-about-dialog.gob"
-GtkWidget *
-mn_about_dialog_new (void)
-#line 141 "mn-about-dialog.c"
+#line 66 "mn-about-dialog.gob"
+static void
+mn_about_dialog_activate_link_cb (GtkAboutDialog * about, const char * link, gpointer data)
+#line 160 "mn-about-dialog.c"
{
-#define __GOB_FUNCTION__ "MN:About:Dialog::new"
+#define __GOB_FUNCTION__ "MN:About:Dialog::activate_link_cb"
{
-#line 53 "mn-about-dialog.gob"
+#line 70 "mn-about-dialog.gob"
- return GTK_WIDGET(GET_NEW);
+ GError *err = NULL;
+ const char *prefix = data;
+ char *url;
+
+ url = prefix ? g_strconcat(prefix, link, NULL) : g_strdup(link);
+ if (! gnome_url_show(url, &err))
+ {
+ mn_error_dialog(GTK_WINDOW(about), NULL, NULL, _("Unable to open link"), "%s", err->message);
+ g_error_free(err);
+ }
+ g_free(url);
}}
-#line 149 "mn-about-dialog.c"
+#line 178 "mn-about-dialog.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-about-dialog.gob b/src/mn-about-dialog.gob
@@ -16,41 +16,68 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include "config.h"
-#include <gnome.h>
+#include <gtk/gtk.h>
%}
+
%{
+#include <gnome.h>
#include "mn-util.h"
%}
-class MN:About:Dialog from Gnome:About
+class MN:About:Dialog from Gtk:About:Dialog
{
+ class_init (class)
+ {
+ gtk_about_dialog_set_email_hook(self_activate_link_cb, "mailto:", NULL);
+ gtk_about_dialog_set_url_hook(self_activate_link_cb, NULL, NULL);
+ }
+
init (self)
{
+ GtkAboutDialog *about = GTK_ABOUT_DIALOG(self);
const char *authors[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
const char *documenters[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
GdkPixbuf *logo;
+ gtk_about_dialog_set_version(about, VERSION);
+ gtk_about_dialog_set_copyright(about, "Copyright \302\251 2003-2005 Jean-Yves Lefort");
+ gtk_about_dialog_set_comments(about, _("A Mail Notification Icon"));
+ gtk_about_dialog_set_website(about, "http://www.nongnu.org/mailnotify");
+ gtk_about_dialog_set_authors(about, authors);
+ gtk_about_dialog_set_documenters(about, documenters);
+ /*
+ * translators: Your Name <your-email>
+ * optionally followed by one or more: \nOther Contributor's Name <his-email>
+ */
+ gtk_about_dialog_set_translator_credits(about, _("translator-credits"));
+
logo = mn_pixbuf_new(MN_IMAGE_FILE(UIDIR, "logo.png"));
- gnome_about_construct(GNOME_ABOUT(self),
- _("Mail Notification"),
- VERSION,
- "Copyright \302\251 2003-2005 Jean-Yves Lefort",
- _("A Mail Notification Icon"),
- authors,
- documenters,
- /* translator: replace with your name and email */
- _("Jean-Yves Lefort <jylefort@brutele.be>"),
- logo);
- g_object_unref(logo);
+ if (logo)
+ {
+ gtk_about_dialog_set_logo(about, logo);
+ g_object_unref(logo);
+ }
}
- public GtkWidget *
- new (void)
+ private void
+ activate_link_cb (GtkAboutDialog *about,
+ const char *link,
+ gpointer data)
{
- return GTK_WIDGET(GET_NEW);
+ GError *err = NULL;
+ const char *prefix = data;
+ char *url;
+
+ url = prefix ? g_strconcat(prefix, link, NULL) : g_strdup(link);
+ if (! gnome_url_show(url, &err))
+ {
+ mn_error_dialog(GTK_WINDOW(about), NULL, NULL, _("Unable to open link"), "%s", err->message);
+ g_error_free(err);
+ }
+ g_free(url);
}
}
diff --git a/src/mn-about-dialog.h b/src/mn-about-dialog.h
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
#include "config.h"
-#include <gnome.h>
+#include <gtk/gtk.h>
#ifndef __MN_ABOUT_DIALOG_H__
#define __MN_ABOUT_DIALOG_H__
@@ -34,7 +34,7 @@ extern "C" {
typedef struct _MNAboutDialog MNAboutDialog;
#endif
struct _MNAboutDialog {
- GnomeAbout __parent__;
+ GtkAboutDialog __parent__;
};
/*
@@ -42,7 +42,7 @@ struct _MNAboutDialog {
*/
typedef struct _MNAboutDialogClass MNAboutDialogClass;
struct _MNAboutDialogClass {
- GnomeAboutClass __parent__;
+ GtkAboutDialogClass __parent__;
};
@@ -50,7 +50,6 @@ struct _MNAboutDialogClass {
* Public methods
*/
GType mn_about_dialog_get_type (void);
-GtkWidget * mn_about_dialog_new (void);
#ifdef __cplusplus
}
diff --git a/src/mn-auth-combo-box-private.h b/src/mn-auth-combo-box-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_AUTH_COMBO_BOX_PRIVATE_H__
#define __MN_AUTH_COMBO_BOX_PRIVATE_H__
diff --git a/src/mn-auth-combo-box.c b/src/mn-auth-combo-box.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,7 +23,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-auth-combo-box.gob"
+#line 25 "mn-auth-combo-box.gob"
#include "config.h"
#include <glib/gi18n.h>
@@ -31,15 +31,16 @@
#include <sasl/sasl.h>
#include "mn-sasl.h"
#endif /* WITH_SASL */
+#include "mn-util.h"
- enum
- {
- COLUMN_MECHANISM,
- COLUMN_LABEL,
- N_COLUMNS
- };
+enum
+{
+ COLUMN_MECHANISM,
+ COLUMN_LABEL,
+ N_COLUMNS
+};
-#line 43 "mn-auth-combo-box.c"
+#line 44 "mn-auth-combo-box.c"
/* self casting macros */
#define SELF(x) MN_AUTH_COMBO_BOX(x)
#define SELF_CONST(x) MN_AUTH_COMBO_BOX_CONST(x)
@@ -58,6 +59,7 @@ static void ___object_set_property (GObject *object, guint property_id, const GV
static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
static void mn_auth_combo_box_class_init (MNAuthComboBoxClass * c) G_GNUC_UNUSED;
static void mn_auth_combo_box_init (MNAuthComboBox * self) G_GNUC_UNUSED;
+static int mn_auth_combo_box_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data) G_GNUC_UNUSED;
enum {
PROP_0,
@@ -70,6 +72,7 @@ static GtkComboBoxClass *parent_class = NULL;
/* Short form macros */
#define self_get_active_mechanism mn_auth_combo_box_get_active_mechanism
#define self_set_active_mechanism mn_auth_combo_box_set_active_mechanism
+#define self_sort_cb mn_auth_combo_box_sort_cb
#define self_append mn_auth_combo_box_append
#define self_new mn_auth_combo_box_new
GType
@@ -139,14 +142,14 @@ mn_auth_combo_box_class_init (MNAuthComboBoxClass * c G_GNUC_UNUSED)
}
}
#undef __GOB_FUNCTION__
-#line 87 "mn-auth-combo-box.gob"
+#line 88 "mn-auth-combo-box.gob"
static void
mn_auth_combo_box_init (MNAuthComboBox * self G_GNUC_UNUSED)
-#line 146 "mn-auth-combo-box.c"
+#line 149 "mn-auth-combo-box.c"
{
#define __GOB_FUNCTION__ "MN:Auth:Combo:Box::init"
{
-#line 88 "mn-auth-combo-box.gob"
+#line 89 "mn-auth-combo-box.gob"
GtkListStore *store;
GtkCellRenderer *renderer;
@@ -163,7 +166,7 @@ mn_auth_combo_box_init (MNAuthComboBox * self G_GNUC_UNUSED)
self_append(self, NULL, _("<span style=\"italic\">autodetect</span>"));
#ifdef WITH_SASL
- if (mn_sasl_use(NULL))
+ if (mn_sasl_init(NULL))
{
const char **mechanisms;
@@ -179,13 +182,15 @@ mn_auth_combo_box_init (MNAuthComboBox * self G_GNUC_UNUSED)
g_free(escaped);
}
}
- mn_sasl_unuse();
}
#endif /* WITH_SASL */
+ gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), self_sort_cb, NULL, NULL);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
+
self_set_active_mechanism(self, NULL);
-#line 189 "mn-auth-combo-box.c"
+#line 194 "mn-auth-combo-box.c"
}
}
#undef __GOB_FUNCTION__
@@ -204,7 +209,7 @@ ___object_set_property (GObject *object,
switch (property_id) {
case PROP_ACTIVE_MECHANISM:
{
-#line 44 "mn-auth-combo-box.gob"
+#line 46 "mn-auth-combo-box.gob"
const char *mechanism = g_value_get_string(VAL);
GtkTreeModel *model;
@@ -233,7 +238,7 @@ ___object_set_property (GObject *object,
valid = gtk_tree_model_iter_next(model, &iter);
}
-#line 237 "mn-auth-combo-box.c"
+#line 242 "mn-auth-combo-box.c"
}
break;
default:
@@ -262,7 +267,7 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_ACTIVE_MECHANISM:
{
-#line 73 "mn-auth-combo-box.gob"
+#line 75 "mn-auth-combo-box.gob"
char *mechanism = NULL;
GtkTreeIter iter;
@@ -273,10 +278,9 @@ ___object_get_property (GObject *object,
gtk_tree_model_get(model, &iter, COLUMN_MECHANISM, &mechanism, -1);
}
- g_value_set_string(VAL, mechanism);
- g_free(mechanism);
+ g_value_take_string(VAL, mechanism);
-#line 280 "mn-auth-combo-box.c"
+#line 284 "mn-auth-combo-box.c"
}
break;
default:
@@ -292,48 +296,88 @@ ___object_get_property (GObject *object,
#undef __GOB_FUNCTION__
-#line 73 "mn-auth-combo-box.gob"
+#line 75 "mn-auth-combo-box.gob"
gchar *
mn_auth_combo_box_get_active_mechanism (MNAuthComboBox * self)
-#line 299 "mn-auth-combo-box.c"
+#line 303 "mn-auth-combo-box.c"
{
#define __GOB_FUNCTION__ "MN:Auth:Combo:Box::get_active_mechanism"
{
-#line 42 "mn-auth-combo-box.gob"
+#line 44 "mn-auth-combo-box.gob"
gchar* val; g_object_get (G_OBJECT (self), "active_mechanism", &val, NULL); return val;
}}
-#line 306 "mn-auth-combo-box.c"
+#line 310 "mn-auth-combo-box.c"
#undef __GOB_FUNCTION__
-#line 44 "mn-auth-combo-box.gob"
+#line 46 "mn-auth-combo-box.gob"
void
mn_auth_combo_box_set_active_mechanism (MNAuthComboBox * self, gchar * val)
-#line 312 "mn-auth-combo-box.c"
+#line 316 "mn-auth-combo-box.c"
{
#define __GOB_FUNCTION__ "MN:Auth:Combo:Box::set_active_mechanism"
{
-#line 42 "mn-auth-combo-box.gob"
+#line 44 "mn-auth-combo-box.gob"
g_object_set (G_OBJECT (self), "active_mechanism", val, NULL);
}}
-#line 319 "mn-auth-combo-box.c"
+#line 323 "mn-auth-combo-box.c"
#undef __GOB_FUNCTION__
-#line 127 "mn-auth-combo-box.gob"
+#line 130 "mn-auth-combo-box.gob"
+static int
+mn_auth_combo_box_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data)
+#line 330 "mn-auth-combo-box.c"
+{
+#define __GOB_FUNCTION__ "MN:Auth:Combo:Box::sort_cb"
+{
+#line 135 "mn-auth-combo-box.gob"
+
+ char *mechanism_a;
+ char *label_a;
+ char *mechanism_b;
+ char *label_b;
+ int coll;
+
+ gtk_tree_model_get(model, a,
+ COLUMN_MECHANISM, &mechanism_a,
+ COLUMN_LABEL, &label_a,
+ -1);
+ gtk_tree_model_get(model, b,
+ COLUMN_MECHANISM, &mechanism_b,
+ COLUMN_LABEL, &label_b,
+ -1);
+
+ /* put "autodetect" (NULL mechanism) on top of the list */
+ if (mechanism_a && mechanism_b)
+ coll = mn_utf8_strcasecoll(label_a, label_b);
+ else if (mechanism_a || mechanism_b)
+ coll = mechanism_a ? 1 : -1;
+ else
+ coll = 0;
+
+ g_free(mechanism_a);
+ g_free(mechanism_b);
+
+ return coll;
+ }}
+#line 364 "mn-auth-combo-box.c"
+#undef __GOB_FUNCTION__
+
+#line 165 "mn-auth-combo-box.gob"
void
mn_auth_combo_box_append (MNAuthComboBox * self, const char * mechanism, const char * label)
-#line 326 "mn-auth-combo-box.c"
+#line 370 "mn-auth-combo-box.c"
{
#define __GOB_FUNCTION__ "MN:Auth:Combo:Box::append"
-#line 127 "mn-auth-combo-box.gob"
+#line 165 "mn-auth-combo-box.gob"
g_return_if_fail (self != NULL);
-#line 127 "mn-auth-combo-box.gob"
+#line 165 "mn-auth-combo-box.gob"
g_return_if_fail (MN_IS_AUTH_COMBO_BOX (self));
-#line 127 "mn-auth-combo-box.gob"
+#line 165 "mn-auth-combo-box.gob"
g_return_if_fail (label != NULL);
-#line 335 "mn-auth-combo-box.c"
+#line 379 "mn-auth-combo-box.c"
{
-#line 129 "mn-auth-combo-box.gob"
+#line 167 "mn-auth-combo-box.gob"
GtkTreeModel *model;
GtkTreeIter iter;
@@ -346,19 +390,19 @@ mn_auth_combo_box_append (MNAuthComboBox * self, const char * mechanism, const c
COLUMN_LABEL, label,
-1);
}}
-#line 350 "mn-auth-combo-box.c"
+#line 394 "mn-auth-combo-box.c"
#undef __GOB_FUNCTION__
-#line 142 "mn-auth-combo-box.gob"
+#line 180 "mn-auth-combo-box.gob"
GtkWidget *
mn_auth_combo_box_new (void)
-#line 356 "mn-auth-combo-box.c"
+#line 400 "mn-auth-combo-box.c"
{
#define __GOB_FUNCTION__ "MN:Auth:Combo:Box::new"
{
-#line 144 "mn-auth-combo-box.gob"
+#line 182 "mn-auth-combo-box.gob"
return GTK_WIDGET(GET_NEW);
}}
-#line 364 "mn-auth-combo-box.c"
+#line 408 "mn-auth-combo-box.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-auth-combo-box.gob b/src/mn-auth-combo-box.gob
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -16,11 +16,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
@@ -28,13 +29,14 @@ requires 2.0.10
#include <sasl/sasl.h>
#include "mn-sasl.h"
#endif /* WITH_SASL */
+#include "mn-util.h"
- enum
- {
- COLUMN_MECHANISM,
- COLUMN_LABEL,
- N_COLUMNS
- };
+enum
+{
+ COLUMN_MECHANISM,
+ COLUMN_LABEL,
+ N_COLUMNS
+};
%}
class MN:Auth:Combo:Box from Gtk:Combo:Box
@@ -80,8 +82,7 @@ class MN:Auth:Combo:Box from Gtk:Combo:Box
gtk_tree_model_get(model, &iter, COLUMN_MECHANISM, &mechanism, -1);
}
- g_value_set_string(VAL, mechanism);
- g_free(mechanism);
+ g_value_take_string(VAL, mechanism);
};
init (self)
@@ -101,7 +102,7 @@ class MN:Auth:Combo:Box from Gtk:Combo:Box
self_append(self, NULL, _("<span style=\"italic\">autodetect</span>"));
#ifdef WITH_SASL
- if (mn_sasl_use(NULL))
+ if (mn_sasl_init(NULL))
{
const char **mechanisms;
@@ -117,13 +118,50 @@ class MN:Auth:Combo:Box from Gtk:Combo:Box
g_free(escaped);
}
}
- mn_sasl_unuse();
}
#endif /* WITH_SASL */
+ gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), self_sort_cb, NULL, NULL);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
+
self_set_active_mechanism(self, NULL);
}
+ private int
+ sort_cb (GtkTreeModel *model,
+ GtkTreeIter *a,
+ GtkTreeIter *b,
+ gpointer user_data)
+ {
+ char *mechanism_a;
+ char *label_a;
+ char *mechanism_b;
+ char *label_b;
+ int coll;
+
+ gtk_tree_model_get(model, a,
+ COLUMN_MECHANISM, &mechanism_a,
+ COLUMN_LABEL, &label_a,
+ -1);
+ gtk_tree_model_get(model, b,
+ COLUMN_MECHANISM, &mechanism_b,
+ COLUMN_LABEL, &label_b,
+ -1);
+
+ /* put "autodetect" (NULL mechanism) on top of the list */
+ if (mechanism_a && mechanism_b)
+ coll = mn_utf8_strcasecoll(label_a, label_b);
+ else if (mechanism_a || mechanism_b)
+ coll = mechanism_a ? 1 : -1;
+ else
+ coll = 0;
+
+ g_free(mechanism_a);
+ g_free(mechanism_b);
+
+ return coll;
+ }
+
public void
append (self, const char *mechanism, const char *label (check null))
{
diff --git a/src/mn-auth-combo-box.h b/src/mn-auth-combo-box.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-authenticated-mailbox-private.h b/src/mn-authenticated-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
#define __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
@@ -9,15 +9,23 @@
extern "C" {
#endif /* __cplusplus */
+
+#line 25 "mn-authenticated-mailbox.gob"
+
+#include <gtk/gtk.h>
+
+#line 18 "mn-authenticated-mailbox-private.h"
struct _MNAuthenticatedMailboxPrivate {
-#line 39 "mn-authenticated-mailbox.gob"
+#line 51 "mn-authenticated-mailbox.gob"
gboolean authentication_failed;
-#line 40 "mn-authenticated-mailbox.gob"
+#line 52 "mn-authenticated-mailbox.gob"
GtkWidget * dialog;
-#line 18 "mn-authenticated-mailbox-private.h"
+#line 54 "mn-authenticated-mailbox.gob"
+ gboolean checking;
+#line 26 "mn-authenticated-mailbox-private.h"
};
void mn_authenticated_mailbox_authentication_failed (MNAuthenticatedMailbox * self);
-void mn_authenticated_mailbox_fill_password (MNAuthenticatedMailbox * self);
+void mn_authenticated_mailbox_fill_credentials (MNAuthenticatedMailbox * self, gboolean need_username, gboolean need_password);
#ifdef __cplusplus
}
diff --git a/src/mn-authenticated-mailbox-properties-private.h b/src/mn-authenticated-mailbox-properties-private.h
@@ -0,0 +1,19 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_AUTHENTICATED_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_AUTHENTICATED_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-authenticated-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+GtkWidget * mn_authenticated_mailbox_properties_field_new (MNAuthenticatedMailboxProperties * self, const char * mnemonic, GtkWidget ** label, GtkWidget ** entry);
+void mn_authenticated_mailbox_properties_get_contents (MNAuthenticatedMailboxProperties * self, const char ** username, const char ** password);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-authenticated-mailbox-properties.c b/src/mn-authenticated-mailbox-properties.c
@@ -0,0 +1,277 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-authenticated-mailbox-properties.h"
+
+#include "mn-authenticated-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 26 "mn-authenticated-mailbox-properties.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-authenticated-mailbox.h"
+
+#line 33 "mn-authenticated-mailbox-properties.c"
+/* self casting macros */
+#define SELF(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNAuthenticatedMailboxProperties Self;
+typedef MNAuthenticatedMailboxPropertiesClass SelfClass;
+
+/* here are local prototypes */
+static void mn_authenticated_mailbox_properties_class_init (MNAuthenticatedMailboxPropertiesClass * c) G_GNUC_UNUSED;
+static void mn_authenticated_mailbox_properties_init (MNAuthenticatedMailboxProperties * self) G_GNUC_UNUSED;
+static void ___3_mn_authenticated_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_authenticated_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNMailboxPropertiesClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_field_new mn_authenticated_mailbox_properties_field_new
+#define self_get_contents mn_authenticated_mailbox_properties_get_contents
+GType
+mn_authenticated_mailbox_properties_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNAuthenticatedMailboxPropertiesClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_authenticated_mailbox_properties_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNAuthenticatedMailboxProperties),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_authenticated_mailbox_properties_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNAuthenticatedMailboxProperties", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNAuthenticatedMailboxProperties *)g_object_new(mn_authenticated_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNAuthenticatedMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNAuthenticatedMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNAuthenticatedMailboxProperties *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNAuthenticatedMailboxProperties *)g_object_new_valist (mn_authenticated_mailbox_properties_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+static void
+mn_authenticated_mailbox_properties_class_init (MNAuthenticatedMailboxPropertiesClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::class_init"
+ MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)c;
+
+ parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
+
+#line 90 "mn-authenticated-mailbox-properties.gob"
+ mn_mailbox_properties_class->set_mailbox = ___3_mn_authenticated_mailbox_properties_set_mailbox;
+#line 100 "mn-authenticated-mailbox-properties.gob"
+ mn_mailbox_properties_class->get_mailbox = ___4_mn_authenticated_mailbox_properties_get_mailbox;
+#line 113 "mn-authenticated-mailbox-properties.c"
+}
+#undef __GOB_FUNCTION__
+#line 41 "mn-authenticated-mailbox-properties.gob"
+static void
+mn_authenticated_mailbox_properties_init (MNAuthenticatedMailboxProperties * self G_GNUC_UNUSED)
+#line 119 "mn-authenticated-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::init"
+ {
+#line 42 "mn-authenticated-mailbox-properties.gob"
+
+ const char *username;
+
+ self->username_vbox = self_field_new(self,
+ _("_Username:"),
+ &self->username_label,
+ &self->username_entry);
+ self->password_vbox = self_field_new(self,
+ _("_Password:"),
+ &self->password_label,
+ &self->password_entry);
+
+ /* defaults to the login name */
+ username = g_get_user_name();
+ if (username)
+ gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
+
+ gtk_entry_set_visibility(GTK_ENTRY(self->password_entry), FALSE);
+
+#line 143 "mn-authenticated-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 62 "mn-authenticated-mailbox-properties.gob"
+GtkWidget *
+mn_authenticated_mailbox_properties_field_new (MNAuthenticatedMailboxProperties * self, const char * mnemonic, GtkWidget ** label, GtkWidget ** entry)
+#line 153 "mn-authenticated-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::field_new"
+#line 62 "mn-authenticated-mailbox-properties.gob"
+ g_return_val_if_fail (self != NULL, (GtkWidget * )0);
+#line 62 "mn-authenticated-mailbox-properties.gob"
+ g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES (self), (GtkWidget * )0);
+#line 62 "mn-authenticated-mailbox-properties.gob"
+ g_return_val_if_fail (mnemonic != NULL, (GtkWidget * )0);
+#line 62 "mn-authenticated-mailbox-properties.gob"
+ g_return_val_if_fail (entry != NULL, (GtkWidget * )0);
+#line 164 "mn-authenticated-mailbox-properties.c"
+{
+#line 67 "mn-authenticated-mailbox-properties.gob"
+
+ GtkWidget *hbox;
+ GtkWidget *_label;
+
+ _label = gtk_label_new_with_mnemonic(mnemonic);
+ gtk_misc_set_alignment(GTK_MISC(_label), 0.0, 0.5);
+
+ *entry = gtk_entry_new();
+ gtk_label_set_mnemonic_widget(GTK_LABEL(_label), *entry);
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ gtk_box_pack_start(GTK_BOX(hbox), _label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), *entry, TRUE, TRUE, 0);
+ gtk_widget_show_all(hbox);
+
+ gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, _label);
+
+ if (label)
+ *label = _label;
+
+ return hbox;
+ }}
+#line 189 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 90 "mn-authenticated-mailbox-properties.gob"
+static void
+___3_mn_authenticated_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 195 "mn-authenticated-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+ { if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::set_mailbox"
+{
+#line 92 "mn-authenticated-mailbox-properties.gob"
+
+ Self *self = SELF(properties);
+ MNAuthenticatedMailbox *auth_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+
+ gtk_entry_set_text(GTK_ENTRY(self->username_entry), auth_mailbox->username ? auth_mailbox->username : "");
+ gtk_entry_set_text(GTK_ENTRY(self->password_entry), auth_mailbox->password ? auth_mailbox->password : "");
+ }}
+#line 210 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 100 "mn-authenticated-mailbox-properties.gob"
+static MNMailbox *
+___4_mn_authenticated_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 217 "mn-authenticated-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+ ((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+ ((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::get_mailbox"
+{
+#line 102 "mn-authenticated-mailbox-properties.gob"
+
+ Self *self = SELF(properties);
+ MNMailbox *mailbox;
+ const char *username;
+ const char *password;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+ password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+
+ g_object_set(mailbox,
+ "username", *username ? username : NULL,
+ "password", *password ? password : NULL,
+ NULL);
+
+ return mailbox;
+ }}
+#line 244 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 121 "mn-authenticated-mailbox-properties.gob"
+void
+mn_authenticated_mailbox_properties_get_contents (MNAuthenticatedMailboxProperties * self, const char ** username, const char ** password)
+#line 251 "mn-authenticated-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::get_contents"
+#line 121 "mn-authenticated-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 121 "mn-authenticated-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES (self));
+#line 258 "mn-authenticated-mailbox-properties.c"
+{
+#line 125 "mn-authenticated-mailbox-properties.gob"
+
+ if (username)
+ {
+ const char *_username;
+
+ _username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+ *username = *_username ? _username : NULL;
+ }
+ if (password)
+ {
+ const char *_password;
+
+ _password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+ *password = *_password ? _password : NULL;
+ }
+ }}
+#line 277 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-authenticated-mailbox-properties.gob b/src/mn-authenticated-mailbox-properties.gob
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-authenticated-mailbox.h"
+%}
+
+class MN:Authenticated:Mailbox:Properties from MN:Mailbox:Properties
+{
+ protected GtkWidget *username_vbox;
+ protected GtkWidget *username_label;
+ protected GtkWidget *username_entry;
+ protected GtkWidget *password_vbox;
+ protected GtkWidget *password_label;
+ protected GtkWidget *password_entry;
+
+ init (self)
+ {
+ const char *username;
+
+ self->username_vbox = self_field_new(self,
+ _("_Username:"),
+ &self->username_label,
+ &self->username_entry);
+ self->password_vbox = self_field_new(self,
+ _("_Password:"),
+ &self->password_label,
+ &self->password_entry);
+
+ /* defaults to the login name */
+ username = g_get_user_name();
+ if (username)
+ gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
+
+ gtk_entry_set_visibility(GTK_ENTRY(self->password_entry), FALSE);
+ }
+
+ protected GtkWidget *
+ field_new (self,
+ const char *mnemonic (check null),
+ GtkWidget **label,
+ GtkWidget **entry (check null))
+ {
+ GtkWidget *hbox;
+ GtkWidget *_label;
+
+ _label = gtk_label_new_with_mnemonic(mnemonic);
+ gtk_misc_set_alignment(GTK_MISC(_label), 0.0, 0.5);
+
+ *entry = gtk_entry_new();
+ gtk_label_set_mnemonic_widget(GTK_LABEL(_label), *entry);
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ gtk_box_pack_start(GTK_BOX(hbox), _label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), *entry, TRUE, TRUE, 0);
+ gtk_widget_show_all(hbox);
+
+ gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, _label);
+
+ if (label)
+ *label = _label;
+
+ return hbox;
+ }
+
+ override (MN:Mailbox:Properties) void
+ set_mailbox (MNMailboxProperties *properties, MNMailbox *mailbox)
+ {
+ Self *self = SELF(properties);
+ MNAuthenticatedMailbox *auth_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+
+ gtk_entry_set_text(GTK_ENTRY(self->username_entry), auth_mailbox->username ? auth_mailbox->username : "");
+ gtk_entry_set_text(GTK_ENTRY(self->password_entry), auth_mailbox->password ? auth_mailbox->password : "");
+ }
+
+ override (MN:Mailbox:Properties) MNMailbox *
+ get_mailbox (MNMailboxProperties *properties)
+ {
+ Self *self = SELF(properties);
+ MNMailbox *mailbox;
+ const char *username;
+ const char *password;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+ password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+
+ g_object_set(mailbox,
+ "username", *username ? username : NULL,
+ "password", *password ? password : NULL,
+ NULL);
+
+ return mailbox;
+ }
+
+ protected void
+ get_contents (self,
+ const char **username,
+ const char **password)
+ {
+ if (username)
+ {
+ const char *_username;
+
+ _username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+ *username = *_username ? _username : NULL;
+ }
+ if (password)
+ {
+ const char *_password;
+
+ _password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+ *password = *_password ? _password : NULL;
+ }
+ }
+}
diff --git a/src/mn-authenticated-mailbox-properties.h b/src/mn-authenticated-mailbox-properties.h
@@ -0,0 +1,65 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
+
+#ifndef __MN_AUTHENTICATED_MAILBOX_PROPERTIES_H__
+#define __MN_AUTHENTICATED_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES (mn_authenticated_mailbox_properties_get_type())
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxProperties)
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxProperties const)
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxPropertiesClass)
+#define MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_authenticated_mailbox_properties_get_type ())
+
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxPropertiesClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_AUTHENTICATED_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_AUTHENTICATED_MAILBOX_PROPERTIES__
+typedef struct _MNAuthenticatedMailboxProperties MNAuthenticatedMailboxProperties;
+#endif
+struct _MNAuthenticatedMailboxProperties {
+ MNMailboxProperties __parent__;
+ /*< private >*/
+ GtkWidget * username_vbox; /* protected */
+ GtkWidget * username_label; /* protected */
+ GtkWidget * username_entry; /* protected */
+ GtkWidget * password_vbox; /* protected */
+ GtkWidget * password_label; /* protected */
+ GtkWidget * password_entry; /* protected */
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNAuthenticatedMailboxPropertiesClass MNAuthenticatedMailboxPropertiesClass;
+struct _MNAuthenticatedMailboxPropertiesClass {
+ MNMailboxPropertiesClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_authenticated_mailbox_properties_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-authenticated-mailbox.c b/src/mn-authenticated-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,10 +23,10 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 26 "mn-authenticated-mailbox.gob"
+#line 29 "mn-authenticated-mailbox.gob"
#include "config.h"
-#include <glib/gi18n.h>
+#include <gnome.h>
#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-util.h"
@@ -46,20 +46,32 @@ typedef MNAuthenticatedMailbox Self;
typedef MNAuthenticatedMailboxClass SelfClass;
/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
static void mn_authenticated_mailbox_init (MNAuthenticatedMailbox * o) G_GNUC_UNUSED;
static void mn_authenticated_mailbox_class_init (MNAuthenticatedMailboxClass * c) G_GNUC_UNUSED;
static void ___1_mn_authenticated_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
-static void ___2_mn_authenticated_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static char * mn_authenticated_mailbox_password_prompt (MNAuthenticatedMailbox * self, const char * format, ...) G_GNUC_UNUSED;
+static void ___2_mn_authenticated_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_authenticated_mailbox_check_thread_cb (MNAuthenticatedMailbox * self) G_GNUC_UNUSED;
+static void ___real_mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self);
+static void mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self) G_GNUC_UNUSED;
+static gboolean mn_authenticated_mailbox_credentials_prompt (MNAuthenticatedMailbox * self, char ** username, char ** password, const char * format, ...) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_USERNAME,
+ PROP_PASSWORD
+};
/* pointer to the class of our parent */
static MNMailboxClass *parent_class = NULL;
/* Short form macros */
+#define self_check_thread_cb mn_authenticated_mailbox_check_thread_cb
+#define self_impl_check mn_authenticated_mailbox_impl_check
#define self_authentication_failed mn_authenticated_mailbox_authentication_failed
-#define self_fill_password mn_authenticated_mailbox_fill_password
-#define self_password_prompt mn_authenticated_mailbox_password_prompt
-#define self_password_prompt_changed_h mn_authenticated_mailbox_password_prompt_changed_h
+#define self_fill_credentials mn_authenticated_mailbox_fill_credentials
+#define self_credentials_prompt mn_authenticated_mailbox_credentials_prompt
GType
mn_authenticated_mailbox_get_type (void)
{
@@ -111,9 +123,18 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 36 "mn-authenticated-mailbox.gob"
+#line 39 "mn-authenticated-mailbox.gob"
+ if(self->username) { g_free ((gpointer) self->username); self->username = NULL; }
+#line 129 "mn-authenticated-mailbox.c"
+#line 42 "mn-authenticated-mailbox.gob"
if(self->password) { g_free ((gpointer) self->password); self->password = NULL; }
-#line 117 "mn-authenticated-mailbox.c"
+#line 132 "mn-authenticated-mailbox.c"
+#line 45 "mn-authenticated-mailbox.gob"
+ if(self->runtime_username) { g_free ((gpointer) self->runtime_username); self->runtime_username = NULL; }
+#line 135 "mn-authenticated-mailbox.c"
+#line 46 "mn-authenticated-mailbox.gob"
+ if(self->runtime_password) { g_free ((gpointer) self->runtime_password); self->runtime_password = NULL; }
+#line 138 "mn-authenticated-mailbox.c"
}
#undef __GOB_FUNCTION__
@@ -121,10 +142,7 @@ static void
mn_authenticated_mailbox_init (MNAuthenticatedMailbox * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNAuthenticatedMailboxPrivate);
-#line 26 "mn-authenticated-mailbox.gob"
- o->password = NULL;
-#line 128 "mn-authenticated-mailbox.c"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_AUTHENTICATED_MAILBOX,MNAuthenticatedMailboxPrivate);
}
#undef __GOB_FUNCTION__
static void
@@ -138,33 +156,130 @@ mn_authenticated_mailbox_class_init (MNAuthenticatedMailboxClass * c G_GNUC_UNUS
parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-#line 42 "mn-authenticated-mailbox.gob"
+#line 56 "mn-authenticated-mailbox.gob"
mn_mailbox_class->removed = ___1_mn_authenticated_mailbox_removed;
-#line 53 "mn-authenticated-mailbox.gob"
- mn_mailbox_class->impl_check = ___2_mn_authenticated_mailbox_impl_check;
-#line 146 "mn-authenticated-mailbox.c"
+#line 67 "mn-authenticated-mailbox.gob"
+ mn_mailbox_class->check = ___2_mn_authenticated_mailbox_check;
+#line 97 "mn-authenticated-mailbox.gob"
+ c->impl_check = ___real_mn_authenticated_mailbox_impl_check;
+#line 166 "mn-authenticated-mailbox.c"
g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_string
+ ("username" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_USERNAME,
+ param_spec);
+ param_spec = g_param_spec_string
+ ("password" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_PASSWORD,
+ param_spec);
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::set_property"
+{
+ MNAuthenticatedMailbox *self G_GNUC_UNUSED;
+
+ self = MN_AUTHENTICATED_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_USERNAME:
+ {
+#line 40 "mn-authenticated-mailbox.gob"
+{ char *old = self->username; self->username = g_value_dup_string (VAL); g_free (old); }
+#line 211 "mn-authenticated-mailbox.c"
+ }
+ break;
+ case PROP_PASSWORD:
+ {
+#line 43 "mn-authenticated-mailbox.gob"
+{ char *old = self->password; self->password = g_value_dup_string (VAL); g_free (old); }
+#line 218 "mn-authenticated-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::get_property"
+{
+ MNAuthenticatedMailbox *self G_GNUC_UNUSED;
+
+ self = MN_AUTHENTICATED_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_USERNAME:
+ {
+#line 40 "mn-authenticated-mailbox.gob"
+g_value_set_string (VAL, self->username);
+#line 249 "mn-authenticated-mailbox.c"
+ }
+ break;
+ case PROP_PASSWORD:
+ {
+#line 43 "mn-authenticated-mailbox.gob"
+g_value_set_string (VAL, self->password);
+#line 256 "mn-authenticated-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
}
#undef __GOB_FUNCTION__
-#line 42 "mn-authenticated-mailbox.gob"
+#line 56 "mn-authenticated-mailbox.gob"
static void
___1_mn_authenticated_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 156 "mn-authenticated-mailbox.c"
+#line 276 "mn-authenticated-mailbox.c"
#define PARENT_HANDLER(___mailbox) \
{ if(MN_MAILBOX_CLASS(parent_class)->removed) \
(* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
{
#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::removed"
-#line 42 "mn-authenticated-mailbox.gob"
- g_return_if_fail (mailbox != NULL);
-#line 42 "mn-authenticated-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 166 "mn-authenticated-mailbox.c"
{
-#line 44 "mn-authenticated-mailbox.gob"
+#line 58 "mn-authenticated-mailbox.gob"
Self *self = SELF(mailbox);
@@ -173,185 +288,255 @@ ___1_mn_authenticated_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
PARENT_HANDLER(mailbox);
}}
-#line 177 "mn-authenticated-mailbox.c"
+#line 292 "mn-authenticated-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 53 "mn-authenticated-mailbox.gob"
+#line 67 "mn-authenticated-mailbox.gob"
static void
-___2_mn_authenticated_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 184 "mn-authenticated-mailbox.c"
+___2_mn_authenticated_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 299 "mn-authenticated-mailbox.c"
#define PARENT_HANDLER(___mailbox) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+ { if(MN_MAILBOX_CLASS(parent_class)->check) \
+ (* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
{
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::impl_check"
-#line 53 "mn-authenticated-mailbox.gob"
- g_return_if_fail (mailbox != NULL);
-#line 53 "mn-authenticated-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 194 "mn-authenticated-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::check"
{
-#line 55 "mn-authenticated-mailbox.gob"
+#line 69 "mn-authenticated-mailbox.gob"
Self *self = SELF(mailbox);
+ if (selfp->checking)
+ return;
+
+ PARENT_HANDLER(mailbox);
+
+ mn_mailbox_set_error(mailbox, NULL);
+
+ g_object_ref(self);
+ mn_thread_create((GThreadFunc) self_check_thread_cb, self);
+ }}
+#line 320 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 83 "mn-authenticated-mailbox.gob"
+static void
+mn_authenticated_mailbox_check_thread_cb (MNAuthenticatedMailbox * self)
+#line 327 "mn-authenticated-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::check_thread_cb"
+#line 83 "mn-authenticated-mailbox.gob"
+ g_return_if_fail (self != NULL);
+#line 83 "mn-authenticated-mailbox.gob"
+ g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
+#line 334 "mn-authenticated-mailbox.c"
+{
+#line 85 "mn-authenticated-mailbox.gob"
+
+ self_impl_check(self);
+
+ GDK_THREADS_ENTER();
+
+ selfp->checking = FALSE;
+ g_object_unref(self);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }}
+#line 348 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 97 "mn-authenticated-mailbox.gob"
+static void
+mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self)
+#line 354 "mn-authenticated-mailbox.c"
+{
+ MNAuthenticatedMailboxClass *klass;
+#line 97 "mn-authenticated-mailbox.gob"
+ g_return_if_fail (self != NULL);
+#line 97 "mn-authenticated-mailbox.gob"
+ g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
+#line 361 "mn-authenticated-mailbox.c"
+ klass = MN_AUTHENTICATED_MAILBOX_GET_CLASS(self);
+
+ if(klass->impl_check)
+ (*klass->impl_check)(self);
+}
+#line 97 "mn-authenticated-mailbox.gob"
+static void
+___real_mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self G_GNUC_UNUSED)
+#line 370 "mn-authenticated-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::impl_check"
+{
+#line 99 "mn-authenticated-mailbox.gob"
+
self->prompted = FALSE;
selfp->authentication_failed = FALSE;
}}
-#line 203 "mn-authenticated-mailbox.c"
+#line 379 "mn-authenticated-mailbox.c"
#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-#line 62 "mn-authenticated-mailbox.gob"
+#line 104 "mn-authenticated-mailbox.gob"
void
mn_authenticated_mailbox_authentication_failed (MNAuthenticatedMailbox * self)
-#line 210 "mn-authenticated-mailbox.c"
+#line 385 "mn-authenticated-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::authentication_failed"
-#line 62 "mn-authenticated-mailbox.gob"
+#line 104 "mn-authenticated-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 62 "mn-authenticated-mailbox.gob"
+#line 104 "mn-authenticated-mailbox.gob"
g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
-#line 217 "mn-authenticated-mailbox.c"
+#line 392 "mn-authenticated-mailbox.c"
{
-#line 64 "mn-authenticated-mailbox.gob"
+#line 106 "mn-authenticated-mailbox.gob"
- g_free(self->password);
- self->password = NULL;
+ if (! self->username)
+ {
+ g_free(self->runtime_username);
+ self->runtime_username = NULL;
+ }
+
+ if (! self->password)
+ {
+ g_free(self->runtime_password);
+ self->runtime_password = NULL;
+ }
+
selfp->authentication_failed = TRUE;
}}
-#line 225 "mn-authenticated-mailbox.c"
+#line 410 "mn-authenticated-mailbox.c"
#undef __GOB_FUNCTION__
-#line 70 "mn-authenticated-mailbox.gob"
+#line 122 "mn-authenticated-mailbox.gob"
void
-mn_authenticated_mailbox_fill_password (MNAuthenticatedMailbox * self)
-#line 231 "mn-authenticated-mailbox.c"
+mn_authenticated_mailbox_fill_credentials (MNAuthenticatedMailbox * self, gboolean need_username, gboolean need_password)
+#line 416 "mn-authenticated-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::fill_password"
-#line 70 "mn-authenticated-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::fill_credentials"
+#line 122 "mn-authenticated-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 70 "mn-authenticated-mailbox.gob"
+#line 122 "mn-authenticated-mailbox.gob"
g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
-#line 238 "mn-authenticated-mailbox.c"
+#line 423 "mn-authenticated-mailbox.c"
{
-#line 72 "mn-authenticated-mailbox.gob"
+#line 124 "mn-authenticated-mailbox.gob"
+ g_return_if_fail(need_username || need_password);
+
self->cancelled = FALSE;
- if (! self->password)
+
+ if (! self->runtime_username)
+ self->runtime_username = g_strdup(self->username);
+ if (! self->runtime_password)
+ self->runtime_password = g_strdup(self->password);
+
+ if (self->runtime_username)
+ need_username = FALSE;
+ if (self->runtime_password)
+ need_password = FALSE;
+
+ if (need_username || need_password)
{
- self->password = g_strdup(MN_MAILBOX(self)->uri->password);
- if (! self->password)
+ char *username;
+ char *password;
+
+ GDK_THREADS_ENTER();
+
+ self->prompted = TRUE;
+
+ if (self_credentials_prompt(self,
+ need_username ? &username : NULL,
+ &password,
+ selfp->authentication_failed
+ ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the credentials you have entered are invalid.\n\nPlease re-enter your credentials.")
+ : _("Enter your credentials for %s mailbox %s."),
+ MN_MAILBOX(self)->format,
+ MN_MAILBOX(self)->runtime_name))
{
- GDK_THREADS_ENTER();
-
- self->prompted = TRUE;
-
- self->password = self_password_prompt(self,
- selfp->authentication_failed
- ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the password you have entered is invalid.\n\nPlease re-enter your password.")
- : _("Enter your password for %s mailbox %s."),
- MN_MAILBOX_GET_CLASS(self)->format,
- mn_mailbox_get_name(MN_MAILBOX(self)));
-
- if (! self->password)
- self->cancelled = TRUE;
-
- gdk_flush();
- GDK_THREADS_LEAVE();
+ if (need_username)
+ self->runtime_username = username;
+
+ /*
+ * GnomePasswordDialog does not let us disable the
+ * password entry, so, even if need_password is FALSE, we
+ * set runtime_password to what the user has entered.
+ */
+
+ g_free(self->runtime_password);
+ self->runtime_password = password;
}
+ else
+ self->cancelled = TRUE;
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
}
}}
-#line 267 "mn-authenticated-mailbox.c"
+#line 478 "mn-authenticated-mailbox.c"
#undef __GOB_FUNCTION__
-#line 99 "mn-authenticated-mailbox.gob"
-static char *
-mn_authenticated_mailbox_password_prompt (MNAuthenticatedMailbox * self, const char * format, ...)
-#line 273 "mn-authenticated-mailbox.c"
+#line 177 "mn-authenticated-mailbox.gob"
+static gboolean
+mn_authenticated_mailbox_credentials_prompt (MNAuthenticatedMailbox * self, char ** username, char ** password, const char * format, ...)
+#line 484 "mn-authenticated-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::password_prompt"
-#line 99 "mn-authenticated-mailbox.gob"
- g_return_val_if_fail (self != NULL, (char * )0);
-#line 99 "mn-authenticated-mailbox.gob"
- g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self), (char * )0);
-#line 99 "mn-authenticated-mailbox.gob"
- g_return_val_if_fail (format != NULL, (char * )0);
-#line 282 "mn-authenticated-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::credentials_prompt"
+#line 177 "mn-authenticated-mailbox.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 177 "mn-authenticated-mailbox.gob"
+ g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self), (gboolean )0);
+#line 177 "mn-authenticated-mailbox.gob"
+ g_return_val_if_fail (password != NULL, (gboolean )0);
+#line 177 "mn-authenticated-mailbox.gob"
+ g_return_val_if_fail (format != NULL, (gboolean )0);
+#line 495 "mn-authenticated-mailbox.c"
{
-#line 101 "mn-authenticated-mailbox.gob"
+#line 183 "mn-authenticated-mailbox.gob"
- GtkWidget *label;
- GtkWidget *username_label;
- GtkWidget *username_entry;
- GtkWidget *password_label;
- GtkWidget *password_entry;
- GtkSizeGroup *size_group;
va_list args;
- char *prompt;
- char *markup;
- char *password = NULL;
-
- g_return_val_if_fail(selfp->dialog == NULL, NULL);
-
- mn_create_interface(MN_INTERFACE_FILE("authentication.glade"),
- "dialog", &selfp->dialog,
- "label", &label,
- "username_label", &username_label,
- "username_entry", &username_entry,
- "password_label", &password_label,
- "password_entry", &password_entry,
- NULL);
+ char *message;
+ gboolean ok;
- eel_add_weak_pointer(&selfp->dialog);
-
- gtk_dialog_set_default_response(GTK_DIALOG(selfp->dialog), GTK_RESPONSE_OK);
-
- size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget(size_group, username_label);
- gtk_size_group_add_widget(size_group, password_label);
- g_object_unref(size_group);
+ g_return_val_if_fail(selfp->dialog == NULL, FALSE);
va_start(args, format);
- prompt = g_strdup_vprintf(format, args);
+ message = g_strdup_vprintf(format, args);
va_end(args);
- markup = g_markup_printf_escaped(_("<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</span>\n"
- "\n"
- "%s"),
- prompt);
- g_free(prompt);
+ /* keep the title in sync with gnome-authentication-manager */
+ selfp->dialog = gnome_password_dialog_new(_("Authentication Required"),
+ message,
+ self->runtime_username,
+ self->runtime_password,
+ FALSE);
+ g_free(message);
- gtk_label_set_markup(GTK_LABEL(label), markup);
- g_free(markup);
-
- gtk_entry_set_text(GTK_ENTRY(username_entry), MN_MAILBOX(self)->uri->username);
+ eel_add_weak_pointer(&selfp->dialog);
- if (mn_dialog_run_nonmodal(GTK_DIALOG(selfp->dialog)) == GTK_RESPONSE_OK)
- password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry)));
+ gnome_password_dialog_set_show_userpass_buttons(GNOME_PASSWORD_DIALOG(selfp->dialog), FALSE);
+ gnome_password_dialog_set_readonly_username(GNOME_PASSWORD_DIALOG(selfp->dialog), username == NULL);
- gtk_widget_destroy(selfp->dialog);
+ ok = gnome_password_dialog_run_and_block(GNOME_PASSWORD_DIALOG(selfp->dialog));
+ if (ok)
+ {
+ if (username)
+ *username = gnome_password_dialog_get_username(GNOME_PASSWORD_DIALOG(selfp->dialog));
- return password;
- }}
-#line 339 "mn-authenticated-mailbox.c"
-#undef __GOB_FUNCTION__
+ *password = gnome_password_dialog_get_password(GNOME_PASSWORD_DIALOG(selfp->dialog));
+ }
+ else
+ {
+ if (username)
+ *username = NULL;
-#line 158 "mn-authenticated-mailbox.gob"
-void
-mn_authenticated_mailbox_password_prompt_changed_h (gpointer user_data, GtkEditable * editable)
-#line 345 "mn-authenticated-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::password_prompt_changed_h"
-{
-#line 161 "mn-authenticated-mailbox.gob"
-
- GtkDialog *dialog = user_data;
- const char *password;
+ *password = NULL;
+ }
+
+ gtk_widget_destroy(selfp->dialog);
- password = gtk_entry_get_text(GTK_ENTRY(editable));
- gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, *password != 0);
+ return ok;
}}
-#line 357 "mn-authenticated-mailbox.c"
+#line 542 "mn-authenticated-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-authenticated-mailbox.gob b/src/mn-authenticated-mailbox.gob
@@ -16,16 +16,19 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
-#include <gtk/gtk.h>
#include "mn-mailbox.h"
%}
+%privateheader{
+#include <gtk/gtk.h>
+%}
+
%{
#include "config.h"
-#include <glib/gi18n.h>
+#include <gnome.h>
#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-util.h"
@@ -33,14 +36,25 @@ requires 2.0.10
class MN:Authenticated:Mailbox from MN:Mailbox
{
- protected char *password = NULL destroywith g_free;
+ public char *username destroywith g_free;
+ property STRING username (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+ public char *password destroywith g_free;
+ property STRING password (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+ public char *runtime_username destroywith g_free;
+ public char *runtime_password destroywith g_free;
+
protected gboolean prompted;
protected gboolean cancelled;
+
private gboolean authentication_failed;
private GtkWidget *dialog;
+ private gboolean checking;
+
override (MN:Mailbox) void
- removed (MN:Mailbox *mailbox (check null type))
+ removed (MNMailbox *mailbox)
{
Self *self = SELF(mailbox);
@@ -51,10 +65,38 @@ class MN:Authenticated:Mailbox from MN:Mailbox
}
override (MN:Mailbox) void
- impl_check (MN:Mailbox *mailbox (check null type))
+ check (MNMailbox *mailbox)
{
Self *self = SELF(mailbox);
+ if (selfp->checking)
+ return;
+
+ PARENT_HANDLER(mailbox);
+
+ mn_mailbox_set_error(mailbox, NULL);
+
+ g_object_ref(self);
+ mn_thread_create((GThreadFunc) self_check_thread_cb, self);
+ }
+
+ private void
+ check_thread_cb (self)
+ {
+ self_impl_check(self);
+
+ GDK_THREADS_ENTER();
+
+ selfp->checking = FALSE;
+ g_object_unref(self);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+
+ virtual private void
+ impl_check (self)
+ {
self->prompted = FALSE;
selfp->authentication_failed = FALSE;
}
@@ -62,107 +104,124 @@ class MN:Authenticated:Mailbox from MN:Mailbox
protected void
authentication_failed (self)
{
- g_free(self->password);
- self->password = NULL;
+ if (! self->username)
+ {
+ g_free(self->runtime_username);
+ self->runtime_username = NULL;
+ }
+
+ if (! self->password)
+ {
+ g_free(self->runtime_password);
+ self->runtime_password = NULL;
+ }
+
selfp->authentication_failed = TRUE;
}
protected void
- fill_password (self)
+ fill_credentials (self, gboolean need_username, gboolean need_password)
{
+ g_return_if_fail(need_username || need_password);
+
self->cancelled = FALSE;
- if (! self->password)
+
+ if (! self->runtime_username)
+ self->runtime_username = g_strdup(self->username);
+ if (! self->runtime_password)
+ self->runtime_password = g_strdup(self->password);
+
+ if (self->runtime_username)
+ need_username = FALSE;
+ if (self->runtime_password)
+ need_password = FALSE;
+
+ if (need_username || need_password)
{
- self->password = g_strdup(MN_MAILBOX(self)->uri->password);
- if (! self->password)
+ char *username;
+ char *password;
+
+ GDK_THREADS_ENTER();
+
+ self->prompted = TRUE;
+
+ if (self_credentials_prompt(self,
+ need_username ? &username : NULL,
+ &password,
+ selfp->authentication_failed
+ ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the credentials you have entered are invalid.\n\nPlease re-enter your credentials.")
+ : _("Enter your credentials for %s mailbox %s."),
+ MN_MAILBOX(self)->format,
+ MN_MAILBOX(self)->runtime_name))
{
- GDK_THREADS_ENTER();
-
- self->prompted = TRUE;
-
- self->password = self_password_prompt(self,
- selfp->authentication_failed
- ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the password you have entered is invalid.\n\nPlease re-enter your password.")
- : _("Enter your password for %s mailbox %s."),
- MN_MAILBOX_GET_CLASS(self)->format,
- mn_mailbox_get_name(MN_MAILBOX(self)));
-
- if (! self->password)
- self->cancelled = TRUE;
-
- gdk_flush();
- GDK_THREADS_LEAVE();
+ if (need_username)
+ self->runtime_username = username;
+
+ /*
+ * GnomePasswordDialog does not let us disable the
+ * password entry, so, even if need_password is FALSE, we
+ * set runtime_password to what the user has entered.
+ */
+
+ g_free(self->runtime_password);
+ self->runtime_password = password;
}
+ else
+ self->cancelled = TRUE;
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
}
}
- private char *
- password_prompt (self, const char *format (check null), ...)
+ private gboolean
+ credentials_prompt (self,
+ char **username,
+ char **password (check null),
+ const char *format (check null),
+ ...)
{
- GtkWidget *label;
- GtkWidget *username_label;
- GtkWidget *username_entry;
- GtkWidget *password_label;
- GtkWidget *password_entry;
- GtkSizeGroup *size_group;
va_list args;
- char *prompt;
- char *markup;
- char *password = NULL;
+ char *message;
+ gboolean ok;
- g_return_val_if_fail(selfp->dialog == NULL, NULL);
-
- mn_create_interface(MN_INTERFACE_FILE("authentication.glade"),
- "dialog", &selfp->dialog,
- "label", &label,
- "username_label", &username_label,
- "username_entry", &username_entry,
- "password_label", &password_label,
- "password_entry", &password_entry,
- NULL);
-
- eel_add_weak_pointer(&selfp->dialog);
-
- gtk_dialog_set_default_response(GTK_DIALOG(selfp->dialog), GTK_RESPONSE_OK);
-
- size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget(size_group, username_label);
- gtk_size_group_add_widget(size_group, password_label);
- g_object_unref(size_group);
+ g_return_val_if_fail(selfp->dialog == NULL, FALSE);
va_start(args, format);
- prompt = g_strdup_vprintf(format, args);
+ message = g_strdup_vprintf(format, args);
va_end(args);
- markup = g_markup_printf_escaped(_("<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</span>\n"
- "\n"
- "%s"),
- prompt);
- g_free(prompt);
-
- gtk_label_set_markup(GTK_LABEL(label), markup);
- g_free(markup);
-
- gtk_entry_set_text(GTK_ENTRY(username_entry), MN_MAILBOX(self)->uri->username);
+ /* keep the title in sync with gnome-authentication-manager */
+ selfp->dialog = gnome_password_dialog_new(_("Authentication Required"),
+ message,
+ self->runtime_username,
+ self->runtime_password,
+ FALSE);
+ g_free(message);
- if (mn_dialog_run_nonmodal(GTK_DIALOG(selfp->dialog)) == GTK_RESPONSE_OK)
- password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry)));
+ eel_add_weak_pointer(&selfp->dialog);
- gtk_widget_destroy(selfp->dialog);
+ gnome_password_dialog_set_show_userpass_buttons(GNOME_PASSWORD_DIALOG(selfp->dialog), FALSE);
+ gnome_password_dialog_set_readonly_username(GNOME_PASSWORD_DIALOG(selfp->dialog), username == NULL);
- return password;
- }
+ ok = gnome_password_dialog_run_and_block(GNOME_PASSWORD_DIALOG(selfp->dialog));
+ if (ok)
+ {
+ if (username)
+ *username = gnome_password_dialog_get_username(GNOME_PASSWORD_DIALOG(selfp->dialog));
- /* libglade callbacks */
+ *password = gnome_password_dialog_get_password(GNOME_PASSWORD_DIALOG(selfp->dialog));
+ }
+ else
+ {
+ if (username)
+ *username = NULL;
- public void
- password_prompt_changed_h (gpointer user_data,
- GtkEditable *editable)
- {
- GtkDialog *dialog = user_data;
- const char *password;
+ *password = NULL;
+ }
+
+ gtk_widget_destroy(selfp->dialog);
- password = gtk_entry_get_text(GTK_ENTRY(editable));
- gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, *password != 0);
+ return ok;
}
}
diff --git a/src/mn-authenticated-mailbox.h b/src/mn-authenticated-mailbox.h
@@ -1,10 +1,9 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
-#include <gtk/gtk.h>
#include "mn-mailbox.h"
#ifndef __MN_AUTHENTICATED_MAILBOX_H__
@@ -38,8 +37,12 @@ typedef struct _MNAuthenticatedMailbox MNAuthenticatedMailbox;
#endif
struct _MNAuthenticatedMailbox {
MNMailbox __parent__;
+ /*< public >*/
+ char * username;
+ char * password;
+ char * runtime_username;
+ char * runtime_password;
/*< private >*/
- char * password; /* protected */
gboolean prompted; /* protected */
gboolean cancelled; /* protected */
MNAuthenticatedMailboxPrivate *_priv;
@@ -51,6 +54,7 @@ struct _MNAuthenticatedMailbox {
typedef struct _MNAuthenticatedMailboxClass MNAuthenticatedMailboxClass;
struct _MNAuthenticatedMailboxClass {
MNMailboxClass __parent__;
+ void (* impl_check) (MNAuthenticatedMailbox * self);
};
@@ -58,8 +62,22 @@ struct _MNAuthenticatedMailboxClass {
* Public methods
*/
GType mn_authenticated_mailbox_get_type (void);
-void mn_authenticated_mailbox_password_prompt_changed_h (gpointer user_data,
- GtkEditable * editable);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_AUTHENTICATED_MAILBOX_PROP_USERNAME(arg) "username", __extension__ ({gchar *z = (arg); z;})
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_USERNAME(arg) "username", __extension__ ({gchar **z = (arg); z;})
+#define MN_AUTHENTICATED_MAILBOX_PROP_PASSWORD(arg) "password", __extension__ ({gchar *z = (arg); z;})
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_PASSWORD(arg) "password", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_AUTHENTICATED_MAILBOX_PROP_USERNAME(arg) "username",(gchar *)(arg)
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_USERNAME(arg) "username",(gchar **)(arg)
+#define MN_AUTHENTICATED_MAILBOX_PROP_PASSWORD(arg) "password",(gchar *)(arg)
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_PASSWORD(arg) "password",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
#ifdef __cplusplus
}
diff --git a/src/mn-autodetect-mailbox-properties-private.h b/src/mn-autodetect-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_AUTODETECT_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_AUTODETECT_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -10,13 +10,11 @@ extern "C" {
#endif /* __cplusplus */
struct _MNAutodetectMailboxPropertiesPrivate {
-#line 41 "mn-autodetect-mailbox-properties.gob"
- GtkSizeGroup * size_group;
-#line 53 "mn-autodetect-mailbox-properties.gob"
+#line 44 "mn-autodetect-mailbox-properties.gob"
GtkWidget * location_entry;
-#line 54 "mn-autodetect-mailbox-properties.gob"
+#line 45 "mn-autodetect-mailbox-properties.gob"
GtkWidget * chooser;
-#line 20 "mn-autodetect-mailbox-properties-private.h"
+#line 18 "mn-autodetect-mailbox-properties-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-autodetect-mailbox-properties.c b/src/mn-autodetect-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,19 +23,23 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-autodetect-mailbox-properties.gob"
+#line 26 "mn-autodetect-mailbox-properties.gob"
#include "config.h"
#include <glib/gi18n.h>
#include <eel/eel.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
#include "mn-util.h"
#include "mn-properties-dialog.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-custom-vfs-mailbox.h"
+#endif
+#include "mn-stock.h"
- static char *current_folder_uri = NULL;
+static char *current_folder_uri = NULL;
-#line 39 "mn-autodetect-mailbox-properties.c"
+#line 43 "mn-autodetect-mailbox-properties.c"
/* self casting macros */
#define SELF(x) MN_AUTODETECT_MAILBOX_PROPERTIES(x)
#define SELF_CONST(x) MN_AUTODETECT_MAILBOX_PROPERTIES_CONST(x)
@@ -50,47 +54,28 @@ typedef MNAutodetectMailboxProperties Self;
typedef MNAutodetectMailboxPropertiesClass SelfClass;
/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * o) G_GNUC_UNUSED;
-static void mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static GObject * ___1_mn_autodetect_mailbox_properties_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static void mn_autodetect_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data) G_GNUC_UNUSED;
+static void mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * self) G_GNUC_UNUSED;
static void mn_autodetect_mailbox_properties_browse_clicked_h (GtkButton * button, gpointer user_data) G_GNUC_UNUSED;
static void mn_autodetect_mailbox_properties_current_folder_changed_h (GtkFileChooser * chooser, gpointer user_data) G_GNUC_UNUSED;
static void mn_autodetect_mailbox_properties_chooser_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_autodetect_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_autodetect_mailbox_properties_get_uri (MNMailboxProperties * self) G_GNUC_UNUSED;
+static void ___6_mn_autodetect_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___7_mn_autodetect_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
enum {
PROP_0,
- PROP_LABEL,
- PROP_SIZE_GROUP,
- PROP_COMPLETE
+ PROP_COMPLETE,
+ PROP_DEFAULT_NAME
};
/* pointer to the class of our parent */
-static GtkHBoxClass *parent_class = NULL;
+static MNMailboxPropertiesClass *parent_class = NULL;
/* Short form macros */
-#define self_entry_changed_h mn_autodetect_mailbox_properties_entry_changed_h
#define self_browse_clicked_h mn_autodetect_mailbox_properties_browse_clicked_h
#define self_current_folder_changed_h mn_autodetect_mailbox_properties_current_folder_changed_h
#define self_chooser_response_h mn_autodetect_mailbox_properties_chooser_response_h
-#define self_set_uri mn_autodetect_mailbox_properties_set_uri
-#define self_get_uri mn_autodetect_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 176 "mn-autodetect-mailbox-properties.gob"
- iface->set_uri = self_set_uri;
-#line 184 "mn-autodetect-mailbox-properties.gob"
- iface->get_uri = self_get_uri;
-#line 92 "mn-autodetect-mailbox-properties.c"
-}
-
GType
mn_autodetect_mailbox_properties_get_type (void)
{
@@ -110,16 +95,7 @@ mn_autodetect_mailbox_properties_get_type (void)
NULL
};
- static const GInterfaceInfo MN_Mailbox_Properties_info = {
- (GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
- NULL,
- NULL
- };
-
- type = g_type_register_static (GTK_TYPE_HBOX, "MNAutodetectMailboxProperties", &info, (GTypeFlags)0);
- g_type_add_interface_static (type,
- MN_TYPE_MAILBOX_PROPERTIES,
- &MN_Mailbox_Properties_info);
+ type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNAutodetectMailboxProperties", &info, (GTypeFlags)0);
}
return type;
@@ -144,20 +120,6 @@ GET_NEW_VARG (const char *first, ...)
static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::dispose"
- MNAutodetectMailboxProperties *self G_GNUC_UNUSED = MN_AUTODETECT_MAILBOX_PROPERTIES (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 41 "mn-autodetect-mailbox-properties.gob"
- if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
-#line 156 "mn-autodetect-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
___finalize(GObject *obj_self)
{
#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::finalize"
@@ -168,72 +130,96 @@ ___finalize(GObject *obj_self)
}
#undef __GOB_FUNCTION__
+#line 86 "mn-autodetect-mailbox-properties.gob"
static void
-mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNAutodetectMailboxPropertiesPrivate);
-}
-#undef __GOB_FUNCTION__
-static void
-mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * c G_GNUC_UNUSED)
+mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 137 "mn-autodetect-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
- g_type_class_add_private(c,sizeof(MNAutodetectMailboxPropertiesPrivate));
+ g_type_class_add_private(class,sizeof(MNAutodetectMailboxPropertiesPrivate));
- parent_class = g_type_class_ref (GTK_TYPE_HBOX);
+ parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
-#line 56 "mn-autodetect-mailbox-properties.gob"
- g_object_class->constructor = ___1_mn_autodetect_mailbox_properties_constructor;
-#line 191 "mn-autodetect-mailbox-properties.c"
- g_object_class->dispose = ___dispose;
+#line 199 "mn-autodetect-mailbox-properties.gob"
+ mn_mailbox_properties_class->set_mailbox = ___6_mn_autodetect_mailbox_properties_set_mailbox;
+#line 211 "mn-autodetect-mailbox-properties.gob"
+ mn_mailbox_properties_class->get_mailbox = ___7_mn_autodetect_mailbox_properties_get_mailbox;
+#line 151 "mn-autodetect-mailbox-properties.c"
g_object_class->finalize = ___finalize;
g_object_class->get_property = ___object_get_property;
- g_object_class->set_property = ___object_set_property;
{
g_object_class_override_property (g_object_class,
- PROP_LABEL,
- "label");
- g_object_class_override_property (g_object_class,
- PROP_SIZE_GROUP,
- "size_group");
- g_object_class_override_property (g_object_class,
PROP_COMPLETE,
"complete");
+ g_object_class_override_property (g_object_class,
+ PROP_DEFAULT_NAME,
+ "default_name");
}
+ {
+#line 87 "mn-autodetect-mailbox-properties.gob"
+
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+ p_class->type = "custom-vfs";
+ p_class->stock_id = MN_STOCK_UNKNOWN;
+ p_class->combo_label = _("<span style=\"italic\">autodetect</span>");
+ p_class->section_label = _("Location");
+
+#line 172 "mn-autodetect-mailbox-properties.c"
+ }
}
#undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
- guint property_id,
- const GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::set_property"
+#line 96 "mn-autodetect-mailbox-properties.gob"
+static void
+mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * self G_GNUC_UNUSED)
+#line 179 "mn-autodetect-mailbox-properties.c"
{
- MNAutodetectMailboxProperties *self G_GNUC_UNUSED;
+#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::init"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES,MNAutodetectMailboxPropertiesPrivate);
+ {
+#line 97 "mn-autodetect-mailbox-properties.gob"
- self = MN_AUTODETECT_MAILBOX_PROPERTIES (object);
+ GtkWidget *outer_hbox;
+ GtkWidget *hbox;
+ GtkWidget *label;
+ GtkWidget *button;
- switch (property_id) {
- case PROP_SIZE_GROUP:
- {
-#line 42 "mn-autodetect-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->_priv->size_group; self->_priv->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 226 "mn-autodetect-mailbox-properties.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
+ label = gtk_label_new_with_mnemonic(_("_Location:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ outer_hbox = gtk_hbox_new(FALSE, 12);
+ hbox = gtk_hbox_new(FALSE, 6);
+
+ selfp->location_entry = gtk_entry_new();
+ button = gtk_button_new_with_mnemonic(_("_Browse..."));
+
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
+ mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->location_entry));
+
+ gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+
+ gtk_box_pack_start(GTK_BOX(outer_hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(outer_hbox), hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(self), outer_hbox, FALSE, FALSE, 0);
+
+ gtk_widget_show_all(outer_hbox);
+
+ gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, label);
+ gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->entry_button_size_group, button);
+
+ g_object_connect(selfp->location_entry,
+ "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+ "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+ NULL);
+
+ g_signal_connect(button, "clicked", G_CALLBACK(self_browse_clicked_h), self);
+
+#line 222 "mn-autodetect-mailbox-properties.c"
+ }
}
#undef __GOB_FUNCTION__
@@ -249,30 +235,49 @@ ___object_get_property (GObject *object,
self = MN_AUTODETECT_MAILBOX_PROPERTIES (object);
switch (property_id) {
- case PROP_LABEL:
- {
-#line 39 "mn-autodetect-mailbox-properties.gob"
- g_value_set_string(VAL, _("<span style=\"italic\">autodetect</span>"));
-#line 257 "mn-autodetect-mailbox-properties.c"
- }
- break;
- case PROP_SIZE_GROUP:
- {
-#line 42 "mn-autodetect-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 264 "mn-autodetect-mailbox-properties.c"
- }
- break;
case PROP_COMPLETE:
{
-#line 46 "mn-autodetect-mailbox-properties.gob"
+#line 49 "mn-autodetect-mailbox-properties.gob"
const char *location;
+ gboolean complete = FALSE;
location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
- g_value_set_boolean(VAL, *location != 0);
+ if (*location)
+ {
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_uri(location);
+ if (mailbox)
+ {
+ complete = TRUE;
+ g_object_unref(mailbox);
+ }
+ }
+
+ g_value_set_boolean(VAL, complete);
-#line 276 "mn-autodetect-mailbox-properties.c"
+#line 261 "mn-autodetect-mailbox-properties.c"
+ }
+ break;
+ case PROP_DEFAULT_NAME:
+ {
+#line 71 "mn-autodetect-mailbox-properties.gob"
+
+ char *name = NULL;
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_uri(gtk_entry_get_text(GTK_ENTRY(selfp->location_entry)));
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ name = g_strdup(mailbox->runtime_name);
+ g_object_unref(mailbox);
+ }
+
+ g_value_take_string(VAL, name);
+
+#line 281 "mn-autodetect-mailbox-properties.c"
}
break;
default:
@@ -289,100 +294,14 @@ g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 56 "mn-autodetect-mailbox-properties.gob"
-static GObject *
-___1_mn_autodetect_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 296 "mn-autodetect-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::constructor"
-{
-#line 58 "mn-autodetect-mailbox-properties.gob"
-
- GObject *object;
- Self *self;
- GtkWidget *hbox;
- GtkWidget *label;
- GtkWidget *button;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
-
- gtk_box_set_spacing(GTK_BOX(self), 12);
-
- label = gtk_label_new_with_mnemonic(_("_Location:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-
- hbox = gtk_hbox_new(FALSE, 6);
-
- selfp->location_entry = gtk_entry_new();
- button = gtk_button_new_with_mnemonic(_("_Browse..."));
-
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
- gtk_entry_set_activates_default(GTK_ENTRY(selfp->location_entry), TRUE);
-
- mn_properties_dialog_set_tooltip(selfp->location_entry, _("The URI of the mailbox"));
-
- gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-
- gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(self), hbox, TRUE, TRUE, 0);
-
- gtk_widget_show(label);
- gtk_widget_show_all(hbox);
-
- gtk_size_group_add_widget(selfp->size_group, label);
-
- g_signal_connect(selfp->location_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
- g_signal_connect(button, "clicked", G_CALLBACK(self_browse_clicked_h), self);
-
- return object;
- }}
-#line 346 "mn-autodetect-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 100 "mn-autodetect-mailbox-properties.gob"
-static void
-mn_autodetect_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 353 "mn-autodetect-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::entry_changed_h"
-#line 100 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (editable != NULL);
-#line 100 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 100 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (user_data != NULL);
-#line 362 "mn-autodetect-mailbox-properties.c"
-{
-#line 103 "mn-autodetect-mailbox-properties.gob"
-
- Self *self = user_data;
- g_object_notify(G_OBJECT(self), "complete");
- }}
-#line 369 "mn-autodetect-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 108 "mn-autodetect-mailbox-properties.gob"
+#line 135 "mn-autodetect-mailbox-properties.gob"
static void
mn_autodetect_mailbox_properties_browse_clicked_h (GtkButton * button, gpointer user_data)
-#line 375 "mn-autodetect-mailbox-properties.c"
+#line 301 "mn-autodetect-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::browse_clicked_h"
-#line 108 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (button != NULL);
-#line 108 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (GTK_IS_BUTTON (button));
-#line 108 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (user_data != NULL);
-#line 384 "mn-autodetect-mailbox-properties.c"
{
-#line 111 "mn-autodetect-mailbox-properties.gob"
+#line 137 "mn-autodetect-mailbox-properties.gob"
Self *self = user_data;
GtkWidget *toplevel;
@@ -421,44 +340,32 @@ mn_autodetect_mailbox_properties_browse_clicked_h (GtkButton * button, gpointer
gtk_widget_show(selfp->chooser);
}}
-#line 425 "mn-autodetect-mailbox-properties.c"
+#line 344 "mn-autodetect-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 150 "mn-autodetect-mailbox-properties.gob"
+#line 176 "mn-autodetect-mailbox-properties.gob"
static void
mn_autodetect_mailbox_properties_current_folder_changed_h (GtkFileChooser * chooser, gpointer user_data)
-#line 431 "mn-autodetect-mailbox-properties.c"
+#line 350 "mn-autodetect-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::current_folder_changed_h"
-#line 150 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (chooser != NULL);
-#line 150 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (GTK_IS_FILE_CHOOSER (chooser));
-#line 438 "mn-autodetect-mailbox-properties.c"
{
-#line 153 "mn-autodetect-mailbox-properties.gob"
+#line 178 "mn-autodetect-mailbox-properties.gob"
g_free(current_folder_uri);
current_folder_uri = gtk_file_chooser_get_current_folder_uri(chooser);
}}
-#line 445 "mn-autodetect-mailbox-properties.c"
+#line 359 "mn-autodetect-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 158 "mn-autodetect-mailbox-properties.gob"
+#line 183 "mn-autodetect-mailbox-properties.gob"
static void
mn_autodetect_mailbox_properties_chooser_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 451 "mn-autodetect-mailbox-properties.c"
+#line 365 "mn-autodetect-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::chooser_response_h"
-#line 158 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (dialog != NULL);
-#line 158 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 158 "mn-autodetect-mailbox-properties.gob"
- g_return_if_fail (user_data != NULL);
-#line 460 "mn-autodetect-mailbox-properties.c"
{
-#line 162 "mn-autodetect-mailbox-properties.gob"
+#line 185 "mn-autodetect-mailbox-properties.gob"
if (response == 1)
{
@@ -472,51 +379,51 @@ mn_autodetect_mailbox_properties_chooser_response_h (GtkDialog * dialog, int res
gtk_widget_destroy(GTK_WIDGET(dialog));
}}
-#line 476 "mn-autodetect-mailbox-properties.c"
+#line 383 "mn-autodetect-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 176 "mn-autodetect-mailbox-properties.gob"
-static gboolean
-mn_autodetect_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri)
-#line 482 "mn-autodetect-mailbox-properties.c"
+#line 199 "mn-autodetect-mailbox-properties.gob"
+static void
+___6_mn_autodetect_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 389 "mn-autodetect-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+ { if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::set_uri"
-#line 176 "mn-autodetect-mailbox-properties.gob"
- g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 176 "mn-autodetect-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (gboolean )0);
-#line 176 "mn-autodetect-mailbox-properties.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 176 "mn-autodetect-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 493 "mn-autodetect-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::set_mailbox"
{
-#line 179 "mn-autodetect-mailbox-properties.gob"
+#line 201 "mn-autodetect-mailbox-properties.gob"
- gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->location_entry), uri->text);
- return TRUE;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ g_return_if_fail(MN_IS_CUSTOM_VFS_MAILBOX(mailbox));
+
+ gtk_entry_set_text(GTK_ENTRY(SELF(properties)->_priv->location_entry), MN_CUSTOM_VFS_MAILBOX(mailbox)->uri);
+#else
+ g_return_if_reached();
+#endif
}}
-#line 500 "mn-autodetect-mailbox-properties.c"
+#line 406 "mn-autodetect-mailbox-properties.c"
#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
-#line 184 "mn-autodetect-mailbox-properties.gob"
-static MNURI *
-mn_autodetect_mailbox_properties_get_uri (MNMailboxProperties * self)
-#line 506 "mn-autodetect-mailbox-properties.c"
+#line 211 "mn-autodetect-mailbox-properties.gob"
+static MNMailbox *
+___7_mn_autodetect_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 413 "mn-autodetect-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+ ((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+ ((MNMailbox * )0))
{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::get_uri"
-#line 184 "mn-autodetect-mailbox-properties.gob"
- g_return_val_if_fail (self != NULL, (MNURI * )0);
-#line 184 "mn-autodetect-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNURI * )0);
-#line 513 "mn-autodetect-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::get_mailbox"
{
-#line 186 "mn-autodetect-mailbox-properties.gob"
+#line 213 "mn-autodetect-mailbox-properties.gob"
- const char *location;
+ const char *uri;
- location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
- return mn_uri_new(location);
+ uri = gtk_entry_get_text(GTK_ENTRY(SELF(properties)->_priv->location_entry));
+ return mn_mailbox_new_from_uri(uri);
}}
-#line 522 "mn-autodetect-mailbox-properties.c"
+#line 428 "mn-autodetect-mailbox-properties.c"
#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-autodetect-mailbox-properties.gob b/src/mn-autodetect-mailbox-properties.gob
@@ -16,98 +16,124 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
#include <eel/eel.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
#include "mn-util.h"
#include "mn-properties-dialog.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-custom-vfs-mailbox.h"
+#endif
+#include "mn-stock.h"
- static char *current_folder_uri = NULL;
+static char *current_folder_uri = NULL;
%}
-class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Properties)
+class MN:Autodetect:Mailbox:Properties from MN:Mailbox:Properties
{
- property STRING label (override)
- get { g_value_set_string(VAL, _("<span style=\"italic\">autodetect</span>")); };
-
- private GtkSizeGroup *size_group unrefwith g_object_unref;
- property OBJECT size_group (override, link);
-
+ private GtkWidget *location_entry;
+ private GtkWidget *chooser;
+
property BOOLEAN complete (override)
get
{
const char *location;
+ gboolean complete = FALSE;
location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
- g_value_set_boolean(VAL, *location != 0);
+ if (*location)
+ {
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_uri(location);
+ if (mailbox)
+ {
+ complete = TRUE;
+ g_object_unref(mailbox);
+ }
+ }
+
+ g_value_set_boolean(VAL, complete);
};
- private GtkWidget *location_entry;
- private GtkWidget *chooser;
+ property STRING default_name (override)
+ get
+ {
+ char *name = NULL;
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_uri(gtk_entry_get_text(GTK_ENTRY(selfp->location_entry)));
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ name = g_strdup(mailbox->runtime_name);
+ g_object_unref(mailbox);
+ }
+
+ g_value_take_string(VAL, name);
+ };
+
+ class_init (class)
+ {
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
- override (G:Object) GObject *
- constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params)
+ p_class->type = "custom-vfs";
+ p_class->stock_id = MN_STOCK_UNKNOWN;
+ p_class->combo_label = _("<span style=\"italic\">autodetect</span>");
+ p_class->section_label = _("Location");
+ }
+
+ init (self)
{
- GObject *object;
- Self *self;
+ GtkWidget *outer_hbox;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *button;
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
-
- gtk_box_set_spacing(GTK_BOX(self), 12);
-
label = gtk_label_new_with_mnemonic(_("_Location:"));
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ outer_hbox = gtk_hbox_new(FALSE, 12);
hbox = gtk_hbox_new(FALSE, 6);
selfp->location_entry = gtk_entry_new();
button = gtk_button_new_with_mnemonic(_("_Browse..."));
gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
- gtk_entry_set_activates_default(GTK_ENTRY(selfp->location_entry), TRUE);
-
- mn_properties_dialog_set_tooltip(selfp->location_entry, _("The URI of the mailbox"));
+ mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->location_entry));
gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(self), hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(outer_hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(outer_hbox), hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(self), outer_hbox, FALSE, FALSE, 0);
- gtk_widget_show(label);
- gtk_widget_show_all(hbox);
+ gtk_widget_show_all(outer_hbox);
- gtk_size_group_add_widget(selfp->size_group, label);
+ gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, label);
+ gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->entry_button_size_group, button);
- g_signal_connect(selfp->location_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
+ g_object_connect(selfp->location_entry,
+ "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+ "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+ NULL);
+
g_signal_connect(button, "clicked", G_CALLBACK(self_browse_clicked_h), self);
-
- return object;
}
private void
- entry_changed_h (Gtk:Editable *editable (check null type),
- gpointer user_data (check null))
- {
- Self *self = user_data;
- g_object_notify(G_OBJECT(self), "complete");
- }
-
- private void
- browse_clicked_h (Gtk:Button *button (check null type),
- gpointer user_data (check null))
+ browse_clicked_h (GtkButton *button, gpointer user_data)
{
Self *self = user_data;
GtkWidget *toplevel;
@@ -148,17 +174,14 @@ class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Prope
}
private void
- current_folder_changed_h (Gtk:File:Chooser *chooser (check null type),
- gpointer user_data)
+ current_folder_changed_h (GtkFileChooser *chooser, gpointer user_data)
{
g_free(current_folder_uri);
current_folder_uri = gtk_file_chooser_get_current_folder_uri(chooser);
}
private void
- chooser_response_h (Gtk:Dialog *dialog (check null type),
- int response,
- gpointer user_data (check null))
+ chooser_response_h (GtkDialog *dialog, int response, gpointer user_data)
{
if (response == 1)
{
@@ -173,20 +196,24 @@ class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Prope
gtk_widget_destroy(GTK_WIDGET(dialog));
}
- interface MN:Mailbox:Properties private gboolean
- set_uri (MN:Mailbox:Properties *self (check null type),
- MN:URI *uri (check null type))
+ override (MN:Mailbox:Properties) void
+ set_mailbox (MNMailboxProperties *properties, MNMailbox *mailbox)
{
- gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->location_entry), uri->text);
- return TRUE;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ g_return_if_fail(MN_IS_CUSTOM_VFS_MAILBOX(mailbox));
+
+ gtk_entry_set_text(GTK_ENTRY(SELF(properties)->_priv->location_entry), MN_CUSTOM_VFS_MAILBOX(mailbox)->uri);
+#else
+ g_return_if_reached();
+#endif
}
- interface MN:Mailbox:Properties private MNURI *
- get_uri (MN:Mailbox:Properties *self (check null type))
+ override (MN:Mailbox:Properties) MNMailbox *
+ get_mailbox (MNMailboxProperties *properties)
{
- const char *location;
+ const char *uri;
- location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
- return mn_uri_new(location);
+ uri = gtk_entry_get_text(GTK_ENTRY(SELF(properties)->_priv->location_entry));
+ return mn_mailbox_new_from_uri(uri);
}
}
diff --git a/src/mn-autodetect-mailbox-properties.h b/src/mn-autodetect-mailbox-properties.h
@@ -1,10 +1,11 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
#ifndef __MN_AUTODETECT_MAILBOX_PROPERTIES_H__
#define __MN_AUTODETECT_MAILBOX_PROPERTIES_H__
@@ -36,7 +37,7 @@ typedef struct _MNAutodetectMailboxPropertiesPrivate MNAutodetectMailboxProperti
typedef struct _MNAutodetectMailboxProperties MNAutodetectMailboxProperties;
#endif
struct _MNAutodetectMailboxProperties {
- GtkHBox __parent__;
+ MNMailboxProperties __parent__;
/*< private >*/
MNAutodetectMailboxPropertiesPrivate *_priv;
};
@@ -46,7 +47,7 @@ struct _MNAutodetectMailboxProperties {
*/
typedef struct _MNAutodetectMailboxPropertiesClass MNAutodetectMailboxPropertiesClass;
struct _MNAutodetectMailboxPropertiesClass {
- GtkHBoxClass __parent__;
+ MNMailboxPropertiesClass __parent__;
};
@@ -59,15 +60,11 @@ GType mn_autodetect_mailbox_properties_get_type (void);
* Argument wrapping macros
*/
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label", __extension__ ({gchar **z = (arg); z;})
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject **z = (arg); z;})
#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name", __extension__ ({gchar **z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label",(gchar **)(arg)
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group",(GObject *)(arg)
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group",(GObject **)(arg)
#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
+#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name",(gchar **)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */
diff --git a/src/mn-automation-private.h b/src/mn-automation-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_AUTOMATION_PRIVATE_H__
#define __MN_AUTOMATION_PRIVATE_H__
diff --git a/src/mn-automation.c b/src/mn-automation.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,14 +23,11 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 25 "mn-automation.gob"
+#line 26 "mn-automation.gob"
-#include "mn-main-window.h"
-#include "mn-summary-popup.h"
-#include "mn-properties-dialog.h"
#include "mn-shell.h"
-#line 34 "mn-automation.c"
+#line 31 "mn-automation.c"
/* self casting macros */
#define SELF(x) MN_AUTOMATION(x)
#define SELF_CONST(x) MN_AUTOMATION_CONST(x)
@@ -48,7 +45,6 @@ typedef MNAutomationClass SelfClass;
static void mn_automation_init (MNAutomation * o) G_GNUC_UNUSED;
static void mn_automation_class_init (MNAutomationClass * c) G_GNUC_UNUSED;
static void mn_automation_update (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
-static void mn_automation_report (PortableServer_Servant servant, CORBA_char ** report, CORBA_Environment * env) G_GNUC_UNUSED;
static void mn_automation_displayMainWindow (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
static void mn_automation_displayProperties (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
static void mn_automation_displayAbout (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
@@ -60,7 +56,6 @@ static BonoboObjectClass *parent_class = NULL;
/* Short form macros */
#define self_update mn_automation_update
-#define self_report mn_automation_report
#define self_displayMainWindow mn_automation_displayMainWindow
#define self_displayProperties mn_automation_displayProperties
#define self_displayAbout mn_automation_displayAbout
@@ -88,7 +83,7 @@ mn_automation_get_type (void)
type = bonobo_type_unique (
BONOBO_OBJECT_TYPE,
- POA_GNOME_MNAutomation__init, NULL,
+ POA_GNOME_MailNotification_Automation__init, NULL,
G_STRUCT_OFFSET (MNAutomationClass, _epv),
&info, "MNAutomation");
}
@@ -126,141 +121,124 @@ mn_automation_class_init (MNAutomationClass * c G_GNUC_UNUSED)
parent_class = g_type_class_ref (BONOBO_TYPE_OBJECT);
-#line 34 "mn-automation.gob"
+#line 32 "mn-automation.gob"
c->_epv.update = self_update;
-#line 41 "mn-automation.gob"
- c->_epv.report = self_report;
-#line 50 "mn-automation.gob"
+#line 39 "mn-automation.gob"
c->_epv.displayMainWindow = self_displayMainWindow;
-#line 57 "mn-automation.gob"
+#line 46 "mn-automation.gob"
c->_epv.displayProperties = self_displayProperties;
-#line 64 "mn-automation.gob"
+#line 53 "mn-automation.gob"
c->_epv.displayAbout = self_displayAbout;
-#line 71 "mn-automation.gob"
+#line 60 "mn-automation.gob"
c->_epv.closePopup = self_closePopup;
-#line 78 "mn-automation.gob"
+#line 67 "mn-automation.gob"
c->_epv.quit = self_quit;
-#line 144 "mn-automation.c"
+#line 137 "mn-automation.c"
}
#undef __GOB_FUNCTION__
-#line 34 "mn-automation.gob"
+#line 32 "mn-automation.gob"
static void
mn_automation_update (PortableServer_Servant servant, CORBA_Environment * env)
-#line 153 "mn-automation.c"
+#line 146 "mn-automation.c"
{
#define __GOB_FUNCTION__ "MN:Automation::update"
{
-#line 36 "mn-automation.gob"
+#line 34 "mn-automation.gob"
g_return_if_fail(mn_shell != NULL);
mn_mailboxes_check(mn_shell->mailboxes);
}}
-#line 162 "mn-automation.c"
-#undef __GOB_FUNCTION__
-
-#line 41 "mn-automation.gob"
-static void
-mn_automation_report (PortableServer_Servant servant, CORBA_char ** report, CORBA_Environment * env)
-#line 168 "mn-automation.c"
-{
-#define __GOB_FUNCTION__ "MN:Automation::report"
-{
-#line 45 "mn-automation.gob"
-
- g_return_if_fail(mn_shell != NULL);
- mn_shell_report(mn_shell, report);
- }}
-#line 177 "mn-automation.c"
+#line 155 "mn-automation.c"
#undef __GOB_FUNCTION__
-#line 50 "mn-automation.gob"
+#line 39 "mn-automation.gob"
static void
mn_automation_displayMainWindow (PortableServer_Servant servant, CORBA_Environment * env)
-#line 183 "mn-automation.c"
+#line 161 "mn-automation.c"
{
#define __GOB_FUNCTION__ "MN:Automation::displayMainWindow"
{
-#line 52 "mn-automation.gob"
+#line 41 "mn-automation.gob"
g_return_if_fail(mn_shell != NULL);
- mn_main_window_display();
+ mn_shell_display_main_window(mn_shell);
}}
-#line 192 "mn-automation.c"
+#line 170 "mn-automation.c"
#undef __GOB_FUNCTION__
-#line 57 "mn-automation.gob"
+#line 46 "mn-automation.gob"
static void
mn_automation_displayProperties (PortableServer_Servant servant, CORBA_Environment * env)
-#line 198 "mn-automation.c"
+#line 176 "mn-automation.c"
{
#define __GOB_FUNCTION__ "MN:Automation::displayProperties"
{
-#line 59 "mn-automation.gob"
+#line 48 "mn-automation.gob"
g_return_if_fail(mn_shell != NULL);
- mn_properties_dialog_display();
+ mn_shell_display_properties_dialog(mn_shell, NULL);
}}
-#line 207 "mn-automation.c"
+#line 185 "mn-automation.c"
#undef __GOB_FUNCTION__
-#line 64 "mn-automation.gob"
+#line 53 "mn-automation.gob"
static void
mn_automation_displayAbout (PortableServer_Servant servant, CORBA_Environment * env)
-#line 213 "mn-automation.c"
+#line 191 "mn-automation.c"
{
#define __GOB_FUNCTION__ "MN:Automation::displayAbout"
{
-#line 66 "mn-automation.gob"
+#line 55 "mn-automation.gob"
g_return_if_fail(mn_shell != NULL);
- mn_shell_display_about_dialog(mn_shell);
+ mn_shell_display_about_dialog(mn_shell, NULL);
}}
-#line 222 "mn-automation.c"
+#line 200 "mn-automation.c"
#undef __GOB_FUNCTION__
-#line 71 "mn-automation.gob"
+#line 60 "mn-automation.gob"
static void
mn_automation_closePopup (PortableServer_Servant servant, CORBA_Environment * env)
-#line 228 "mn-automation.c"
+#line 206 "mn-automation.c"
{
#define __GOB_FUNCTION__ "MN:Automation::closePopup"
{
-#line 73 "mn-automation.gob"
+#line 62 "mn-automation.gob"
g_return_if_fail(mn_shell != NULL);
- mn_summary_popup_destroy();
+ mn_shell_close_mail_summary_popup(mn_shell);
}}
-#line 237 "mn-automation.c"
+#line 215 "mn-automation.c"
#undef __GOB_FUNCTION__
-#line 78 "mn-automation.gob"
+#line 67 "mn-automation.gob"
static void
mn_automation_quit (PortableServer_Servant servant, CORBA_Environment * env)
-#line 243 "mn-automation.c"
+#line 221 "mn-automation.c"
{
#define __GOB_FUNCTION__ "MN:Automation::quit"
{
-#line 80 "mn-automation.gob"
+#line 69 "mn-automation.gob"
g_return_if_fail(mn_shell != NULL);
g_object_unref(mn_shell);
}}
-#line 252 "mn-automation.c"
+#line 230 "mn-automation.c"
#undef __GOB_FUNCTION__
-#line 85 "mn-automation.gob"
+#line 74 "mn-automation.gob"
MNAutomation *
mn_automation_new (void)
-#line 258 "mn-automation.c"
+#line 236 "mn-automation.c"
{
#define __GOB_FUNCTION__ "MN:Automation::new"
{
-#line 87 "mn-automation.gob"
+#line 76 "mn-automation.gob"
return GET_NEW;
}}
-#line 266 "mn-automation.c"
+#line 244 "mn-automation.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-automation.gob b/src/mn-automation.gob
@@ -16,20 +16,18 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <libbonobo.h>
-#include "MNAutomation.h"
+#include "GNOME_MailNotification.h"
%}
+
%{
-#include "mn-main-window.h"
-#include "mn-summary-popup.h"
-#include "mn-properties-dialog.h"
#include "mn-shell.h"
%}
-class MN:Automation from Bonobo:Object (BonoboObject GNOME_MNAutomation)
+class MN:Automation from Bonobo:Object (BonoboObject GNOME_MailNotification_Automation)
{
BonoboObject private void
update (PortableServer_Servant servant, CORBA_Environment *env)
@@ -39,40 +37,31 @@ class MN:Automation from Bonobo:Object (BonoboObject GNOME_MNAutomation)
}
BonoboObject private void
- report (PortableServer_Servant servant,
- CORBA_char **report,
- CORBA_Environment *env)
- {
- g_return_if_fail(mn_shell != NULL);
- mn_shell_report(mn_shell, report);
- }
-
- BonoboObject private void
displayMainWindow (PortableServer_Servant servant, CORBA_Environment *env)
{
g_return_if_fail(mn_shell != NULL);
- mn_main_window_display();
+ mn_shell_display_main_window(mn_shell);
}
BonoboObject private void
displayProperties (PortableServer_Servant servant, CORBA_Environment *env)
{
g_return_if_fail(mn_shell != NULL);
- mn_properties_dialog_display();
+ mn_shell_display_properties_dialog(mn_shell, NULL);
}
BonoboObject private void
displayAbout (PortableServer_Servant servant, CORBA_Environment *env)
{
g_return_if_fail(mn_shell != NULL);
- mn_shell_display_about_dialog(mn_shell);
+ mn_shell_display_about_dialog(mn_shell, NULL);
}
BonoboObject private void
closePopup (PortableServer_Servant servant, CORBA_Environment *env)
{
g_return_if_fail(mn_shell != NULL);
- mn_summary_popup_destroy();
+ mn_shell_close_mail_summary_popup(mn_shell);
}
BonoboObject private void
diff --git a/src/mn-automation.h b/src/mn-automation.h
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
#include <libbonobo.h>
-#include "MNAutomation.h"
+#include "GNOME_MailNotification.h"
#ifndef __MN_AUTOMATION_H__
#define __MN_AUTOMATION_H__
@@ -44,7 +44,7 @@ typedef struct _MNAutomationClass MNAutomationClass;
struct _MNAutomationClass {
BonoboObjectClass __parent__;
/* Bonobo object epv */
- POA_GNOME_MNAutomation__epv _epv;
+ POA_GNOME_MailNotification_Automation__epv _epv;
};
diff --git a/src/mn-blinking-image-private.h b/src/mn-blinking-image-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_BLINKING_IMAGE_PRIVATE_H__
#define __MN_BLINKING_IMAGE_PRIVATE_H__
@@ -10,7 +10,7 @@ extern "C" {
#endif /* __cplusplus */
struct _MNBlinkingImagePrivate {
-#line 31 "mn-blinking-image.gob"
+#line 32 "mn-blinking-image.gob"
gboolean blinking;
#line 51 "mn-blinking-image.gob"
unsigned int timeout_id;
diff --git a/src/mn-blinking-image.c b/src/mn-blinking-image.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,7 +23,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-blinking-image.gob"
+#line 25 "mn-blinking-image.gob"
#include "config.h"
#include <glib/gi18n.h>
@@ -127,7 +127,7 @@ static void
mn_blinking_image_init (MNBlinkingImage * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:Blinking:Image::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNBlinkingImagePrivate);
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_BLINKING_IMAGE,MNBlinkingImagePrivate);
#line 47 "mn-blinking-image.gob"
o->_priv->is_on = TRUE;
#line 134 "mn-blinking-image.c"
@@ -154,7 +154,7 @@ mn_blinking_image_class_init (MNBlinkingImageClass * c G_GNUC_UNUSED)
param_spec = g_param_spec_boolean
("blinking" /* name */,
NULL /* nick */,
- _("Whether the image is blinking or not") /* blurb */,
+ NULL /* blurb */,
FALSE /* default_value */,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (g_object_class,
@@ -247,7 +247,7 @@ mn_blinking_image_get_blinking (MNBlinkingImage * self)
{
#define __GOB_FUNCTION__ "MN:Blinking:Image::get_blinking"
{
-#line 32 "mn-blinking-image.gob"
+#line 33 "mn-blinking-image.gob"
gboolean val; g_object_get (G_OBJECT (self), "blinking", &val, NULL); return val;
}}
#line 254 "mn-blinking-image.c"
@@ -260,7 +260,7 @@ mn_blinking_image_set_blinking (MNBlinkingImage * self, gboolean val)
{
#define __GOB_FUNCTION__ "MN:Blinking:Image::set_blinking"
{
-#line 32 "mn-blinking-image.gob"
+#line 33 "mn-blinking-image.gob"
g_object_set (G_OBJECT (self), "blinking", val, NULL);
}}
#line 267 "mn-blinking-image.c"
@@ -275,11 +275,6 @@ ___3_mn_blinking_image_finalize (GObject * object G_GNUC_UNUSED)
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Blinking:Image::finalize"
-#line 57 "mn-blinking-image.gob"
- g_return_if_fail (object != NULL);
-#line 57 "mn-blinking-image.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 283 "mn-blinking-image.c"
{
#line 59 "mn-blinking-image.gob"
@@ -290,21 +285,21 @@ ___3_mn_blinking_image_finalize (GObject * object G_GNUC_UNUSED)
PARENT_HANDLER(object);
}}
-#line 294 "mn-blinking-image.c"
+#line 289 "mn-blinking-image.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
#line 68 "mn-blinking-image.gob"
static void
mn_blinking_image_update (MNBlinkingImage * self, gboolean is_on)
-#line 301 "mn-blinking-image.c"
+#line 296 "mn-blinking-image.c"
{
#define __GOB_FUNCTION__ "MN:Blinking:Image::update"
#line 68 "mn-blinking-image.gob"
g_return_if_fail (self != NULL);
#line 68 "mn-blinking-image.gob"
g_return_if_fail (MN_IS_BLINKING_IMAGE (self));
-#line 308 "mn-blinking-image.c"
+#line 303 "mn-blinking-image.c"
{
#line 70 "mn-blinking-image.gob"
@@ -319,7 +314,7 @@ mn_blinking_image_update (MNBlinkingImage * self, gboolean is_on)
selfp->stock_id,
selfp->icon_size,
NULL);
- g_return_if_fail(pixbuf != NULL);
+ g_assert(pixbuf != NULL);
width = gdk_pixbuf_get_width(pixbuf);
height = gdk_pixbuf_get_height(pixbuf);
@@ -334,18 +329,15 @@ mn_blinking_image_update (MNBlinkingImage * self, gboolean is_on)
selfp->is_on = is_on;
}}
-#line 338 "mn-blinking-image.c"
+#line 333 "mn-blinking-image.c"
#undef __GOB_FUNCTION__
#line 98 "mn-blinking-image.gob"
static gboolean
mn_blinking_image_timeout_cb (gpointer data)
-#line 344 "mn-blinking-image.c"
+#line 339 "mn-blinking-image.c"
{
#define __GOB_FUNCTION__ "MN:Blinking:Image::timeout_cb"
-#line 98 "mn-blinking-image.gob"
- g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 349 "mn-blinking-image.c"
{
#line 100 "mn-blinking-image.gob"
@@ -357,18 +349,18 @@ mn_blinking_image_timeout_cb (gpointer data)
return TRUE;
}}
-#line 361 "mn-blinking-image.c"
+#line 353 "mn-blinking-image.c"
#undef __GOB_FUNCTION__
#line 110 "mn-blinking-image.gob"
GtkWidget *
mn_blinking_image_new_from_stock (const char * stock_id, GtkIconSize icon_size)
-#line 367 "mn-blinking-image.c"
+#line 359 "mn-blinking-image.c"
{
#define __GOB_FUNCTION__ "MN:Blinking:Image::new_from_stock"
#line 110 "mn-blinking-image.gob"
g_return_val_if_fail (stock_id != NULL, (GtkWidget * )0);
-#line 372 "mn-blinking-image.c"
+#line 364 "mn-blinking-image.c"
{
#line 113 "mn-blinking-image.gob"
@@ -382,5 +374,5 @@ mn_blinking_image_new_from_stock (const char * stock_id, GtkIconSize icon_size)
return GTK_WIDGET(self);
}}
-#line 386 "mn-blinking-image.c"
+#line 378 "mn-blinking-image.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-blinking-image.gob b/src/mn-blinking-image.gob
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -16,11 +16,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
@@ -29,8 +30,7 @@ requires 2.0.10
class MN:Blinking:Image from Gtk:Image
{
private gboolean blinking;
- property BOOLEAN blinking (blurb = _("Whether the image is blinking or not"),
- export)
+ property BOOLEAN blinking (export)
set
{
if (selfp->blinking)
@@ -55,7 +55,7 @@ class MN:Blinking:Image from Gtk:Image
private GtkIconSize icon_size;
override (G:Object) void
- finalize (G:Object *object (check null type))
+ finalize (GObject *object)
{
Self *self = SELF(object);
@@ -79,7 +79,7 @@ class MN:Blinking:Image from Gtk:Image
selfp->stock_id,
selfp->icon_size,
NULL);
- g_return_if_fail(pixbuf != NULL);
+ g_assert(pixbuf != NULL);
width = gdk_pixbuf_get_width(pixbuf);
height = gdk_pixbuf_get_height(pixbuf);
@@ -96,7 +96,7 @@ class MN:Blinking:Image from Gtk:Image
}
private gboolean
- timeout_cb (gpointer data (check null))
+ timeout_cb (gpointer data)
{
Self *self = data;
diff --git a/src/mn-blinking-image.h b/src/mn-blinking-image.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-client-session.c b/src/mn-client-session.c
@@ -1,4 +1,20 @@
/*
+ * mn-client-session.c - a state machine for handling POP3 and IMAP
+ * client sessions.
+ *
+ * The MNClientSession interface provides an abstract POP3 and IMAP
+ * protocol client. The module handles the low-level client
+ * functionality, such as connecting to a server, setting up SSL/TLS,
+ * reading and writing data, and conducting a SASL authentication
+ * exchange.
+ *
+ * MNClientSession contains no code which is specific to either POP3
+ * or IMAP. It is the responsability of the caller to manage the POP3
+ * or IMAP session, by parsing responses and switching to the
+ * appropriate state depending on the context.
+ *
+ *
+ *
* Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* This program is free software; you can redistribute it and/or modify
@@ -44,10 +60,11 @@
#include "mn-util.h"
#include "mn-client-session.h"
#include "mn-conf.h"
+#include "mn-stock.h"
/*** cpp *********************************************************************/
-#define READ_BUFSIZE 2048
+#define READ_BUFSIZE 2048
/*** types *******************************************************************/
@@ -59,7 +76,7 @@ struct _MNClientSession
int port;
int s;
MNClientSessionState *state;
- char *error;
+ GError *error;
MNClientSessionPrivate *private;
GByteArray *input_buffer;
unsigned int bytes_to_remove;
@@ -69,13 +86,8 @@ struct _MNClientSession
#endif
#ifdef WITH_SASL
- gboolean sasl_available;
sasl_conn_t *sasl_conn;
- const char *sasl_initial_clientout;
- unsigned int sasl_initial_clientoutlen;
- const char *sasl_clientout;
- unsigned int sasl_clientoutlen;
- int sasl_ssf;
+ sasl_ssf_t sasl_ssf;
unsigned int sasl_maxoutbuf;
#endif /* WITH_SASL */
};
@@ -92,6 +104,10 @@ static sasl_callback_t sasl_callbacks[] = {
};
#endif /* WITH_SASL */
+#ifndef HAVE_REENTRANT_RESOLVER
+G_LOCK_DEFINE_STATIC(resolver);
+#endif
+
/*** functions ***************************************************************/
static struct addrinfo *mn_client_session_resolve (MNClientSession *session);
@@ -120,6 +136,24 @@ static char *mn_client_session_sasl_get_ip_port (const struct sockaddr *addr);
/*** implementation **********************************************************/
+/**
+ * mn_client_session_run:
+ * @states: a %MN_CLIENT_SESSION_STATES_END-terminated array of
+ * %MNClientSessionState structures. One of the states must
+ * have the %MN_CLIENT_SESSION_INITIAL_STATE id.
+ * @callbacks: a pointer to a %MNClientSessionCallbacks structure
+ * @use_ssl: whether to establish a SSL/TLS connection or not
+ * @hostname: the hostname, IPv4 address or IPv6 address to connect to
+ * @port: the port to connect to
+ * @private: an opaque pointer which will be passed to callbacks, or %NULL
+ * @err: a location to report errors, or %NULL
+ *
+ * Runs the client session. After connecting to the server, the
+ * %MN_CLIENT_SESSION_INITIAL_STATE state is entered.
+ *
+ * Return value: %TRUE on success, or %FALSE on failure (in such case
+ * @err is set)
+ **/
gboolean
mn_client_session_run (MNClientSessionState *states,
MNClientSessionCallbacks *callbacks,
@@ -138,7 +172,6 @@ mn_client_session_run (MNClientSessionState *states,
g_return_val_if_fail(states != NULL, FALSE);
g_return_val_if_fail(callbacks != NULL, FALSE);
g_return_val_if_fail(callbacks->response_new != NULL, FALSE);
- g_return_val_if_fail(callbacks->response_free != NULL, FALSE);
g_return_val_if_fail(hostname != NULL, FALSE);
memset(&session, 0, sizeof(session));
@@ -182,17 +215,12 @@ mn_client_session_run (MNClientSessionState *states,
SSL_free(session.ssl);
#endif /* WITH_SSL */
#ifdef WITH_SASL
- if (session.sasl_available)
- {
- if (session.sasl_conn)
- sasl_dispose(&session.sasl_conn);
- mn_sasl_unuse();
- }
+ if (session.sasl_conn)
+ sasl_dispose(&session.sasl_conn);
#endif /* WITH_SASL */
if (session.error)
{
- g_set_error(err, 0, 0, "%s", session.error);
- g_free(session.error);
+ g_propagate_error(err, session.error);
return FALSE;
}
else
@@ -220,14 +248,20 @@ mn_client_session_resolve (MNClientSession *session)
mn_client_session_notice(session, _("resolving %s"), session->hostname);
servname = g_strdup_printf("%i", session->port);
+#ifndef HAVE_REENTRANT_RESOLVER
+ G_LOCK(resolver);
+#endif
status = getaddrinfo(session->hostname, servname, &hints, &addrinfo);
+#ifndef HAVE_REENTRANT_RESOLVER
+ G_UNLOCK(resolver);
+#endif
g_free(servname);
if (status == 0)
return addrinfo;
else
{
- mn_client_session_error(session, _("unable to resolve %s: %s"), session->hostname, gai_strerror(status));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to resolve %s: %s"), session->hostname, gai_strerror(status));
return NULL;
}
}
@@ -247,6 +281,9 @@ mn_client_session_connect (MNClientSession *session, struct addrinfo *addrinfo)
int s;
char ip[NI_MAXHOST];
+#ifndef HAVE_REENTRANT_RESOLVER
+ G_LOCK(resolver);
+#endif
status = getnameinfo(a->ai_addr,
a->ai_addrlen,
ip,
@@ -254,6 +291,10 @@ mn_client_session_connect (MNClientSession *session, struct addrinfo *addrinfo)
NULL,
0,
NI_NUMERICHOST);
+#ifndef HAVE_REENTRANT_RESOLVER
+ G_UNLOCK(resolver);
+#endif
+
g_return_val_if_fail(status == 0, -1);
if (a->ai_family == AF_INET)
@@ -289,11 +330,21 @@ mn_client_session_connect (MNClientSession *session, struct addrinfo *addrinfo)
}
/* if reached, we couldn't find a working address */
- mn_client_session_error(session, _("unable to connect to %s"), session->hostname);
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to connect to %s"), session->hostname);
return -1;
}
#ifdef WITH_SSL
+/**
+ * mn_client_session_enable_ssl:
+ * @session: a #MNClientSession
+ *
+ * Enables in-band SSL/TLS. Must not be used if the @use_ssl
+ * mn_client_session_run() argument was %TRUE. If an error occurs,
+ * mn_client_session_error() will be called on @session.
+ *
+ * Return value: %TRUE on success
+ **/
gboolean
mn_client_session_enable_ssl (MNClientSession *session)
{
@@ -301,11 +352,12 @@ mn_client_session_enable_ssl (MNClientSession *session)
GError *err = NULL;
g_return_val_if_fail(session != NULL, FALSE);
+ g_return_val_if_fail(session->ssl == NULL, FALSE);
ctx = mn_ssl_init(&err);
if (! ctx)
{
- mn_client_session_error(session, _("unable to initialize the OpenSSL library: %s"), err->message);
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to initialize the OpenSSL library: %s"), err->message);
g_error_free(err);
return FALSE;
}
@@ -313,25 +365,25 @@ mn_client_session_enable_ssl (MNClientSession *session)
session->ssl = SSL_new(ctx);
if (! session->ssl)
{
- mn_client_session_error(session, _("unable to create a SSL/TLS object: %s"), mn_ssl_get_error());
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to create a SSL/TLS object: %s"), mn_ssl_get_error());
return FALSE;
}
if (! SSL_set_fd(session->ssl, session->s))
{
- mn_client_session_error(session, _("unable to set the SSL/TLS file descriptor: %s"), mn_ssl_get_error());
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to set the SSL/TLS file descriptor: %s"), mn_ssl_get_error());
return FALSE;
}
if (SSL_connect(session->ssl) != 1)
{
- mn_client_session_error(session, _("unable to perform the SSL/TLS handshake: %s"), mn_ssl_get_error());
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to perform the SSL/TLS handshake: %s"), mn_ssl_get_error());
return FALSE;
}
if (! mn_client_session_ssl_verify(session))
{
- mn_client_session_error(session, _("untrusted server"));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("untrusted server"));
return FALSE;
}
@@ -450,16 +502,13 @@ mn_client_session_run_untrusted_dialog (const char *hostname,
GDK_THREADS_ENTER();
- dialog = eel_alert_dialog_new(NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_NONE,
- _("Connect to untrusted server?"),
- secondary,
- NULL);
+ dialog = mn_alert_dialog_new(NULL,
+ GTK_MESSAGE_WARNING,
+ _("Connect to untrusted server?"),
+ secondary);
gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button(GTK_DIALOG(dialog), _("Co_nnect"), GTK_RESPONSE_OK);
+ gtk_dialog_add_button(GTK_DIALOG(dialog), MN_STOCK_CONNECT, GTK_RESPONSE_OK);
status = mn_dialog_run_nonmodal(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK;
gtk_widget_destroy(dialog);
@@ -515,11 +564,18 @@ mn_client_session_handle_input (MNClientSession *session, const char *input)
break;
case MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT:
- mn_client_session_error(session, _("response \"%s\" is not valid in current context"), input);
- cont = FALSE;
+ {
+ char *escaped;
+
+ escaped = mn_utf8_escape(input);
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("response \"%s\" is not valid in current context"), escaped);
+ g_free(escaped);
+
+ cont = FALSE;
+ }
break;
- case MN_CLIENT_SESSION_RESULT_END:
+ case MN_CLIENT_SESSION_RESULT_DISCONNECT:
cont = FALSE;
break;
@@ -527,21 +583,22 @@ mn_client_session_handle_input (MNClientSession *session, const char *input)
g_return_val_if_reached(FALSE);
default:
- if (result > 0) /* state */
- result = mn_client_session_enter_state(session, result);
- else /* custom result */
- {
- g_return_val_if_fail(session->callbacks->custom_handler != NULL, FALSE);
- result = session->callbacks->custom_handler(session, response, result, session->private);
- }
+ g_return_val_if_fail(result > 0, FALSE);
+ result = mn_client_session_enter_state(session, result);
goto loop;
}
- session->callbacks->response_free(session, response, session->private);
+ if (session->callbacks->response_free)
+ session->callbacks->response_free(session, response, session->private);
}
else
{
- mn_client_session_error(session, _("unable to parse response \"%s\""), input);
+ char *escaped;
+
+ escaped = mn_utf8_escape(input);
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to parse response \"%s\""), escaped);
+ g_free(escaped);
+
cont = FALSE;
}
@@ -589,14 +646,14 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
{
#ifdef WITH_SSL
if (session->ssl)
- mn_client_session_error(session, _("unable to read from server: %s"), mn_ssl_get_error());
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to read from server: %s"), mn_ssl_get_error());
else
#endif /* WITH_SSL */
{
if (bytes_read == 0)
- mn_client_session_error(session, _("unable to read from server: EOF"));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to read from server: EOF"));
else
- mn_client_session_error(session, _("unable to read from server: %s"), g_strerror(errno));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to read from server: %s"), g_strerror(errno));
}
return FALSE;
}
@@ -606,7 +663,7 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
{
if (sasl_decode(session->sasl_conn, buf, bytes_read, &in, &inlen) != SASL_OK)
{
- mn_client_session_error(session, _("unable to decode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to decode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
return FALSE;
}
}
@@ -631,9 +688,8 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
* mn_client_session_error() will be called on @session.
*
* Return value: a pointer to a buffer containing @nbytes on success,
- * %NULL on failure. The pointer will be valid until the
- * next call to mn_client_session_read() or
- * mn_client_session_read_line().
+ * %NULL on failure. The pointer will be valid until the next call to
+ * mn_client_session_read() or mn_client_session_read_line().
**/
gconstpointer
mn_client_session_read (MNClientSession *session, unsigned int nbytes)
@@ -668,8 +724,8 @@ mn_client_session_read (MNClientSession *session, unsigned int nbytes)
* mn_client_session_error() will be called on @session.
*
* Return value: the line read on success, %NULL on failure. The
- * pointer will be valid until the next call to
- * mn_client_session_read() or mn_client_session_read_line().
+ * pointer will be valid until the next call to
+ * mn_client_session_read() or mn_client_session_read_line().
**/
const char *
mn_client_session_read_line (MNClientSession *session)
@@ -700,6 +756,18 @@ mn_client_session_read_line (MNClientSession *session)
return line;
}
+/**
+ * mn_client_session_write:
+ * @session: a #MNClientSession object to write to
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * Writes a formatted crlf-terminated line to @session. If an error
+ * occurs, mn_client_session_error() will be called on @session.
+ *
+ * Return value: %MN_CLIENT_SESSION_RESULT_CONTINUE on success, or the
+ * return value of mn_client_session_error() on failure
+ **/
int
mn_client_session_write (MNClientSession *session,
const char *format,
@@ -740,7 +808,7 @@ mn_client_session_write (MNClientSession *session,
chunk_len = MIN(len, session->sasl_maxoutbuf);
if (sasl_encode(session->sasl_conn, full + start, chunk_len, &out, &outlen) != SASL_OK)
{
- result = mn_client_session_error(session, _("unable to encode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
+ result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
goto end;
}
@@ -771,14 +839,14 @@ mn_client_session_write (MNClientSession *session,
{
#ifdef WITH_SSL
if (session->ssl)
- result = mn_client_session_error(session, _("unable to write to server: %s"), mn_ssl_get_error());
+ result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to write to server: %s"), mn_ssl_get_error());
else
#endif /* WITH_SSL */
{
if (bytes_written == 0)
- result = mn_client_session_error(session, _("unable to write to server: EOF"));
+ result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to write to server: EOF"));
else
- result = mn_client_session_error(session, _("unable to write to server: %s"), g_strerror(errno));
+ result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to write to server: %s"), g_strerror(errno));
}
}
@@ -797,18 +865,17 @@ mn_client_session_write_base64 (MNClientSession *session,
const char *buf,
unsigned int len)
{
- unsigned int buf64len = len * 2; /* Base64 is 33% larger than the data it encodes */
- char buf64[buf64len];
+ char buf64[len * 2]; /* Base64 is 33% larger than the data it encodes */
unsigned int outlen;
- char *str;
int result;
+ char *str;
g_return_val_if_fail(session != NULL, 0);
g_return_val_if_fail(buf != NULL, 0);
- result = sasl_encode64(buf, len, buf64, buf64len, &outlen);
+ result = sasl_encode64(buf, len, buf64, sizeof(buf64), &outlen);
if (result != SASL_OK)
- return mn_client_session_error(session, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
str = g_strndup(buf64, outlen);
result = mn_client_session_write(session, "%s", str);
@@ -823,11 +890,43 @@ mn_client_session_sasl_fill_interact (MNClientSession *session,
const char *unknown_warning)
{
sasl_interact_t *i;
+ gboolean need_username = FALSE;
+ gboolean need_password = FALSE;
+ const char *username = NULL;
+ const char *password = NULL;
g_return_val_if_fail(session != NULL, FALSE);
g_return_val_if_fail(interact != NULL, FALSE);
for (i = interact; i->id; i++)
+ switch (i->id)
+ {
+ case SASL_CB_USER:
+ case SASL_CB_AUTHNAME:
+ need_username = TRUE;
+ break;
+
+ case SASL_CB_PASS:
+ need_password = TRUE;
+ break;
+
+ default:
+ mn_client_session_warning(session, unknown_warning);
+ return FALSE;
+ };
+
+ if (need_username || need_password)
+ {
+ session->callbacks->sasl_get_credentials(session,
+ session->private,
+ need_username ? &username : NULL,
+ need_password ? &password : NULL);
+
+ if ((need_username && ! username) || (need_password && ! password))
+ return FALSE;
+ }
+
+ for (i = interact; i->id; i++)
{
const char *data;
@@ -835,25 +934,21 @@ mn_client_session_sasl_fill_interact (MNClientSession *session,
{
case SASL_CB_USER:
case SASL_CB_AUTHNAME:
- data = session->callbacks->sasl_get_username(session, session->private);
+ data = username;
break;
case SASL_CB_PASS:
- data = session->callbacks->sasl_get_password(session, session->private);
+ data = password;
break;
default:
- data = NULL;
- mn_client_session_warning(session, unknown_warning);
+ g_return_val_if_reached(FALSE);
};
- if (data)
- {
- i->result = data;
- i->len = strlen(data);
- }
- else
- return FALSE;
+ g_return_val_if_fail(data != NULL, FALSE);
+
+ i->result = data;
+ i->len = strlen(data);
}
return TRUE;
@@ -895,13 +990,52 @@ mn_client_session_sasl_get_ip_port (const struct sockaddr *addr)
return g_strdup_printf("%s;%i", buf, port);
}
+/**
+ * mn_client_session_sasl_authentication_start:
+ * @session: a #MNClientSession
+ * @service: the SASL service identifier (normally "pop" or "imap")
+ * @mechanisms: the list of available mechanisms, or %NULL
+ * @forced_mechanism: a mechanism to force usage of, or %NULL
+ * @used_mechanism: a location to store the name of the mechanism that was
+ * selected by the SASL library
+ * @initial_clientout: a location to store the initial client response,
+ * or %NULL
+ * @initial_clientoutlen: a location to store the length of the initial
+ * client response, or %NULL
+ *
+ * Starts a SASL authentication exchange. @initial_clientout and
+ * @initial_clientoutlen must be both set or both %NULL.
+ *
+ * If @forced_mechanism is provided, authentication is attempted using
+ * that mechanism only. Otherwise, @mechanisms must point to a
+ * non-empty list of available mechanism names, and the SASL library
+ * will select an appropriate mechanism automatically.
+ *
+ * On success, the selected mechanism is stored at @used_mechanism.
+ *
+ * On failure, if a mechanism could be selected, it is stored at
+ * @used_mechanism (the caller might want to remove that mechanism
+ * from the list and try again). Otherwise, %NULL is stored at
+ * @used_mechanism.
+ *
+ * On success, if @initial_clientout and @initial_clientoutlen were
+ * set, they point to the initial client response (which is not
+ * necessarily NUL-terminated) and its length, respectively. If there
+ * is no initial client response, they point to %NULL and 0,
+ * respectively.
+ *
+ * The function may be called multiple times.
+ *
+ * Return value: %TRUE on success
+ **/
gboolean
mn_client_session_sasl_authentication_start (MNClientSession *session,
const char *service,
GSList *mechanisms,
const char *forced_mechanism,
const char **used_mechanism,
- gboolean initial_response)
+ const char **initial_clientout,
+ unsigned int *initial_clientoutlen)
{
GError *err = NULL;
int result;
@@ -910,20 +1044,23 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
char *local_ip_port = NULL;
char *remote_ip_port = NULL;
- g_return_val_if_fail(session != NULL, 0);
- g_return_val_if_fail(session->callbacks->sasl_get_username != NULL, FALSE);
- g_return_val_if_fail(session->callbacks->sasl_get_password != NULL, FALSE);
- g_return_val_if_fail(service != NULL, 0);
- g_return_val_if_fail(mechanisms != NULL || forced_mechanism != NULL, 0);
+ g_return_val_if_fail(session != NULL, FALSE);
+ g_return_val_if_fail(session->callbacks->sasl_get_credentials != NULL, FALSE);
+ g_return_val_if_fail(service != NULL, FALSE);
+ g_return_val_if_fail(mechanisms != NULL || forced_mechanism != NULL, FALSE);
+ g_return_val_if_fail((initial_clientout == NULL && initial_clientoutlen == NULL)
+ || (initial_clientout != NULL && initial_clientoutlen != NULL), FALSE);
- session->sasl_available = mn_sasl_use(&err);
- if (! session->sasl_available)
+ if (! mn_sasl_init(&err))
{
mn_client_session_warning(session, _("unable to initialize the SASL library: %s"), err->message);
g_error_free(err);
return FALSE;
}
+ /* make sure we do not leak the previous sasl_conn if any */
+ mn_client_session_sasl_dispose(session);
+
namelen = sizeof(name);
if (getsockname(session->s, &name, &namelen) >= 0)
local_ip_port = mn_client_session_sasl_get_ip_port(&name);
@@ -986,8 +1123,8 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
result = sasl_client_start(session->sasl_conn,
mechanisms_string->str,
&interact,
- initial_response ? &session->sasl_initial_clientout : NULL,
- initial_response ? &session->sasl_initial_clientoutlen : NULL,
+ initial_clientout,
+ initial_clientoutlen,
used_mechanism);
if (result == SASL_INTERACT)
@@ -1020,91 +1157,95 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
return FALSE;
}
+/**
+ * mn_client_session_sasl_authentication_step:
+ * @session: a #MNClientSession
+ * @input: the last server challenge received
+ *
+ * Continues a SASL authentication exchange successfully initiated
+ * with mn_client_session_sasl_authentication_start().
+ *
+ * Return value: the state to switch to
+ **/
int
mn_client_session_sasl_authentication_step (MNClientSession *session,
const char *input)
{
g_return_val_if_fail(session != NULL, 0);
+ g_return_val_if_fail(session->sasl_conn != NULL, 0);
g_return_val_if_fail(input != NULL, 0);
- if (*input)
- {
- if (! session->sasl_initial_clientout)
- {
- unsigned int inlen = strlen(input);
- char buf[inlen];
- unsigned int outlen;
- int result;
+ {
+ unsigned int inlen = strlen(input);
+ char buf[inlen];
+ unsigned int outlen;
+ int result;
- result = sasl_decode64(input, inlen, buf, inlen, &outlen);
- if (result == SASL_OK)
- {
- sasl_interact_t *interact = NULL;
+ result = sasl_decode64(input, inlen, buf, inlen, &outlen);
+ if (result == SASL_OK)
+ {
+ sasl_interact_t *interact = NULL;
+ const char *clientout;
+ unsigned int clientoutlen;
- do
- {
- result = sasl_client_step(session->sasl_conn,
- buf,
- outlen,
- &interact,
- &session->sasl_clientout,
- &session->sasl_clientoutlen);
+ do
+ {
+ result = sasl_client_step(session->sasl_conn,
+ buf,
+ outlen,
+ &interact,
+ &clientout,
+ &clientoutlen);
- if (result == SASL_INTERACT)
- {
- if (! mn_client_session_sasl_fill_interact(session, interact, _("SASL asked for something we did not know, aborting SASL authentication")))
- break;
- }
- }
- while (result == SASL_INTERACT);
+ if (result == SASL_INTERACT)
+ {
+ if (! mn_client_session_sasl_fill_interact(session, interact, _("SASL asked for something we did not know, aborting SASL authentication")))
+ break;
+ }
+ }
+ while (result == SASL_INTERACT);
- switch (result)
- {
- case SASL_OK:
- case SASL_CONTINUE:
- return mn_client_session_write_base64(session, session->sasl_clientout, session->sasl_clientoutlen);
-
- case SASL_INTERACT:
- /* could not fill interaction, abort */
- return mn_client_session_write(session, "*");
-
- default:
- mn_client_session_warning(session, _("%s, aborting SASL authentication"), sasl_errdetail(session->sasl_conn));
- return mn_client_session_write(session, "*");
- }
- }
- else /* compliance error */
- return mn_client_session_error(session, _("unable to decode Base64 input from server: %s"), sasl_errstring(result, NULL, NULL));
- }
- else
- return mn_client_session_error(session, _("the server sent a SASL challenge, but there was a pending initial SASL client response"));
- }
- else
- {
- if (session->sasl_initial_clientout)
- {
- int result;
-
- result = mn_client_session_write_base64(session, session->sasl_initial_clientout, session->sasl_initial_clientoutlen);
- session->sasl_initial_clientout = NULL;
- session->sasl_initial_clientoutlen = 0;
- return result;
- }
- else
- return mn_client_session_error(session, _("the server did not send a SASL challenge, but there was no pending initial SASL client response"));
- }
+ switch (result)
+ {
+ case SASL_OK:
+ case SASL_CONTINUE:
+ return mn_client_session_write_base64(session, clientout, clientoutlen);
+
+ case SASL_INTERACT:
+ /* could not fill interaction, abort */
+ return mn_client_session_write(session, "*");
+
+ default:
+ mn_client_session_warning(session, _("%s, aborting SASL authentication"), sasl_errdetail(session->sasl_conn));
+ return mn_client_session_write(session, "*");
+ }
+ }
+ else /* compliance error */
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to decode Base64 input from server: %s"), sasl_errstring(result, NULL, NULL));
+ }
}
+/**
+ * mn_client_session_sasl_authentication_done:
+ * @session: a #MNClientSession
+ *
+ * Completes a successful SASL authentication exchange. Must only be
+ * used if the server has terminated the exchange with a positive
+ * response.
+ *
+ * Return value: %TRUE on success
+ **/
gboolean
mn_client_session_sasl_authentication_done (MNClientSession *session)
{
gconstpointer ptr;
g_return_val_if_fail(session != NULL, FALSE);
+ g_return_val_if_fail(session->sasl_conn != NULL, 0);
if (sasl_getprop(session->sasl_conn, SASL_SSF, &ptr) == SASL_OK)
{
- const int *ssf = ptr;
+ const sasl_ssf_t *ssf = ptr;
if (*ssf)
{
@@ -1121,7 +1262,7 @@ mn_client_session_sasl_authentication_done (MNClientSession *session)
else
{
/* a security layer is active but we can't retrieve maxoutbuf -> fatal */
- mn_client_session_error(session, _("unable to get SASL_MAXOUTBUF property: %s"), sasl_errdetail(session->sasl_conn));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to get SASL_MAXOUTBUF property: %s"), sasl_errdetail(session->sasl_conn));
return FALSE;
}
}
@@ -1132,15 +1273,61 @@ mn_client_session_sasl_authentication_done (MNClientSession *session)
return TRUE;
}
-int
+/**
+ * mn_client_session_sasl_dispose:
+ * @session: a #MNClientSession
+ *
+ * Destroys the SASL connection of @session, or, if no SASL connection
+ * is active, does nothing.
+ *
+ * Since the SASL connection is always destroyed before
+ * mn_client_session_run() returns, omitting to call this function
+ * will not leak the object away. However, in some situations (eg. if
+ * SASL authentication fails but the session continues nevertheless)
+ * it might be desirable to get rid of the object, in order to free
+ * memory for the rest of the session duration.
+ **/
+void
+mn_client_session_sasl_dispose (MNClientSession *session)
+{
+ g_return_if_fail(session != NULL);
+
+ if (session->sasl_conn)
+ {
+ sasl_dispose(&session->sasl_conn);
+ session->sasl_conn = NULL;
+ }
+}
+
+/**
+ * mn_client_session_sasl_get_ssf:
+ * @session: a #MNClientSession
+ *
+ * Gets the SASL security strength factor. Must not be used unless
+ * mn_client_session_sasl_authentication_done() has returned %TRUE.
+ *
+ * Return value: 0 if no security layer is active, or an approximation
+ * of the encryption key length otherwise
+ **/
+sasl_ssf_t
mn_client_session_sasl_get_ssf (MNClientSession *session)
{
- g_return_val_if_fail(session != NULL, FALSE);
+ g_return_val_if_fail(session != NULL, 0);
+ g_return_val_if_fail(session->sasl_conn != NULL, 0);
return session->sasl_ssf;
}
#endif /* WITH_SASL */
+/**
+ * mn_client_session_notice:
+ * @session: a #MNClientSession
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * If the notice callback of @session is defined, calls it with the
+ * given message as argument. Otherwise, does nothing.
+ **/
void
mn_client_session_notice (MNClientSession *session,
const char *format,
@@ -1152,17 +1339,26 @@ mn_client_session_notice (MNClientSession *session,
if (session->callbacks->notice)
{
va_list args;
- char *str;
+ char *message;
va_start(args, format);
- str = g_strdup_vprintf(format, args);
+ message = g_strdup_vprintf(format, args);
va_end(args);
- session->callbacks->notice(session, str, session->private);
- g_free(str);
+ session->callbacks->notice(session, message, session->private);
+ g_free(message);
}
}
+/**
+ * mn_client_session_warning:
+ * @session: a #MNClientSession
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * If the warning callback of @session is defined, calls it with the
+ * given message as argument. Otherwise, does nothing.
+ **/
void
mn_client_session_warning (MNClientSession *session,
const char *format,
@@ -1174,19 +1370,32 @@ mn_client_session_warning (MNClientSession *session,
if (session->callbacks->warning)
{
va_list args;
- char *str;
+ char *message;
va_start(args, format);
- str = g_strdup_vprintf(format, args);
+ message = g_strdup_vprintf(format, args);
va_end(args);
- session->callbacks->warning(session, str, session->private);
- g_free(str);
+ session->callbacks->warning(session, message, session->private);
+ g_free(message);
}
}
+/**
+ * mn_client_session_error:
+ * @session: a #MNClientSession
+ * @code: a #MNClientSessionError code
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * If @session has no error yet, sets the given error. Otherwise, does
+ * nothing.
+ *
+ * Return value: %MN_CLIENT_SESSION_RESULT_DISCONNECT
+ **/
int
mn_client_session_error (MNClientSession *session,
+ int code,
const char *format,
...)
{
@@ -1196,11 +1405,21 @@ mn_client_session_error (MNClientSession *session,
if (! session->error)
{
va_list args;
+ char *message;
va_start(args, format);
- session->error = g_strdup_vprintf(format, args);
+ message = g_strdup_vprintf(format, args);
va_end(args);
+
+ session->error = g_error_new_literal(MN_CLIENT_SESSION_ERROR, code, message);
+ g_free(message);
}
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+}
+
+GQuark
+mn_client_session_error_quark (void)
+{
+ return g_quark_from_static_string("mn-client-session-error");
}
diff --git a/src/mn-client-session.h b/src/mn-client-session.h
@@ -21,62 +21,154 @@
#include "config.h"
#include <glib.h>
+#ifdef WITH_SASL
+#include <sasl/sasl.h>
+#endif
typedef struct _MNClientSession MNClientSession;
typedef struct _MNClientSessionPrivate MNClientSessionPrivate;
typedef struct _MNClientSessionResponse MNClientSessionResponse;
+#define MN_CLIENT_SESSION_ERROR (mn_client_session_error_quark())
+
+typedef enum
+{
+ MN_CLIENT_SESSION_ERROR_OTHER,
+ MN_CLIENT_SESSION_ERROR_CONNECTION_LOST
+} MNClientSessionError;
+
enum
{
- MN_CLIENT_SESSION_RESULT_CONTINUE = -1001,
- MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT = -1002,
- MN_CLIENT_SESSION_RESULT_END = -1003,
+ /* read the next input line */
+ MN_CLIENT_SESSION_RESULT_CONTINUE = -1,
+ /* signal an uncompliant response and disconnect */
+ MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT = -2,
+ /* disconnect */
+ MN_CLIENT_SESSION_RESULT_DISCONNECT = -3,
};
+/*
+ * In all the session callbacks below, @session is the session which
+ * is being run, and @private is the opaque data pointer which was
+ * passed to mn_client_session_run().
+ */
+
typedef struct
{
+ /*
+ * The state ID, which must be a positive non-zero integer.
+ */
unsigned int id;
+
+ /*
+ * enter_cb (optional):
+ *
+ * Enters the state. If set to %NULL, does nothing and returns
+ * %MN_CLIENT_SESSION_RESULT_CONTINUE.
+ *
+ * Return value: must return a state ID to switch to, or one of the
+ * MN_CLIENT_SESSION_RESULT_ codes above.
+ */
int (*enter_cb) (MNClientSession *session,
MNClientSessionPrivate *private);
+
+ /*
+ * handle_cb (required):
+ * @response: the #MNClientSessionResponse returned by the response_new()
+ * callback.
+ *
+ * Handles a response received while the state is active.
+ *
+ * Return value: must return a state ID to switch to, or one of the
+ * MN_CLIENT_SESSION_RESULT_ codes above.
+ */
int (*handle_cb) (MNClientSession *session,
MNClientSessionResponse *response,
MNClientSessionPrivate *private);
} MNClientSessionState;
+/* the state to enter after connecting */
#define MN_CLIENT_SESSION_INITIAL_STATE 1
+/* the MNClientSessionState array canary */
#define MN_CLIENT_SESSION_STATES_END { 0, NULL, NULL }
typedef struct
{
+ /*
+ * notice (optional):
+ * @message: the notice message
+ *
+ * Handles a notice.
+ */
void (*notice) (MNClientSession *session,
- const char *str,
+ const char *message,
MNClientSessionPrivate *private);
+
+ /*
+ * warning (optional):
+ * @message: the warning message
+ *
+ * Handles a warning.
+ */
void (*warning) (MNClientSession *session,
- const char *str,
+ const char *message,
MNClientSessionPrivate *private);
+ /*
+ * response_new (required):
+ * @input: an input line received from the server
+ *
+ * Parses server input.
+ *
+ * Return value: must return an opaque data pointer on success, or
+ * %NULL on failure.
+ */
MNClientSessionResponse *(*response_new) (MNClientSession *session,
const char *input,
MNClientSessionPrivate *private);
- void (*response_free) (MNClientSession *session,
- MNClientSessionResponse *response,
- MNClientSessionPrivate *private);
- int (*custom_handler) (MNClientSession *session,
+ /*
+ * response_free (optional):
+ * @response: a response that was returned by response_new()
+ *
+ * Releases all the memory associated with @response.
+ */
+ void (*response_free) (MNClientSession *session,
MNClientSessionResponse *response,
- int result,
MNClientSessionPrivate *private);
+ /*
+ * pre_read (optional):
+ *
+ * Called before calling read() or one of its variants.
+ */
void (*pre_read) (MNClientSession *session,
MNClientSessionPrivate *private);
+
+ /*
+ * post_read (optional):
+ *
+ * Called after calling read() or one of its variants.
+ */
void (*post_read) (MNClientSession *session,
MNClientSessionPrivate *private);
#ifdef WITH_SASL
- const char * (*sasl_get_username) (MNClientSession *session,
- MNClientSessionPrivate *priv);
- const char * (*sasl_get_password) (MNClientSession *session,
- MNClientSessionPrivate *priv);
+ /*
+ * sasl_get_credentials (required if
+ * mn_client_session_sasl_authentication_start() is needed, optional
+ * otherwise):
+ * @username: a pointer to store the username, or %NULL
+ * @password: a pointer to store the password, or %NULL
+ *
+ * Fills in the requested credentials. If a requested credential
+ * cannot be provided, it must be set to %NULL. In such case, the
+ * SASL authentication exchange will be aborted.
+ */
+ void (*sasl_get_credentials) (MNClientSession *session,
+ MNClientSessionPrivate *priv,
+ const char **username,
+ const char **password);
#endif /* WITH_SASL */
} MNClientSessionCallbacks;
@@ -107,11 +199,14 @@ gboolean mn_client_session_sasl_authentication_start (MNClientSession *session,
GSList *mechanisms,
const char *forced_mechanism,
const char **used_mechanism,
- gboolean initial_response);
+ const char **initial_clientout,
+ unsigned int *initial_clientoutlen);
int mn_client_session_sasl_authentication_step (MNClientSession *session,
const char *input);
gboolean mn_client_session_sasl_authentication_done (MNClientSession *session);
-int mn_client_session_sasl_get_ssf (MNClientSession *session);
+
+void mn_client_session_sasl_dispose (MNClientSession *session);
+sasl_ssf_t mn_client_session_sasl_get_ssf (MNClientSession *session);
#endif /* WITH_SASL */
void mn_client_session_notice (MNClientSession *session,
@@ -121,7 +216,10 @@ void mn_client_session_warning (MNClientSession *session,
const char *format,
...);
int mn_client_session_error (MNClientSession *session,
+ int code,
const char *format,
- ...) G_GNUC_PRINTF(2, 3);
+ ...) G_GNUC_PRINTF(3, 4);
+
+GQuark mn_client_session_error_quark (void);
#endif /* _MN_CLIENT_SESSION_H */
diff --git a/src/mn-conf.c b/src/mn-conf.c
@@ -69,6 +69,8 @@
MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_NAMESPACE "/enabled"
#define MN_CONF_OBSOLETE_DOUBLE_CLICK_ACTION \
MN_CONF_NAMESPACE "/double-click-action"
+#define MN_CONF_OBSOLETE_ALREADY_RUN \
+ MN_CONF_NAMESPACE "/already-run"
#define BLOCK(info) \
g_signal_handler_block((info)->object, (info)->handler_id)
@@ -220,7 +222,7 @@ static void mn_conf_notification_add_weak_notify_cb (gpointer data,
void
mn_conf_init (void)
{
- g_return_if_fail(mn_conf_dot_dir == NULL);
+ g_assert(mn_conf_dot_dir == NULL);
/* create our dot dir if it does not already exist */
@@ -263,7 +265,7 @@ mn_conf_init (void)
enum_class = g_type_class_ref(MN_TYPE_ASPECT_SOURCE);
enum_value = g_enum_get_value(enum_class, MN_ASPECT_SOURCE_CUSTOM);
- g_return_if_fail(enum_value != NULL);
+ g_assert(enum_value != NULL);
eel_gconf_set_string(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, enum_value->value_nick);
g_type_class_unref(enum_class);
@@ -304,7 +306,9 @@ mn_conf_unset_obsolete (void)
MN_CONF_OBSOLETE_MAIL_SUMMARY_POPUP_FONTS_TITLE_ENABLED,
MN_CONF_OBSOLETE_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_ENABLED,
MN_CONF_OBSOLETE_SUMMARY_DIALOG,
- MN_CONF_OBSOLETE_DOUBLE_CLICK_ACTION
+ MN_CONF_OBSOLETE_DOUBLE_CLICK_ACTION,
+ MN_CONF_OBSOLETE_MAILBOXES,
+ MN_CONF_OBSOLETE_ALREADY_RUN
};
int i;
@@ -329,7 +333,7 @@ mn_conf_recursive_unset (const char *key, GConfUnsetFlags flags)
g_return_if_fail(key != NULL);
client = eel_gconf_client_get_global();
- g_return_if_fail(client != NULL);
+ g_assert(client != NULL);
gconf_client_recursive_unset(client, key, flags, &err);
eel_gconf_handle_error(&err);
@@ -346,7 +350,7 @@ mn_conf_is_set (const char *key)
g_return_val_if_fail(key != NULL, FALSE);
client = eel_gconf_client_get_global();
- g_return_val_if_fail(client != NULL, FALSE);
+ g_assert(client != NULL);
value = gconf_client_get_without_default(client, key, &err);
if (value)
@@ -371,7 +375,7 @@ mn_conf_set_value (const char *key, const GConfValue *value)
g_return_if_fail(value != NULL);
client = eel_gconf_client_get_global();
- g_return_if_fail(client != NULL);
+ g_assert(client != NULL);
gconf_client_set(client, key, value, &err);
eel_gconf_handle_error(&err);
@@ -635,6 +639,8 @@ mn_conf_link_radio_group_to_enum (GType enum_type,
}
va_end(args);
+
+ g_type_class_unref(enum_class);
}
static void
@@ -1159,6 +1165,30 @@ mn_conf_notification_add_weak_notify_cb (gpointer data, GObject *former_object)
eel_gconf_notification_remove(notification_id);
}
+void
+mn_conf_notifications_add (gpointer object, ...)
+{
+ va_list args;
+ const char *key;
+
+ g_return_if_fail(G_IS_OBJECT(object));
+
+ va_start(args, object);
+ while ((key = va_arg(args, const char *)))
+ {
+ GConfClientNotifyFunc callback;
+ gpointer user_data;
+
+ callback = va_arg(args, GConfClientNotifyFunc);
+ g_return_if_fail(callback != NULL);
+
+ user_data = va_arg(args, gpointer);
+
+ mn_conf_notification_add(object, key, callback, user_data);
+ }
+ va_end(args);
+}
+
gboolean
mn_conf_has_command (const char *namespace)
{
diff --git a/src/mn-conf.h b/src/mn-conf.h
@@ -51,8 +51,6 @@
MN_CONF_COMMANDS_MAIL_READER_NAMESPACE "/enabled"
#define MN_CONF_COMMANDS_MAIL_READER_COMMAND \
MN_CONF_COMMANDS_MAIL_READER_NAMESPACE "/command"
-#define MN_CONF_MAILBOXES \
- MN_CONF_NAMESPACE "/mailboxes"
#define MN_CONF_UI_NAMESPACE \
MN_CONF_NAMESPACE "/ui"
#define MN_CONF_PROPERTIES_DIALOG \
@@ -73,8 +71,6 @@
MN_CONF_MAIN_WINDOW_NAMESPACE "/toolbars-style"
#define MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG \
MN_CONF_MAIN_WINDOW_NAMESPACE "/edit-toolbars-dialog"
-#define MN_CONF_ALREADY_RUN \
- MN_CONF_NAMESPACE "/already-run"
#define MN_CONF_BLINK_ON_ERRORS \
MN_CONF_NAMESPACE "/blink-on-errors"
#define MN_CONF_TRUSTED_X509_CERTIFICATES \
@@ -120,6 +116,10 @@
#define MN_CONF_SUMMARY_TOOLTIP \
MN_CONF_NAMESPACE "/summary-tooltip"
+/* obsolete keys */
+#define MN_CONF_OBSOLETE_MAILBOXES \
+ MN_CONF_NAMESPACE "/mailboxes"
+
extern const char *mn_conf_dot_dir;
void mn_conf_init (void);
@@ -152,6 +152,8 @@ void mn_conf_notification_add (gpointer object,
const char *key,
GConfClientNotifyFunc callback,
gpointer user_data);
+void mn_conf_notifications_add (gpointer object,
+ ...);
gboolean mn_conf_has_command (const char *namespace);
diff --git a/src/mn-corba-object-private.h b/src/mn-corba-object-private.h
@@ -0,0 +1,26 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_CORBA_OBJECT_PRIVATE_H__
+#define __MN_CORBA_OBJECT_PRIVATE_H__
+
+#include "mn-corba-object.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNCORBAObjectPrivate {
+#line 31 "mn-corba-object.gob"
+ CORBA_Object object;
+#line 52 "mn-corba-object.gob"
+ char * iid;
+#line 55 "mn-corba-object.gob"
+ unsigned int monitor_id;
+#line 20 "mn-corba-object-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-corba-object.c b/src/mn-corba-object.c
@@ -0,0 +1,406 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-corba-object.h"
+
+#include "mn-corba-object-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-corba-object.gob"
+
+#include <gtk/gtk.h>
+
+#line 31 "mn-corba-object.c"
+/* self casting macros */
+#define SELF(x) MN_CORBA_OBJECT(x)
+#define SELF_CONST(x) MN_CORBA_OBJECT_CONST(x)
+#define IS_SELF(x) MN_IS_CORBA_OBJECT(x)
+#define TYPE_SELF MN_TYPE_CORBA_OBJECT
+#define SELF_CLASS(x) MN_CORBA_OBJECT_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_CORBA_OBJECT_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNCORBAObject Self;
+typedef MNCORBAObjectClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_corba_object_init (MNCORBAObject * o) G_GNUC_UNUSED;
+static void mn_corba_object_class_init (MNCORBAObjectClass * c) G_GNUC_UNUSED;
+static GObject * ___3_mn_corba_object_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___4_mn_corba_object_finalize (GObject * object) G_GNUC_UNUSED;
+static gboolean mn_corba_object_monitor_cb (gpointer data) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_OBJECT,
+ PROP_IID
+};
+
+/* pointer to the class of our parent */
+static GObjectClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_get_object mn_corba_object_get_object
+#define self_set_object mn_corba_object_set_object
+#define self_monitor_cb mn_corba_object_monitor_cb
+#define self_new mn_corba_object_new
+GType
+mn_corba_object_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNCORBAObjectClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_corba_object_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNCORBAObject),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_corba_object_init,
+ NULL
+ };
+
+ type = g_type_register_static (G_TYPE_OBJECT, "MNCORBAObject", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNCORBAObject *)g_object_new(mn_corba_object_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNCORBAObject * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNCORBAObject *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNCORBAObject *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNCORBAObject *)g_object_new_valist (mn_corba_object_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::finalize"
+ MNCORBAObject *self G_GNUC_UNUSED = MN_CORBA_OBJECT (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 76 "mn-corba-object.gob"
+ ___4_mn_corba_object_finalize(obj_self);
+#line 119 "mn-corba-object.c"
+#define object (self->_priv->object)
+#define VAR object
+ {
+#line 32 "mn-corba-object.gob"
+ if (VAR) CORBA_Object_release(VAR, NULL); }
+#line 125 "mn-corba-object.c"
+ memset(&object, 0, sizeof(object));
+#undef VAR
+#undef object
+#line 52 "mn-corba-object.gob"
+ if(self->_priv->iid) { g_free ((gpointer) self->_priv->iid); self->_priv->iid = NULL; }
+#line 131 "mn-corba-object.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_corba_object_init (MNCORBAObject * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_CORBA_OBJECT,MNCORBAObjectPrivate);
+#line 25 "mn-corba-object.gob"
+ o->_priv->object = CORBA_OBJECT_NIL;
+#line 142 "mn-corba-object.c"
+}
+#undef __GOB_FUNCTION__
+static void
+mn_corba_object_class_init (MNCORBAObjectClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+ g_type_class_add_private(c,sizeof(MNCORBAObjectPrivate));
+
+ parent_class = g_type_class_ref (G_TYPE_OBJECT);
+
+#line 57 "mn-corba-object.gob"
+ g_object_class->constructor = ___3_mn_corba_object_constructor;
+#line 76 "mn-corba-object.gob"
+ g_object_class->finalize = ___finalize;
+#line 159 "mn-corba-object.c"
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_pointer
+ ("object" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
+ g_object_class_install_property (g_object_class,
+ PROP_OBJECT,
+ param_spec);
+ param_spec = g_param_spec_string
+ ("iid" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (g_object_class,
+ PROP_IID,
+ param_spec);
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:CORBA:Object::set_property"
+{
+ MNCORBAObject *self G_GNUC_UNUSED;
+
+ self = MN_CORBA_OBJECT (object);
+
+ switch (property_id) {
+ case PROP_OBJECT:
+ {
+#line 35 "mn-corba-object.gob"
+
+ if (selfp->object != CORBA_OBJECT_NIL)
+ CORBA_Object_release(selfp->object, NULL);
+
+ selfp->object = g_value_get_pointer(VAL);
+
+ if (selfp->object != CORBA_OBJECT_NIL)
+ CORBA_Object_duplicate(selfp->object, NULL);
+
+#line 210 "mn-corba-object.c"
+ }
+ break;
+ case PROP_IID:
+ {
+#line 53 "mn-corba-object.gob"
+{ char *old = self->_priv->iid; self->_priv->iid = g_value_dup_string (VAL); g_free (old); }
+#line 217 "mn-corba-object.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:CORBA:Object::get_property"
+{
+ MNCORBAObject *self G_GNUC_UNUSED;
+
+ self = MN_CORBA_OBJECT (object);
+
+ switch (property_id) {
+ case PROP_OBJECT:
+ {
+#line 45 "mn-corba-object.gob"
+
+ if (selfp->object != CORBA_OBJECT_NIL)
+ CORBA_Object_duplicate(selfp->object, NULL);
+
+ g_value_set_pointer(VAL, selfp->object);
+
+#line 253 "mn-corba-object.c"
+ }
+ break;
+ case PROP_IID:
+ {
+#line 53 "mn-corba-object.gob"
+g_value_set_string (VAL, self->_priv->iid);
+#line 260 "mn-corba-object.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 45 "mn-corba-object.gob"
+CORBA_Object
+mn_corba_object_get_object (MNCORBAObject * self)
+#line 280 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::get_object"
+{
+#line 33 "mn-corba-object.gob"
+ CORBA_Object val; g_object_get (G_OBJECT (self), "object", &val, NULL); return val;
+}}
+#line 287 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+
+#line 35 "mn-corba-object.gob"
+void
+mn_corba_object_set_object (MNCORBAObject * self, CORBA_Object val)
+#line 293 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::set_object"
+{
+#line 33 "mn-corba-object.gob"
+ g_object_set (G_OBJECT (self), "object", val, NULL);
+}}
+#line 300 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+
+#line 57 "mn-corba-object.gob"
+static GObject *
+___3_mn_corba_object_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 306 "mn-corba-object.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+ ((G_OBJECT_CLASS(parent_class)->constructor)? \
+ (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+ ((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::constructor"
+{
+#line 59 "mn-corba-object.gob"
+
+ GObject *object;
+ Self *self;
+ CORBA_Object corba_object;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+
+ corba_object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+ if (corba_object != CORBA_OBJECT_NIL)
+ self_set_object(self, corba_object);
+
+ selfp->monitor_id = g_timeout_add(1000, self_monitor_cb, self);
+
+ return object;
+ }}
+#line 331 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 76 "mn-corba-object.gob"
+static void
+___4_mn_corba_object_finalize (GObject * object G_GNUC_UNUSED)
+#line 338 "mn-corba-object.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::finalize"
+{
+#line 78 "mn-corba-object.gob"
+
+ Self *self = SELF(object);
+
+ g_source_remove(selfp->monitor_id);
+
+ PARENT_HANDLER(object);
+ }}
+#line 353 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 86 "mn-corba-object.gob"
+static gboolean
+mn_corba_object_monitor_cb (gpointer data)
+#line 360 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::monitor_cb"
+{
+#line 88 "mn-corba-object.gob"
+
+ Self *self = data;
+
+ if (selfp->object != CORBA_OBJECT_NIL)
+ {
+ if (! bonobo_unknown_ping(selfp->object, NULL))
+ {
+ GDK_THREADS_ENTER();
+ self_set_object(self, CORBA_OBJECT_NIL);
+ GDK_THREADS_LEAVE();
+ }
+ }
+ else
+ {
+ CORBA_Object object;
+
+ object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+ if (object != CORBA_OBJECT_NIL)
+ {
+ GDK_THREADS_ENTER();
+ self_set_object(self, object);
+ GDK_THREADS_LEAVE();
+ }
+ }
+
+ return TRUE; /* keep source */
+ }}
+#line 392 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+
+#line 116 "mn-corba-object.gob"
+MNCORBAObject *
+mn_corba_object_new (const char * iid)
+#line 398 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::new"
+{
+#line 118 "mn-corba-object.gob"
+
+ return GET_NEW_VARG(MN_CORBA_OBJECT_PROP_IID((char *) iid), NULL);
+ }}
+#line 406 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-corba-object.gob b/src/mn-corba-object.gob
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <libbonobo.h>
+%}
+
+%{
+#include <gtk/gtk.h>
+%}
+
+class MN:CORBA:Object from G:Object
+{
+ private CORBA_Object object = CORBA_OBJECT_NIL
+ destroy { if (VAR) CORBA_Object_release(VAR, NULL); };
+ property POINTER object (export, type = CORBA_Object)
+ set
+ {
+ if (selfp->object != CORBA_OBJECT_NIL)
+ CORBA_Object_release(selfp->object, NULL);
+
+ selfp->object = g_value_get_pointer(VAL);
+
+ if (selfp->object != CORBA_OBJECT_NIL)
+ CORBA_Object_duplicate(selfp->object, NULL);
+ }
+ get
+ {
+ if (selfp->object != CORBA_OBJECT_NIL)
+ CORBA_Object_duplicate(selfp->object, NULL);
+
+ g_value_set_pointer(VAL, selfp->object);
+ };
+
+ private char *iid destroywith g_free;
+ property STRING iid (link, flags = CONSTRUCT_ONLY);
+
+ private unsigned int monitor_id;
+
+ override (G:Object) GObject *
+ constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ {
+ GObject *object;
+ Self *self;
+ CORBA_Object corba_object;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+
+ corba_object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+ if (corba_object != CORBA_OBJECT_NIL)
+ self_set_object(self, corba_object);
+
+ selfp->monitor_id = g_timeout_add(1000, self_monitor_cb, self);
+
+ return object;
+ }
+
+ override (G:Object) void
+ finalize (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ g_source_remove(selfp->monitor_id);
+
+ PARENT_HANDLER(object);
+ }
+
+ private gboolean
+ monitor_cb (gpointer data)
+ {
+ Self *self = data;
+
+ if (selfp->object != CORBA_OBJECT_NIL)
+ {
+ if (! bonobo_unknown_ping(selfp->object, NULL))
+ {
+ GDK_THREADS_ENTER();
+ self_set_object(self, CORBA_OBJECT_NIL);
+ GDK_THREADS_LEAVE();
+ }
+ }
+ else
+ {
+ CORBA_Object object;
+
+ object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+ if (object != CORBA_OBJECT_NIL)
+ {
+ GDK_THREADS_ENTER();
+ self_set_object(self, object);
+ GDK_THREADS_LEAVE();
+ }
+ }
+
+ return TRUE; /* keep source */
+ }
+
+ public MNCORBAObject *
+ new (const char *iid)
+ {
+ return GET_NEW_VARG(MN_CORBA_OBJECT_PROP_IID((char *) iid), NULL);
+ }
+}
diff --git a/src/mn-corba-object.h b/src/mn-corba-object.h
@@ -0,0 +1,82 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <libbonobo.h>
+
+#ifndef __MN_CORBA_OBJECT_H__
+#define __MN_CORBA_OBJECT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_CORBA_OBJECT (mn_corba_object_get_type())
+#define MN_CORBA_OBJECT(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_corba_object_get_type(), MNCORBAObject)
+#define MN_CORBA_OBJECT_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_corba_object_get_type(), MNCORBAObject const)
+#define MN_CORBA_OBJECT_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_corba_object_get_type(), MNCORBAObjectClass)
+#define MN_IS_CORBA_OBJECT(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_corba_object_get_type ())
+
+#define MN_CORBA_OBJECT_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_corba_object_get_type(), MNCORBAObjectClass)
+
+/* Private structure type */
+typedef struct _MNCORBAObjectPrivate MNCORBAObjectPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_CORBA_OBJECT__
+#define __TYPEDEF_MN_CORBA_OBJECT__
+typedef struct _MNCORBAObject MNCORBAObject;
+#endif
+struct _MNCORBAObject {
+ GObject __parent__;
+ /*< private >*/
+ MNCORBAObjectPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNCORBAObjectClass MNCORBAObjectClass;
+struct _MNCORBAObjectClass {
+ GObjectClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_corba_object_get_type (void);
+CORBA_Object mn_corba_object_get_object (MNCORBAObject * self);
+void mn_corba_object_set_object (MNCORBAObject * self,
+ CORBA_Object val);
+MNCORBAObject * mn_corba_object_new (const char * iid);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_CORBA_OBJECT_PROP_OBJECT(arg) "object", __extension__ ({CORBA_Object z = (arg); z;})
+#define MN_CORBA_OBJECT_GET_PROP_OBJECT(arg) "object", __extension__ ({CORBA_Object *z = (arg); z;})
+#define MN_CORBA_OBJECT_PROP_IID(arg) "iid", __extension__ ({gchar *z = (arg); z;})
+#define MN_CORBA_OBJECT_GET_PROP_IID(arg) "iid", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_CORBA_OBJECT_PROP_OBJECT(arg) "object",(CORBA_Object )(arg)
+#define MN_CORBA_OBJECT_GET_PROP_OBJECT(arg) "object",(CORBA_Object *)(arg)
+#define MN_CORBA_OBJECT_PROP_IID(arg) "iid",(gchar *)(arg)
+#define MN_CORBA_OBJECT_GET_PROP_IID(arg) "iid",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-custom-vfs-mailbox-private.h b/src/mn-custom-vfs-mailbox-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_CUSTOM_VFS_MAILBOX_PRIVATE_H__
+#define __MN_CUSTOM_VFS_MAILBOX_PRIVATE_H__
+
+#include "mn-custom-vfs-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-custom-vfs-mailbox.c b/src/mn-custom-vfs-mailbox.c
@@ -0,0 +1,308 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-custom-vfs-mailbox.h"
+
+#include "mn-custom-vfs-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-custom-vfs-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-stock.h"
+
+#line 34 "mn-custom-vfs-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_CUSTOM_VFS_MAILBOX(x)
+#define SELF_CONST(x) MN_CUSTOM_VFS_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_CUSTOM_VFS_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_CUSTOM_VFS_MAILBOX
+#define SELF_CLASS(x) MN_CUSTOM_VFS_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_CUSTOM_VFS_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNCustomVFSMailbox Self;
+typedef MNCustomVFSMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_custom_vfs_mailbox_init (MNCustomVFSMailbox * o) G_GNUC_UNUSED;
+static void mn_custom_vfs_mailbox_class_init (MNCustomVFSMailboxClass * class) G_GNUC_UNUSED;
+static void ___2_mn_custom_vfs_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___3_mn_custom_vfs_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
+static void ___4_mn_custom_vfs_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_URI
+};
+
+/* pointer to the class of our parent */
+static MNVFSMailboxClass *parent_class = NULL;
+
+GType
+mn_custom_vfs_mailbox_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNCustomVFSMailboxClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_custom_vfs_mailbox_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNCustomVFSMailbox),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_custom_vfs_mailbox_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_VFS_MAILBOX, "MNCustomVFSMailbox", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNCustomVFSMailbox *)g_object_new(mn_custom_vfs_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNCustomVFSMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNCustomVFSMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNCustomVFSMailbox *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNCustomVFSMailbox *)g_object_new_valist (mn_custom_vfs_mailbox_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::finalize"
+ MNCustomVFSMailbox *self G_GNUC_UNUSED = MN_CUSTOM_VFS_MAILBOX (obj_self);
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 34 "mn-custom-vfs-mailbox.gob"
+ if(self->uri) { g_free ((gpointer) self->uri); self->uri = NULL; }
+#line 117 "mn-custom-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_custom_vfs_mailbox_init (MNCustomVFSMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::init"
+}
+#undef __GOB_FUNCTION__
+#line 37 "mn-custom-vfs-mailbox.gob"
+static void
+mn_custom_vfs_mailbox_class_init (MNCustomVFSMailboxClass * class G_GNUC_UNUSED)
+#line 130 "mn-custom-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+
+ parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX);
+
+#line 42 "mn-custom-vfs-mailbox.gob"
+ mn_mailbox_class->seal = ___2_mn_custom_vfs_mailbox_seal;
+#line 50 "mn-custom-vfs-mailbox.gob"
+ mn_mailbox_class->parse_uri = ___3_mn_custom_vfs_mailbox_parse_uri;
+#line 66 "mn-custom-vfs-mailbox.gob"
+ mn_mailbox_class->check = ___4_mn_custom_vfs_mailbox_check;
+#line 144 "mn-custom-vfs-mailbox.c"
+ g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_string
+ ("uri" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_URI,
+ param_spec);
+ }
+ {
+#line 38 "mn-custom-vfs-mailbox.gob"
+
+ MN_MAILBOX_CLASS(class)->type = "custom-vfs";
+
+#line 166 "mn-custom-vfs-mailbox.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::set_property"
+{
+ MNCustomVFSMailbox *self G_GNUC_UNUSED;
+
+ self = MN_CUSTOM_VFS_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_URI:
+ {
+#line 35 "mn-custom-vfs-mailbox.gob"
+{ char *old = self->uri; self->uri = g_value_dup_string (VAL); g_free (old); }
+#line 187 "mn-custom-vfs-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::get_property"
+{
+ MNCustomVFSMailbox *self G_GNUC_UNUSED;
+
+ self = MN_CUSTOM_VFS_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_URI:
+ {
+#line 35 "mn-custom-vfs-mailbox.gob"
+g_value_set_string (VAL, self->uri);
+#line 218 "mn-custom-vfs-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 42 "mn-custom-vfs-mailbox.gob"
+static void
+___2_mn_custom_vfs_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 238 "mn-custom-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::seal"
+{
+#line 44 "mn-custom-vfs-mailbox.gob"
+
+ MN_VFS_MAILBOX(mailbox)->uri = gnome_vfs_make_uri_canonical(SELF(mailbox)->uri);
+
+ PARENT_HANDLER(mailbox);
+ }}
+#line 251 "mn-custom-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 50 "mn-custom-vfs-mailbox.gob"
+static MNMailbox *
+___3_mn_custom_vfs_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 258 "mn-custom-vfs-mailbox.c"
+#define PARENT_HANDLER(___dummy,___uri) \
+ ((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+ (* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+ ((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::parse_uri"
+{
+#line 52 "mn-custom-vfs-mailbox.gob"
+
+ GnomeVFSURI *vfs_uri;
+ MNMailbox *mailbox = NULL;
+
+ vfs_uri = gnome_vfs_uri_new(uri);
+ if (vfs_uri)
+ {
+ mailbox = mn_mailbox_new("custom-vfs", "uri", uri, NULL);
+ gnome_vfs_uri_unref(vfs_uri);
+ }
+
+ return mailbox;
+ }}
+#line 280 "mn-custom-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 66 "mn-custom-vfs-mailbox.gob"
+static void
+___4_mn_custom_vfs_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 287 "mn-custom-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->check) \
+ (* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::check"
+{
+#line 68 "mn-custom-vfs-mailbox.gob"
+
+ if (MN_VFS_MAILBOX(mailbox)->vfs_uri)
+ {
+ PARENT_HANDLER(mailbox);
+ }
+ else
+ {
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_UNKNOWN);
+ mn_mailbox_set_error(mailbox, _("invalid location"));
+ mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+ }
+ }}
+#line 307 "mn-custom-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-custom-vfs-mailbox.gob b/src/mn-custom-vfs-mailbox.gob
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-stock.h"
+%}
+
+class MN:Custom:VFS:Mailbox from MN:VFS:Mailbox
+{
+ public char *uri destroywith g_free;
+ property STRING uri (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+ class_init (class)
+ {
+ MN_MAILBOX_CLASS(class)->type = "custom-vfs";
+ }
+
+ override (MN:Mailbox) void
+ seal (MNMailbox *mailbox)
+ {
+ MN_VFS_MAILBOX(mailbox)->uri = gnome_vfs_make_uri_canonical(SELF(mailbox)->uri);
+
+ PARENT_HANDLER(mailbox);
+ }
+
+ override (MN:Mailbox) MNMailbox *
+ parse_uri (MNMailbox *dummy, const char *uri)
+ {
+ GnomeVFSURI *vfs_uri;
+ MNMailbox *mailbox = NULL;
+
+ vfs_uri = gnome_vfs_uri_new(uri);
+ if (vfs_uri)
+ {
+ mailbox = mn_mailbox_new("custom-vfs", "uri", uri, NULL);
+ gnome_vfs_uri_unref(vfs_uri);
+ }
+
+ return mailbox;
+ }
+
+ override (MN:Mailbox) void
+ check (MNMailbox *mailbox)
+ {
+ if (MN_VFS_MAILBOX(mailbox)->vfs_uri)
+ {
+ PARENT_HANDLER(mailbox);
+ }
+ else
+ {
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_UNKNOWN);
+ mn_mailbox_set_error(mailbox, _("invalid location"));
+ mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+ }
+ }
+}
diff --git a/src/mn-custom-vfs-mailbox.h b/src/mn-custom-vfs-mailbox.h
@@ -0,0 +1,71 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox.h"
+
+#ifndef __MN_CUSTOM_VFS_MAILBOX_H__
+#define __MN_CUSTOM_VFS_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_CUSTOM_VFS_MAILBOX (mn_custom_vfs_mailbox_get_type())
+#define MN_CUSTOM_VFS_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailbox)
+#define MN_CUSTOM_VFS_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailbox const)
+#define MN_CUSTOM_VFS_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailboxClass)
+#define MN_IS_CUSTOM_VFS_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_custom_vfs_mailbox_get_type ())
+
+#define MN_CUSTOM_VFS_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailboxClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_CUSTOM_VFS_MAILBOX__
+#define __TYPEDEF_MN_CUSTOM_VFS_MAILBOX__
+typedef struct _MNCustomVFSMailbox MNCustomVFSMailbox;
+#endif
+struct _MNCustomVFSMailbox {
+ MNVFSMailbox __parent__;
+ /*< public >*/
+ char * uri;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNCustomVFSMailboxClass MNCustomVFSMailboxClass;
+struct _MNCustomVFSMailboxClass {
+ MNVFSMailboxClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_custom_vfs_mailbox_get_type (void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_CUSTOM_VFS_MAILBOX_PROP_URI(arg) "uri", __extension__ ({gchar *z = (arg); z;})
+#define MN_CUSTOM_VFS_MAILBOX_GET_PROP_URI(arg) "uri", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_CUSTOM_VFS_MAILBOX_PROP_URI(arg) "uri",(gchar *)(arg)
+#define MN_CUSTOM_VFS_MAILBOX_GET_PROP_URI(arg) "uri",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-dialog-private.h b/src/mn-dialog-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_DIALOG_PRIVATE_H__
+#define __MN_DIALOG_PRIVATE_H__
+
+#include "mn-dialog.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-dialog.c b/src/mn-dialog.c
@@ -0,0 +1,114 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-dialog.h"
+
+#include "mn-dialog-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+/* self casting macros */
+#define SELF(x) MN_DIALOG(x)
+#define SELF_CONST(x) MN_DIALOG_CONST(x)
+#define IS_SELF(x) MN_IS_DIALOG(x)
+#define TYPE_SELF MN_TYPE_DIALOG
+#define SELF_CLASS(x) MN_DIALOG_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_DIALOG_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNDialog Self;
+typedef MNDialogClass SelfClass;
+
+/* here are local prototypes */
+static void mn_dialog_class_init (MNDialogClass * c) G_GNUC_UNUSED;
+static void mn_dialog_init (MNDialog * self) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static GtkDialogClass *parent_class = NULL;
+
+GType
+mn_dialog_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNDialogClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_dialog_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNDialog),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_dialog_init,
+ NULL
+ };
+
+ type = g_type_register_static (GTK_TYPE_DIALOG, "MNDialog", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNDialog *)g_object_new(mn_dialog_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNDialog *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNDialog *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNDialog *)g_object_new_valist (mn_dialog_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+static void
+mn_dialog_class_init (MNDialogClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Dialog::class_init"
+
+ parent_class = g_type_class_ref (GTK_TYPE_DIALOG);
+
+}
+#undef __GOB_FUNCTION__
+#line 27 "mn-dialog.gob"
+static void
+mn_dialog_init (MNDialog * self G_GNUC_UNUSED)
+#line 100 "mn-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Dialog::init"
+ {
+#line 28 "mn-dialog.gob"
+
+ gtk_container_set_border_width(GTK_CONTAINER(self), 5);
+ gtk_dialog_set_has_separator(GTK_DIALOG(self), FALSE);
+ gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(self)->vbox), 2);
+
+#line 110 "mn-dialog.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
diff --git a/src/mn-dialog.gob b/src/mn-dialog.gob
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+%}
+
+class MN:Dialog from Gtk:Dialog
+{
+ init (self)
+ {
+ gtk_container_set_border_width(GTK_CONTAINER(self), 5);
+ gtk_dialog_set_has_separator(GTK_DIALOG(self), FALSE);
+ gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(self)->vbox), 2);
+ }
+}
diff --git a/src/mn-dialog.h b/src/mn-dialog.h
@@ -0,0 +1,57 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+
+#ifndef __MN_DIALOG_H__
+#define __MN_DIALOG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_DIALOG (mn_dialog_get_type())
+#define MN_DIALOG(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_dialog_get_type(), MNDialog)
+#define MN_DIALOG_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_dialog_get_type(), MNDialog const)
+#define MN_DIALOG_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_dialog_get_type(), MNDialogClass)
+#define MN_IS_DIALOG(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_dialog_get_type ())
+
+#define MN_DIALOG_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_dialog_get_type(), MNDialogClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_DIALOG__
+#define __TYPEDEF_MN_DIALOG__
+typedef struct _MNDialog MNDialog;
+#endif
+struct _MNDialog {
+ GtkDialog __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNDialogClass MNDialogClass;
+struct _MNDialogClass {
+ GtkDialogClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_dialog_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-folder-tree-control.c b/src/mn-evolution-folder-tree-control.c
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <libintl.h>
+#include <libbonoboui.h>
+
+/* headers from the Evolution source tree */
+#include "mail/mail-component.h"
+#include "mail/em-folder-tree.h"
+
+#include "mn-evolution.h"
+
+/*** types *******************************************************************/
+
+enum
+{
+ PROP_SELECTED_URI
+};
+
+/*** functions ***************************************************************/
+
+static void mn_evolution_folder_tree_control_get_property (BonoboPropertyBag *bag,
+ BonoboArg *arg,
+ unsigned int arg_id,
+ CORBA_Environment *env,
+ gpointer user_data);
+static void mn_evolution_folder_tree_control_set_property (BonoboPropertyBag *bag,
+ const BonoboArg *arg,
+ unsigned int arg_id,
+ CORBA_Environment *env,
+ gpointer user_data);
+
+static void mn_evolution_folder_tree_control_selected_h (EMFolderTree *tree,
+ const char *full_name,
+ const char *uri,
+ guint32 flags,
+ gpointer user_data);
+
+/*** implementation **********************************************************/
+
+BonoboObject *
+mn_evolution_folder_tree_control_factory_cb (BonoboGenericFactory *factory,
+ const char *iid,
+ gpointer closure)
+{
+ EMFolderTreeModel *model;
+ GtkWidget *tree;
+ BonoboControl *control;
+ BonoboPropertyBag *pb;
+
+ if (strcmp(iid, MN_EVOLUTION_FOLDER_TREE_CONTROL_IID) != 0)
+ return NULL;
+
+ model = mail_component_peek_tree_model(mail_component_peek());
+ tree = em_folder_tree_new_with_model(model);
+ gtk_widget_show(tree);
+
+ control = bonobo_control_new(tree);
+
+ pb = bonobo_property_bag_new(mn_evolution_folder_tree_control_get_property,
+ mn_evolution_folder_tree_control_set_property,
+ tree);
+
+ bonobo_property_bag_add(pb,
+ "selected-uri",
+ PROP_SELECTED_URI,
+ BONOBO_ARG_STRING,
+ NULL,
+ dgettext(GETTEXT_PACKAGE, "The currently selected URI"),
+ 0);
+
+ bonobo_control_set_properties(control, bonobo_object_corba_objref(BONOBO_OBJECT(pb)), NULL);
+
+ g_signal_connect_data(tree,
+ "folder-selected",
+ G_CALLBACK(mn_evolution_folder_tree_control_selected_h),
+ pb,
+ (GClosureNotify) bonobo_object_unref,
+ 0);
+
+ return BONOBO_OBJECT(control);
+}
+
+static void
+mn_evolution_folder_tree_control_get_property (BonoboPropertyBag *bag,
+ BonoboArg *arg,
+ unsigned int arg_id,
+ CORBA_Environment *env,
+ gpointer user_data)
+{
+ EMFolderTree *tree = user_data;
+
+ switch (arg_id)
+ {
+ case PROP_SELECTED_URI:
+ {
+ char *selected_uri;
+
+ selected_uri = em_folder_tree_get_selected_uri(tree);
+ BONOBO_ARG_SET_STRING(arg, selected_uri);
+ g_free(selected_uri);
+ }
+ break;
+
+ default:
+ bonobo_exception_set(env, ex_Bonobo_PropertyBag_NotFound);
+ break;
+ }
+}
+
+static void
+mn_evolution_folder_tree_control_set_property (BonoboPropertyBag *bag,
+ const BonoboArg *arg,
+ unsigned int arg_id,
+ CORBA_Environment *env,
+ gpointer user_data)
+{
+ EMFolderTree *tree = user_data;
+
+ switch (arg_id)
+ {
+ case PROP_SELECTED_URI:
+ em_folder_tree_set_selected(tree, BONOBO_ARG_GET_STRING(arg));
+ break;
+
+ default:
+ bonobo_exception_set(env, ex_Bonobo_PropertyBag_NotFound);
+ break;
+ }
+}
+
+static void
+mn_evolution_folder_tree_control_selected_h (EMFolderTree *tree,
+ const char *full_name,
+ const char *uri,
+ guint32 flags,
+ gpointer user_data)
+{
+ BonoboPropertyBag *pb = user_data;
+ BonoboArg *arg;
+
+ arg = bonobo_arg_new(BONOBO_ARG_STRING);
+ BONOBO_ARG_SET_STRING(arg, uri);
+
+ bonobo_event_source_notify_listeners_full(pb->es,
+ "Bonobo/Property",
+ "change",
+ "selected-uri",
+ arg,
+ NULL);
+
+ bonobo_arg_release(arg);
+}
diff --git a/src/mn-evolution-folder-tree-control.h b/src/mn-evolution-folder-tree-control.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _MN_EVOLUTION_FOLDER_TREE_CONTROL_H
+#define _MN_EVOLUTION_FOLDER_TREE_CONTROL_H
+
+#include <libbonobo.h>
+
+BonoboObject *mn_evolution_folder_tree_control_factory_cb (BonoboGenericFactory *factory,
+ const char *iid,
+ gpointer closure);
+
+#endif /* _MN_EVOLUTION_FOLDER_TREE_CONTROL_H */
diff --git a/src/mn-evolution-glue-private.h b/src/mn-evolution-glue-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_EVOLUTION_GLUE_PRIVATE_H__
+#define __MN_EVOLUTION_GLUE_PRIVATE_H__
+
+#include "mn-evolution-glue.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-glue.c b/src/mn-evolution-glue.c
@@ -0,0 +1,238 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:55 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-evolution-glue.h"
+
+#include "mn-evolution-glue-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 26 "mn-evolution-glue.gob"
+
+#include <stdio.h>
+#include <camel/camel-folder.h>
+
+/* headers from the Evolution source tree */
+#include "mail/mail-tools.h"
+
+#line 35 "mn-evolution-glue.c"
+/* self casting macros */
+#define SELF(x) MN_EVOLUTION_GLUE(x)
+#define SELF_CONST(x) MN_EVOLUTION_GLUE_CONST(x)
+#define IS_SELF(x) MN_IS_EVOLUTION_GLUE(x)
+#define TYPE_SELF MN_TYPE_EVOLUTION_GLUE
+#define SELF_CLASS(x) MN_EVOLUTION_GLUE_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_EVOLUTION_GLUE_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNEvolutionGlue Self;
+typedef MNEvolutionGlueClass SelfClass;
+
+/* here are local prototypes */
+static void mn_evolution_glue_init (MNEvolutionGlue * o) G_GNUC_UNUSED;
+static void mn_evolution_glue_class_init (MNEvolutionGlueClass * c) G_GNUC_UNUSED;
+static GNOME_MailNotification_Evolution_MessageSeq * mn_evolution_glue_getUnseenMessages (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env) G_GNUC_UNUSED;
+static CORBA_string mn_evolution_glue_getFolderName (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static BonoboObjectClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_getUnseenMessages mn_evolution_glue_getUnseenMessages
+#define self_getFolderName mn_evolution_glue_getFolderName
+#define self_new mn_evolution_glue_new
+GType
+mn_evolution_glue_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNEvolutionGlueClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_evolution_glue_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (MNEvolutionGlue),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) mn_evolution_glue_init,
+ NULL
+ };
+
+ type = bonobo_type_unique (
+ BONOBO_OBJECT_TYPE,
+ POA_GNOME_MailNotification_Evolution_Glue__init, NULL,
+ G_STRUCT_OFFSET (MNEvolutionGlueClass, _epv),
+ &info, "MNEvolutionGlue");
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNEvolutionGlue *)g_object_new(mn_evolution_glue_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNEvolutionGlue * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNEvolutionGlue *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNEvolutionGlue *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNEvolutionGlue *)g_object_new_valist (mn_evolution_glue_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+static void
+mn_evolution_glue_init (MNEvolutionGlue * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::init"
+}
+#undef __GOB_FUNCTION__
+static void
+mn_evolution_glue_class_init (MNEvolutionGlueClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::class_init"
+
+ parent_class = g_type_class_ref (BONOBO_TYPE_OBJECT);
+
+#line 36 "mn-evolution-glue.gob"
+ c->_epv.getUnseenMessages = self_getUnseenMessages;
+#line 100 "mn-evolution-glue.gob"
+ c->_epv.getFolderName = self_getFolderName;
+#line 125 "mn-evolution-glue.c"
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 36 "mn-evolution-glue.gob"
+static GNOME_MailNotification_Evolution_MessageSeq *
+mn_evolution_glue_getUnseenMessages (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env)
+#line 134 "mn-evolution-glue.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::getUnseenMessages"
+{
+#line 40 "mn-evolution-glue.gob"
+
+ CamelFolder *folder;
+ GPtrArray *summary;
+ int i;
+ GSList *infos = NULL;
+ GNOME_MailNotification_Evolution_MessageSeq *seq;
+
+ folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+ if (! folder)
+ {
+ bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+ return NULL;
+ }
+
+ summary = camel_folder_get_summary(folder);
+
+ for (i = 0; i < summary->len; i++)
+ {
+ CamelMessageInfo *info = summary->pdata[i];
+
+ if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
+ infos = g_slist_append(infos, info);
+ }
+
+ seq = GNOME_MailNotification_Evolution_MessageSeq__alloc();
+ seq->_length = g_slist_length(infos);
+
+ if (seq->_length > 0)
+ {
+ GSList *l;
+
+ seq->_buffer = CORBA_sequence_GNOME_MailNotification_Evolution_Message_allocbuf(seq->_length);
+ for (l = infos, i = 0; l != NULL; l = l->next, i++)
+ {
+ CamelMessageInfo *info = l->data;
+ const CamelSummaryMessageID *id;
+ char hexhash[sizeof(CamelSummaryMessageID) * 2 + 1];
+ int j;
+
+ id = camel_message_info_message_id(info);
+ for (j = 0; j < sizeof(id->id.hash); j++)
+ sprintf(hexhash + j * 2, "%.2x", id->id.hash[j]);
+
+ seq->_buffer[i].sent_time = camel_message_info_date_sent(info);
+ seq->_buffer[i].id = CORBA_string_dup(hexhash);
+ seq->_buffer[i].from = CORBA_string_dup(camel_message_info_from(info));
+ seq->_buffer[i].subject = CORBA_string_dup(camel_message_info_subject(info));
+ }
+
+ CORBA_sequence_set_release(seq, CORBA_TRUE);
+
+ g_slist_free(infos);
+ }
+
+ camel_folder_free_summary(folder, summary);
+ camel_object_unref(folder);
+
+ return seq;
+ }}
+#line 198 "mn-evolution-glue.c"
+#undef __GOB_FUNCTION__
+
+#line 100 "mn-evolution-glue.gob"
+static CORBA_string
+mn_evolution_glue_getFolderName (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env)
+#line 204 "mn-evolution-glue.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::getFolderName"
+{
+#line 104 "mn-evolution-glue.gob"
+
+ CamelFolder *folder;
+ CORBA_string name = NULL;
+
+ folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+ if (folder)
+ {
+ name = CORBA_string_dup(camel_folder_get_name(folder));
+ camel_object_unref(folder);
+ }
+ else
+ bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+
+ return name;
+ }}
+#line 224 "mn-evolution-glue.c"
+#undef __GOB_FUNCTION__
+
+#line 120 "mn-evolution-glue.gob"
+MNEvolutionGlue *
+mn_evolution_glue_new (void)
+#line 230 "mn-evolution-glue.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::new"
+{
+#line 122 "mn-evolution-glue.gob"
+
+ return GET_NEW;
+ }}
+#line 238 "mn-evolution-glue.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-evolution-glue.gob b/src/mn-evolution-glue.gob
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <libbonobo.h>
+#include "GNOME_MailNotification_Evolution.h"
+%}
+
+%{
+#include <stdio.h>
+#include <camel/camel-folder.h>
+
+/* headers from the Evolution source tree */
+#include "mail/mail-tools.h"
+%}
+
+class MN:Evolution:Glue from Bonobo:Object (BonoboObject GNOME_MailNotification_Evolution_Glue)
+{
+ BonoboObject private GNOME_MailNotification_Evolution_MessageSeq *
+ getUnseenMessages (PortableServer_Servant servant,
+ const CORBA_char *folder_uri,
+ CORBA_Environment *env)
+ {
+ CamelFolder *folder;
+ GPtrArray *summary;
+ int i;
+ GSList *infos = NULL;
+ GNOME_MailNotification_Evolution_MessageSeq *seq;
+
+ folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+ if (! folder)
+ {
+ bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+ return NULL;
+ }
+
+ summary = camel_folder_get_summary(folder);
+
+ for (i = 0; i < summary->len; i++)
+ {
+ CamelMessageInfo *info = summary->pdata[i];
+
+ if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
+ infos = g_slist_append(infos, info);
+ }
+
+ seq = GNOME_MailNotification_Evolution_MessageSeq__alloc();
+ seq->_length = g_slist_length(infos);
+
+ if (seq->_length > 0)
+ {
+ GSList *l;
+
+ seq->_buffer = CORBA_sequence_GNOME_MailNotification_Evolution_Message_allocbuf(seq->_length);
+ for (l = infos, i = 0; l != NULL; l = l->next, i++)
+ {
+ CamelMessageInfo *info = l->data;
+ const CamelSummaryMessageID *id;
+ char hexhash[sizeof(CamelSummaryMessageID) * 2 + 1];
+ int j;
+
+ id = camel_message_info_message_id(info);
+ for (j = 0; j < sizeof(id->id.hash); j++)
+ sprintf(hexhash + j * 2, "%.2x", id->id.hash[j]);
+
+ seq->_buffer[i].sent_time = camel_message_info_date_sent(info);
+ seq->_buffer[i].id = CORBA_string_dup(hexhash);
+ seq->_buffer[i].from = CORBA_string_dup(camel_message_info_from(info));
+ seq->_buffer[i].subject = CORBA_string_dup(camel_message_info_subject(info));
+ }
+
+ CORBA_sequence_set_release(seq, CORBA_TRUE);
+
+ g_slist_free(infos);
+ }
+
+ camel_folder_free_summary(folder, summary);
+ camel_object_unref(folder);
+
+ return seq;
+ }
+
+ BonoboObject private CORBA_string
+ getFolderName (PortableServer_Servant servant,
+ const CORBA_char *folder_uri,
+ CORBA_Environment *env)
+ {
+ CamelFolder *folder;
+ CORBA_string name = NULL;
+
+ folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+ if (folder)
+ {
+ name = CORBA_string_dup(camel_folder_get_name(folder));
+ camel_object_unref(folder);
+ }
+ else
+ bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+
+ return name;
+ }
+
+ public MNEvolutionGlue *
+ new (void)
+ {
+ return GET_NEW;
+ }
+}
diff --git a/src/mn-evolution-glue.h b/src/mn-evolution-glue.h
@@ -0,0 +1,61 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <libbonobo.h>
+#include "GNOME_MailNotification_Evolution.h"
+
+#ifndef __MN_EVOLUTION_GLUE_H__
+#define __MN_EVOLUTION_GLUE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_EVOLUTION_GLUE (mn_evolution_glue_get_type())
+#define MN_EVOLUTION_GLUE(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_glue_get_type(), MNEvolutionGlue)
+#define MN_EVOLUTION_GLUE_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_glue_get_type(), MNEvolutionGlue const)
+#define MN_EVOLUTION_GLUE_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_evolution_glue_get_type(), MNEvolutionGlueClass)
+#define MN_IS_EVOLUTION_GLUE(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_evolution_glue_get_type ())
+
+#define MN_EVOLUTION_GLUE_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_evolution_glue_get_type(), MNEvolutionGlueClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_EVOLUTION_GLUE__
+#define __TYPEDEF_MN_EVOLUTION_GLUE__
+typedef struct _MNEvolutionGlue MNEvolutionGlue;
+#endif
+struct _MNEvolutionGlue {
+ BonoboObject __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNEvolutionGlueClass MNEvolutionGlueClass;
+struct _MNEvolutionGlueClass {
+ BonoboObjectClass __parent__;
+ /* Bonobo object epv */
+ POA_GNOME_MailNotification_Evolution_Glue__epv _epv;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_evolution_glue_get_type (void);
+MNEvolutionGlue * mn_evolution_glue_new (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox-private.h b/src/mn-evolution-mailbox-private.h
@@ -0,0 +1,31 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_EVOLUTION_MAILBOX_PRIVATE_H__
+#define __MN_EVOLUTION_MAILBOX_PRIVATE_H__
+
+#include "mn-evolution-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-evolution-mailbox.gob"
+
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+
+#line 19 "mn-evolution-mailbox-private.h"
+struct _MNEvolutionMailboxPrivate {
+#line 54 "mn-evolution-mailbox.gob"
+ MNCORBAObject * glue;
+#line 55 "mn-evolution-mailbox.gob"
+ Bonobo_Listener listener;
+#line 25 "mn-evolution-mailbox-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox-properties-private.h b/src/mn-evolution-mailbox-properties-private.h
@@ -0,0 +1,43 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_EVOLUTION_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_EVOLUTION_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-evolution-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-evolution-mailbox-properties.gob"
+
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+
+#line 19 "mn-evolution-mailbox-properties-private.h"
+struct _MNEvolutionMailboxPropertiesPrivate {
+#line 41 "mn-evolution-mailbox-properties.gob"
+ GtkWidget * child;
+#line 42 "mn-evolution-mailbox-properties.gob"
+ GtkWidget * tree;
+#line 44 "mn-evolution-mailbox-properties.gob"
+ char * uri;
+#line 45 "mn-evolution-mailbox-properties.gob"
+ char * name;
+#line 47 "mn-evolution-mailbox-properties.gob"
+ MNCORBAObject * glue;
+#line 48 "mn-evolution-mailbox-properties.gob"
+ MNCORBAObject * control;
+#line 50 "mn-evolution-mailbox-properties.gob"
+ Bonobo_PropertyBag pbag;
+#line 52 "mn-evolution-mailbox-properties.gob"
+ Bonobo_Listener listener;
+#line 37 "mn-evolution-mailbox-properties-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox-properties.c b/src/mn-evolution-mailbox-properties.c
@@ -0,0 +1,572 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-evolution-mailbox-properties.h"
+
+#include "mn-evolution-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 30 "mn-evolution-mailbox-properties.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonoboui.h>
+#include "mn-evolution.h"
+#include "mn-evolution-mailbox.h"
+#include "mn-stock.h"
+
+#line 36 "mn-evolution-mailbox-properties.c"
+/* self casting macros */
+#define SELF(x) MN_EVOLUTION_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_EVOLUTION_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_EVOLUTION_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_EVOLUTION_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_EVOLUTION_MAILBOX_PROPERTIES_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNEvolutionMailboxProperties Self;
+typedef MNEvolutionMailboxPropertiesClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_evolution_mailbox_properties_class_init (MNEvolutionMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_init (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void ___3_mn_evolution_mailbox_properties_dispose (GObject * object) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_update_contents (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_contact_error (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_set_widget (MNEvolutionMailboxProperties * self, GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_selected_uri_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_sync (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void ___9_mn_evolution_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___a_mn_evolution_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_COMPLETE,
+ PROP_DEFAULT_NAME
+};
+
+/* pointer to the class of our parent */
+static MNMailboxPropertiesClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_update_contents mn_evolution_mailbox_properties_update_contents
+#define self_contact_error mn_evolution_mailbox_properties_contact_error
+#define self_set_widget mn_evolution_mailbox_properties_set_widget
+#define self_selected_uri_changed_cb mn_evolution_mailbox_properties_selected_uri_changed_cb
+#define self_sync mn_evolution_mailbox_properties_sync
+GType
+mn_evolution_mailbox_properties_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNEvolutionMailboxPropertiesClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_evolution_mailbox_properties_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNEvolutionMailboxProperties),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_evolution_mailbox_properties_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNEvolutionMailboxProperties", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNEvolutionMailboxProperties *)g_object_new(mn_evolution_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNEvolutionMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNEvolutionMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNEvolutionMailboxProperties *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNEvolutionMailboxProperties *)g_object_new_valist (mn_evolution_mailbox_properties_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::dispose"
+ MNEvolutionMailboxProperties *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX_PROPERTIES (obj_self);
+#line 81 "mn-evolution-mailbox-properties.gob"
+ ___3_mn_evolution_mailbox_properties_dispose(obj_self);
+#line 128 "mn-evolution-mailbox-properties.c"
+#line 47 "mn-evolution-mailbox-properties.gob"
+ if(self->_priv->glue) { g_object_unref ((gpointer) self->_priv->glue); self->_priv->glue = NULL; }
+#line 131 "mn-evolution-mailbox-properties.c"
+#line 48 "mn-evolution-mailbox-properties.gob"
+ if(self->_priv->control) { g_object_unref ((gpointer) self->_priv->control); self->_priv->control = NULL; }
+#line 134 "mn-evolution-mailbox-properties.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::finalize"
+ MNEvolutionMailboxProperties *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX_PROPERTIES (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 44 "mn-evolution-mailbox-properties.gob"
+ if(self->_priv->uri) { g_free ((gpointer) self->_priv->uri); self->_priv->uri = NULL; }
+#line 149 "mn-evolution-mailbox-properties.c"
+#line 45 "mn-evolution-mailbox-properties.gob"
+ if(self->_priv->name) { g_free ((gpointer) self->_priv->name); self->_priv->name = NULL; }
+#line 152 "mn-evolution-mailbox-properties.c"
+#define pbag (self->_priv->pbag)
+#define VAR pbag
+ {
+#line 51 "mn-evolution-mailbox-properties.gob"
+ CORBA_Object_release(VAR, NULL); }
+#line 158 "mn-evolution-mailbox-properties.c"
+ memset(&pbag, 0, sizeof(pbag));
+#undef VAR
+#undef pbag
+}
+#undef __GOB_FUNCTION__
+
+#line 60 "mn-evolution-mailbox-properties.gob"
+static void
+mn_evolution_mailbox_properties_class_init (MNEvolutionMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 168 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
+
+ g_type_class_add_private(class,sizeof(MNEvolutionMailboxPropertiesPrivate));
+
+ parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
+
+#line 81 "mn-evolution-mailbox-properties.gob"
+ g_object_class->dispose = ___dispose;
+#line 249 "mn-evolution-mailbox-properties.gob"
+ mn_mailbox_properties_class->set_mailbox = ___9_mn_evolution_mailbox_properties_set_mailbox;
+#line 265 "mn-evolution-mailbox-properties.gob"
+ mn_mailbox_properties_class->get_mailbox = ___a_mn_evolution_mailbox_properties_get_mailbox;
+#line 184 "mn-evolution-mailbox-properties.c"
+ g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ {
+ g_object_class_override_property (g_object_class,
+ PROP_COMPLETE,
+ "complete");
+ g_object_class_override_property (g_object_class,
+ PROP_DEFAULT_NAME,
+ "default_name");
+ }
+ {
+#line 61 "mn-evolution-mailbox-properties.gob"
+
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+ p_class->type = "evolution";
+ p_class->stock_id = MN_STOCK_EVOLUTION_MAILBOX;
+ p_class->combo_label = "Evolution";
+ p_class->section_label = _("Folder");
+
+#line 205 "mn-evolution-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 70 "mn-evolution-mailbox-properties.gob"
+static void
+mn_evolution_mailbox_properties_init (MNEvolutionMailboxProperties * self G_GNUC_UNUSED)
+#line 212 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::init"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES,MNEvolutionMailboxPropertiesPrivate);
+#line 30 "mn-evolution-mailbox-properties.gob"
+ self->_priv->pbag = CORBA_OBJECT_NIL;
+#line 218 "mn-evolution-mailbox-properties.c"
+#line 51 "mn-evolution-mailbox-properties.gob"
+ self->_priv->listener = CORBA_OBJECT_NIL;
+#line 221 "mn-evolution-mailbox-properties.c"
+ {
+#line 71 "mn-evolution-mailbox-properties.gob"
+
+ selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+ g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(self_update_contents), self);
+
+ selfp->control = mn_corba_object_new(MN_EVOLUTION_FOLDER_TREE_CONTROL_IID);
+ g_signal_connect_swapped(selfp->control, "notify::object", G_CALLBACK(self_update_contents), self);
+
+ self_update_contents(self);
+
+#line 233 "mn-evolution-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::get_property"
+{
+ MNEvolutionMailboxProperties *self G_GNUC_UNUSED;
+
+ self = MN_EVOLUTION_MAILBOX_PROPERTIES (object);
+
+ switch (property_id) {
+ case PROP_COMPLETE:
+ {
+#line 55 "mn-evolution-mailbox-properties.gob"
+ g_value_set_boolean(VAL, selfp->tree != NULL && selfp->uri != NULL);
+#line 254 "mn-evolution-mailbox-properties.c"
+ }
+ break;
+ case PROP_DEFAULT_NAME:
+ {
+#line 58 "mn-evolution-mailbox-properties.gob"
+ g_value_set_string(VAL, selfp->name);
+#line 261 "mn-evolution-mailbox-properties.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 81 "mn-evolution-mailbox-properties.gob"
+static void
+___3_mn_evolution_mailbox_properties_dispose (GObject * object G_GNUC_UNUSED)
+#line 281 "mn-evolution-mailbox-properties.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->dispose) \
+ (* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::dispose"
+{
+#line 83 "mn-evolution-mailbox-properties.gob"
+
+ Self *self = SELF(object);
+
+ /*
+ * We are no longer operational after dispose (see unrefwith
+ * above), so we must remove our listener.
+ */
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ g_assert(selfp->pbag != CORBA_OBJECT_NIL);
+
+ bonobo_event_source_client_remove_listener(selfp->pbag, selfp->listener, NULL);
+
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+
+ PARENT_HANDLER(object);
+ }}
+#line 308 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 103 "mn-evolution-mailbox-properties.gob"
+static void
+mn_evolution_mailbox_properties_update_contents (MNEvolutionMailboxProperties * self)
+#line 315 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::update_contents"
+#line 103 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 103 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 322 "mn-evolution-mailbox-properties.c"
+{
+#line 105 "mn-evolution-mailbox-properties.gob"
+
+ GNOME_MailNotification_Evolution_Glue glue;
+ Bonobo_Control control;
+ GtkWidget *tree = NULL;
+
+ glue = mn_corba_object_get_object(selfp->glue);
+ control = mn_corba_object_get_object(selfp->control);
+
+ if (glue != CORBA_OBJECT_NIL && control != CORBA_OBJECT_NIL)
+ {
+ BonoboControlFrame *frame;
+
+ tree = bonobo_widget_new_control_from_objref(control, CORBA_OBJECT_NIL);
+
+ frame = bonobo_widget_get_control_frame(BONOBO_WIDGET(tree));
+
+ selfp->pbag = bonobo_control_frame_get_control_property_bag(frame, NULL);
+ if (selfp->pbag != CORBA_OBJECT_NIL)
+ {
+ selfp->listener = bonobo_event_source_client_add_listener_full(selfp->pbag,
+ g_cclosure_new(G_CALLBACK(self_selected_uri_changed_cb), self, NULL),
+ "Bonobo/Property:change:selected-uri",
+ NULL);
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ /* give the folder tree a decent height */
+ gtk_widget_set_size_request(tree, -1, 150);
+
+ self_set_widget(self, selfp->tree = tree);
+ self_sync(self);
+
+ goto end; /* success */
+ }
+ }
+ }
+
+ /* failure */
+
+ if (tree)
+ gtk_widget_destroy(tree);
+ self_contact_error(self);
+
+ end:
+ CORBA_Object_release(glue, NULL);
+ CORBA_Object_release(control, NULL);
+ }}
+#line 371 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 152 "mn-evolution-mailbox-properties.gob"
+static void
+mn_evolution_mailbox_properties_contact_error (MNEvolutionMailboxProperties * self)
+#line 377 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::contact_error"
+#line 152 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 152 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 384 "mn-evolution-mailbox-properties.c"
+{
+#line 154 "mn-evolution-mailbox-properties.gob"
+
+ GtkWidget *label;
+
+ if (selfp->pbag != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(selfp->pbag, NULL);
+ selfp->pbag = CORBA_OBJECT_NIL;
+ }
+
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+
+ label = gtk_label_new(_("Mail Notification can not contact Evolution. Make sure that Evolution is running and that the Evolution Mail Notification plugin is loaded."));
+
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+
+ self_set_widget(self, label);
+ selfp->tree = NULL;
+
+ g_object_notify(G_OBJECT(self), "complete");
+ }}
+#line 412 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 180 "mn-evolution-mailbox-properties.gob"
+static void
+mn_evolution_mailbox_properties_set_widget (MNEvolutionMailboxProperties * self, GtkWidget * widget)
+#line 418 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::set_widget"
+#line 180 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 180 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 180 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (widget != NULL);
+#line 180 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 429 "mn-evolution-mailbox-properties.c"
+{
+#line 182 "mn-evolution-mailbox-properties.gob"
+
+ if (selfp->child)
+ gtk_widget_destroy(selfp->child);
+
+ gtk_widget_show(widget);
+ gtk_box_pack_start(GTK_BOX(self), widget, TRUE, TRUE, 0);
+
+ selfp->child = widget;
+ }}
+#line 441 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 192 "mn-evolution-mailbox-properties.gob"
+static void
+mn_evolution_mailbox_properties_selected_uri_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data)
+#line 447 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::selected_uri_changed_cb"
+{
+#line 198 "mn-evolution-mailbox-properties.gob"
+
+ Self *self = user_data;
+ const char *uri;
+ CORBA_string name = NULL;
+
+ uri = BONOBO_ARG_GET_STRING(any);
+
+ if (uri && *uri)
+ {
+ GNOME_MailNotification_Evolution_Glue glue;
+ CORBA_Environment name_env;
+
+ glue = mn_corba_object_get_object(selfp->glue);
+ if (glue != CORBA_OBJECT_NIL)
+ {
+ CORBA_exception_init(&name_env);
+
+ name = GNOME_MailNotification_Evolution_Glue_getFolderName(glue, uri, &name_env);
+ if (BONOBO_EX(&name_env))
+ name = NULL;
+
+ CORBA_exception_free(&name_env);
+
+ CORBA_Object_release(glue, NULL);
+ }
+
+ if (! name)
+ uri = NULL;
+ }
+
+ g_free(selfp->uri);
+ selfp->uri = g_strdup(uri);
+
+ g_free(selfp->name);
+ selfp->name = g_strdup(name);
+
+ CORBA_free(name);
+
+ g_object_notify(G_OBJECT(self), "complete");
+ g_object_notify(G_OBJECT(self), "default-name");
+ }}
+#line 493 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 240 "mn-evolution-mailbox-properties.gob"
+static void
+mn_evolution_mailbox_properties_sync (MNEvolutionMailboxProperties * self)
+#line 499 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::sync"
+#line 240 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 240 "mn-evolution-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 506 "mn-evolution-mailbox-properties.c"
+{
+#line 242 "mn-evolution-mailbox-properties.gob"
+
+ g_return_if_fail(selfp->tree != NULL);
+
+ if (selfp->uri)
+ bonobo_widget_set_property(BONOBO_WIDGET(selfp->tree), "selected-uri", BONOBO_ARG_STRING, selfp->uri, NULL);
+ }}
+#line 515 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 249 "mn-evolution-mailbox-properties.gob"
+static void
+___9_mn_evolution_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 521 "mn-evolution-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+ { if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::set_mailbox"
+{
+#line 251 "mn-evolution-mailbox-properties.gob"
+
+ Self *self = SELF(properties);
+ MNEvolutionMailbox *evolution_mailbox = MN_EVOLUTION_MAILBOX(mailbox);
+
+ g_free(selfp->uri);
+ selfp->uri = g_strdup(evolution_mailbox->uri);
+
+ g_free(selfp->name);
+ selfp->name = g_strdup(evolution_mailbox->folder_name);
+
+ if (selfp->tree)
+ self_sync(self);
+ }}
+#line 542 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 265 "mn-evolution-mailbox-properties.gob"
+static MNMailbox *
+___a_mn_evolution_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 549 "mn-evolution-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+ ((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+ ((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::get_mailbox"
+{
+#line 267 "mn-evolution-mailbox-properties.gob"
+
+ Self *self = SELF(properties);
+ MNMailbox *mailbox;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ g_object_set(mailbox,
+ "uri", selfp->uri,
+ "folder-name", selfp->name,
+ NULL);
+
+ return mailbox;
+ }}
+#line 571 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-evolution-mailbox-properties.gob b/src/mn-evolution-mailbox-properties.gob
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-mailbox-properties.h"
+%}
+
+%privateheader{
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonoboui.h>
+#include "mn-evolution.h"
+#include "mn-evolution-mailbox.h"
+#include "mn-stock.h"
+%}
+
+class MN:Evolution:Mailbox:Properties from MN:Mailbox:Properties
+{
+ private GtkWidget *child;
+ private GtkWidget *tree;
+
+ private char *uri destroywith g_free;
+ private char *name destroywith g_free;
+
+ private MNCORBAObject *glue unrefwith g_object_unref;
+ private MNCORBAObject *control unrefwith g_object_unref;
+
+ private Bonobo_PropertyBag pbag = CORBA_OBJECT_NIL
+ destroy { CORBA_Object_release(VAR, NULL); };
+ private Bonobo_Listener listener = CORBA_OBJECT_NIL;
+
+ property BOOLEAN complete (override)
+ get { g_value_set_boolean(VAL, selfp->tree != NULL && selfp->uri != NULL); };
+
+ property STRING default_name (override)
+ get { g_value_set_string(VAL, selfp->name); };
+
+ class_init (class)
+ {
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+ p_class->type = "evolution";
+ p_class->stock_id = MN_STOCK_EVOLUTION_MAILBOX;
+ p_class->combo_label = "Evolution";
+ p_class->section_label = _("Folder");
+ }
+
+ init (self)
+ {
+ selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+ g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(self_update_contents), self);
+
+ selfp->control = mn_corba_object_new(MN_EVOLUTION_FOLDER_TREE_CONTROL_IID);
+ g_signal_connect_swapped(selfp->control, "notify::object", G_CALLBACK(self_update_contents), self);
+
+ self_update_contents(self);
+ }
+
+ override (G:Object) void
+ dispose (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ /*
+ * We are no longer operational after dispose (see unrefwith
+ * above), so we must remove our listener.
+ */
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ g_assert(selfp->pbag != CORBA_OBJECT_NIL);
+
+ bonobo_event_source_client_remove_listener(selfp->pbag, selfp->listener, NULL);
+
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+
+ PARENT_HANDLER(object);
+ }
+
+ private void
+ update_contents (self)
+ {
+ GNOME_MailNotification_Evolution_Glue glue;
+ Bonobo_Control control;
+ GtkWidget *tree = NULL;
+
+ glue = mn_corba_object_get_object(selfp->glue);
+ control = mn_corba_object_get_object(selfp->control);
+
+ if (glue != CORBA_OBJECT_NIL && control != CORBA_OBJECT_NIL)
+ {
+ BonoboControlFrame *frame;
+
+ tree = bonobo_widget_new_control_from_objref(control, CORBA_OBJECT_NIL);
+
+ frame = bonobo_widget_get_control_frame(BONOBO_WIDGET(tree));
+
+ selfp->pbag = bonobo_control_frame_get_control_property_bag(frame, NULL);
+ if (selfp->pbag != CORBA_OBJECT_NIL)
+ {
+ selfp->listener = bonobo_event_source_client_add_listener_full(selfp->pbag,
+ g_cclosure_new(G_CALLBACK(self_selected_uri_changed_cb), self, NULL),
+ "Bonobo/Property:change:selected-uri",
+ NULL);
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ /* give the folder tree a decent height */
+ gtk_widget_set_size_request(tree, -1, 150);
+
+ self_set_widget(self, selfp->tree = tree);
+ self_sync(self);
+
+ goto end; /* success */
+ }
+ }
+ }
+
+ /* failure */
+
+ if (tree)
+ gtk_widget_destroy(tree);
+ self_contact_error(self);
+
+ end:
+ CORBA_Object_release(glue, NULL);
+ CORBA_Object_release(control, NULL);
+ }
+
+ private void
+ contact_error (self)
+ {
+ GtkWidget *label;
+
+ if (selfp->pbag != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(selfp->pbag, NULL);
+ selfp->pbag = CORBA_OBJECT_NIL;
+ }
+
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+
+ label = gtk_label_new(_("Mail Notification can not contact Evolution. Make sure that Evolution is running and that the Evolution Mail Notification plugin is loaded."));
+
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+
+ self_set_widget(self, label);
+ selfp->tree = NULL;
+
+ g_object_notify(G_OBJECT(self), "complete");
+ }
+
+ private void
+ set_widget (self, Gtk:Widget *widget (check null type))
+ {
+ if (selfp->child)
+ gtk_widget_destroy(selfp->child);
+
+ gtk_widget_show(widget);
+ gtk_box_pack_start(GTK_BOX(self), widget, TRUE, TRUE, 0);
+
+ selfp->child = widget;
+ }
+
+ private void
+ selected_uri_changed_cb (BonoboListener *listener,
+ const char *event_name,
+ const CORBA_any *any,
+ CORBA_Environment *env,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+ const char *uri;
+ CORBA_string name = NULL;
+
+ uri = BONOBO_ARG_GET_STRING(any);
+
+ if (uri && *uri)
+ {
+ GNOME_MailNotification_Evolution_Glue glue;
+ CORBA_Environment name_env;
+
+ glue = mn_corba_object_get_object(selfp->glue);
+ if (glue != CORBA_OBJECT_NIL)
+ {
+ CORBA_exception_init(&name_env);
+
+ name = GNOME_MailNotification_Evolution_Glue_getFolderName(glue, uri, &name_env);
+ if (BONOBO_EX(&name_env))
+ name = NULL;
+
+ CORBA_exception_free(&name_env);
+
+ CORBA_Object_release(glue, NULL);
+ }
+
+ if (! name)
+ uri = NULL;
+ }
+
+ g_free(selfp->uri);
+ selfp->uri = g_strdup(uri);
+
+ g_free(selfp->name);
+ selfp->name = g_strdup(name);
+
+ CORBA_free(name);
+
+ g_object_notify(G_OBJECT(self), "complete");
+ g_object_notify(G_OBJECT(self), "default-name");
+ }
+
+ private void
+ sync (self)
+ {
+ g_return_if_fail(selfp->tree != NULL);
+
+ if (selfp->uri)
+ bonobo_widget_set_property(BONOBO_WIDGET(selfp->tree), "selected-uri", BONOBO_ARG_STRING, selfp->uri, NULL);
+ }
+
+ override (MN:Mailbox:Properties) void
+ set_mailbox (MNMailboxProperties *properties, MNMailbox *mailbox)
+ {
+ Self *self = SELF(properties);
+ MNEvolutionMailbox *evolution_mailbox = MN_EVOLUTION_MAILBOX(mailbox);
+
+ g_free(selfp->uri);
+ selfp->uri = g_strdup(evolution_mailbox->uri);
+
+ g_free(selfp->name);
+ selfp->name = g_strdup(evolution_mailbox->folder_name);
+
+ if (selfp->tree)
+ self_sync(self);
+ }
+
+ override (MN:Mailbox:Properties) MNMailbox *
+ get_mailbox (MNMailboxProperties *properties)
+ {
+ Self *self = SELF(properties);
+ MNMailbox *mailbox;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ g_object_set(mailbox,
+ "uri", selfp->uri,
+ "folder-name", selfp->name,
+ NULL);
+
+ return mailbox;
+ }
+}
diff --git a/src/mn-evolution-mailbox-properties.h b/src/mn-evolution-mailbox-properties.h
@@ -0,0 +1,74 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-mailbox-properties.h"
+
+#ifndef __MN_EVOLUTION_MAILBOX_PROPERTIES_H__
+#define __MN_EVOLUTION_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES (mn_evolution_mailbox_properties_get_type())
+#define MN_EVOLUTION_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxProperties)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxProperties const)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxPropertiesClass)
+#define MN_IS_EVOLUTION_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_evolution_mailbox_properties_get_type ())
+
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxPropertiesClass)
+
+/* Private structure type */
+typedef struct _MNEvolutionMailboxPropertiesPrivate MNEvolutionMailboxPropertiesPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_EVOLUTION_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_EVOLUTION_MAILBOX_PROPERTIES__
+typedef struct _MNEvolutionMailboxProperties MNEvolutionMailboxProperties;
+#endif
+struct _MNEvolutionMailboxProperties {
+ MNMailboxProperties __parent__;
+ /*< private >*/
+ MNEvolutionMailboxPropertiesPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNEvolutionMailboxPropertiesClass MNEvolutionMailboxPropertiesClass;
+struct _MNEvolutionMailboxPropertiesClass {
+ MNMailboxPropertiesClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_evolution_mailbox_properties_get_type (void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox.c b/src/mn-evolution-mailbox.c
@@ -0,0 +1,541 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-evolution-mailbox.h"
+
+#include "mn-evolution-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 30 "mn-evolution-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonobo.h>
+#include "mn-evolution.h"
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-message.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+
+#line 39 "mn-evolution-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_EVOLUTION_MAILBOX(x)
+#define SELF_CONST(x) MN_EVOLUTION_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_EVOLUTION_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_EVOLUTION_MAILBOX
+#define SELF_CLASS(x) MN_EVOLUTION_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_EVOLUTION_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNEvolutionMailbox Self;
+typedef MNEvolutionMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_evolution_mailbox_init (MNEvolutionMailbox * o) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_class_init (MNEvolutionMailboxClass * class) G_GNUC_UNUSED;
+static GObject * ___2_mn_evolution_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___3_mn_evolution_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_evolution_mailbox_dispose (GObject * object) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_folder_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data) G_GNUC_UNUSED;
+static void ___6_mn_evolution_mailbox_impl_check (MNReentrantMailbox * mailbox, unsigned long check_id) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_URI,
+ PROP_FOLDER_NAME
+};
+
+/* pointer to the class of our parent */
+static MNReentrantMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_folder_changed_cb mn_evolution_mailbox_folder_changed_cb
+GType
+mn_evolution_mailbox_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNEvolutionMailboxClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_evolution_mailbox_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNEvolutionMailbox),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_evolution_mailbox_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_REENTRANT_MAILBOX, "MNEvolutionMailbox", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNEvolutionMailbox *)g_object_new(mn_evolution_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNEvolutionMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNEvolutionMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNEvolutionMailbox *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNEvolutionMailbox *)g_object_new_valist (mn_evolution_mailbox_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::dispose"
+ MNEvolutionMailbox *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX (obj_self);
+#line 89 "mn-evolution-mailbox.gob"
+ ___4_mn_evolution_mailbox_dispose(obj_self);
+#line 125 "mn-evolution-mailbox.c"
+#line 54 "mn-evolution-mailbox.gob"
+ if(self->_priv->glue) { g_object_unref ((gpointer) self->_priv->glue); self->_priv->glue = NULL; }
+#line 128 "mn-evolution-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::finalize"
+ MNEvolutionMailbox *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 44 "mn-evolution-mailbox.gob"
+ if(self->uri) { g_free ((gpointer) self->uri); self->uri = NULL; }
+#line 143 "mn-evolution-mailbox.c"
+#line 51 "mn-evolution-mailbox.gob"
+ if(self->folder_name) { g_free ((gpointer) self->folder_name); self->folder_name = NULL; }
+#line 146 "mn-evolution-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_evolution_mailbox_init (MNEvolutionMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_EVOLUTION_MAILBOX,MNEvolutionMailboxPrivate);
+#line 30 "mn-evolution-mailbox.gob"
+ o->_priv->listener = CORBA_OBJECT_NIL;
+#line 157 "mn-evolution-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+#line 57 "mn-evolution-mailbox.gob"
+static void
+mn_evolution_mailbox_class_init (MNEvolutionMailboxClass * class G_GNUC_UNUSED)
+#line 163 "mn-evolution-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+ MNReentrantMailboxClass *mn_reentrant_mailbox_class = (MNReentrantMailboxClass *)class;
+
+ g_type_class_add_private(class,sizeof(MNEvolutionMailboxPrivate));
+
+ parent_class = g_type_class_ref (MN_TYPE_REENTRANT_MAILBOX);
+
+#line 64 "mn-evolution-mailbox.gob"
+ g_object_class->constructor = ___2_mn_evolution_mailbox_constructor;
+#line 80 "mn-evolution-mailbox.gob"
+ mn_mailbox_class->seal = ___3_mn_evolution_mailbox_seal;
+#line 89 "mn-evolution-mailbox.gob"
+ g_object_class->dispose = ___dispose;
+#line 133 "mn-evolution-mailbox.gob"
+ mn_reentrant_mailbox_class->impl_check = ___6_mn_evolution_mailbox_impl_check;
+#line 182 "mn-evolution-mailbox.c"
+ g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_string
+ ("uri" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_URI,
+ param_spec);
+ param_spec = g_param_spec_string
+ ("folder_name" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_FOLDER_NAME,
+ param_spec);
+ }
+ {
+#line 58 "mn-evolution-mailbox.gob"
+
+ MN_MAILBOX_CLASS(class)->type = "evolution";
+
+ bonobo_exception_add_handler_str(ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound, _("folder not found"));
+
+#line 215 "mn-evolution-mailbox.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::set_property"
+{
+ MNEvolutionMailbox *self G_GNUC_UNUSED;
+
+ self = MN_EVOLUTION_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_URI:
+ {
+#line 45 "mn-evolution-mailbox.gob"
+{ char *old = self->uri; self->uri = g_value_dup_string (VAL); g_free (old); }
+#line 236 "mn-evolution-mailbox.c"
+ }
+ break;
+ case PROP_FOLDER_NAME:
+ {
+#line 52 "mn-evolution-mailbox.gob"
+{ char *old = self->folder_name; self->folder_name = g_value_dup_string (VAL); g_free (old); }
+#line 243 "mn-evolution-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::get_property"
+{
+ MNEvolutionMailbox *self G_GNUC_UNUSED;
+
+ self = MN_EVOLUTION_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_URI:
+ {
+#line 45 "mn-evolution-mailbox.gob"
+g_value_set_string (VAL, self->uri);
+#line 274 "mn-evolution-mailbox.c"
+ }
+ break;
+ case PROP_FOLDER_NAME:
+ {
+#line 52 "mn-evolution-mailbox.gob"
+g_value_set_string (VAL, self->folder_name);
+#line 281 "mn-evolution-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 64 "mn-evolution-mailbox.gob"
+static GObject *
+___2_mn_evolution_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 301 "mn-evolution-mailbox.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+ ((G_OBJECT_CLASS(parent_class)->constructor)? \
+ (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+ ((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::constructor"
+{
+#line 66 "mn-evolution-mailbox.gob"
+
+ GObject *object;
+ MNMailbox *mailbox;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ mailbox = MN_MAILBOX(object);
+
+ mn_mailbox_set_format(mailbox, "Evolution");
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_EVOLUTION_MAILBOX);
+ mn_mailbox_set_must_poll(mailbox, FALSE);
+
+ return object;
+ }}
+#line 323 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 80 "mn-evolution-mailbox.gob"
+static void
+___3_mn_evolution_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 330 "mn-evolution-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::seal"
+{
+#line 82 "mn-evolution-mailbox.gob"
+
+ PARENT_HANDLER(mailbox);
+
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = g_strdup(SELF(mailbox)->folder_name);
+ }}
+#line 344 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 89 "mn-evolution-mailbox.gob"
+static void
+___4_mn_evolution_mailbox_dispose (GObject * object G_GNUC_UNUSED)
+#line 351 "mn-evolution-mailbox.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->dispose) \
+ (* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::dispose"
+{
+#line 91 "mn-evolution-mailbox.gob"
+
+ Self *self = SELF(object);
+
+ /*
+ * We are no longer operational after dispose (see unrefwith
+ * above), so we must remove our listener.
+ */
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ GNOME_MailNotification_Evolution_Glue glue;
+
+ g_assert(selfp->glue != NULL);
+
+ glue = mn_corba_object_get_object(selfp->glue);
+ if (glue != CORBA_OBJECT_NIL)
+ {
+ bonobo_event_source_client_remove_listener(glue, selfp->listener, NULL);
+ CORBA_Object_release(glue, NULL);
+ }
+
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+
+ PARENT_HANDLER(object);
+ }}
+#line 385 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 118 "mn-evolution-mailbox.gob"
+static void
+mn_evolution_mailbox_folder_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data)
+#line 392 "mn-evolution-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::folder_changed_cb"
+{
+#line 124 "mn-evolution-mailbox.gob"
+
+ Self *self = user_data;
+ const char *uri;
+
+ uri = BONOBO_ARG_GET_STRING(any);
+ if (! strcmp(uri, self->uri))
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+ }}
+#line 405 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 133 "mn-evolution-mailbox.gob"
+static void
+___6_mn_evolution_mailbox_impl_check (MNReentrantMailbox * mailbox G_GNUC_UNUSED, unsigned long check_id)
+#line 411 "mn-evolution-mailbox.c"
+#define PARENT_HANDLER(___mailbox,___check_id) \
+ { if(MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check) \
+ (* MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::impl_check"
+{
+#line 135 "mn-evolution-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+ GNOME_MailNotification_Evolution_Glue glue;
+ CORBA_Environment env;
+ CORBA_sequence_GNOME_MailNotification_Evolution_Message *message_seq;
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (! selfp->glue)
+ {
+ selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+ g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(mn_reentrant_mailbox_queue_check), self);
+ }
+
+ glue = mn_corba_object_get_object(selfp->glue);
+
+ if (glue == CORBA_OBJECT_NIL)
+ {
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+ }
+ else
+ {
+ if (selfp->listener == CORBA_OBJECT_NIL)
+ selfp->listener = bonobo_event_source_client_add_listener_full(glue,
+ g_cclosure_new(G_CALLBACK(self_folder_changed_cb), self, NULL),
+ MN_EVOLUTION_EVENT_PREFIX ":" MN_EVOLUTION_EVENT_FOLDER_CHANGED,
+ NULL);
+ }
+
+ if (selfp->listener == CORBA_OBJECT_NIL && glue != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(glue, NULL);
+ glue = CORBA_OBJECT_NIL;
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (glue == CORBA_OBJECT_NIL)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to contact Evolution"));
+
+ if (MN_MAILBOX(self)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return;
+ }
+
+ CORBA_exception_init(&env);
+
+ message_seq = GNOME_MailNotification_Evolution_Glue_getUnseenMessages(glue, self->uri, &env);
+
+ if (BONOBO_EX(&env))
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ char *errmsg;
+
+ errmsg = bonobo_exception_get_text(&env);
+ mn_mailbox_set_error(MN_MAILBOX(self), "%s", errmsg);
+ g_free(errmsg);
+
+ if (! MN_MAILBOX(self)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ else
+ {
+ int i;
+ GSList *messages = NULL;
+
+ for (i = 0; i < message_seq->_length; i++)
+ {
+ messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(mailbox),
+ NULL,
+ message_seq->_buffer[i].sent_time,
+ message_seq->_buffer[i].id,
+ message_seq->_buffer[i].from,
+ message_seq->_buffer[i].subject));
+
+ if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+ break;
+ }
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+
+ if (MN_MAILBOX(self)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ CORBA_free(message_seq);
+ }
+
+ CORBA_exception_free(&env);
+ CORBA_Object_release(glue, NULL);
+ }}
+#line 540 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-evolution-mailbox.gob b/src/mn-evolution-mailbox.gob
@@ -0,0 +1,256 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-reentrant-mailbox.h"
+%}
+
+%privateheader{
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonobo.h>
+#include "mn-evolution.h"
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-message.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+%}
+
+class MN:Evolution:Mailbox from MN:Reentrant:Mailbox
+{
+ public char *uri destroywith g_free;
+ property STRING uri (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+ /*
+ * Evolution might not be running when we instantiate the mailbox,
+ * so we cache the folder name.
+ */
+ public char *folder_name destroywith g_free;
+ property STRING folder_name (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+ private MNCORBAObject *glue unrefwith g_object_unref;
+ private Bonobo_Listener listener = CORBA_OBJECT_NIL;
+
+ class_init (class)
+ {
+ MN_MAILBOX_CLASS(class)->type = "evolution";
+
+ bonobo_exception_add_handler_str(ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound, _("folder not found"));
+ }
+
+ override (G:Object) GObject *
+ constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ {
+ GObject *object;
+ MNMailbox *mailbox;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ mailbox = MN_MAILBOX(object);
+
+ mn_mailbox_set_format(mailbox, "Evolution");
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_EVOLUTION_MAILBOX);
+ mn_mailbox_set_must_poll(mailbox, FALSE);
+
+ return object;
+ }
+
+ override (MN:Mailbox) void
+ seal (MNMailbox *mailbox)
+ {
+ PARENT_HANDLER(mailbox);
+
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = g_strdup(SELF(mailbox)->folder_name);
+ }
+
+ override (G:Object) void
+ dispose (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ /*
+ * We are no longer operational after dispose (see unrefwith
+ * above), so we must remove our listener.
+ */
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ GNOME_MailNotification_Evolution_Glue glue;
+
+ g_assert(selfp->glue != NULL);
+
+ glue = mn_corba_object_get_object(selfp->glue);
+ if (glue != CORBA_OBJECT_NIL)
+ {
+ bonobo_event_source_client_remove_listener(glue, selfp->listener, NULL);
+ CORBA_Object_release(glue, NULL);
+ }
+
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+
+ PARENT_HANDLER(object);
+ }
+
+ private void
+ folder_changed_cb (BonoboListener *listener,
+ const char *event_name,
+ const CORBA_any *any,
+ CORBA_Environment *env,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+ const char *uri;
+
+ uri = BONOBO_ARG_GET_STRING(any);
+ if (! strcmp(uri, self->uri))
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+ }
+
+ override (MN:Reentrant:Mailbox) void
+ impl_check (MNReentrantMailbox *mailbox, unsigned long check_id)
+ {
+ Self *self = SELF(mailbox);
+ GNOME_MailNotification_Evolution_Glue glue;
+ CORBA_Environment env;
+ CORBA_sequence_GNOME_MailNotification_Evolution_Message *message_seq;
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (! selfp->glue)
+ {
+ selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+ g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(mn_reentrant_mailbox_queue_check), self);
+ }
+
+ glue = mn_corba_object_get_object(selfp->glue);
+
+ if (glue == CORBA_OBJECT_NIL)
+ {
+ if (selfp->listener != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(selfp->listener, NULL);
+ selfp->listener = CORBA_OBJECT_NIL;
+ }
+ }
+ else
+ {
+ if (selfp->listener == CORBA_OBJECT_NIL)
+ selfp->listener = bonobo_event_source_client_add_listener_full(glue,
+ g_cclosure_new(G_CALLBACK(self_folder_changed_cb), self, NULL),
+ MN_EVOLUTION_EVENT_PREFIX ":" MN_EVOLUTION_EVENT_FOLDER_CHANGED,
+ NULL);
+ }
+
+ if (selfp->listener == CORBA_OBJECT_NIL && glue != CORBA_OBJECT_NIL)
+ {
+ CORBA_Object_release(glue, NULL);
+ glue = CORBA_OBJECT_NIL;
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (glue == CORBA_OBJECT_NIL)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to contact Evolution"));
+
+ if (MN_MAILBOX(self)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return;
+ }
+
+ CORBA_exception_init(&env);
+
+ message_seq = GNOME_MailNotification_Evolution_Glue_getUnseenMessages(glue, self->uri, &env);
+
+ if (BONOBO_EX(&env))
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ char *errmsg;
+
+ errmsg = bonobo_exception_get_text(&env);
+ mn_mailbox_set_error(MN_MAILBOX(self), "%s", errmsg);
+ g_free(errmsg);
+
+ if (! MN_MAILBOX(self)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ else
+ {
+ int i;
+ GSList *messages = NULL;
+
+ for (i = 0; i < message_seq->_length; i++)
+ {
+ messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(mailbox),
+ NULL,
+ message_seq->_buffer[i].sent_time,
+ message_seq->_buffer[i].id,
+ message_seq->_buffer[i].from,
+ message_seq->_buffer[i].subject));
+
+ if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+ break;
+ }
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+
+ if (MN_MAILBOX(self)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ CORBA_free(message_seq);
+ }
+
+ CORBA_exception_free(&env);
+ CORBA_Object_release(glue, NULL);
+ }
+}
diff --git a/src/mn-evolution-mailbox.h b/src/mn-evolution-mailbox.h
@@ -0,0 +1,81 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-reentrant-mailbox.h"
+
+#ifndef __MN_EVOLUTION_MAILBOX_H__
+#define __MN_EVOLUTION_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_EVOLUTION_MAILBOX (mn_evolution_mailbox_get_type())
+#define MN_EVOLUTION_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_get_type(), MNEvolutionMailbox)
+#define MN_EVOLUTION_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_get_type(), MNEvolutionMailbox const)
+#define MN_EVOLUTION_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_evolution_mailbox_get_type(), MNEvolutionMailboxClass)
+#define MN_IS_EVOLUTION_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_evolution_mailbox_get_type ())
+
+#define MN_EVOLUTION_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_evolution_mailbox_get_type(), MNEvolutionMailboxClass)
+
+/* Private structure type */
+typedef struct _MNEvolutionMailboxPrivate MNEvolutionMailboxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_EVOLUTION_MAILBOX__
+#define __TYPEDEF_MN_EVOLUTION_MAILBOX__
+typedef struct _MNEvolutionMailbox MNEvolutionMailbox;
+#endif
+struct _MNEvolutionMailbox {
+ MNReentrantMailbox __parent__;
+ /*< public >*/
+ char * uri;
+ char * folder_name;
+ /*< private >*/
+ MNEvolutionMailboxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNEvolutionMailboxClass MNEvolutionMailboxClass;
+struct _MNEvolutionMailboxClass {
+ MNReentrantMailboxClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_evolution_mailbox_get_type (void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_EVOLUTION_MAILBOX_PROP_URI(arg) "uri", __extension__ ({gchar *z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_GET_PROP_URI(arg) "uri", __extension__ ({gchar **z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_PROP_FOLDER_NAME(arg) "folder_name", __extension__ ({gchar *z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_GET_PROP_FOLDER_NAME(arg) "folder_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_EVOLUTION_MAILBOX_PROP_URI(arg) "uri",(gchar *)(arg)
+#define MN_EVOLUTION_MAILBOX_GET_PROP_URI(arg) "uri",(gchar **)(arg)
+#define MN_EVOLUTION_MAILBOX_PROP_FOLDER_NAME(arg) "folder_name",(gchar *)(arg)
+#define MN_EVOLUTION_MAILBOX_GET_PROP_FOLDER_NAME(arg) "folder_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-plugin.c b/src/mn-evolution-plugin.c
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include <stdarg.h>
+#include <string.h>
+#include <libintl.h>
+#include <gtk/gtk.h>
+#include <libbonobo.h>
+#include <camel/camel-folder.h>
+
+/* headers from the Evolution source tree */
+#include "mail/em-event.h"
+
+#include "mn-evolution.h"
+#include "mn-evolution-glue.h"
+#include "mn-evolution-folder-tree-control.h"
+
+/*** cpp *********************************************************************/
+
+#define FACTORY "_Factory"
+
+/*** variables ***************************************************************/
+
+static GSList *glue_event_sources = NULL;
+
+/*** functions ***************************************************************/
+
+static void mn_evolution_plugin_error_dialog (const char *primary,
+ const char *format,
+ ...);
+static BonoboObject *mn_evolution_plugin_glue_factory_cb (BonoboGenericFactory *factory,
+ const char *iid,
+ gpointer closure);
+static gboolean mn_evolution_plugin_factory_create (const char *factory_iid,
+ BonoboFactoryCallback factory_cb,
+ gpointer user_data);
+
+/*** implementation **********************************************************/
+
+static void
+mn_evolution_plugin_error_dialog (const char *primary, const char *format, ...)
+{
+ GtkWidget *dialog;
+ va_list args;
+ char *secondary;
+
+ g_return_if_fail(primary != NULL);
+ g_return_if_fail(format != NULL);
+
+ dialog = gtk_message_dialog_new(NULL,
+ 0,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ "%s",
+ primary);
+
+ va_start(args, format);
+ secondary = g_strdup_vprintf(format, args);
+ va_end(args);
+
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", secondary);
+ g_free(secondary);
+
+ gtk_window_set_title(GTK_WINDOW(dialog), ""); /* HIG */
+
+ g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
+ gtk_widget_show(dialog);
+}
+
+static BonoboObject *
+mn_evolution_plugin_glue_factory_cb (BonoboGenericFactory *factory,
+ const char *iid,
+ gpointer closure)
+{
+ BonoboObject *object;
+ BonoboEventSource *event_source;
+
+ if (strcmp(iid, MN_EVOLUTION_GLUE_IID) != 0)
+ return NULL;
+
+ object = BONOBO_OBJECT(mn_evolution_glue_new());
+ event_source = bonobo_event_source_new();
+
+ glue_event_sources = g_slist_append(glue_event_sources, event_source);
+ bonobo_object_add_interface(object, BONOBO_OBJECT(event_source));
+
+ return object;
+}
+
+static gboolean
+mn_evolution_plugin_factory_create (const char *factory_iid,
+ BonoboFactoryCallback factory_cb,
+ gpointer user_data)
+{
+ BonoboGenericFactory *factory;
+ GClosure *closure;
+ Bonobo_RegistrationResult result;
+
+ g_return_val_if_fail(factory_iid != NULL, FALSE);
+ g_return_val_if_fail(factory_cb != NULL, FALSE);
+
+ factory = g_object_new(bonobo_generic_factory_get_type(), NULL);
+ closure = g_cclosure_new(G_CALLBACK(factory_cb), user_data, NULL);
+ bonobo_generic_factory_construct_noreg(factory, factory_iid, closure);
+
+ result = bonobo_activation_register_active_server(factory_iid, BONOBO_OBJREF(factory), NULL);
+ switch (result)
+ {
+ case Bonobo_ACTIVATION_REG_ALREADY_ACTIVE:
+ case Bonobo_ACTIVATION_REG_SUCCESS:
+ return TRUE;
+
+ case Bonobo_ACTIVATION_REG_NOT_LISTED:
+ mn_evolution_plugin_error_dialog(dgettext(GETTEXT_PACKAGE, "Unable to activate the Mail Notification plugin"), dgettext(GETTEXT_PACKAGE, "Bonobo could not locate the %s server. Please check your Mail Notification installation."), factory_iid);
+ return FALSE;
+
+ case Bonobo_ACTIVATION_REG_ERROR:
+ mn_evolution_plugin_error_dialog(dgettext(GETTEXT_PACKAGE, "Unable to activate the Mail Notification plugin"), dgettext(GETTEXT_PACKAGE, "Bonobo was unable to register the %s server. Please check your Mail Notification installation."), factory_iid);
+ return FALSE;
+
+ default:
+ g_return_val_if_reached(FALSE);
+ }
+}
+
+int
+e_plugin_lib_enable (EPluginLib *ep, int enable)
+{
+ static gboolean enabled = FALSE;
+
+ if (! enable || enabled)
+ return 0; /* success */
+
+ enabled = TRUE;
+
+ if (mn_evolution_plugin_factory_create(MN_EVOLUTION_GLUE_IID FACTORY, mn_evolution_plugin_glue_factory_cb, NULL)
+ && mn_evolution_plugin_factory_create(MN_EVOLUTION_FOLDER_TREE_CONTROL_IID FACTORY, mn_evolution_folder_tree_control_factory_cb, NULL))
+ return 0; /* success */
+ else
+ {
+ GSList *l;
+
+ for (l = glue_event_sources; l != NULL; l = l->next)
+ bonobo_object_release_unref(BONOBO_OBJREF(l->data), NULL);
+
+ g_slist_free(glue_event_sources);
+ glue_event_sources = NULL;
+
+ return 1; /* failure */
+ }
+}
+
+void
+org_gnome_mail_notification_folder_changed (EPlugin *plugin,
+ EMEventTargetFolder *folder)
+{
+ if (glue_event_sources)
+ {
+ BonoboArg *arg;
+ GSList *l;
+
+ arg = bonobo_arg_new(BONOBO_ARG_STRING);
+ BONOBO_ARG_SET_STRING(arg, folder->uri);
+
+ for (l = glue_event_sources; l != NULL; l = l->next)
+ bonobo_event_source_notify_listeners_full(l->data,
+ MN_EVOLUTION_EVENT_PREFIX,
+ MN_EVOLUTION_EVENT_FOLDER_CHANGED,
+ NULL,
+ arg,
+ NULL);
+
+ bonobo_arg_release(arg);
+ }
+}
diff --git a/src/mn-evolution.h b/src/mn-evolution.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _MN_EVOLUTION_H
+#define _MN_EVOLUTION_H
+
+#define MN_EVOLUTION_GLUE_IID "OAFIID:GNOME_MailNotification_Evolution_Glue"
+#define MN_EVOLUTION_FOLDER_TREE_CONTROL_IID "OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control"
+
+#define MN_EVOLUTION_EVENT_PREFIX "GNOME/MailNotification/Evolution"
+#define MN_EVOLUTION_EVENT_FOLDER_CHANGED "folder-changed"
+
+#endif /* _MN_EVOLUTION_H */
diff --git a/src/mn-gmail-mailbox-private.h b/src/mn-gmail-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_GMAIL_MAILBOX_PRIVATE_H__
#define __MN_GMAIL_MAILBOX_PRIVATE_H__
@@ -12,15 +12,13 @@ extern "C" {
#line 25 "mn-gmail-mailbox.gob"
-#include "mn-soup.h"
+#include <libgnomevfs/gnome-vfs.h>
#line 18 "mn-gmail-mailbox-private.h"
struct _MNGmailMailboxPrivate {
-#line 69 "mn-gmail-mailbox.gob"
- GHashTable * cookies;
-#line 70 "mn-gmail-mailbox.gob"
- gboolean logged_in;
-#line 24 "mn-gmail-mailbox-private.h"
+#line 59 "mn-gmail-mailbox.gob"
+ GnomeVFSURI * uri;
+#line 22 "mn-gmail-mailbox-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-gmail-mailbox-properties-private.h b/src/mn-gmail-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_GMAIL_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_GMAIL_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -10,13 +10,9 @@ extern "C" {
#endif /* __cplusplus */
struct _MNGmailMailboxPropertiesPrivate {
-#line 38 "mn-gmail-mailbox-properties.gob"
- GtkSizeGroup * size_group;
-#line 51 "mn-gmail-mailbox-properties.gob"
- GtkWidget * username_entry;
-#line 52 "mn-gmail-mailbox-properties.gob"
- GtkWidget * password_entry;
-#line 20 "mn-gmail-mailbox-properties-private.h"
+#line 44 "mn-gmail-mailbox-properties.gob"
+ char * location;
+#line 16 "mn-gmail-mailbox-properties-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-gmail-mailbox-properties.c b/src/mn-gmail-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,16 +23,19 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-gmail-mailbox-properties.gob"
+#line 26 "mn-gmail-mailbox-properties.gob"
#include "config.h"
#include <glib/gi18n.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
#include "mn-util.h"
#include "mn-properties-dialog.h"
+#include "mn-authenticated-mailbox.h"
+#include "mn-gmail-mailbox.h"
+#include "mn-stock.h"
-#line 36 "mn-gmail-mailbox-properties.c"
+#line 39 "mn-gmail-mailbox-properties.c"
/* self casting macros */
#define SELF(x) MN_GMAIL_MAILBOX_PROPERTIES(x)
#define SELF_CONST(x) MN_GMAIL_MAILBOX_PROPERTIES_CONST(x)
@@ -47,40 +50,19 @@ typedef MNGmailMailboxProperties Self;
typedef MNGmailMailboxPropertiesClass SelfClass;
/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * o) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static GObject * ___1_mn_gmail_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_gmail_mailbox_properties_get_uri (MNMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * self) G_GNUC_UNUSED;
+static void ___3_mn_gmail_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_gmail_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
enum {
PROP_0,
- PROP_LABEL,
- PROP_SIZE_GROUP,
- PROP_COMPLETE
+ PROP_DEFAULT_NAME
};
/* pointer to the class of our parent */
-static GtkVBoxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_entry_changed_h mn_gmail_mailbox_properties_entry_changed_h
-#define self_set_uri mn_gmail_mailbox_properties_set_uri
-#define self_get_uri mn_gmail_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 97 "mn-gmail-mailbox-properties.gob"
- iface->set_uri = self_set_uri;
-#line 112 "mn-gmail-mailbox-properties.gob"
- iface->get_uri = self_get_uri;
-#line 83 "mn-gmail-mailbox-properties.c"
-}
+static MNAuthenticatedMailboxPropertiesClass *parent_class = NULL;
GType
mn_gmail_mailbox_properties_get_type (void)
@@ -101,16 +83,7 @@ mn_gmail_mailbox_properties_get_type (void)
NULL
};
- static const GInterfaceInfo MN_Mailbox_Properties_info = {
- (GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
- NULL,
- NULL
- };
-
- type = g_type_register_static (GTK_TYPE_VBOX, "MNGmailMailboxProperties", &info, (GTypeFlags)0);
- g_type_add_interface_static (type,
- MN_TYPE_MAILBOX_PROPERTIES,
- &MN_Mailbox_Properties_info);
+ type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES, "MNGmailMailboxProperties", &info, (GTypeFlags)0);
}
return type;
@@ -135,20 +108,6 @@ GET_NEW_VARG (const char *first, ...)
static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::dispose"
- MNGmailMailboxProperties *self G_GNUC_UNUSED = MN_GMAIL_MAILBOX_PROPERTIES (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 38 "mn-gmail-mailbox-properties.gob"
- if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
-#line 147 "mn-gmail-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
___finalize(GObject *obj_self)
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::finalize"
@@ -156,75 +115,75 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 44 "mn-gmail-mailbox-properties.gob"
+ if(self->_priv->location) { g_free ((gpointer) self->_priv->location); self->_priv->location = NULL; }
+#line 121 "mn-gmail-mailbox-properties.c"
}
#undef __GOB_FUNCTION__
+#line 56 "mn-gmail-mailbox-properties.gob"
static void
-mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPropertiesPrivate);
-}
-#undef __GOB_FUNCTION__
-static void
-mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * c G_GNUC_UNUSED)
+mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 128 "mn-gmail-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
- g_type_class_add_private(c,sizeof(MNGmailMailboxPropertiesPrivate));
+ g_type_class_add_private(class,sizeof(MNGmailMailboxPropertiesPrivate));
- parent_class = g_type_class_ref (GTK_TYPE_VBOX);
+ parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES);
-#line 54 "mn-gmail-mailbox-properties.gob"
- g_object_class->constructor = ___1_mn_gmail_mailbox_properties_constructor;
-#line 182 "mn-gmail-mailbox-properties.c"
- g_object_class->dispose = ___dispose;
+#line 81 "mn-gmail-mailbox-properties.gob"
+ mn_mailbox_properties_class->set_mailbox = ___3_mn_gmail_mailbox_properties_set_mailbox;
+#line 92 "mn-gmail-mailbox-properties.gob"
+ mn_mailbox_properties_class->get_mailbox = ___4_mn_gmail_mailbox_properties_get_mailbox;
+#line 142 "mn-gmail-mailbox-properties.c"
g_object_class->finalize = ___finalize;
g_object_class->get_property = ___object_get_property;
- g_object_class->set_property = ___object_set_property;
{
g_object_class_override_property (g_object_class,
- PROP_LABEL,
- "label");
- g_object_class_override_property (g_object_class,
- PROP_SIZE_GROUP,
- "size_group");
- g_object_class_override_property (g_object_class,
- PROP_COMPLETE,
- "complete");
+ PROP_DEFAULT_NAME,
+ "default_name");
}
+ {
+#line 57 "mn-gmail-mailbox-properties.gob"
+
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+ p_class->type = "gmail";
+ p_class->stock_id = MN_STOCK_GMAIL;
+ p_class->combo_label = "Gmail";
+
+#line 159 "mn-gmail-mailbox-properties.c"
+ }
}
#undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
- guint property_id,
- const GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::set_property"
+#line 65 "mn-gmail-mailbox-properties.gob"
+static void
+mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * self G_GNUC_UNUSED)
+#line 166 "mn-gmail-mailbox-properties.c"
{
- MNGmailMailboxProperties *self G_GNUC_UNUSED;
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::init"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_GMAIL_MAILBOX_PROPERTIES,MNGmailMailboxPropertiesPrivate);
+ {
+#line 66 "mn-gmail-mailbox-properties.gob"
- self = MN_GMAIL_MAILBOX_PROPERTIES (object);
+ MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+ MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
- switch (property_id) {
- case PROP_SIZE_GROUP:
- {
-#line 39 "mn-gmail-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->_priv->size_group; self->_priv->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 217 "mn-gmail-mailbox-properties.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
+ gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
+
+ mn_mailbox_properties_add_entries(properties,
+ GTK_ENTRY(auth->username_entry),
+ GTK_ENTRY(auth->password_entry),
+ NULL);
+
+ g_signal_connect(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
+
+#line 186 "mn-gmail-mailbox-properties.c"
+ }
}
#undef __GOB_FUNCTION__
@@ -240,31 +199,17 @@ ___object_get_property (GObject *object,
self = MN_GMAIL_MAILBOX_PROPERTIES (object);
switch (property_id) {
- case PROP_LABEL:
- {
-#line 36 "mn-gmail-mailbox-properties.gob"
- g_value_set_string(VAL, "Gmail");
-#line 248 "mn-gmail-mailbox-properties.c"
- }
- break;
- case PROP_SIZE_GROUP:
- {
-#line 39 "mn-gmail-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 255 "mn-gmail-mailbox-properties.c"
- }
- break;
- case PROP_COMPLETE:
+ case PROP_DEFAULT_NAME:
{
-#line 43 "mn-gmail-mailbox-properties.gob"
+#line 48 "mn-gmail-mailbox-properties.gob"
const char *username;
- username = gtk_entry_get_text(GTK_ENTRY(selfp->username_entry));
-
- g_value_set_boolean(VAL, *username != 0);
+ username = gtk_entry_get_text(GTK_ENTRY(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self)->username_entry));
+
+ g_value_take_string(VAL, mn_gmail_mailbox_build_name(*username ? username : NULL));
-#line 268 "mn-gmail-mailbox-properties.c"
+#line 213 "mn-gmail-mailbox-properties.c"
}
break;
default:
@@ -281,128 +226,51 @@ g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 54 "mn-gmail-mailbox-properties.gob"
-static GObject *
-___1_mn_gmail_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 288 "mn-gmail-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
+#line 81 "mn-gmail-mailbox-properties.gob"
+static void
+___3_mn_gmail_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 233 "mn-gmail-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+ { if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::constructor"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::set_mailbox"
{
-#line 56 "mn-gmail-mailbox-properties.gob"
+#line 83 "mn-gmail-mailbox-properties.gob"
- GObject *object;
- Self *self;
- GtkWidget *label1;
- GtkWidget *label2;
+ Self *self = SELF(properties);
+ MNGmailMailbox *gmail_mailbox = MN_GMAIL_MAILBOX(mailbox);
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
+ PARENT_HANDLER(properties, mailbox);
- gtk_box_set_spacing(GTK_BOX(self), 6);
-
- mn_mailbox_properties_credentials_new(GTK_VBOX(self),
- &label1,
- &selfp->username_entry,
- &label2,
- &selfp->password_entry);
-
- gtk_size_group_add_widget(selfp->size_group, label1);
- gtk_size_group_add_widget(selfp->size_group, label2);
-
- mn_properties_dialog_set_tooltips(selfp->username_entry, _("Your Gmail username"),
- selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
- NULL);
-
- mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
- GTK_ENTRY(selfp->password_entry),
- NULL);
-
- g_signal_connect(selfp->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-
- return object;
+ selfp->location = g_strdup(gmail_mailbox->location);
}}
-#line 329 "mn-gmail-mailbox-properties.c"
+#line 249 "mn-gmail-mailbox-properties.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 89 "mn-gmail-mailbox-properties.gob"
-static void
-mn_gmail_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 336 "mn-gmail-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::entry_changed_h"
-#line 89 "mn-gmail-mailbox-properties.gob"
- g_return_if_fail (editable != NULL);
-#line 89 "mn-gmail-mailbox-properties.gob"
- g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 89 "mn-gmail-mailbox-properties.gob"
- g_return_if_fail (user_data != NULL);
-#line 345 "mn-gmail-mailbox-properties.c"
-{
#line 92 "mn-gmail-mailbox-properties.gob"
-
- Self *self = user_data;
- g_object_notify(G_OBJECT(self), "complete");
- }}
-#line 352 "mn-gmail-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 97 "mn-gmail-mailbox-properties.gob"
-static gboolean
-mn_gmail_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri)
-#line 358 "mn-gmail-mailbox-properties.c"
+static MNMailbox *
+___4_mn_gmail_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 256 "mn-gmail-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+ ((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+ ((MNMailbox * )0))
{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::set_uri"
-#line 97 "mn-gmail-mailbox-properties.gob"
- g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 97 "mn-gmail-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (gboolean )0);
-#line 97 "mn-gmail-mailbox-properties.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 97 "mn-gmail-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 369 "mn-gmail-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::get_mailbox"
{
-#line 100 "mn-gmail-mailbox-properties.gob"
+#line 94 "mn-gmail-mailbox-properties.gob"
- if (MN_URI_IS_GMAIL(uri))
- {
- gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->username_entry), uri->username);
- gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), uri->password ? uri->password : "");
-
- return TRUE;
- }
- else
- return FALSE;
- }}
-#line 383 "mn-gmail-mailbox-properties.c"
-#undef __GOB_FUNCTION__
+ Self *self = SELF(properties);
+ MNMailbox *mailbox;
-#line 112 "mn-gmail-mailbox-properties.gob"
-static MNURI *
-mn_gmail_mailbox_properties_get_uri (MNMailboxProperties * self)
-#line 389 "mn-gmail-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::get_uri"
-#line 112 "mn-gmail-mailbox-properties.gob"
- g_return_val_if_fail (self != NULL, (MNURI * )0);
-#line 112 "mn-gmail-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNURI * )0);
-#line 396 "mn-gmail-mailbox-properties.c"
-{
-#line 114 "mn-gmail-mailbox-properties.gob"
-
- const char *username;
- const char *password;
+ mailbox = PARENT_HANDLER(properties);
- username = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->username_entry));
- password = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->password_entry));
+ g_object_set(mailbox, "location", selfp->location, NULL);
- return mn_uri_new_gmail(username, *password ? password : NULL);
+ return mailbox;
}}
-#line 408 "mn-gmail-mailbox-properties.c"
+#line 275 "mn-gmail-mailbox-properties.c"
#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-gmail-mailbox-properties.gob b/src/mn-gmail-mailbox-properties.gob
@@ -16,108 +16,89 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
#include "mn-util.h"
#include "mn-properties-dialog.h"
+#include "mn-authenticated-mailbox.h"
+#include "mn-gmail-mailbox.h"
+#include "mn-stock.h"
%}
-class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
+class MN:Gmail:Mailbox:Properties from MN:Authenticated:Mailbox:Properties
{
- property STRING label (override)
- get { g_value_set_string(VAL, "Gmail"); };
-
- private GtkSizeGroup *size_group unrefwith g_object_unref;
- property OBJECT size_group (override, link);
+ /*
+ * We do not provide a control for the atom feed location, because
+ * modifying it is probably unnecessary.
+ */
+ private char *location destroywith g_free;
- property BOOLEAN complete (override)
+ property STRING default_name (override)
get
{
const char *username;
- username = gtk_entry_get_text(GTK_ENTRY(selfp->username_entry));
-
- g_value_set_boolean(VAL, *username != 0);
+ username = gtk_entry_get_text(GTK_ENTRY(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self)->username_entry));
+
+ g_value_take_string(VAL, mn_gmail_mailbox_build_name(*username ? username : NULL));
};
-
- private GtkWidget *username_entry;
- private GtkWidget *password_entry;
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ class_init (class)
{
- GObject *object;
- Self *self;
- GtkWidget *label1;
- GtkWidget *label2;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
- gtk_box_set_spacing(GTK_BOX(self), 6);
+ p_class->type = "gmail";
+ p_class->stock_id = MN_STOCK_GMAIL;
+ p_class->combo_label = "Gmail";
+ }
- mn_mailbox_properties_credentials_new(GTK_VBOX(self),
- &label1,
- &selfp->username_entry,
- &label2,
- &selfp->password_entry);
+ init (self)
+ {
+ MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+ MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
- gtk_size_group_add_widget(selfp->size_group, label1);
- gtk_size_group_add_widget(selfp->size_group, label2);
+ gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
- mn_properties_dialog_set_tooltips(selfp->username_entry, _("Your Gmail username"),
- selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
+ mn_mailbox_properties_add_entries(properties,
+ GTK_ENTRY(auth->username_entry),
+ GTK_ENTRY(auth->password_entry),
NULL);
- mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
- GTK_ENTRY(selfp->password_entry),
- NULL);
-
- g_signal_connect(selfp->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-
- return object;
+ g_signal_connect(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
}
- private void
- entry_changed_h (Gtk:Editable *editable (check null type),
- gpointer user_data (check null))
+ override (MN:Mailbox:Properties) void
+ set_mailbox (MNMailboxProperties *properties, MN:Mailbox *mailbox)
{
- Self *self = user_data;
- g_object_notify(G_OBJECT(self), "complete");
- }
-
- interface MN:Mailbox:Properties private gboolean
- set_uri (MN:Mailbox:Properties *self (check null type),
- MN:URI *uri (check null type))
- {
- if (MN_URI_IS_GMAIL(uri))
- {
- gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->username_entry), uri->username);
- gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), uri->password ? uri->password : "");
-
- return TRUE;
- }
- else
- return FALSE;
+ Self *self = SELF(properties);
+ MNGmailMailbox *gmail_mailbox = MN_GMAIL_MAILBOX(mailbox);
+
+ PARENT_HANDLER(properties, mailbox);
+
+ selfp->location = g_strdup(gmail_mailbox->location);
}
-
- interface MN:Mailbox:Properties private MNURI *
- get_uri (MN:Mailbox:Properties *self (check null type))
+
+ override (MN:Mailbox:Properties) MNMailbox *
+ get_mailbox (MNMailboxProperties *properties)
{
- const char *username;
- const char *password;
+ Self *self = SELF(properties);
+ MNMailbox *mailbox;
+
+ mailbox = PARENT_HANDLER(properties);
- username = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->username_entry));
- password = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->password_entry));
+ g_object_set(mailbox, "location", selfp->location, NULL);
- return mn_uri_new_gmail(username, *password ? password : NULL);
+ return mailbox;
}
}
diff --git a/src/mn-gmail-mailbox-properties.h b/src/mn-gmail-mailbox-properties.h
@@ -1,10 +1,11 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
#ifndef __MN_GMAIL_MAILBOX_PROPERTIES_H__
#define __MN_GMAIL_MAILBOX_PROPERTIES_H__
@@ -36,7 +37,7 @@ typedef struct _MNGmailMailboxPropertiesPrivate MNGmailMailboxPropertiesPrivate;
typedef struct _MNGmailMailboxProperties MNGmailMailboxProperties;
#endif
struct _MNGmailMailboxProperties {
- GtkVBox __parent__;
+ MNAuthenticatedMailboxProperties __parent__;
/*< private >*/
MNGmailMailboxPropertiesPrivate *_priv;
};
@@ -46,7 +47,7 @@ struct _MNGmailMailboxProperties {
*/
typedef struct _MNGmailMailboxPropertiesClass MNGmailMailboxPropertiesClass;
struct _MNGmailMailboxPropertiesClass {
- GtkVBoxClass __parent__;
+ MNAuthenticatedMailboxPropertiesClass __parent__;
};
@@ -59,15 +60,9 @@ GType mn_gmail_mailbox_properties_get_type (void);
* Argument wrapping macros
*/
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label", __extension__ ({gchar **z = (arg); z;})
-#define MN_GMAIL_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject **z = (arg); z;})
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name", __extension__ ({gchar **z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label",(gchar **)(arg)
-#define MN_GMAIL_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group",(GObject *)(arg)
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group",(GObject **)(arg)
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
+#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name",(gchar **)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */
diff --git a/src/mn-gmail-mailbox.c b/src/mn-gmail-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -24,42 +24,27 @@
#line 29 "mn-gmail-mailbox.gob"
#include "config.h"
-#include <stdio.h>
#include <string.h>
-#include <stdarg.h>
+#ifdef HAVE_TIMEGM
#include <stdlib.h>
#include <time.h>
+#ifdef TM_IN_SYS_TIME
+#include <sys/time.h>
+#endif /* TM_IN_SYS_TIME */
+#endif /* HAVE_TIMEGM */
#include <glib/gi18n.h>
-#include <eel/eel.h>
-#ifdef WITH_GMAIL_TIMESTAMPS
-#include <unicode/uenum.h>
-#include <unicode/uloc.h>
-#include <unicode/ucal.h>
-#include "mn-icu.h"
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#include <libxml/parser.h>
+#include <libxml/tree.h>
#include "mn-mailbox-private.h"
#include "mn-authenticated-mailbox-private.h"
-#include "mn-util.h"
+#include "mn-vfs.h"
#include "mn-stock.h"
-#include "mn-sgml-ref.h"
+#include "mn-message.h"
+#include "mn-util.h"
- typedef enum
- {
- JS_ARG_STRING,
- JS_ARG_LIST
- } JSArgType;
-
- typedef struct
- {
- JSArgType type;
- union
- {
- char *string;
- GSList *list;
- } value;
- } JSArg;
+#define DEFAULT_LOCATION "https://mail.google.com/mail/feed/atom"
-#line 63 "mn-gmail-mailbox.c"
+#line 48 "mn-gmail-mailbox.c"
/* self casting macros */
#define SELF(x) MN_GMAIL_MAILBOX(x)
#define SELF_CONST(x) MN_GMAIL_MAILBOX_CONST(x)
@@ -74,58 +59,30 @@ typedef MNGmailMailbox Self;
typedef MNGmailMailboxClass SelfClass;
/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
static void mn_gmail_mailbox_init (MNGmailMailbox * o) G_GNUC_UNUSED;
static void mn_gmail_mailbox_class_init (MNGmailMailboxClass * class) G_GNUC_UNUSED;
static GObject * ___2_mn_gmail_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_gmail_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_gmail_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static SoupUri * mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char * text_uri, GError ** err) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, SoupUri * uri, GError ** err) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_get_substring (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_build_cookie (MNGmailMailbox * self) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_append_message (MNGmailMailbox * self, GSList ** messages, JSArg * arg, gboolean icu_available) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_js_get_arg_list (char ** str, GSList ** list) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_js_arg_list_scan (GSList * list, ...) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_js_arg_list_free (GSList * list) G_GNUC_UNUSED;
-static JSArg * mn_gmail_mailbox_js_arg_new_string (const char * string) G_GNUC_UNUSED;
-static JSArg * mn_gmail_mailbox_js_arg_new_list (GSList * list) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_js_arg_free (JSArg * arg) G_GNUC_UNUSED;
-static time_t mn_gmail_mailbox_parse_date (MNGmailMailbox * self, const char * date) G_GNUC_UNUSED;
+static void ___3_mn_gmail_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_gmail_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_parse_entry (xmlNode * node, time_t * sent_time, char ** id, char ** from, char ** subject) G_GNUC_UNUSED;
+static char * mn_gmail_mailbox_parse_author (xmlNode * node) G_GNUC_UNUSED;
+static time_t mn_gmail_mailbox_parse_date (const char * w3c_datetime) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_LOCATION
+};
/* pointer to the class of our parent */
static MNAuthenticatedMailboxClass *parent_class = NULL;
/* Short form macros */
-#define self_soup_uri_new mn_gmail_mailbox_soup_uri_new
-#define self_get mn_gmail_mailbox_get
-#define self_get_from_uri mn_gmail_mailbox_get_from_uri
-#define self_dump_request mn_gmail_mailbox_dump_request
-#define self_dump_request_cb mn_gmail_mailbox_dump_request_cb
-#define self_dump_response mn_gmail_mailbox_dump_response
-#define self_dump_response_cb mn_gmail_mailbox_dump_response_cb
-#define self_get_substring mn_gmail_mailbox_get_substring
-#define self_login mn_gmail_mailbox_login
-#define self_update_cookies mn_gmail_mailbox_update_cookies
-#define self_build_cookie mn_gmail_mailbox_build_cookie
-#define self_build_cookie_cb mn_gmail_mailbox_build_cookie_cb
-#define self_check mn_gmail_mailbox_check
-#define self_append_message mn_gmail_mailbox_append_message
-#define self_js_get_arg_list mn_gmail_mailbox_js_get_arg_list
-#define self_js_arg_list_scan mn_gmail_mailbox_js_arg_list_scan
-#define self_js_arg_list_free mn_gmail_mailbox_js_arg_list_free
-#define self_js_arg_new_string mn_gmail_mailbox_js_arg_new_string
-#define self_js_arg_new_list mn_gmail_mailbox_js_arg_new_list
-#define self_js_arg_free mn_gmail_mailbox_js_arg_free
+#define self_parse_entry mn_gmail_mailbox_parse_entry
+#define self_parse_author mn_gmail_mailbox_parse_author
#define self_parse_date mn_gmail_mailbox_parse_date
+#define self_build_name mn_gmail_mailbox_build_name
GType
mn_gmail_mailbox_get_type (void)
{
@@ -170,6 +127,20 @@ GET_NEW_VARG (const char *first, ...)
static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dispose"
+ MNGmailMailbox *self G_GNUC_UNUSED = MN_GMAIL_MAILBOX (obj_self);
+ if (G_OBJECT_CLASS (parent_class)->dispose) \
+ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
+#line 59 "mn-gmail-mailbox.gob"
+ if(self->_priv->uri) { gnome_vfs_uri_unref ((gpointer) self->_priv->uri); self->_priv->uri = NULL; }
+#line 139 "mn-gmail-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
___finalize(GObject *obj_self)
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::finalize"
@@ -177,9 +148,12 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 69 "mn-gmail-mailbox.gob"
- if(self->_priv->cookies) { g_hash_table_destroy ((gpointer) self->_priv->cookies); self->_priv->cookies = NULL; }
-#line 183 "mn-gmail-mailbox.c"
+#line 54 "mn-gmail-mailbox.gob"
+ if(self->location) { g_free ((gpointer) self->location); self->location = NULL; }
+#line 154 "mn-gmail-mailbox.c"
+#line 57 "mn-gmail-mailbox.gob"
+ if(self->runtime_location) { g_free ((gpointer) self->runtime_location); self->runtime_location = NULL; }
+#line 157 "mn-gmail-mailbox.c"
}
#undef __GOB_FUNCTION__
@@ -187,47 +161,125 @@ static void
mn_gmail_mailbox_init (MNGmailMailbox * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPrivate);
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_GMAIL_MAILBOX,MNGmailMailboxPrivate);
}
#undef __GOB_FUNCTION__
-#line 72 "mn-gmail-mailbox.gob"
+#line 61 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_class_init (MNGmailMailboxClass * class G_GNUC_UNUSED)
-#line 197 "mn-gmail-mailbox.c"
+#line 171 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+ MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
g_type_class_add_private(class,sizeof(MNGmailMailboxPrivate));
parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
-#line 78 "mn-gmail-mailbox.gob"
+#line 66 "mn-gmail-mailbox.gob"
g_object_class->constructor = ___2_mn_gmail_mailbox_constructor;
-#line 91 "mn-gmail-mailbox.gob"
- mn_mailbox_class->impl_is = ___3_mn_gmail_mailbox_impl_is;
-#line 97 "mn-gmail-mailbox.gob"
- mn_mailbox_class->impl_check = ___4_mn_gmail_mailbox_impl_check;
-#line 213 "mn-gmail-mailbox.c"
+#line 81 "mn-gmail-mailbox.gob"
+ mn_mailbox_class->seal = ___3_mn_gmail_mailbox_seal;
+#line 94 "mn-gmail-mailbox.gob"
+ mn_authenticated_mailbox_class->impl_check = ___4_mn_gmail_mailbox_impl_check;
+#line 188 "mn-gmail-mailbox.c"
+ g_object_class->dispose = ___dispose;
g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_string
+ ("location" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_LOCATION,
+ param_spec);
+ }
{
-#line 73 "mn-gmail-mailbox.gob"
+#line 62 "mn-gmail-mailbox.gob"
- MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_GMAIL;
- MN_MAILBOX_CLASS(class)->format = "Gmail";
+ MN_MAILBOX_CLASS(class)->type = "gmail";
-#line 221 "mn-gmail-mailbox.c"
+#line 211 "mn-gmail-mailbox.c"
}
}
#undef __GOB_FUNCTION__
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::set_property"
+{
+ MNGmailMailbox *self G_GNUC_UNUSED;
+
+ self = MN_GMAIL_MAILBOX (object);
+ switch (property_id) {
+ case PROP_LOCATION:
+ {
+#line 55 "mn-gmail-mailbox.gob"
+{ char *old = self->location; self->location = g_value_dup_string (VAL); g_free (old); }
+#line 232 "mn-gmail-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
-#line 78 "mn-gmail-mailbox.gob"
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_property"
+{
+ MNGmailMailbox *self G_GNUC_UNUSED;
+
+ self = MN_GMAIL_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_LOCATION:
+ {
+#line 55 "mn-gmail-mailbox.gob"
+g_value_set_string (VAL, self->location);
+#line 263 "mn-gmail-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 66 "mn-gmail-mailbox.gob"
static GObject *
___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 231 "mn-gmail-mailbox.c"
+#line 283 "mn-gmail-mailbox.c"
#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
((G_OBJECT_CLASS(parent_class)->constructor)? \
(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -235,1214 +287,339 @@ ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_cons
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::constructor"
{
-#line 80 "mn-gmail-mailbox.gob"
+#line 68 "mn-gmail-mailbox.gob"
GObject *object;
+ MNMailbox *mailbox;
object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-
- if (! soup_ssl_supported)
- mn_mailbox_set_init_error(MN_MAILBOX(object), _("libsoup has not been compiled with SSL/TLS support"));
+ mailbox = MN_MAILBOX(object);
- return object;
- }}
-#line 250 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
+ mn_mailbox_set_format(mailbox, "Gmail");
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_GMAIL);
-#line 91 "mn-gmail-mailbox.gob"
-static gboolean
-___3_mn_gmail_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 257 "mn-gmail-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
- ((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
- (* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
- ((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_is"
-#line 91 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 91 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 268 "mn-gmail-mailbox.c"
-{
-#line 93 "mn-gmail-mailbox.gob"
-
- return MN_URI_IS_GMAIL(uri);
+ return object;
}}
-#line 274 "mn-gmail-mailbox.c"
+#line 304 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 97 "mn-gmail-mailbox.gob"
+#line 81 "mn-gmail-mailbox.gob"
static void
-___4_mn_gmail_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 281 "mn-gmail-mailbox.c"
+___3_mn_gmail_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 311 "mn-gmail-mailbox.c"
#define PARENT_HANDLER(___mailbox) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_check"
-#line 97 "mn-gmail-mailbox.gob"
- g_return_if_fail (mailbox != NULL);
-#line 97 "mn-gmail-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 291 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::seal"
{
-#line 99 "mn-gmail-mailbox.gob"
+#line 83 "mn-gmail-mailbox.gob"
- MNAuthenticatedMailbox *authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
Self *self = SELF(mailbox);
- SoupSession *session;
- gboolean status = TRUE;
- GError *err = NULL;
PARENT_HANDLER(mailbox);
- session = mn_soup_session_sync_new();
-
- if (! selfp->logged_in)
- while (TRUE)
- {
- gboolean authentication_failed;
+ self->runtime_location = g_strdup(self->location ? self->location : DEFAULT_LOCATION);
- mn_authenticated_mailbox_fill_password(authenticated_mailbox);
- if (! authenticated_mailbox->password)
- break;
-
- if (self_login(self, session, &authentication_failed, &err))
- {
- selfp->logged_in = TRUE;
- break;
- }
- else
- {
- if (authentication_failed && ! mailbox->uri->password)
- {
- mn_authenticated_mailbox_authentication_failed(authenticated_mailbox);
- g_clear_error(&err);
- }
- else
- {
- status = FALSE;
- break;
- }
- }
- }
-
- if (selfp->logged_in && ! self_check(self, session, &err))
- status = FALSE;
-
- g_object_unref(session);
-
- GDK_THREADS_ENTER();
-
- if (! status)
- {
- mn_mailbox_set_error(mailbox, "%s", err->message);
- g_error_free(err);
- }
- mn_mailbox_end_check(mailbox);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username);
}}
-#line 351 "mn-gmail-mailbox.c"
+#line 329 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 157 "mn-gmail-mailbox.gob"
-static SoupUri *
-mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err)
-#line 358 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::soup_uri_new"
-#line 157 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (text_uri != NULL, (SoupUri * )0);
-#line 363 "mn-gmail-mailbox.c"
-{
-#line 159 "mn-gmail-mailbox.gob"
-
- SoupUri *uri;
-
- uri = soup_uri_new(text_uri);
- if (! uri)
- g_set_error(err, 0, 0, _("unable to parse URI \"%s\""), text_uri);
-
- return uri;
- }}
-#line 375 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 169 "mn-gmail-mailbox.gob"
-static char *
-mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char * text_uri, GError ** err)
-#line 381 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get"
-#line 169 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (self != NULL, (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (session != NULL, (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (text_uri != NULL, (char * )0);
-#line 394 "mn-gmail-mailbox.c"
-{
-#line 174 "mn-gmail-mailbox.gob"
-
- SoupUri *uri;
- char *body;
-
- uri = self_soup_uri_new(text_uri, err);
- if (! uri)
- return NULL;
-
- body = self_get_from_uri(self, session, uri, err);
- soup_uri_free(uri);
-
- return body;
- }}
-#line 410 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 188 "mn-gmail-mailbox.gob"
-static char *
-mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, SoupUri * uri, GError ** err)
-#line 416 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_from_uri"
-#line 188 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (self != NULL, (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (session != NULL, (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (char * )0);
-#line 429 "mn-gmail-mailbox.c"
-{
-#line 193 "mn-gmail-mailbox.gob"
-
- SoupMessage *message;
- char *cookie;
- char *body = NULL;
-
- message = soup_message_new_from_uri(SOUP_METHOD_GET, uri);
- soup_message_add_header(message->request_headers, "User-Agent", "Mail Notification");
-
- cookie = self_build_cookie(self);
- if (cookie)
- {
- soup_message_add_header(message->request_headers, "Cookie", cookie);
- g_free(cookie);
- }
-
- self_dump_request(self, message);
- soup_session_send_message(session, message);
-
- if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code))
- {
- const char *end;
-
- /* Gmail returns UTF-8, so we don't need to parse Content-Type */
- if (! g_utf8_validate(message->response.body, message->response.length, &end))
- mn_mailbox_warning(MN_MAILBOX(self), _("received non-UTF-8 data from server"));
-
- body = g_strndup(message->response.body, end - message->response.body);
- self_dump_response(self, message, body);
- self_update_cookies(self, message);
- }
- else
- g_set_error(err, 0, 0, _("unable to transfer data: %s"), message->reason_phrase);
-
- g_object_unref(message);
-
- return body;
- }}
-#line 469 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 231 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message)
-#line 475 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request"
-#line 231 "mn-gmail-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 231 "mn-gmail-mailbox.gob"
- g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 231 "mn-gmail-mailbox.gob"
- g_return_if_fail (message != NULL);
-#line 231 "mn-gmail-mailbox.gob"
- g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 486 "mn-gmail-mailbox.c"
-{
-#line 233 "mn-gmail-mailbox.gob"
-
- const SoupUri *suri;
- char *uri;
-
- suri = soup_message_get_uri(message);
- uri = soup_uri_to_string(suri, FALSE);
- mn_mailbox_notice(MN_MAILBOX(self), "> GET %s", uri);
- g_free(uri);
-
- soup_message_foreach_header(message->request_headers, self_dump_request_cb, self);
- }}
-#line 500 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 245 "mn-gmail-mailbox.gob"
+#line 94 "mn-gmail-mailbox.gob"
static void
-mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data)
-#line 506 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request_cb"
-#line 245 "mn-gmail-mailbox.gob"
- g_return_if_fail (key != NULL);
-#line 245 "mn-gmail-mailbox.gob"
- g_return_if_fail (value != NULL);
-#line 245 "mn-gmail-mailbox.gob"
- g_return_if_fail (user_data != NULL);
-#line 515 "mn-gmail-mailbox.c"
-{
-#line 249 "mn-gmail-mailbox.gob"
-
- Self *self = user_data;
- const char *header_name = key;
- const char *header_value = value;
-
- mn_mailbox_notice(MN_MAILBOX(self), "> %s: %s", header_name, header_value);
- }}
-#line 525 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 257 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body)
-#line 531 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response"
-#line 257 "mn-gmail-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 257 "mn-gmail-mailbox.gob"
- g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 257 "mn-gmail-mailbox.gob"
- g_return_if_fail (message != NULL);
-#line 257 "mn-gmail-mailbox.gob"
- g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 257 "mn-gmail-mailbox.gob"
- g_return_if_fail (body != NULL);
-#line 544 "mn-gmail-mailbox.c"
-{
-#line 261 "mn-gmail-mailbox.gob"
-
- char **lines;
- int i;
-
- soup_message_foreach_header(message->response_headers, self_dump_response_cb, self);
-
- lines = g_strsplit(body, "\n", 0);
- for (i = 0; lines[i]; i++)
- mn_mailbox_notice(MN_MAILBOX(self), "< %s", lines[i]);
- g_strfreev(lines);
- }}
-#line 558 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 273 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data)
-#line 564 "mn-gmail-mailbox.c"
+___4_mn_gmail_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 336 "mn-gmail-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+ (* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response_cb"
-#line 273 "mn-gmail-mailbox.gob"
- g_return_if_fail (key != NULL);
-#line 273 "mn-gmail-mailbox.gob"
- g_return_if_fail (value != NULL);
-#line 273 "mn-gmail-mailbox.gob"
- g_return_if_fail (user_data != NULL);
-#line 573 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_check"
{
-#line 277 "mn-gmail-mailbox.gob"
+#line 96 "mn-gmail-mailbox.gob"
- Self *self = user_data;
- const char *header_name = key;
- const char *header_value = value;
-
- mn_mailbox_notice(MN_MAILBOX(self), "< %s: %s", header_name, header_value);
- }}
-#line 583 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+ Self *self = SELF(mailbox);
+ GnomeVFSResult result;
+ char *atom;
+ int atom_size;
+ xmlDoc *doc;
+ xmlNode *node;
-/**
- * mn_gmail_mailbox_get_substring:
- * @str: the string to search
- * @pre: the start of the substring
- * @post: the end of the substring
- * @include_pre: whether to include @pre in the result or not
- * @include_post: whether to include @post in the result or not
- *
- * Gets the first substring of @str included between @pre and @post.
- *
- * Return value: a newly allocated string containing the substring
- * or %NULL if not found.
- **/
-#line 298 "mn-gmail-mailbox.gob"
-static char *
-mn_gmail_mailbox_get_substring (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post)
-#line 602 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_substring"
-#line 298 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (str != NULL, (char * )0);
-#line 298 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (pre != NULL, (char * )0);
-#line 298 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (post != NULL, (char * )0);
-#line 611 "mn-gmail-mailbox.c"
-{
-#line 304 "mn-gmail-mailbox.gob"
-
- char *sub = NULL;
- char *pre_loc;
-
- pre_loc = strstr(str, pre);
- if (pre_loc)
+ if (! selfp->uri)
{
- char *after_pre_loc;
- char *post_loc;
-
- after_pre_loc = pre_loc + strlen(pre);
- post_loc = strstr(after_pre_loc, post);
- if (post_loc)
+ selfp->uri = gnome_vfs_uri_new(self->runtime_location);
+ if (! selfp->uri)
{
- char *start = include_pre ? pre_loc : after_pre_loc;
- char *end = include_post ? post_loc + strlen(post) : post_loc;
-
- sub = g_strndup(start, end - start);
- }
- }
-
- return sub;
- }}
-#line 637 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 328 "mn-gmail-mailbox.gob"
-static gboolean
-mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err)
-#line 643 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login"
-#line 328 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (session != NULL, (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (authentication_failed != NULL, (gboolean )0);
-#line 656 "mn-gmail-mailbox.c"
-{
-#line 333 "mn-gmail-mailbox.gob"
-
- char *text_uri;
- char *escaped_username;
- char *escaped_password;
- char *body;
- char *next_location;
- char *query;
- SoupUri *uri;
- gboolean success;
-
- g_return_val_if_fail(selfp->logged_in == FALSE, FALSE);
-
- mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
- *authentication_failed = FALSE;
-
- if (selfp->cookies)
- g_hash_table_destroy(selfp->cookies);
- selfp->cookies = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
+ GDK_THREADS_ENTER();
-#define EXTRA_CHARS ";/?:@&=+$,"/* taken from RFC 2396 2.2 */
- escaped_username = soup_uri_encode(MN_MAILBOX(self)->uri->username, EXTRA_CHARS);
- escaped_password = soup_uri_encode(MN_AUTHENTICATED_MAILBOX(self)->password, EXTRA_CHARS);
- text_uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
- g_free(escaped_username);
- g_free(escaped_password);
+ mn_mailbox_set_error(MN_MAILBOX(self), _("invalid feed location"));
+ /* error is not recoverable, disable the mailbox */
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
- body = self_get(self, session, text_uri, err);
- g_free(text_uri);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
- if (! body)
- return FALSE;
-
- next_location = self_get_substring(body, "top.location = \"", "\"", FALSE, FALSE);
- g_free(body);
+ return;
+ }
- if (! next_location)
- {
- *authentication_failed = TRUE;
- goto failed;
+ gnome_vfs_uri_set_user_name(selfp->uri, mailbox->username);
+ gnome_vfs_uri_set_password(selfp->uri, mailbox->password);
}
- /*
- * The following kludges work around
- * http://bugzilla.ximian.com/show_bug.cgi?id=66516.
- *
- * FIXME: remove it and bump libsoup version requirement when the
- * bug is fixed.
- */
-
- query = strchr(next_location, '?');
- if (query)
- *query = 0;
-
- text_uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
- g_free(next_location);
-
- uri = self_soup_uri_new(text_uri, err);
- g_free(text_uri);
+ mn_mailbox_notice(MN_MAILBOX(self), _("retrieving feed from %s"), self->runtime_location);
- if (! uri)
- return FALSE;
-
- if (query)
+ result = mn_vfs_read_entire_file_uri(selfp->uri, &atom_size, &atom);
+ if (result != GNOME_VFS_OK)
{
- uri->query = g_strdup(query + 1);
- uri->broken_encoding = TRUE;
- }
-
- body = self_get_from_uri(self, session, uri, err);
- soup_uri_free(uri);
-
- if (! body)
- return FALSE;
-
- next_location = self_get_substring(body, "location.replace(\"", "\")", FALSE, FALSE);
- g_free(body);
-
- if (! next_location)
- goto failed;
+ GDK_THREADS_ENTER();
- body = self_get(self, session, next_location, err);
- g_free(next_location);
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to retrieve feed: %s"), gnome_vfs_result_to_string(result));
- success = strstr(body, "frame name=js src=/gmail") != NULL;
- g_free(body);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
- if (success)
- return TRUE;
+ return;
+ }
- failed:
- g_set_error(err, 0, 0, _("login failed"));
- return FALSE;
- }}
-#line 752 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+ doc = xmlParseMemory(atom, atom_size);
+ g_free(atom);
-#line 427 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
-#line 758 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::update_cookies"
-#line 427 "mn-gmail-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 427 "mn-gmail-mailbox.gob"
- g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 427 "mn-gmail-mailbox.gob"
- g_return_if_fail (message != NULL);
-#line 427 "mn-gmail-mailbox.gob"
- g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 769 "mn-gmail-mailbox.c"
-{
-#line 429 "mn-gmail-mailbox.gob"
-
- const GSList *l;
-
- MN_LIST_FOREACH(l, soup_message_get_header_list(message->response_headers, "Set-Cookie"))
+ if (! doc)
{
- const char *value = l->data;
- char *equal;
-
- equal = strchr(value, '=');
- if (equal && equal - value > 0)
- {
- char *end;
- char *cookie_name;
- char *cookie_value;
-
- end = strchr(equal, ';');
-
- cookie_name = g_strndup(value, equal - value);
- cookie_value = end
- ? g_strndup(equal + 1, end - equal - 1)
- : g_strdup(equal + 1);
-
- g_hash_table_insert(selfp->cookies, cookie_name, cookie_value);
- }
- }
- }}
-#line 798 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+ GDK_THREADS_ENTER();
-#line 456 "mn-gmail-mailbox.gob"
-static char *
-mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
-#line 804 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie"
-#line 456 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (self != NULL, (char * )0);
-#line 456 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 811 "mn-gmail-mailbox.c"
-{
-#line 458 "mn-gmail-mailbox.gob"
-
- GString *cookie;
- char *str;
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
- cookie = g_string_new(NULL);
- g_hash_table_foreach(selfp->cookies, self_build_cookie_cb, cookie);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
- if (*cookie->str)
- str = g_string_free(cookie, FALSE);
- else
- {
- str = NULL;
- g_string_free(cookie, TRUE);
+ return;
}
- return str;
- }}
-#line 831 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 476 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data)
-#line 837 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie_cb"
-{
-#line 478 "mn-gmail-mailbox.gob"
-
- GString *cookie = user_data;
-
- if (*cookie->str)
- g_string_append(cookie, "; ");
-
- g_string_append_printf(cookie, "%s=%s", (const char *) key, (const char *) value);
- }}
-#line 850 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 487 "mn-gmail-mailbox.gob"
-static gboolean
-mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err)
-#line 856 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check"
-#line 487 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 487 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
-#line 487 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (session != NULL, (gboolean )0);
-#line 487 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
-#line 867 "mn-gmail-mailbox.c"
-{
-#line 489 "mn-gmail-mailbox.gob"
-
- char *body;
- char *work;
- gboolean status = FALSE;
-
- g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
-
- mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
-
- body = self_get(self, session, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", err);
- if (! body)
- return FALSE;
-
- work = strstr(body, "Search results for: is:unread\",\"");
- if (work)
+ node = xmlDocGetRootElement(doc);
+ if (node && ! strcmp(node->name, "feed"))
{
GSList *messages = NULL;
- work += 32;
+ for (node = node->children; node != NULL; node = node->next)
+ if (node->type == XML_ELEMENT_NODE && ! strcmp(node->name, "entry"))
+ {
+ time_t sent_time;
+ char *id;
+ char *from;
+ char *subject;
+
+ self_parse_entry(node, &sent_time, &id, &from, &subject);
+
+ messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self),
+ NULL,
+ sent_time,
+ id,
+ from,
+ subject));
+
+ g_free(id);
+ g_free(from);
+ g_free(subject);
+ }
- while ((work = strstr(work, "D([")))
- {
- GSList *arg_list;
-
- work += 2;
- if (self_js_get_arg_list(&work, &arg_list) && arg_list)
- {
- GSList *l;
- gboolean icu_available = FALSE;
-
-#ifdef WITH_GMAIL_TIMESTAMPS
- if (arg_list->next)
- {
- GError *err = NULL;
-
- icu_available = mn_icu_use(&err);
- if (! icu_available)
- {
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to initialize the ICU library"), err->message);
- g_error_free(err);
- }
- }
-#endif /* WITH_GMAIL_TIMESTAMPS */
-
- MN_LIST_FOREACH(l, arg_list->next)
- self_append_message(self, &messages, l->data, icu_available);
-
-#ifdef WITH_GMAIL_TIMESTAMPS
- if (icu_available)
- mn_icu_unuse();
-#endif /* WITH_GMAIL_TIMESTAMPS */
-
- self_js_arg_list_free(arg_list);
- }
- }
-
GDK_THREADS_ENTER();
+
mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+ mn_g_object_slist_free(messages);
+
gdk_flush();
GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
- status = TRUE;
}
else
- g_set_error(err, 0, 0, _("unable to parse Gmail data"));
-
- g_free(body);
-
- return status;
- }}
-#line 941 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 561 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_append_message (MNGmailMailbox * self, GSList ** messages, JSArg * arg, gboolean icu_available)
-#line 947 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::append_message"
-#line 561 "mn-gmail-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 561 "mn-gmail-mailbox.gob"
- g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 561 "mn-gmail-mailbox.gob"
- g_return_if_fail (messages != NULL);
-#line 561 "mn-gmail-mailbox.gob"
- g_return_if_fail (arg != NULL);
-#line 958 "mn-gmail-mailbox.c"
-{
-#line 566 "mn-gmail-mailbox.gob"
-
- char *date_field;
- char *sender_field;
- char *subject_field;
- GSList *labels_list;
- GSList *l;
- gboolean in_inbox = FALSE;
-
- char *count_str;
- char *sender_email;
- char *sender_name;
- char *subject;
-
- int count = 1;
- time_t sent_time = 0;
- char *from = NULL;
- char *expanded_subject = NULL;
-
- int i;
-
- if (arg->type != JS_ARG_LIST
- || ! self_js_arg_list_scan(arg->value.list,
- 3, JS_ARG_STRING, &date_field,
- 4, JS_ARG_STRING, &sender_field,
- 6, JS_ARG_STRING, &subject_field,
- 8, JS_ARG_LIST, &labels_list,
- -1))
- return;
-
- MN_LIST_FOREACH(l, labels_list)
{
- JSArg *label = l->data;
-
- if (label->type == JS_ARG_STRING && ! strcmp(label->value.string, "^i"))
- {
- in_inbox = TRUE;
- break;
- }
- }
+ GDK_THREADS_ENTER();
- if (! in_inbox)
- return;
-
-#ifdef WITH_GMAIL_TIMESTAMPS
- if (icu_available)
- {
- char *date;
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
- date = self_get_substring(date_field, "<b>", "</b>", FALSE, FALSE);
- if (date)
- {
- sent_time = self_parse_date(self, date);
- g_free(date);
- }
+ gdk_flush();
+ GDK_THREADS_LEAVE();
}
-#endif /* WITH_GMAIL_TIMESTAMPS */
- count_str = self_get_substring(sender_field, "</span> (", ")", FALSE, FALSE);
- if (count_str)
- {
- if (mn_str_isnumeric(count_str))
- count = atoi(count_str);
- g_free(count_str);
- }
-
- sender_email = self_get_substring(sender_field, "<span id='_user_", "'", FALSE, FALSE);
- sender_name = self_get_substring(sender_field, "'><b>", "</b>", FALSE, FALSE);
-
- if (sender_name && sender_email)
- {
- char *tmp;
-
- tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
- from = mn_sgml_ref_expand(tmp);
- g_free(tmp);
- }
- else if (sender_name)
- from = mn_sgml_ref_expand(sender_name);
- else if (sender_email)
- from = mn_sgml_ref_expand(sender_email);
-
- g_free(sender_email);
- g_free(sender_name);
-
- subject = self_get_substring(subject_field, "<b>", "</b>", FALSE, FALSE);
- if (subject)
- {
- if (strcmp(subject, "(no subject)"))
- expanded_subject = mn_sgml_ref_expand(subject);
- g_free(subject);
- }
-
- for (i = 0; i < count; i++)
- *messages = g_slist_append(*messages, mn_message_new(MN_MAILBOX(self)->uri,
- NULL,
- sent_time,
- NULL,
- from,
- expanded_subject));
-
- g_free(from);
- g_free(expanded_subject);
+ xmlFreeDoc(doc);
}}
-#line 1064 "mn-gmail-mailbox.c"
+#line 450 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
-#line 670 "mn-gmail-mailbox.gob"
-static gboolean
-mn_gmail_mailbox_js_get_arg_list (char ** str, GSList ** list)
-#line 1070 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_get_arg_list"
-#line 670 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (str != NULL, (gboolean )0);
-#line 670 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (list != NULL, (gboolean )0);
-#line 1077 "mn-gmail-mailbox.c"
-{
-#line 672 "mn-gmail-mailbox.gob"
+#line 203 "mn-gmail-mailbox.gob"
+static void
+mn_gmail_mailbox_parse_entry (xmlNode * node, time_t * sent_time, char ** id, char ** from, char ** subject)
+#line 457 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_entry"
+#line 203 "mn-gmail-mailbox.gob"
+ g_return_if_fail (node != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+ g_return_if_fail (sent_time != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+ g_return_if_fail (id != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+ g_return_if_fail (from != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+ g_return_if_fail (subject != NULL);
+#line 470 "mn-gmail-mailbox.c"
+{
+#line 209 "mn-gmail-mailbox.gob"
- GSList *our_list = NULL;
- gboolean done = FALSE;
- gboolean in_literal = FALSE; /* a string enclosed in double quotes */
- gboolean quoted = FALSE; /* the next character is quoted with a backslash */
- JSArg *arg = NULL;
- GString *string;
-
- g_return_val_if_fail(*str != NULL, FALSE);
- g_return_val_if_fail(**str == '[', FALSE);
-
- (*str)++; /* skip the initial open bracket */
- string = g_string_new(NULL);
-
- while (**str && ! done)
- {
- gboolean next = TRUE;
+ *sent_time = 0;
+ *id = NULL;
+ *from = NULL;
+ *subject = NULL;
- if (in_literal)
- switch (**str)
+ for (node = node->children; node != NULL; node = node->next)
+ if (node->type == XML_ELEMENT_NODE)
+ {
+ if (! strcmp(node->name, "title"))
{
- case '\\':
- quoted = TRUE;
- break;
-
- case '"':
- if (! quoted)
- {
- in_literal = FALSE;
- break;
- }
- /* else pass through */
-
- default:
- quoted = FALSE;
- g_string_append_c(string, **str);
+ g_free(*subject);
+ *subject = xmlNodeGetContent(node);
}
- else
- switch (**str)
+ else if (! strcmp(node->name, "id"))
{
- case '[':
- {
- GSList *sub_list;
-
- if (arg || ! self_js_get_arg_list(str, &sub_list))
- goto end; /* parse error */
-
- arg = self_js_arg_new_list(sub_list);
- next = FALSE;
- break;
- }
-
- case ']':
- done = TRUE;
- /* fall through */
-
- case ',':
- if (! arg)
- arg = self_js_arg_new_string(string->str);
-
- our_list = g_slist_append(our_list, arg);
-
- g_string_truncate(string, 0);
- arg = NULL;
- break;
-
- case '"':
- in_literal = TRUE;
- break;
-
- default:
- g_string_append_c(string, **str);
+ g_free(*id);
+ *id = xmlNodeGetContent(node);
}
-
- if (next)
- (*str)++;
- }
-
- end:
- if (arg)
- self_js_arg_free(arg);
- g_string_free(string, TRUE);
-
- if (done)
- {
- *list = our_list;
- return TRUE;
- }
- else
- {
- self_js_arg_list_free(our_list);
- return FALSE;
- }
- }}
-#line 1174 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 767 "mn-gmail-mailbox.gob"
-static gboolean
-mn_gmail_mailbox_js_arg_list_scan (GSList * list, ...)
-#line 1180 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_list_scan"
-{
-#line 769 "mn-gmail-mailbox.gob"
-
- va_list args;
- int position;
- gboolean status = TRUE;
-
- va_start(args, list);
-
- while ((position = va_arg(args, int)) != -1)
- {
- JSArgType type = va_arg(args, JSArgType);
- JSArg *arg = g_slist_nth_data(list, position);
-
- if (! arg)
- {
- status = FALSE;
- break;
- }
-
- switch (type)
- {
- case JS_ARG_STRING:
+ else if (! strcmp(node->name, "author"))
{
- char **str = va_arg(args, char **);
- g_return_val_if_fail(str != NULL, FALSE);
-
- *str = arg->value.string;
- break;
+ g_free(*from);
+ *from = self_parse_author(node);
}
-
- case JS_ARG_LIST:
+#ifdef HAVE_TIMEGM
+ else if (! strcmp(node->name, "issued"))
{
- GSList **elem_list = va_arg(args, GSList **);
- g_return_val_if_fail(elem_list != NULL, FALSE);
+ char *w3c_datetime;
- *elem_list = arg->value.list;
- break;
+ w3c_datetime = xmlNodeGetContent(node);
+ if (w3c_datetime)
+ {
+ *sent_time = self_parse_date(w3c_datetime);
+ g_free(w3c_datetime);
+ }
}
-
- default:
- g_return_val_if_reached(FALSE);
- }
- }
-
- va_end(args);
-
- return status;
- }}
-#line 1232 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 817 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_js_arg_list_free (GSList * list)
-#line 1238 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_list_free"
-{
-#line 819 "mn-gmail-mailbox.gob"
-
- eel_g_slist_free_deep_custom(list, (GFunc) self_js_arg_free, NULL);
- }}
-#line 1246 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 823 "mn-gmail-mailbox.gob"
-static JSArg *
-mn_gmail_mailbox_js_arg_new_string (const char * string)
-#line 1252 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_new_string"
-#line 823 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (string != NULL, (JSArg * )0);
-#line 1257 "mn-gmail-mailbox.c"
-{
-#line 825 "mn-gmail-mailbox.gob"
-
- JSArg *arg;
-
- arg = g_new(JSArg, 1);
- arg->type = JS_ARG_STRING;
- arg->value.string = g_strdup(string);
-
- return arg;
- }}
-#line 1269 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 835 "mn-gmail-mailbox.gob"
-static JSArg *
-mn_gmail_mailbox_js_arg_new_list (GSList * list)
-#line 1275 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_new_list"
-{
-#line 837 "mn-gmail-mailbox.gob"
-
- JSArg *arg;
-
- arg = g_new(JSArg, 1);
- arg->type = JS_ARG_LIST;
- arg->value.list = list;
-
- return arg;
+#endif
+ }
}}
-#line 1289 "mn-gmail-mailbox.c"
+#line 512 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 847 "mn-gmail-mailbox.gob"
-static void
-mn_gmail_mailbox_js_arg_free (JSArg * arg)
-#line 1295 "mn-gmail-mailbox.c"
+#line 249 "mn-gmail-mailbox.gob"
+static char *
+mn_gmail_mailbox_parse_author (xmlNode * node)
+#line 518 "mn-gmail-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_free"
-#line 847 "mn-gmail-mailbox.gob"
- g_return_if_fail (arg != NULL);
-#line 1300 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_author"
+#line 249 "mn-gmail-mailbox.gob"
+ g_return_val_if_fail (node != NULL, (char * )0);
+#line 523 "mn-gmail-mailbox.c"
{
-#line 849 "mn-gmail-mailbox.gob"
+#line 251 "mn-gmail-mailbox.gob"
- switch (arg->type)
- {
- case JS_ARG_STRING:
- g_free(arg->value.string);
- break;
-
- case JS_ARG_LIST:
- self_js_arg_list_free(arg->value.list);
- break;
+ char *from;
+ char *name = NULL;
+ char *email = NULL;
+
+ for (node = node->children; node != NULL; node = node->next)
+ if (node->type == XML_ELEMENT_NODE)
+ {
+ if (! strcmp(node->name, "name"))
+ {
+ g_free(name);
+ name = xmlNodeGetContent(node);
+ }
+ else if (! strcmp(node->name, "email"))
+ {
+ g_free(email);
+ email = xmlNodeGetContent(node);
+ }
+ }
- default:
- g_return_if_reached();
- }
+ from = name && email
+ ? g_strdup_printf("%s <%s>", name, email)
+ : g_strdup(name ? name : email);
- g_free(arg);
+ g_free(name);
+ g_free(email);
+
+ return from;
}}
-#line 1320 "mn-gmail-mailbox.c"
+#line 555 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 867 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
static time_t
-mn_gmail_mailbox_parse_date (MNGmailMailbox * self, const char * date)
-#line 1326 "mn-gmail-mailbox.c"
+mn_gmail_mailbox_parse_date (const char * w3c_datetime)
+#line 561 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_date"
-#line 867 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (self != NULL, (time_t )0);
-#line 867 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (time_t )0);
-#line 867 "mn-gmail-mailbox.gob"
- g_return_val_if_fail (date != NULL, (time_t )0);
-#line 1335 "mn-gmail-mailbox.c"
+#line 281 "mn-gmail-mailbox.gob"
+ g_return_val_if_fail (w3c_datetime != NULL, (time_t )0);
+#line 566 "mn-gmail-mailbox.c"
{
-#line 869 "mn-gmail-mailbox.gob"
+#line 283 "mn-gmail-mailbox.gob"
-#ifdef WITH_GMAIL_TIMESTAMPS
+#ifdef HAVE_TIMEGM
time_t t = 0;
- UChar *zone_id;
- UCalendar *cal;
- UErrorCode status = U_ZERO_ERROR;
- UDate ud;
- int hour;
- int minute;
- char ampm[3];
- char month_str[4];
- int year;
- int month;
- int day;
- gboolean valid = FALSE;
-
- zone_id = mn_icu_ustr_new("PST"); /* Gmail's timezone */
- cal = ucal_open(zone_id, -1, NULL, UCAL_TRADITIONAL, &status);
- g_free(zone_id);
-
- if (! cal)
- {
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to open calendar: %s"), u_errorName(status));
- return 0;
- }
-
- ud = ucal_getNow();
- ucal_setMillis(cal, ud, &status);
- if (U_FAILURE(status))
+ char year[5];
+ char month[3];
+ char day[3];
+ char hour[3];
+ char minute[3];
+ char second[3];
+
+ if (sscanf(w3c_datetime, "%4s-%2s-%2sT%2s:%2s:%2sZ", year, month, day, hour, minute, second) == 6
+ && mn_str_isnumeric(year)
+ && mn_str_isnumeric(month)
+ && mn_str_isnumeric(day)
+ && mn_str_isnumeric(hour)
+ && mn_str_isnumeric(minute)
+ && mn_str_isnumeric(second))
{
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to set calendar time: %s"), u_errorName(status));
- goto end;
+ struct tm tm = { 0 };
+
+ tm.tm_sec = atoi(second);
+ tm.tm_min = atoi(minute);
+ tm.tm_hour = atoi(hour);
+ tm.tm_mday = atoi(day);
+ tm.tm_mon = atoi(month) - 1;
+ tm.tm_year = atoi(year) - 1900;
+
+ t = timegm(&tm);
+ if (t == -1)
+ t = 0;
}
- if (sscanf(date, "%d:%d%2s", &hour, &minute, ampm) == 3)
- {
- ucal_set(cal, UCAL_HOUR, hour);
- ucal_set(cal, UCAL_MINUTE, minute);
- ucal_set(cal, UCAL_SECOND, 0);
- ucal_set(cal, UCAL_AM_PM, ampm[0] == 'p' ? 1 : 0);
- valid = TRUE;
- }
- else if (sscanf(date, "%d/%d/%d", &month, &day, &year) == 3)
- {
- /*
- * Convert year from 2-digits to 4-digits, conforms to the
- * POSIX or X/Open standard.
- */
- year += year >= 69 && year <= 99 ? 1900 : 2000;
-
- ucal_set(cal, UCAL_MONTH, month);
- ucal_set(cal, UCAL_DATE, day);
- ucal_set(cal, UCAL_YEAR, year);
- ucal_set(cal, UCAL_HOUR, 0);
- ucal_set(cal, UCAL_MINUTE, 0);
- ucal_set(cal, UCAL_SECOND, 0);
- valid = TRUE;
- }
- else if (sscanf(date, "%3s %d", month_str, &day) == 2)
- {
- const struct
- {
- const char *name;
- int value;
- } months[] = {
- { "Jan", UCAL_JANUARY },
- { "Feb", UCAL_FEBRUARY },
- { "Mar", UCAL_MARCH },
- { "Apr", UCAL_APRIL },
- { "May", UCAL_MAY },
- { "Jun", UCAL_JUNE },
- { "Jul", UCAL_JULY },
- { "Aug", UCAL_AUGUST },
- { "Sep", UCAL_SEPTEMBER },
- { "Oct", UCAL_OCTOBER },
- { "Nov", UCAL_NOVEMBER },
- { "Dec", UCAL_DECEMBER }
- };
- int i;
-
- for (i = 0; i < G_N_ELEMENTS(months); i++)
- if (! strcmp(month_str, months[i].name))
- {
- ucal_set(cal, UCAL_MONTH, months[i].value);
- ucal_set(cal, UCAL_DATE, day);
- ucal_set(cal, UCAL_HOUR, 0);
- ucal_set(cal, UCAL_MINUTE, 0);
- ucal_set(cal, UCAL_SECOND, 0);
- valid = TRUE;
- break;
- }
- }
-
- if (valid)
- {
- ud = ucal_getMillis(cal, &status);
- if (U_SUCCESS(status))
- t = ud / 1000;
- else
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to get calendar time: %s"), u_errorName(status));
- }
-
- end:
- ucal_close(cal);
-
return t;
#else
g_return_val_if_reached(0);
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#endif
+ }}
+#line 606 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 321 "mn-gmail-mailbox.gob"
+char *
+mn_gmail_mailbox_build_name (const char * username)
+#line 612 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_name"
+{
+#line 323 "mn-gmail-mailbox.gob"
+
+ if (username)
+ return g_str_has_suffix(username, "@gmail.com")
+ ? g_strdup(username)
+ : g_strdup_printf("%s@gmail.com", username);
+ else
+ return g_strdup("gmail.com");
}}
-#line 1448 "mn-gmail-mailbox.c"
+#line 625 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-gmail-mailbox.gob b/src/mn-gmail-mailbox.gob
@@ -16,964 +16,316 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include "mn-authenticated-mailbox.h"
%}
%privateheader{
-#include "mn-soup.h"
+#include <libgnomevfs/gnome-vfs.h>
%}
%{
#include "config.h"
-#include <stdio.h>
#include <string.h>
-#include <stdarg.h>
+#ifdef HAVE_TIMEGM
#include <stdlib.h>
#include <time.h>
+#ifdef TM_IN_SYS_TIME
+#include <sys/time.h>
+#endif /* TM_IN_SYS_TIME */
+#endif /* HAVE_TIMEGM */
#include <glib/gi18n.h>
-#include <eel/eel.h>
-#ifdef WITH_GMAIL_TIMESTAMPS
-#include <unicode/uenum.h>
-#include <unicode/uloc.h>
-#include <unicode/ucal.h>
-#include "mn-icu.h"
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#include <libxml/parser.h>
+#include <libxml/tree.h>
#include "mn-mailbox-private.h"
#include "mn-authenticated-mailbox-private.h"
-#include "mn-util.h"
+#include "mn-vfs.h"
#include "mn-stock.h"
-#include "mn-sgml-ref.h"
+#include "mn-message.h"
+#include "mn-util.h"
- typedef enum
- {
- JS_ARG_STRING,
- JS_ARG_LIST
- } JSArgType;
-
- typedef struct
- {
- JSArgType type;
- union
- {
- char *string;
- GSList *list;
- } value;
- } JSArg;
+#define DEFAULT_LOCATION "https://mail.google.com/mail/feed/atom"
%}
class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
{
- private GHashTable *cookies destroywith g_hash_table_destroy;
- private gboolean logged_in;
+ public char *location destroywith g_free;
+ property STRING location (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+ public char *runtime_location destroywith g_free;
+
+ private GnomeVFSURI *uri unrefwith gnome_vfs_uri_unref;
class_init (class)
{
- MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_GMAIL;
- MN_MAILBOX_CLASS(class)->format = "Gmail";
+ MN_MAILBOX_CLASS(class)->type = "gmail";
}
override (G:Object) GObject *
constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
{
GObject *object;
+ MNMailbox *mailbox;
object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-
- if (! soup_ssl_supported)
- mn_mailbox_set_init_error(MN_MAILBOX(object), _("libsoup has not been compiled with SSL/TLS support"));
+ mailbox = MN_MAILBOX(object);
- return object;
- }
+ mn_mailbox_set_format(mailbox, "Gmail");
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_GMAIL);
- override (MN:Mailbox) gboolean
- impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
- {
- return MN_URI_IS_GMAIL(uri);
+ return object;
}
override (MN:Mailbox) void
- impl_check (MN:Mailbox *mailbox (check null type))
+ seal (MNMailbox *mailbox)
{
- MNAuthenticatedMailbox *authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
Self *self = SELF(mailbox);
- SoupSession *session;
- gboolean status = TRUE;
- GError *err = NULL;
PARENT_HANDLER(mailbox);
- session = mn_soup_session_sync_new();
-
- if (! selfp->logged_in)
- while (TRUE)
- {
- gboolean authentication_failed;
-
- mn_authenticated_mailbox_fill_password(authenticated_mailbox);
- if (! authenticated_mailbox->password)
- break;
-
- if (self_login(self, session, &authentication_failed, &err))
- {
- selfp->logged_in = TRUE;
- break;
- }
- else
- {
- if (authentication_failed && ! mailbox->uri->password)
- {
- mn_authenticated_mailbox_authentication_failed(authenticated_mailbox);
- g_clear_error(&err);
- }
- else
- {
- status = FALSE;
- break;
- }
- }
- }
-
- if (selfp->logged_in && ! self_check(self, session, &err))
- status = FALSE;
-
- g_object_unref(session);
-
- GDK_THREADS_ENTER();
-
- if (! status)
- {
- mn_mailbox_set_error(mailbox, "%s", err->message);
- g_error_free(err);
- }
- mn_mailbox_end_check(mailbox);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
- }
-
- private SoupUri *
- soup_uri_new (const char *text_uri (check null), GError **err)
- {
- SoupUri *uri;
-
- uri = soup_uri_new(text_uri);
- if (! uri)
- g_set_error(err, 0, 0, _("unable to parse URI \"%s\""), text_uri);
-
- return uri;
- }
-
- private char *
- get (self,
- Soup:Session *session (check null type),
- const char *text_uri (check null),
- GError **err)
- {
- SoupUri *uri;
- char *body;
-
- uri = self_soup_uri_new(text_uri, err);
- if (! uri)
- return NULL;
-
- body = self_get_from_uri(self, session, uri, err);
- soup_uri_free(uri);
-
- return body;
- }
-
- private char *
- get_from_uri (self,
- Soup:Session *session (check null type),
- SoupUri *uri (check null),
- GError **err)
- {
- SoupMessage *message;
- char *cookie;
- char *body = NULL;
-
- message = soup_message_new_from_uri(SOUP_METHOD_GET, uri);
- soup_message_add_header(message->request_headers, "User-Agent", "Mail Notification");
-
- cookie = self_build_cookie(self);
- if (cookie)
- {
- soup_message_add_header(message->request_headers, "Cookie", cookie);
- g_free(cookie);
- }
-
- self_dump_request(self, message);
- soup_session_send_message(session, message);
-
- if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code))
- {
- const char *end;
-
- /* Gmail returns UTF-8, so we don't need to parse Content-Type */
- if (! g_utf8_validate(message->response.body, message->response.length, &end))
- mn_mailbox_warning(MN_MAILBOX(self), _("received non-UTF-8 data from server"));
-
- body = g_strndup(message->response.body, end - message->response.body);
- self_dump_response(self, message, body);
- self_update_cookies(self, message);
- }
- else
- g_set_error(err, 0, 0, _("unable to transfer data: %s"), message->reason_phrase);
-
- g_object_unref(message);
-
- return body;
- }
-
- private void
- dump_request (self, Soup:Message *message (check null type))
- {
- const SoupUri *suri;
- char *uri;
-
- suri = soup_message_get_uri(message);
- uri = soup_uri_to_string(suri, FALSE);
- mn_mailbox_notice(MN_MAILBOX(self), "> GET %s", uri);
- g_free(uri);
-
- soup_message_foreach_header(message->request_headers, self_dump_request_cb, self);
- }
-
- private void
- dump_request_cb (gpointer key (check null),
- gpointer value (check null),
- gpointer user_data (check null))
- {
- Self *self = user_data;
- const char *header_name = key;
- const char *header_value = value;
-
- mn_mailbox_notice(MN_MAILBOX(self), "> %s: %s", header_name, header_value);
- }
-
- private void
- dump_response (self,
- Soup:Message *message (check null type),
- const char *body (check null))
- {
- char **lines;
- int i;
-
- soup_message_foreach_header(message->response_headers, self_dump_response_cb, self);
+ self->runtime_location = g_strdup(self->location ? self->location : DEFAULT_LOCATION);
- lines = g_strsplit(body, "\n", 0);
- for (i = 0; lines[i]; i++)
- mn_mailbox_notice(MN_MAILBOX(self), "< %s", lines[i]);
- g_strfreev(lines);
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username);
}
- private void
- dump_response_cb (gpointer key (check null),
- gpointer value (check null),
- gpointer user_data (check null))
+ override (MN:Authenticated:Mailbox) void
+ impl_check (MNAuthenticatedMailbox *mailbox)
{
- Self *self = user_data;
- const char *header_name = key;
- const char *header_value = value;
-
- mn_mailbox_notice(MN_MAILBOX(self), "< %s: %s", header_name, header_value);
- }
+ Self *self = SELF(mailbox);
+ GnomeVFSResult result;
+ char *atom;
+ int atom_size;
+ xmlDoc *doc;
+ xmlNode *node;
- /**
- * get_substring:
- * @str: the string to search
- * @pre: the start of the substring
- * @post: the end of the substring
- * @include_pre: whether to include @pre in the result or not
- * @include_post: whether to include @post in the result or not
- *
- * Gets the first substring of @str included between @pre and @post.
- *
- * Return value: a newly allocated string containing the substring
- * or %NULL if not found.
- **/
- private char *
- get_substring (const char *str (check null),
- const char *pre (check null),
- const char *post (check null),
- gboolean include_pre,
- gboolean include_post)
- {
- char *sub = NULL;
- char *pre_loc;
-
- pre_loc = strstr(str, pre);
- if (pre_loc)
+ if (! selfp->uri)
{
- char *after_pre_loc;
- char *post_loc;
-
- after_pre_loc = pre_loc + strlen(pre);
- post_loc = strstr(after_pre_loc, post);
- if (post_loc)
+ selfp->uri = gnome_vfs_uri_new(self->runtime_location);
+ if (! selfp->uri)
{
- char *start = include_pre ? pre_loc : after_pre_loc;
- char *end = include_post ? post_loc + strlen(post) : post_loc;
-
- sub = g_strndup(start, end - start);
- }
- }
-
- return sub;
- }
+ GDK_THREADS_ENTER();
- private gboolean
- login (self,
- Soup:Session *session (check null type),
- gboolean *authentication_failed (check null),
- GError **err)
- {
- char *text_uri;
- char *escaped_username;
- char *escaped_password;
- char *body;
- char *next_location;
- char *query;
- SoupUri *uri;
- gboolean success;
-
- g_return_val_if_fail(selfp->logged_in == FALSE, FALSE);
-
- mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
- *authentication_failed = FALSE;
-
- if (selfp->cookies)
- g_hash_table_destroy(selfp->cookies);
- selfp->cookies = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-
-#define EXTRA_CHARS ";/?:@&=+$,"/* taken from RFC 2396 2.2 */
- escaped_username = soup_uri_encode(MN_MAILBOX(self)->uri->username, EXTRA_CHARS);
- escaped_password = soup_uri_encode(MN_AUTHENTICATED_MAILBOX(self)->password, EXTRA_CHARS);
- text_uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
- g_free(escaped_username);
- g_free(escaped_password);
-
- body = self_get(self, session, text_uri, err);
- g_free(text_uri);
+ mn_mailbox_set_error(MN_MAILBOX(self), _("invalid feed location"));
+ /* error is not recoverable, disable the mailbox */
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
- if (! body)
- return FALSE;
+ gdk_flush();
+ GDK_THREADS_LEAVE();
- next_location = self_get_substring(body, "top.location = \"", "\"", FALSE, FALSE);
- g_free(body);
+ return;
+ }
- if (! next_location)
- {
- *authentication_failed = TRUE;
- goto failed;
+ gnome_vfs_uri_set_user_name(selfp->uri, mailbox->username);
+ gnome_vfs_uri_set_password(selfp->uri, mailbox->password);
}
- /*
- * The following kludges work around
- * http://bugzilla.ximian.com/show_bug.cgi?id=66516.
- *
- * FIXME: remove it and bump libsoup version requirement when the
- * bug is fixed.
- */
-
- query = strchr(next_location, '?');
- if (query)
- *query = 0;
-
- text_uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
- g_free(next_location);
+ mn_mailbox_notice(MN_MAILBOX(self), _("retrieving feed from %s"), self->runtime_location);
- uri = self_soup_uri_new(text_uri, err);
- g_free(text_uri);
-
- if (! uri)
- return FALSE;
-
- if (query)
+ result = mn_vfs_read_entire_file_uri(selfp->uri, &atom_size, &atom);
+ if (result != GNOME_VFS_OK)
{
- uri->query = g_strdup(query + 1);
- uri->broken_encoding = TRUE;
- }
-
- body = self_get_from_uri(self, session, uri, err);
- soup_uri_free(uri);
-
- if (! body)
- return FALSE;
-
- next_location = self_get_substring(body, "location.replace(\"", "\")", FALSE, FALSE);
- g_free(body);
-
- if (! next_location)
- goto failed;
-
- body = self_get(self, session, next_location, err);
- g_free(next_location);
-
- success = strstr(body, "frame name=js src=/gmail") != NULL;
- g_free(body);
-
- if (success)
- return TRUE;
-
- failed:
- g_set_error(err, 0, 0, _("login failed"));
- return FALSE;
- }
-
- private void
- update_cookies (self, Soup:Message *message (check null type))
- {
- const GSList *l;
-
- MN_LIST_FOREACH(l, soup_message_get_header_list(message->response_headers, "Set-Cookie"))
- {
- const char *value = l->data;
- char *equal;
-
- equal = strchr(value, '=');
- if (equal && equal - value > 0)
- {
- char *end;
- char *cookie_name;
- char *cookie_value;
+ GDK_THREADS_ENTER();
- end = strchr(equal, ';');
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to retrieve feed: %s"), gnome_vfs_result_to_string(result));
- cookie_name = g_strndup(value, equal - value);
- cookie_value = end
- ? g_strndup(equal + 1, end - equal - 1)
- : g_strdup(equal + 1);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
- g_hash_table_insert(selfp->cookies, cookie_name, cookie_value);
- }
+ return;
}
- }
-
- private char *
- build_cookie (self)
- {
- GString *cookie;
- char *str;
-
- cookie = g_string_new(NULL);
- g_hash_table_foreach(selfp->cookies, self_build_cookie_cb, cookie);
+
+ doc = xmlParseMemory(atom, atom_size);
+ g_free(atom);
- if (*cookie->str)
- str = g_string_free(cookie, FALSE);
- else
+ if (! doc)
{
- str = NULL;
- g_string_free(cookie, TRUE);
- }
-
- return str;
- }
-
- private void
- build_cookie_cb (gpointer key, gpointer value, gpointer user_data)
- {
- GString *cookie = user_data;
-
- if (*cookie->str)
- g_string_append(cookie, "; ");
-
- g_string_append_printf(cookie, "%s=%s", (const char *) key, (const char *) value);
- }
-
- private gboolean
- check (self, Soup:Session *session (check null type), GError **err)
- {
- char *body;
- char *work;
- gboolean status = FALSE;
+ GDK_THREADS_ENTER();
- g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
- mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
+ gdk_flush();
+ GDK_THREADS_LEAVE();
- body = self_get(self, session, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", err);
- if (! body)
- return FALSE;
+ return;
+ }
- work = strstr(body, "Search results for: is:unread\",\"");
- if (work)
+ node = xmlDocGetRootElement(doc);
+ if (node && ! strcmp(node->name, "feed"))
{
GSList *messages = NULL;
- work += 32;
+ for (node = node->children; node != NULL; node = node->next)
+ if (node->type == XML_ELEMENT_NODE && ! strcmp(node->name, "entry"))
+ {
+ time_t sent_time;
+ char *id;
+ char *from;
+ char *subject;
+
+ self_parse_entry(node, &sent_time, &id, &from, &subject);
+
+ messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self),
+ NULL,
+ sent_time,
+ id,
+ from,
+ subject));
+
+ g_free(id);
+ g_free(from);
+ g_free(subject);
+ }
- while ((work = strstr(work, "D([")))
- {
- GSList *arg_list;
-
- work += 2;
- if (self_js_get_arg_list(&work, &arg_list) && arg_list)
- {
- GSList *l;
- gboolean icu_available = FALSE;
-
-#ifdef WITH_GMAIL_TIMESTAMPS
- if (arg_list->next)
- {
- GError *err = NULL;
-
- icu_available = mn_icu_use(&err);
- if (! icu_available)
- {
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to initialize the ICU library"), err->message);
- g_error_free(err);
- }
- }
-#endif /* WITH_GMAIL_TIMESTAMPS */
-
- MN_LIST_FOREACH(l, arg_list->next)
- self_append_message(self, &messages, l->data, icu_available);
-
-#ifdef WITH_GMAIL_TIMESTAMPS
- if (icu_available)
- mn_icu_unuse();
-#endif /* WITH_GMAIL_TIMESTAMPS */
-
- self_js_arg_list_free(arg_list);
- }
- }
-
GDK_THREADS_ENTER();
+
mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+ mn_g_object_slist_free(messages);
+
gdk_flush();
GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
- status = TRUE;
}
else
- g_set_error(err, 0, 0, _("unable to parse Gmail data"));
-
- g_free(body);
-
- return status;
- }
-
- private void
- append_message (self,
- GSList **messages (check null),
- JSArg *arg (check null),
- gboolean icu_available)
- {
- char *date_field;
- char *sender_field;
- char *subject_field;
- GSList *labels_list;
- GSList *l;
- gboolean in_inbox = FALSE;
-
- char *count_str;
- char *sender_email;
- char *sender_name;
- char *subject;
-
- int count = 1;
- time_t sent_time = 0;
- char *from = NULL;
- char *expanded_subject = NULL;
-
- int i;
-
- if (arg->type != JS_ARG_LIST
- || ! self_js_arg_list_scan(arg->value.list,
- 3, JS_ARG_STRING, &date_field,
- 4, JS_ARG_STRING, &sender_field,
- 6, JS_ARG_STRING, &subject_field,
- 8, JS_ARG_LIST, &labels_list,
- -1))
- return;
-
- MN_LIST_FOREACH(l, labels_list)
{
- JSArg *label = l->data;
-
- if (label->type == JS_ARG_STRING && ! strcmp(label->value.string, "^i"))
- {
- in_inbox = TRUE;
- break;
- }
- }
+ GDK_THREADS_ENTER();
- if (! in_inbox)
- return;
-
-#ifdef WITH_GMAIL_TIMESTAMPS
- if (icu_available)
- {
- char *date;
+ mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
- date = self_get_substring(date_field, "<b>", "</b>", FALSE, FALSE);
- if (date)
- {
- sent_time = self_parse_date(self, date);
- g_free(date);
- }
+ gdk_flush();
+ GDK_THREADS_LEAVE();
}
-#endif /* WITH_GMAIL_TIMESTAMPS */
- count_str = self_get_substring(sender_field, "</span> (", ")", FALSE, FALSE);
- if (count_str)
- {
- if (mn_str_isnumeric(count_str))
- count = atoi(count_str);
- g_free(count_str);
- }
-
- sender_email = self_get_substring(sender_field, "<span id='_user_", "'", FALSE, FALSE);
- sender_name = self_get_substring(sender_field, "'><b>", "</b>", FALSE, FALSE);
-
- if (sender_name && sender_email)
- {
- char *tmp;
-
- tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
- from = mn_sgml_ref_expand(tmp);
- g_free(tmp);
- }
- else if (sender_name)
- from = mn_sgml_ref_expand(sender_name);
- else if (sender_email)
- from = mn_sgml_ref_expand(sender_email);
-
- g_free(sender_email);
- g_free(sender_name);
-
- subject = self_get_substring(subject_field, "<b>", "</b>", FALSE, FALSE);
- if (subject)
- {
- if (strcmp(subject, "(no subject)"))
- expanded_subject = mn_sgml_ref_expand(subject);
- g_free(subject);
- }
-
- for (i = 0; i < count; i++)
- *messages = g_slist_append(*messages, mn_message_new(MN_MAILBOX(self)->uri,
- NULL,
- sent_time,
- NULL,
- from,
- expanded_subject));
-
- g_free(from);
- g_free(expanded_subject);
+ xmlFreeDoc(doc);
}
- private gboolean
- js_get_arg_list (char **str (check null), GSList **list (check null))
+ private void
+ parse_entry (xmlNode *node (check null),
+ time_t *sent_time (check null),
+ char **id (check null),
+ char **from (check null),
+ char **subject (check null))
{
- GSList *our_list = NULL;
- gboolean done = FALSE;
- gboolean in_literal = FALSE; /* a string enclosed in double quotes */
- gboolean quoted = FALSE; /* the next character is quoted with a backslash */
- JSArg *arg = NULL;
- GString *string;
-
- g_return_val_if_fail(*str != NULL, FALSE);
- g_return_val_if_fail(**str == '[', FALSE);
+ *sent_time = 0;
+ *id = NULL;
+ *from = NULL;
+ *subject = NULL;
- (*str)++; /* skip the initial open bracket */
- string = g_string_new(NULL);
-
- while (**str && ! done)
- {
- gboolean next = TRUE;
-
- if (in_literal)
- switch (**str)
+ for (node = node->children; node != NULL; node = node->next)
+ if (node->type == XML_ELEMENT_NODE)
+ {
+ if (! strcmp(node->name, "title"))
{
- case '\\':
- quoted = TRUE;
- break;
-
- case '"':
- if (! quoted)
- {
- in_literal = FALSE;
- break;
- }
- /* else pass through */
-
- default:
- quoted = FALSE;
- g_string_append_c(string, **str);
+ g_free(*subject);
+ *subject = xmlNodeGetContent(node);
}
- else
- switch (**str)
+ else if (! strcmp(node->name, "id"))
{
- case '[':
- {
- GSList *sub_list;
-
- if (arg || ! self_js_get_arg_list(str, &sub_list))
- goto end; /* parse error */
-
- arg = self_js_arg_new_list(sub_list);
- next = FALSE;
- break;
- }
-
- case ']':
- done = TRUE;
- /* fall through */
-
- case ',':
- if (! arg)
- arg = self_js_arg_new_string(string->str);
-
- our_list = g_slist_append(our_list, arg);
-
- g_string_truncate(string, 0);
- arg = NULL;
- break;
-
- case '"':
- in_literal = TRUE;
- break;
-
- default:
- g_string_append_c(string, **str);
+ g_free(*id);
+ *id = xmlNodeGetContent(node);
}
-
- if (next)
- (*str)++;
- }
-
- end:
- if (arg)
- self_js_arg_free(arg);
- g_string_free(string, TRUE);
-
- if (done)
- {
- *list = our_list;
- return TRUE;
- }
- else
- {
- self_js_arg_list_free(our_list);
- return FALSE;
- }
- }
-
- private gboolean
- js_arg_list_scan (GSList *list, ...)
- {
- va_list args;
- int position;
- gboolean status = TRUE;
-
- va_start(args, list);
-
- while ((position = va_arg(args, int)) != -1)
- {
- JSArgType type = va_arg(args, JSArgType);
- JSArg *arg = g_slist_nth_data(list, position);
-
- if (! arg)
- {
- status = FALSE;
- break;
- }
-
- switch (type)
- {
- case JS_ARG_STRING:
+ else if (! strcmp(node->name, "author"))
{
- char **str = va_arg(args, char **);
- g_return_val_if_fail(str != NULL, FALSE);
-
- *str = arg->value.string;
- break;
+ g_free(*from);
+ *from = self_parse_author(node);
}
-
- case JS_ARG_LIST:
+#ifdef HAVE_TIMEGM
+ else if (! strcmp(node->name, "issued"))
{
- GSList **elem_list = va_arg(args, GSList **);
- g_return_val_if_fail(elem_list != NULL, FALSE);
+ char *w3c_datetime;
- *elem_list = arg->value.list;
- break;
+ w3c_datetime = xmlNodeGetContent(node);
+ if (w3c_datetime)
+ {
+ *sent_time = self_parse_date(w3c_datetime);
+ g_free(w3c_datetime);
+ }
}
-
- default:
- g_return_val_if_reached(FALSE);
- }
- }
-
- va_end(args);
-
- return status;
- }
-
- private void
- js_arg_list_free (GSList *list)
- {
- eel_g_slist_free_deep_custom(list, (GFunc) self_js_arg_free, NULL);
+#endif
+ }
}
- private JSArg *
- js_arg_new_string (const char *string (check null))
- {
- JSArg *arg;
-
- arg = g_new(JSArg, 1);
- arg->type = JS_ARG_STRING;
- arg->value.string = g_strdup(string);
-
- return arg;
- }
-
- private JSArg *
- js_arg_new_list (GSList *list)
- {
- JSArg *arg;
-
- arg = g_new(JSArg, 1);
- arg->type = JS_ARG_LIST;
- arg->value.list = list;
-
- return arg;
- }
-
- private void
- js_arg_free (JSArg *arg (check null))
+ private char *
+ parse_author (xmlNode *node (check null))
{
- switch (arg->type)
- {
- case JS_ARG_STRING:
- g_free(arg->value.string);
- break;
-
- case JS_ARG_LIST:
- self_js_arg_list_free(arg->value.list);
- break;
+ char *from;
+ char *name = NULL;
+ char *email = NULL;
+
+ for (node = node->children; node != NULL; node = node->next)
+ if (node->type == XML_ELEMENT_NODE)
+ {
+ if (! strcmp(node->name, "name"))
+ {
+ g_free(name);
+ name = xmlNodeGetContent(node);
+ }
+ else if (! strcmp(node->name, "email"))
+ {
+ g_free(email);
+ email = xmlNodeGetContent(node);
+ }
+ }
- default:
- g_return_if_reached();
- }
+ from = name && email
+ ? g_strdup_printf("%s <%s>", name, email)
+ : g_strdup(name ? name : email);
- g_free(arg);
+ g_free(name);
+ g_free(email);
+
+ return from;
}
private time_t
- parse_date (self, const char *date (check null))
+ parse_date (const char *w3c_datetime (check null))
{
-#ifdef WITH_GMAIL_TIMESTAMPS
+#ifdef HAVE_TIMEGM
time_t t = 0;
- UChar *zone_id;
- UCalendar *cal;
- UErrorCode status = U_ZERO_ERROR;
- UDate ud;
- int hour;
- int minute;
- char ampm[3];
- char month_str[4];
- int year;
- int month;
- int day;
- gboolean valid = FALSE;
-
- zone_id = mn_icu_ustr_new("PST"); /* Gmail's timezone */
- cal = ucal_open(zone_id, -1, NULL, UCAL_TRADITIONAL, &status);
- g_free(zone_id);
-
- if (! cal)
- {
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to open calendar: %s"), u_errorName(status));
- return 0;
- }
-
- ud = ucal_getNow();
- ucal_setMillis(cal, ud, &status);
- if (U_FAILURE(status))
+ char year[5];
+ char month[3];
+ char day[3];
+ char hour[3];
+ char minute[3];
+ char second[3];
+
+ if (sscanf(w3c_datetime, "%4s-%2s-%2sT%2s:%2s:%2sZ", year, month, day, hour, minute, second) == 6
+ && mn_str_isnumeric(year)
+ && mn_str_isnumeric(month)
+ && mn_str_isnumeric(day)
+ && mn_str_isnumeric(hour)
+ && mn_str_isnumeric(minute)
+ && mn_str_isnumeric(second))
{
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to set calendar time: %s"), u_errorName(status));
- goto end;
+ struct tm tm = { 0 };
+
+ tm.tm_sec = atoi(second);
+ tm.tm_min = atoi(minute);
+ tm.tm_hour = atoi(hour);
+ tm.tm_mday = atoi(day);
+ tm.tm_mon = atoi(month) - 1;
+ tm.tm_year = atoi(year) - 1900;
+
+ t = timegm(&tm);
+ if (t == -1)
+ t = 0;
}
- if (sscanf(date, "%d:%d%2s", &hour, &minute, ampm) == 3)
- {
- ucal_set(cal, UCAL_HOUR, hour);
- ucal_set(cal, UCAL_MINUTE, minute);
- ucal_set(cal, UCAL_SECOND, 0);
- ucal_set(cal, UCAL_AM_PM, ampm[0] == 'p' ? 1 : 0);
- valid = TRUE;
- }
- else if (sscanf(date, "%d/%d/%d", &month, &day, &year) == 3)
- {
- /*
- * Convert year from 2-digits to 4-digits, conforms to the
- * POSIX or X/Open standard.
- */
- year += year >= 69 && year <= 99 ? 1900 : 2000;
-
- ucal_set(cal, UCAL_MONTH, month);
- ucal_set(cal, UCAL_DATE, day);
- ucal_set(cal, UCAL_YEAR, year);
- ucal_set(cal, UCAL_HOUR, 0);
- ucal_set(cal, UCAL_MINUTE, 0);
- ucal_set(cal, UCAL_SECOND, 0);
- valid = TRUE;
- }
- else if (sscanf(date, "%3s %d", month_str, &day) == 2)
- {
- const struct
- {
- const char *name;
- int value;
- } months[] = {
- { "Jan", UCAL_JANUARY },
- { "Feb", UCAL_FEBRUARY },
- { "Mar", UCAL_MARCH },
- { "Apr", UCAL_APRIL },
- { "May", UCAL_MAY },
- { "Jun", UCAL_JUNE },
- { "Jul", UCAL_JULY },
- { "Aug", UCAL_AUGUST },
- { "Sep", UCAL_SEPTEMBER },
- { "Oct", UCAL_OCTOBER },
- { "Nov", UCAL_NOVEMBER },
- { "Dec", UCAL_DECEMBER }
- };
- int i;
-
- for (i = 0; i < G_N_ELEMENTS(months); i++)
- if (! strcmp(month_str, months[i].name))
- {
- ucal_set(cal, UCAL_MONTH, months[i].value);
- ucal_set(cal, UCAL_DATE, day);
- ucal_set(cal, UCAL_HOUR, 0);
- ucal_set(cal, UCAL_MINUTE, 0);
- ucal_set(cal, UCAL_SECOND, 0);
- valid = TRUE;
- break;
- }
- }
-
- if (valid)
- {
- ud = ucal_getMillis(cal, &status);
- if (U_SUCCESS(status))
- t = ud / 1000;
- else
- mn_mailbox_warning(MN_MAILBOX(self), _("unable to get calendar time: %s"), u_errorName(status));
- }
-
- end:
- ucal_close(cal);
-
return t;
#else
g_return_val_if_reached(0);
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#endif
+ }
+
+ public char *
+ build_name (const char *username)
+ {
+ if (username)
+ return g_str_has_suffix(username, "@gmail.com")
+ ? g_strdup(username)
+ : g_strdup_printf("%s@gmail.com", username);
+ else
+ return g_strdup("gmail.com");
}
}
diff --git a/src/mn-gmail-mailbox.h b/src/mn-gmail-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -37,6 +37,9 @@ typedef struct _MNGmailMailbox MNGmailMailbox;
#endif
struct _MNGmailMailbox {
MNAuthenticatedMailbox __parent__;
+ /*< public >*/
+ char * location;
+ char * runtime_location;
/*< private >*/
MNGmailMailboxPrivate *_priv;
};
@@ -54,6 +57,19 @@ struct _MNGmailMailboxClass {
* Public methods
*/
GType mn_gmail_mailbox_get_type (void);
+char * mn_gmail_mailbox_build_name (const char * username);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_GMAIL_MAILBOX_PROP_LOCATION(arg) "location", __extension__ ({gchar *z = (arg); z;})
+#define MN_GMAIL_MAILBOX_GET_PROP_LOCATION(arg) "location", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_GMAIL_MAILBOX_PROP_LOCATION(arg) "location",(gchar *)(arg)
+#define MN_GMAIL_MAILBOX_GET_PROP_LOCATION(arg) "location",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
#ifdef __cplusplus
}
diff --git a/src/mn-gmime-stream-vfs-private.h b/src/mn-gmime-stream-vfs-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_GMIME_STREAM_VFS_PRIVATE_H__
#define __MN_GMIME_STREAM_VFS_PRIVATE_H__
@@ -10,11 +10,11 @@ extern "C" {
#endif /* __cplusplus */
struct _MNGMimeStreamVFSPrivate {
-#line 62 "mn-gmime-stream-vfs.gob"
- GnomeVFSHandle * handle;
#line 63 "mn-gmime-stream-vfs.gob"
- char * uri;
+ GnomeVFSHandle * handle;
#line 64 "mn-gmime-stream-vfs.gob"
+ char * uri;
+#line 65 "mn-gmime-stream-vfs.gob"
gboolean eof;
#line 20 "mn-gmime-stream-vfs-private.h"
};
diff --git a/src/mn-gmime-stream-vfs.c b/src/mn-gmime-stream-vfs.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -27,6 +27,7 @@
#include "config.h"
#include <glib/gi18n.h>
+#include "mn-vfs.h"
#define VFS_CALL(stream, expr, fail_format, fail_retval) \
{ \
@@ -57,7 +58,7 @@
#define VFS_CLOSE(stream, fail_retval) \
VFS_CALL((stream), gnome_vfs_close((stream)->_priv->handle), _("unable to close %s: %s"), (fail_retval))
-#line 61 "mn-gmime-stream-vfs.c"
+#line 62 "mn-gmime-stream-vfs.c"
/* self casting macros */
#define SELF(x) MN_GMIME_STREAM_VFS(x)
#define SELF_CONST(x) MN_GMIME_STREAM_VFS_CONST(x)
@@ -141,9 +142,9 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 63 "mn-gmime-stream-vfs.gob"
+#line 64 "mn-gmime-stream-vfs.gob"
if(self->_priv->uri) { g_free ((gpointer) self->_priv->uri); self->_priv->uri = NULL; }
-#line 147 "mn-gmime-stream-vfs.c"
+#line 148 "mn-gmime-stream-vfs.c"
}
#undef __GOB_FUNCTION__
@@ -151,7 +152,7 @@ static void
mn_gmime_stream_vfs_init (MNGMimeStreamVFS * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGMimeStreamVFSPrivate);
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_GMIME_STREAM_VFS,MNGMimeStreamVFSPrivate);
}
#undef __GOB_FUNCTION__
static void
@@ -165,52 +166,45 @@ mn_gmime_stream_vfs_class_init (MNGMimeStreamVFSClass * c G_GNUC_UNUSED)
parent_class = g_type_class_ref (GMIME_TYPE_STREAM);
-#line 66 "mn-gmime-stream-vfs.gob"
+#line 67 "mn-gmime-stream-vfs.gob"
gmime_stream_class->read = ___1_mn_gmime_stream_vfs_read;
-#line 88 "mn-gmime-stream-vfs.gob"
+#line 87 "mn-gmime-stream-vfs.gob"
gmime_stream_class->write = ___2_mn_gmime_stream_vfs_write;
-#line 110 "mn-gmime-stream-vfs.gob"
+#line 107 "mn-gmime-stream-vfs.gob"
gmime_stream_class->flush = ___3_mn_gmime_stream_vfs_flush;
-#line 117 "mn-gmime-stream-vfs.gob"
+#line 114 "mn-gmime-stream-vfs.gob"
gmime_stream_class->close = ___4_mn_gmime_stream_vfs_close;
-#line 127 "mn-gmime-stream-vfs.gob"
+#line 124 "mn-gmime-stream-vfs.gob"
gmime_stream_class->eos = ___5_mn_gmime_stream_vfs_eos;
-#line 138 "mn-gmime-stream-vfs.gob"
+#line 135 "mn-gmime-stream-vfs.gob"
gmime_stream_class->reset = ___6_mn_gmime_stream_vfs_reset;
-#line 152 "mn-gmime-stream-vfs.gob"
+#line 149 "mn-gmime-stream-vfs.gob"
gmime_stream_class->seek = ___7_mn_gmime_stream_vfs_seek;
-#line 199 "mn-gmime-stream-vfs.gob"
+#line 194 "mn-gmime-stream-vfs.gob"
gmime_stream_class->tell = ___8_mn_gmime_stream_vfs_tell;
-#line 205 "mn-gmime-stream-vfs.gob"
+#line 200 "mn-gmime-stream-vfs.gob"
gmime_stream_class->length = ___9_mn_gmime_stream_vfs_length;
-#line 224 "mn-gmime-stream-vfs.gob"
+#line 219 "mn-gmime-stream-vfs.gob"
gmime_stream_class->substream = ___a_mn_gmime_stream_vfs_substream;
-#line 189 "mn-gmime-stream-vfs.c"
+#line 190 "mn-gmime-stream-vfs.c"
g_object_class->finalize = ___finalize;
}
#undef __GOB_FUNCTION__
-#line 66 "mn-gmime-stream-vfs.gob"
+#line 67 "mn-gmime-stream-vfs.gob"
static ssize_t
___1_mn_gmime_stream_vfs_read (GMimeStream * stream G_GNUC_UNUSED, char * buf, size_t len)
-#line 199 "mn-gmime-stream-vfs.c"
+#line 200 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream,___buf,___len) \
((GMIME_STREAM_CLASS(parent_class)->read)? \
(* GMIME_STREAM_CLASS(parent_class)->read)(___stream,___buf,___len): \
((ssize_t )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::read"
-#line 66 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (ssize_t )0);
-#line 66 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (ssize_t )0);
-#line 66 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (buf != NULL, (ssize_t )0);
-#line 212 "mn-gmime-stream-vfs.c"
{
-#line 70 "mn-gmime-stream-vfs.gob"
+#line 69 "mn-gmime-stream-vfs.gob"
Self *self = SELF(stream);
GnomeVFSFileSize bytes_read;
@@ -228,29 +222,22 @@ ___1_mn_gmime_stream_vfs_read (GMimeStream * stream G_GNUC_UNUSED, char * buf, s
return bytes_read;
}}
-#line 232 "mn-gmime-stream-vfs.c"
+#line 226 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 88 "mn-gmime-stream-vfs.gob"
+#line 87 "mn-gmime-stream-vfs.gob"
static ssize_t
___2_mn_gmime_stream_vfs_write (GMimeStream * stream G_GNUC_UNUSED, const char * buf, size_t len)
-#line 239 "mn-gmime-stream-vfs.c"
+#line 233 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream,___buf,___len) \
((GMIME_STREAM_CLASS(parent_class)->write)? \
(* GMIME_STREAM_CLASS(parent_class)->write)(___stream,___buf,___len): \
((ssize_t )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::write"
-#line 88 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (ssize_t )0);
-#line 88 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (ssize_t )0);
-#line 88 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (buf != NULL, (ssize_t )0);
-#line 252 "mn-gmime-stream-vfs.c"
{
-#line 92 "mn-gmime-stream-vfs.gob"
+#line 89 "mn-gmime-stream-vfs.gob"
Self *self = SELF(stream);
GnomeVFSFileSize bytes_written;
@@ -268,52 +255,42 @@ ___2_mn_gmime_stream_vfs_write (GMimeStream * stream G_GNUC_UNUSED, const char *
return bytes_written;
}}
-#line 272 "mn-gmime-stream-vfs.c"
+#line 259 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 110 "mn-gmime-stream-vfs.gob"
+#line 107 "mn-gmime-stream-vfs.gob"
static int
___3_mn_gmime_stream_vfs_flush (GMimeStream * stream G_GNUC_UNUSED)
-#line 279 "mn-gmime-stream-vfs.c"
+#line 266 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream) \
((GMIME_STREAM_CLASS(parent_class)->flush)? \
(* GMIME_STREAM_CLASS(parent_class)->flush)(___stream): \
((int )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::flush"
-#line 110 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (int )0);
-#line 110 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (int )0);
-#line 290 "mn-gmime-stream-vfs.c"
{
-#line 112 "mn-gmime-stream-vfs.gob"
+#line 109 "mn-gmime-stream-vfs.gob"
/* nop */
return 0; /* success */
}}
-#line 297 "mn-gmime-stream-vfs.c"
+#line 279 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 117 "mn-gmime-stream-vfs.gob"
+#line 114 "mn-gmime-stream-vfs.gob"
static int
___4_mn_gmime_stream_vfs_close (GMimeStream * stream G_GNUC_UNUSED)
-#line 304 "mn-gmime-stream-vfs.c"
+#line 286 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream) \
((GMIME_STREAM_CLASS(parent_class)->close)? \
(* GMIME_STREAM_CLASS(parent_class)->close)(___stream): \
((int )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::close"
-#line 117 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (int )0);
-#line 117 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (int )0);
-#line 315 "mn-gmime-stream-vfs.c"
{
-#line 119 "mn-gmime-stream-vfs.gob"
+#line 116 "mn-gmime-stream-vfs.gob"
Self *self = SELF(stream);
@@ -321,27 +298,22 @@ ___4_mn_gmime_stream_vfs_close (GMimeStream * stream G_GNUC_UNUSED)
return 0; /* success */
}}
-#line 325 "mn-gmime-stream-vfs.c"
+#line 302 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 127 "mn-gmime-stream-vfs.gob"
+#line 124 "mn-gmime-stream-vfs.gob"
static gboolean
___5_mn_gmime_stream_vfs_eos (GMimeStream * stream G_GNUC_UNUSED)
-#line 332 "mn-gmime-stream-vfs.c"
+#line 309 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream) \
((GMIME_STREAM_CLASS(parent_class)->eos)? \
(* GMIME_STREAM_CLASS(parent_class)->eos)(___stream): \
((gboolean )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::eos"
-#line 127 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (gboolean )0);
-#line 127 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (gboolean )0);
-#line 343 "mn-gmime-stream-vfs.c"
{
-#line 129 "mn-gmime-stream-vfs.gob"
+#line 126 "mn-gmime-stream-vfs.gob"
Self *self = SELF(stream);
@@ -350,27 +322,22 @@ ___5_mn_gmime_stream_vfs_eos (GMimeStream * stream G_GNUC_UNUSED)
else
return stream->position >= stream->bound_end;
}}
-#line 354 "mn-gmime-stream-vfs.c"
+#line 326 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 138 "mn-gmime-stream-vfs.gob"
+#line 135 "mn-gmime-stream-vfs.gob"
static int
___6_mn_gmime_stream_vfs_reset (GMimeStream * stream G_GNUC_UNUSED)
-#line 361 "mn-gmime-stream-vfs.c"
+#line 333 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream) \
((GMIME_STREAM_CLASS(parent_class)->reset)? \
(* GMIME_STREAM_CLASS(parent_class)->reset)(___stream): \
((int )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::reset"
-#line 138 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (int )0);
-#line 138 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (int )0);
-#line 372 "mn-gmime-stream-vfs.c"
{
-#line 140 "mn-gmime-stream-vfs.gob"
+#line 137 "mn-gmime-stream-vfs.gob"
Self *self = SELF(stream);
@@ -382,27 +349,22 @@ ___6_mn_gmime_stream_vfs_reset (GMimeStream * stream G_GNUC_UNUSED)
return 0;
}}
-#line 386 "mn-gmime-stream-vfs.c"
+#line 353 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 152 "mn-gmime-stream-vfs.gob"
+#line 149 "mn-gmime-stream-vfs.gob"
static off_t
___7_mn_gmime_stream_vfs_seek (GMimeStream * stream G_GNUC_UNUSED, off_t offset, GMimeSeekWhence whence)
-#line 393 "mn-gmime-stream-vfs.c"
+#line 360 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream,___offset,___whence) \
((GMIME_STREAM_CLASS(parent_class)->seek)? \
(* GMIME_STREAM_CLASS(parent_class)->seek)(___stream,___offset,___whence): \
((off_t )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::seek"
-#line 152 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (off_t )0);
-#line 152 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (off_t )0);
-#line 404 "mn-gmime-stream-vfs.c"
{
-#line 156 "mn-gmime-stream-vfs.gob"
+#line 151 "mn-gmime-stream-vfs.gob"
Self *self = SELF(stream);
off_t real = stream->position;
@@ -445,51 +407,41 @@ ___7_mn_gmime_stream_vfs_seek (GMimeStream * stream G_GNUC_UNUSED, off_t offset,
return real;
}}
-#line 449 "mn-gmime-stream-vfs.c"
+#line 411 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 199 "mn-gmime-stream-vfs.gob"
+#line 194 "mn-gmime-stream-vfs.gob"
static off_t
___8_mn_gmime_stream_vfs_tell (GMimeStream * stream G_GNUC_UNUSED)
-#line 456 "mn-gmime-stream-vfs.c"
+#line 418 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream) \
((GMIME_STREAM_CLASS(parent_class)->tell)? \
(* GMIME_STREAM_CLASS(parent_class)->tell)(___stream): \
((off_t )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::tell"
-#line 199 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (off_t )0);
-#line 199 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (off_t )0);
-#line 467 "mn-gmime-stream-vfs.c"
{
-#line 201 "mn-gmime-stream-vfs.gob"
+#line 196 "mn-gmime-stream-vfs.gob"
return stream->position;
}}
-#line 473 "mn-gmime-stream-vfs.c"
+#line 430 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 205 "mn-gmime-stream-vfs.gob"
+#line 200 "mn-gmime-stream-vfs.gob"
static ssize_t
___9_mn_gmime_stream_vfs_length (GMimeStream * stream G_GNUC_UNUSED)
-#line 480 "mn-gmime-stream-vfs.c"
+#line 437 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream) \
((GMIME_STREAM_CLASS(parent_class)->length)? \
(* GMIME_STREAM_CLASS(parent_class)->length)(___stream): \
((ssize_t )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::length"
-#line 205 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (ssize_t )0);
-#line 205 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (ssize_t )0);
-#line 491 "mn-gmime-stream-vfs.c"
{
-#line 207 "mn-gmime-stream-vfs.gob"
+#line 202 "mn-gmime-stream-vfs.gob"
Self *self = SELF(stream);
GnomeVFSFileSize bound_end;
@@ -506,27 +458,22 @@ ___9_mn_gmime_stream_vfs_length (GMimeStream * stream G_GNUC_UNUSED)
return bound_end - stream->bound_start;
}}
-#line 510 "mn-gmime-stream-vfs.c"
+#line 462 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 224 "mn-gmime-stream-vfs.gob"
+#line 219 "mn-gmime-stream-vfs.gob"
static GMimeStream *
___a_mn_gmime_stream_vfs_substream (GMimeStream * stream G_GNUC_UNUSED, off_t start, off_t end)
-#line 517 "mn-gmime-stream-vfs.c"
+#line 469 "mn-gmime-stream-vfs.c"
#define PARENT_HANDLER(___stream,___start,___end) \
((GMIME_STREAM_CLASS(parent_class)->substream)? \
(* GMIME_STREAM_CLASS(parent_class)->substream)(___stream,___start,___end): \
((GMimeStream * )0))
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::substream"
-#line 224 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (stream != NULL, (GMimeStream * )0);
-#line 224 "mn-gmime-stream-vfs.gob"
- g_return_val_if_fail (GMIME_IS_STREAM (stream), (GMimeStream * )0);
-#line 528 "mn-gmime-stream-vfs.c"
{
-#line 226 "mn-gmime-stream-vfs.gob"
+#line 221 "mn-gmime-stream-vfs.gob"
Self *self;
@@ -537,43 +484,67 @@ ___a_mn_gmime_stream_vfs_substream (GMimeStream * stream G_GNUC_UNUSED, off_t st
return GMIME_STREAM(self);
}}
-#line 541 "mn-gmime-stream-vfs.c"
+#line 488 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 237 "mn-gmime-stream-vfs.gob"
+#line 232 "mn-gmime-stream-vfs.gob"
GMimeStream *
-mn_gmime_stream_vfs_new (GnomeVFSHandle * handle, const char * uri)
-#line 548 "mn-gmime-stream-vfs.c"
+mn_gmime_stream_vfs_new (GnomeVFSHandle * handle, GnomeVFSURI * uri, GnomeVFSResult * result)
+#line 495 "mn-gmime-stream-vfs.c"
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::new"
-#line 237 "mn-gmime-stream-vfs.gob"
+#line 232 "mn-gmime-stream-vfs.gob"
g_return_val_if_fail (handle != NULL, (GMimeStream * )0);
-#line 237 "mn-gmime-stream-vfs.gob"
+#line 232 "mn-gmime-stream-vfs.gob"
g_return_val_if_fail (uri != NULL, (GMimeStream * )0);
-#line 555 "mn-gmime-stream-vfs.c"
+#line 502 "mn-gmime-stream-vfs.c"
{
-#line 239 "mn-gmime-stream-vfs.gob"
+#line 236 "mn-gmime-stream-vfs.gob"
- Self *self;
GMimeStream *stream;
+ GnomeVFSResult _result;
GnomeVFSFileSize current_position;
- self = GET_NEW;
- selfp->handle = handle;
- selfp->uri = g_strdup(uri);
-
- if (gnome_vfs_tell(selfp->handle, ¤t_position) != GNOME_VFS_OK)
- current_position = 0;
+ if (gnome_vfs_seek(handle, GNOME_VFS_SEEK_CURRENT, 0) != GNOME_VFS_OK
+ || gnome_vfs_tell(handle, ¤t_position) != GNOME_VFS_OK)
+ {
+ char *buf;
+ int size;
+
+ /* unseekable or untellable file, use a GMimeStreamMem */
+
+ _result = mn_vfs_read_entire_file_uri(uri, &size, &buf);
+ if (_result == GNOME_VFS_OK)
+ {
+ stream = g_mime_stream_mem_new_with_buffer(buf, size);
+ g_free(buf);
+ }
+ else
+ stream = NULL;
+ }
+ else
+ {
+ Self *self;
+
+ _result = GNOME_VFS_OK;
+
+ self = GET_NEW;
+ selfp->handle = handle;
+ selfp->uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
- stream = GMIME_STREAM(self);
- g_mime_stream_construct(stream, current_position, -1);
+ stream = GMIME_STREAM(self);
+ g_mime_stream_construct(stream, current_position, -1);
- /* check for EOF */
- if (g_mime_stream_length(stream) <= 0)
- selfp->eof = TRUE;
+ /* check for EOF */
+ if (g_mime_stream_length(stream) <= 0)
+ selfp->eof = TRUE;
+ }
+
+ if (result)
+ *result = _result;
return stream;
}}
-#line 579 "mn-gmime-stream-vfs.c"
+#line 550 "mn-gmime-stream-vfs.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-gmime-stream-vfs.gob b/src/mn-gmime-stream-vfs.gob
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <libgnomevfs/gnome-vfs.h>
@@ -26,6 +26,7 @@ requires 2.0.10
%{
#include "config.h"
#include <glib/gi18n.h>
+#include "mn-vfs.h"
#define VFS_CALL(stream, expr, fail_format, fail_retval) \
{ \
@@ -64,9 +65,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
private gboolean eof;
override (GMime:Stream) ssize_t
- read (GMime:Stream *stream (check null type),
- char *buf (check null),
- size_t len)
+ read (GMimeStream *stream, char *buf, size_t len)
{
Self *self = SELF(stream);
GnomeVFSFileSize bytes_read;
@@ -86,9 +85,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
override (GMime:Stream) ssize_t
- write (GMime:Stream *stream (check null type),
- const char *buf (check null),
- size_t len)
+ write (GMimeStream *stream, const char *buf, size_t len)
{
Self *self = SELF(stream);
GnomeVFSFileSize bytes_written;
@@ -108,14 +105,14 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
override (GMime:Stream) int
- flush (GMime:Stream *stream (check null type))
+ flush (GMimeStream *stream)
{
/* nop */
return 0; /* success */
}
override (GMime:Stream) int
- close (GMime:Stream *stream (check null type))
+ close (GMimeStream *stream)
{
Self *self = SELF(stream);
@@ -125,7 +122,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
override (GMime:Stream) gboolean
- eos (GMime:Stream *stream (check null type))
+ eos (GMimeStream *stream)
{
Self *self = SELF(stream);
@@ -136,7 +133,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
override (GMime:Stream) int
- reset (GMime:Stream *stream (check null type))
+ reset (GMimeStream *stream)
{
Self *self = SELF(stream);
@@ -150,9 +147,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
override (GMime:Stream) off_t
- seek (GMime:Stream *stream (check null type),
- off_t offset,
- GMimeSeekWhence whence)
+ seek (GMimeStream *stream, off_t offset, GMimeSeekWhence whence)
{
Self *self = SELF(stream);
off_t real = stream->position;
@@ -197,13 +192,13 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
override (GMime:Stream) off_t
- tell (GMime:Stream *stream (check null type))
+ tell (GMimeStream *stream)
{
return stream->position;
}
override (GMime:Stream) ssize_t
- length (GMime:Stream *stream (check null type))
+ length (GMimeStream *stream)
{
Self *self = SELF(stream);
GnomeVFSFileSize bound_end;
@@ -222,7 +217,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
override (GMime:Stream) GMimeStream *
- substream (GMime:Stream *stream (check null type), off_t start, off_t end)
+ substream (GMimeStream *stream, off_t start, off_t end)
{
Self *self;
@@ -235,25 +230,51 @@ class MN:GMime:Stream:VFS from GMime:Stream
}
public GMimeStream *
- new (GnomeVFSHandle *handle (check null), const char *uri (check null))
+ new (GnomeVFSHandle *handle (check null),
+ GnomeVFSURI *uri (check null),
+ GnomeVFSResult *result)
{
- Self *self;
GMimeStream *stream;
+ GnomeVFSResult _result;
GnomeVFSFileSize current_position;
- self = GET_NEW;
- selfp->handle = handle;
- selfp->uri = g_strdup(uri);
-
- if (gnome_vfs_tell(selfp->handle, ¤t_position) != GNOME_VFS_OK)
- current_position = 0;
+ if (gnome_vfs_seek(handle, GNOME_VFS_SEEK_CURRENT, 0) != GNOME_VFS_OK
+ || gnome_vfs_tell(handle, ¤t_position) != GNOME_VFS_OK)
+ {
+ char *buf;
+ int size;
+
+ /* unseekable or untellable file, use a GMimeStreamMem */
+
+ _result = mn_vfs_read_entire_file_uri(uri, &size, &buf);
+ if (_result == GNOME_VFS_OK)
+ {
+ stream = g_mime_stream_mem_new_with_buffer(buf, size);
+ g_free(buf);
+ }
+ else
+ stream = NULL;
+ }
+ else
+ {
+ Self *self;
+
+ _result = GNOME_VFS_OK;
+
+ self = GET_NEW;
+ selfp->handle = handle;
+ selfp->uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
- stream = GMIME_STREAM(self);
- g_mime_stream_construct(stream, current_position, -1);
+ stream = GMIME_STREAM(self);
+ g_mime_stream_construct(stream, current_position, -1);
- /* check for EOF */
- if (g_mime_stream_length(stream) <= 0)
- selfp->eof = TRUE;
+ /* check for EOF */
+ if (g_mime_stream_length(stream) <= 0)
+ selfp->eof = TRUE;
+ }
+
+ if (result)
+ *result = _result;
return stream;
}
diff --git a/src/mn-gmime-stream-vfs.h b/src/mn-gmime-stream-vfs.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -56,7 +56,8 @@ struct _MNGMimeStreamVFSClass {
*/
GType mn_gmime_stream_vfs_get_type (void);
GMimeStream * mn_gmime_stream_vfs_new (GnomeVFSHandle * handle,
- const char * uri);
+ GnomeVFSURI * uri,
+ GnomeVFSResult * result);
#ifdef __cplusplus
}
diff --git a/src/mn-icu.c b/src/mn-icu.c
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <string.h>
-#include <glib.h>
-#include <unicode/uclean.h>
-#include <unicode/utypes.h>
-#include <unicode/putil.h>
-#include <unicode/uiter.h>
-#include <unicode/ustring.h>
-
-/*** variables ***************************************************************/
-
-static int use_count = 0;
-G_LOCK_DEFINE_STATIC(use_count);
-
-/*** implementation **********************************************************/
-
-gboolean
-mn_icu_use (GError **err)
-{
- gboolean success;
- UErrorCode status = U_ZERO_ERROR;
-
- G_LOCK(use_count);
-
- /* u_init() must be called in every thread, so we always call it */
-
- u_init(&status);
- if (U_SUCCESS(status))
- {
- use_count++;
- success = TRUE;
- }
- else
- {
- g_set_error(err, 0, 0, "%s", u_errorName(status));
- success = FALSE;
- }
-
- G_UNLOCK(use_count);
-
- return success;
-}
-
-void
-mn_icu_unuse (void)
-{
- G_LOCK(use_count);
- g_return_if_fail(use_count > 0);
- if (--use_count == 0)
- u_cleanup();
- G_UNLOCK(use_count);
-}
-
-UChar *
-mn_icu_ustr_new (const char *str)
-{
- UChar *ustr;
-
- g_return_val_if_fail(str != NULL, NULL);
-
- ustr = g_new(UChar, sizeof(UChar) * (strlen(str) + 1));
- u_uastrcpy(ustr, str);
-
- return ustr;
-}
diff --git a/src/mn-icu.h b/src/mn-icu.h
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_ICU_H
-#define _MN_ICU_H
-
-#include <glib.h>
-#include <unicode/utypes.h>
-
-gboolean mn_icu_use (GError **err);
-void mn_icu_unuse (void);
-
-UChar *mn_icu_ustr_new (const char *str);
-
-#endif /* _MN_ICU_H */
diff --git a/src/mn-imap-mailbox-private.h b/src/mn-imap-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_IMAP_MAILBOX_PRIVATE_H__
#define __MN_IMAP_MAILBOX_PRIVATE_H__
@@ -10,17 +10,17 @@ extern "C" {
#endif /* __cplusplus */
-#line 32 "mn-imap-mailbox.gob"
+#line 39 "mn-imap-mailbox.gob"
#include "mn-client-session.h"
#line 18 "mn-imap-mailbox-private.h"
struct _MNIMAPMailboxPrivate {
-#line 135 "mn-imap-mailbox.gob"
+#line 153 "mn-imap-mailbox.gob"
int removed;
-#line 137 "mn-imap-mailbox.gob"
+#line 155 "mn-imap-mailbox.gob"
MNClientSessionPrivate * idle_session;
-#line 138 "mn-imap-mailbox.gob"
+#line 156 "mn-imap-mailbox.gob"
GMutex * idle_session_mutex;
#line 26 "mn-imap-mailbox-private.h"
};
diff --git a/src/mn-imap-mailbox-properties-private.h b/src/mn-imap-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_IMAP_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_IMAP_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -9,16 +9,22 @@
extern "C" {
#endif /* __cplusplus */
+
+#line 25 "mn-imap-mailbox-properties.gob"
+
+#include "mn-imap-mailbox.h"
+
+#line 18 "mn-imap-mailbox-properties-private.h"
struct _MNIMAPMailboxPropertiesPrivate {
-#line 68 "mn-imap-mailbox-properties.gob"
+#line 43 "mn-imap-mailbox-properties.gob"
GtkWidget * inbox_radio;
-#line 69 "mn-imap-mailbox-properties.gob"
+#line 44 "mn-imap-mailbox-properties.gob"
GtkWidget * other_radio;
-#line 70 "mn-imap-mailbox-properties.gob"
+#line 45 "mn-imap-mailbox-properties.gob"
GtkWidget * mailbox_entry;
-#line 71 "mn-imap-mailbox-properties.gob"
- GtkWidget * idle_check;
-#line 22 "mn-imap-mailbox-properties-private.h"
+#line 46 "mn-imap-mailbox-properties.gob"
+ GtkWidget * use_idle_radio[MN_IMAP_MAILBOX_N_USE_IDLE];
+#line 28 "mn-imap-mailbox-properties-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-imap-mailbox-properties.c b/src/mn-imap-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,18 +23,19 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-imap-mailbox-properties.gob"
+#line 29 "mn-imap-mailbox-properties.gob"
#include "config.h"
#include <glib/gi18n.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
#include "mn-pi-mailbox-properties-private.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
#include "mn-properties-dialog.h"
-#line 38 "mn-imap-mailbox-properties.c"
+#line 39 "mn-imap-mailbox-properties.c"
/* self casting macros */
#define SELF(x) MN_IMAP_MAILBOX_PROPERTIES(x)
#define SELF_CONST(x) MN_IMAP_MAILBOX_PROPERTIES_CONST(x)
@@ -50,37 +51,25 @@ typedef MNIMAPMailboxPropertiesClass SelfClass;
/* here are local prototypes */
static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * o) G_GNUC_UNUSED;
static void mn_imap_mailbox_properties_class_init (MNIMAPMailboxPropertiesClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_imap_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_imap_mailbox_properties_add_idle_usage (MNIMAPMailboxProperties * self, MNIMAPMailboxUseIDLE usage, const char * mnemonic) G_GNUC_UNUSED;
static void mn_imap_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_imap_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_imap_mailbox_properties_get_uri (MNMailboxProperties * properties) G_GNUC_UNUSED;
+static void ___5_mn_imap_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___6_mn_imap_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
enum {
PROP_0,
- PROP_COMPLETE
+ PROP_COMPLETE,
+ PROP_DEFAULT_NAME
};
/* pointer to the class of our parent */
static MNPIMailboxPropertiesClass *parent_class = NULL;
/* Short form macros */
+#define self_add_idle_usage mn_imap_mailbox_properties_add_idle_usage
#define self_radio_toggled_h mn_imap_mailbox_properties_radio_toggled_h
-#define self_set_uri mn_imap_mailbox_properties_set_uri
-#define self_get_uri mn_imap_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 155 "mn-imap-mailbox-properties.gob"
- iface->set_uri = self_set_uri;
-#line 187 "mn-imap-mailbox-properties.gob"
- iface->get_uri = self_get_uri;
-#line 82 "mn-imap-mailbox-properties.c"
-}
-
GType
mn_imap_mailbox_properties_get_type (void)
{
@@ -100,16 +89,7 @@ mn_imap_mailbox_properties_get_type (void)
NULL
};
- static const GInterfaceInfo MN_Mailbox_Properties_info = {
- (GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
- NULL,
- NULL
- };
-
type = g_type_register_static (MN_TYPE_PI_MAILBOX_PROPERTIES, "MNIMAPMailboxProperties", &info, (GTypeFlags)0);
- g_type_add_interface_static (type,
- MN_TYPE_MAILBOX_PROPERTIES,
- &MN_Mailbox_Properties_info);
}
return type;
@@ -144,45 +124,110 @@ ___finalize(GObject *obj_self)
}
#undef __GOB_FUNCTION__
-static void
-mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNIMAPMailboxPropertiesPrivate);
-}
-#undef __GOB_FUNCTION__
-#line 73 "mn-imap-mailbox-properties.gob"
+#line 98 "mn-imap-mailbox-properties.gob"
static void
mn_imap_mailbox_properties_class_init (MNIMAPMailboxPropertiesClass * class G_GNUC_UNUSED)
-#line 158 "mn-imap-mailbox-properties.c"
+#line 131 "mn-imap-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
g_type_class_add_private(class,sizeof(MNIMAPMailboxPropertiesPrivate));
parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX_PROPERTIES);
-#line 82 "mn-imap-mailbox-properties.gob"
- g_object_class->constructor = ___2_mn_imap_mailbox_properties_constructor;
-#line 169 "mn-imap-mailbox-properties.c"
+#line 205 "mn-imap-mailbox-properties.gob"
+ mn_mailbox_properties_class->set_mailbox = ___5_mn_imap_mailbox_properties_set_mailbox;
+#line 224 "mn-imap-mailbox-properties.gob"
+ mn_mailbox_properties_class->get_mailbox = ___6_mn_imap_mailbox_properties_get_mailbox;
+#line 145 "mn-imap-mailbox-properties.c"
g_object_class->finalize = ___finalize;
g_object_class->get_property = ___object_get_property;
{
g_object_class_override_property (g_object_class,
PROP_COMPLETE,
"complete");
+ g_object_class_override_property (g_object_class,
+ PROP_DEFAULT_NAME,
+ "default_name");
}
{
-#line 74 "mn-imap-mailbox-properties.gob"
+#line 99 "mn-imap-mailbox-properties.gob"
- MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
- pi_class->label = "IMAP";
- pi_class->default_port[0] = mn_uri_get_default_port("imap");
- pi_class->default_port[1] = mn_uri_get_default_port("imaps");
+ p_class->type = "imap";
+ p_class->combo_label = "IMAP";
-#line 186 "mn-imap-mailbox-properties.c"
+#line 164 "mn-imap-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 106 "mn-imap-mailbox-properties.gob"
+static void
+mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * self G_GNUC_UNUSED)
+#line 171 "mn-imap-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::init"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_IMAP_MAILBOX_PROPERTIES,MNIMAPMailboxPropertiesPrivate);
+ {
+#line 107 "mn-imap-mailbox-properties.gob"
+
+ MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+ GtkWidget *hbox;
+ GtkWidget *label;
+ int i;
+
+ label = gtk_label_new(_("Mailbox:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_size_group_add_widget(pi->details_size_group, label);
+
+ selfp->inbox_radio = gtk_radio_button_new_with_mnemonic(NULL, _("in_box"));
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), selfp->inbox_radio, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+
+ label = gtk_label_new(NULL);
+ gtk_size_group_add_widget(pi->details_size_group, label);
+
+ selfp->other_radio = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->inbox_radio), _("oth_er:"));
+ selfp->mailbox_entry = gtk_entry_new();
+ gtk_widget_set_sensitive(selfp->mailbox_entry, FALSE);
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), selfp->other_radio, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), selfp->mailbox_entry, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+
+ self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_NEVER, _("ne_ver"));
+ self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT, _("au_todetect"));
+ self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_ALWAYS, _("al_ways"));
+
+ /* by default, autodetect is enabled */
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT]), TRUE);
+
+ mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
+
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_imap_mailbox_default_ports[i]);
+
+ mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->mailbox_entry));
+
+ g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
+ g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
+
+ g_object_connect(selfp->mailbox_entry,
+ "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+ "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+ NULL);
+
+#line 231 "mn-imap-mailbox-properties.c"
}
}
#undef __GOB_FUNCTION__
@@ -201,11 +246,10 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_COMPLETE:
{
-#line 39 "mn-imap-mailbox-properties.gob"
+#line 50 "mn-imap-mailbox-properties.gob"
MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
gboolean complete;
- const char *username;
const char *hostname;
gboolean other_active;
const char *mailbox;
@@ -213,24 +257,47 @@ ___object_get_property (GObject *object,
mn_pi_mailbox_properties_get_contents(pi,
NULL,
NULL,
- &username,
- NULL,
- NULL,
&hostname,
NULL);
other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
- complete = *username && *hostname && (! other_active || *mailbox);
+ complete = *hostname && (! other_active || *mailbox);
#ifndef WITH_SSL
if (complete)
- complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+ complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
#endif /* WITH_SSL */
g_value_set_boolean(VAL, complete);
-#line 234 "mn-imap-mailbox-properties.c"
+#line 275 "mn-imap-mailbox-properties.c"
+ }
+ break;
+ case PROP_DEFAULT_NAME:
+ {
+#line 77 "mn-imap-mailbox-properties.gob"
+
+ const char *username;
+ const char *hostname;
+ gboolean other_active;
+ const char *mailbox;
+
+ mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+ &username,
+ NULL);
+ mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+ NULL,
+ NULL,
+ &hostname,
+ NULL);
+
+ other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
+ mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
+
+ g_value_take_string(VAL, mn_imap_mailbox_build_name(username, hostname, other_active ? mailbox : NULL));
+
+#line 301 "mn-imap-mailbox-properties.c"
}
break;
default:
@@ -247,198 +314,131 @@ ___object_get_property (GObject *object,
-#line 82 "mn-imap-mailbox-properties.gob"
-static GObject *
-___2_mn_imap_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 254 "mn-imap-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
+#line 162 "mn-imap-mailbox-properties.gob"
+static void
+mn_imap_mailbox_properties_add_idle_usage (MNIMAPMailboxProperties * self, MNIMAPMailboxUseIDLE usage, const char * mnemonic)
+#line 321 "mn-imap-mailbox-properties.c"
{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::constructor"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::add_idle_usage"
+#line 162 "mn-imap-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 162 "mn-imap-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_IMAP_MAILBOX_PROPERTIES (self));
+#line 162 "mn-imap-mailbox-properties.gob"
+ g_return_if_fail (mnemonic != NULL);
+#line 330 "mn-imap-mailbox-properties.c"
{
-#line 84 "mn-imap-mailbox-properties.gob"
+#line 166 "mn-imap-mailbox-properties.gob"
- GObject *object;
- Self *self;
- MNPIMailboxProperties *pi;
- GtkWidget *hbox;
+ MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
GtkWidget *label;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
- pi = MN_PI_MAILBOX_PROPERTIES(object);
-
- label = gtk_label_new(_("Mailbox:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- gtk_size_group_add_widget(pi->details_size_group, label);
+ GtkWidget *hbox;
- selfp->inbox_radio = gtk_radio_button_new_with_mnemonic(NULL, _("in_box"));
-
- hbox = gtk_hbox_new(FALSE, 12);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), selfp->inbox_radio, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
- gtk_widget_show_all(hbox);
+ if (usage == 0)
+ {
+ label = gtk_label_new(_("Use the <span style=\"italic\">IDLE</span> extension:"));
+ gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+ }
+ else
+ label = gtk_label_new(NULL);
- label = gtk_label_new(NULL);
- gtk_size_group_add_widget(pi->details_size_group, label);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- selfp->other_radio = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->inbox_radio), _("oth_er:"));
- selfp->mailbox_entry = gtk_entry_new();
- gtk_widget_set_sensitive(selfp->mailbox_entry, FALSE);
- gtk_entry_set_activates_default(GTK_ENTRY(selfp->mailbox_entry), TRUE);
+ selfp->use_idle_radio[usage] = usage == 0
+ ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+ : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->use_idle_radio[0]), mnemonic);
hbox = gtk_hbox_new(FALSE, 12);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), selfp->other_radio, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), selfp->mailbox_entry, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), selfp->use_idle_radio[usage], TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
gtk_widget_show_all(hbox);
-
- selfp->idle_check = gtk_check_button_new_with_mnemonic(_("U_se idle mode if possible"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), TRUE);
- gtk_box_pack_start(GTK_BOX(pi->details_vbox), selfp->idle_check, FALSE, FALSE, 0);
- gtk_widget_show(selfp->idle_check);
-
- mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
- mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
- pi->username_entry, _("Your username on the IMAP server"),
- pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the IMAP server"),
- pi->port_spin[1], _("The port number of the IMAP server"),
- selfp->mailbox_entry, _("The mailbox name"),
- selfp->idle_check, _("If possible, whether to use idle mode or not"),
- NULL);
-
- g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
- g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
- g_signal_connect(selfp->mailbox_entry, "changed", G_CALLBACK(mn_pi_mailbox_properties_entry_changed_h), self);
-
- return object;
+ gtk_size_group_add_widget(pi->details_size_group, label);
}}
-#line 323 "mn-imap-mailbox-properties.c"
+#line 360 "mn-imap-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-#line 145 "mn-imap-mailbox-properties.gob"
+#line 194 "mn-imap-mailbox-properties.gob"
static void
mn_imap_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data)
-#line 330 "mn-imap-mailbox-properties.c"
+#line 366 "mn-imap-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::radio_toggled_h"
-#line 145 "mn-imap-mailbox-properties.gob"
- g_return_if_fail (togglebutton != NULL);
-#line 145 "mn-imap-mailbox-properties.gob"
- g_return_if_fail (GTK_IS_TOGGLE_BUTTON (togglebutton));
-#line 145 "mn-imap-mailbox-properties.gob"
- g_return_if_fail (user_data != NULL);
-#line 339 "mn-imap-mailbox-properties.c"
{
-#line 148 "mn-imap-mailbox-properties.gob"
+#line 196 "mn-imap-mailbox-properties.gob"
Self *self = user_data;
gtk_widget_set_sensitive(selfp->mailbox_entry, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)));
+
g_object_notify(G_OBJECT(self), "complete");
+ g_object_notify(G_OBJECT(self), "default-name");
}}
-#line 348 "mn-imap-mailbox-properties.c"
+#line 379 "mn-imap-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 155 "mn-imap-mailbox-properties.gob"
-static gboolean
-mn_imap_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri)
-#line 354 "mn-imap-mailbox-properties.c"
+#line 205 "mn-imap-mailbox-properties.gob"
+static void
+___5_mn_imap_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 385 "mn-imap-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+ { if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::set_uri"
-#line 155 "mn-imap-mailbox-properties.gob"
- g_return_val_if_fail (properties != NULL, (gboolean )0);
-#line 155 "mn-imap-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (gboolean )0);
-#line 155 "mn-imap-mailbox-properties.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 155 "mn-imap-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 365 "mn-imap-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::set_mailbox"
{
-#line 158 "mn-imap-mailbox-properties.gob"
+#line 207 "mn-imap-mailbox-properties.gob"
Self *self = SELF(properties);
-
- if (MN_URI_IS_IMAP(uri))
+ MNIMAPMailbox *imap_mailbox = MN_IMAP_MAILBOX(mailbox);
+
+ PARENT_HANDLER(properties, mailbox);
+
+ if (! mn_utf8_strcasecmp(imap_mailbox->runtime_mailbox, "INBOX"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
+ else
{
- mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- MN_URI_IS_SSL(uri),
- MN_URI_IS_INBAND_SSL(uri),
- uri->username,
- uri->password,
- uri->authmech,
- uri->hostname,
- uri->port);
-
- if (! strcmp(uri->path, "INBOX"))
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
- else
- {
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
- gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), uri->path);
- }
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), ! mn_uri_has_query(uri, "noidle"));
-
- return TRUE;
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
+ gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), imap_mailbox->runtime_mailbox);
}
- else
- return FALSE;
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[imap_mailbox->use_idle_extension]), TRUE);
}}
-#line 396 "mn-imap-mailbox-properties.c"
+#line 409 "mn-imap-mailbox-properties.c"
#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
-#line 187 "mn-imap-mailbox-properties.gob"
-static MNURI *
-mn_imap_mailbox_properties_get_uri (MNMailboxProperties * properties)
-#line 402 "mn-imap-mailbox-properties.c"
+#line 224 "mn-imap-mailbox-properties.gob"
+static MNMailbox *
+___6_mn_imap_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 416 "mn-imap-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+ ((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+ ((MNMailbox * )0))
{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::get_uri"
-#line 187 "mn-imap-mailbox-properties.gob"
- g_return_val_if_fail (properties != NULL, (MNURI * )0);
-#line 187 "mn-imap-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (MNURI * )0);
-#line 409 "mn-imap-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::get_mailbox"
{
-#line 189 "mn-imap-mailbox-properties.gob"
+#line 226 "mn-imap-mailbox-properties.gob"
Self *self = SELF(properties);
- gboolean ssl;
- gboolean inband_ssl;
- const char *username;
- const char *password;
- char *authmech;
- const char *hostname;
- int port;
- const char *mailbox = NULL;
- gboolean noidle;
- MNURI *uri;
-
- mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- &ssl,
- &inband_ssl,
- &username,
- &password,
- &authmech,
- &hostname,
- &port);
-
- mailbox = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio))
- ? "INBOX"
- : gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
- noidle = ! gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->idle_check));
-
- uri = mn_uri_new_imap(ssl, inband_ssl, username, password, authmech, hostname, port, mailbox, noidle);
- g_free(authmech);
-
- return uri;
+ MNIMAPMailboxUseIDLE use_idle;
+ MNMailbox *mailbox;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ for (use_idle = 0; use_idle < MN_IMAP_MAILBOX_N_USE_IDLE; use_idle++)
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[use_idle])))
+ break;
+
+ g_object_set(mailbox, "use-idle-extension", use_idle, NULL);
+
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)))
+ g_object_set(mailbox, "mailbox", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry)), NULL);
+
+ return mailbox;
}}
-#line 444 "mn-imap-mailbox-properties.c"
+#line 443 "mn-imap-mailbox-properties.c"
#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-imap-mailbox-properties.gob b/src/mn-imap-mailbox-properties.gob
@@ -16,30 +16,40 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include "mn-pi-mailbox-properties.h"
%}
+
+%privateheader{
+#include "mn-imap-mailbox.h"
+%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
#include "mn-pi-mailbox-properties-private.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
#include "mn-properties-dialog.h"
%}
-class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mailbox:Properties)
+class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties
{
+ private GtkWidget *inbox_radio;
+ private GtkWidget *other_radio;
+ private GtkWidget *mailbox_entry;
+ private GtkWidget *use_idle_radio[MN_IMAP_MAILBOX_N_USE_IDLE];
+
property BOOLEAN complete (override)
get
{
MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
gboolean complete;
- const char *username;
const char *hostname;
gboolean other_active;
const char *mailbox;
@@ -47,51 +57,59 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
mn_pi_mailbox_properties_get_contents(pi,
NULL,
NULL,
- &username,
- NULL,
- NULL,
&hostname,
NULL);
other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
- complete = *username && *hostname && (! other_active || *mailbox);
+ complete = *hostname && (! other_active || *mailbox);
#ifndef WITH_SSL
if (complete)
- complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+ complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
#endif /* WITH_SSL */
g_value_set_boolean(VAL, complete);
};
- private GtkWidget *inbox_radio;
- private GtkWidget *other_radio;
- private GtkWidget *mailbox_entry;
- private GtkWidget *idle_check;
+ property STRING default_name (override)
+ get
+ {
+ const char *username;
+ const char *hostname;
+ gboolean other_active;
+ const char *mailbox;
+
+ mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+ &username,
+ NULL);
+ mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+ NULL,
+ NULL,
+ &hostname,
+ NULL);
+
+ other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
+ mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
+
+ g_value_take_string(VAL, mn_imap_mailbox_build_name(username, hostname, other_active ? mailbox : NULL));
+ };
class_init (class)
{
- MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
- pi_class->label = "IMAP";
- pi_class->default_port[0] = mn_uri_get_default_port("imap");
- pi_class->default_port[1] = mn_uri_get_default_port("imaps");
+ p_class->type = "imap";
+ p_class->combo_label = "IMAP";
}
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ init (self)
{
- GObject *object;
- Self *self;
- MNPIMailboxProperties *pi;
+ MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
GtkWidget *hbox;
GtkWidget *label;
+ int i;
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
- pi = MN_PI_MAILBOX_PROPERTIES(object);
-
label = gtk_label_new(_("Mailbox:"));
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
gtk_size_group_add_widget(pi->details_size_group, label);
@@ -110,7 +128,6 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
selfp->other_radio = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->inbox_radio), _("oth_er:"));
selfp->mailbox_entry = gtk_entry_new();
gtk_widget_set_sensitive(selfp->mailbox_entry, FALSE);
- gtk_entry_set_activates_default(GTK_ENTRY(selfp->mailbox_entry), TRUE);
hbox = gtk_hbox_new(FALSE, 12);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
@@ -119,103 +136,109 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
gtk_widget_show_all(hbox);
- selfp->idle_check = gtk_check_button_new_with_mnemonic(_("U_se idle mode if possible"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), TRUE);
- gtk_box_pack_start(GTK_BOX(pi->details_vbox), selfp->idle_check, FALSE, FALSE, 0);
- gtk_widget_show(selfp->idle_check);
+ self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_NEVER, _("ne_ver"));
+ self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT, _("au_todetect"));
+ self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_ALWAYS, _("al_ways"));
+
+ /* by default, autodetect is enabled */
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT]), TRUE);
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
- mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
- pi->username_entry, _("Your username on the IMAP server"),
- pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the IMAP server"),
- pi->port_spin[1], _("The port number of the IMAP server"),
- selfp->mailbox_entry, _("The mailbox name"),
- selfp->idle_check, _("If possible, whether to use idle mode or not"),
- NULL);
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_imap_mailbox_default_ports[i]);
+
+ mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->mailbox_entry));
g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
- g_signal_connect(selfp->mailbox_entry, "changed", G_CALLBACK(mn_pi_mailbox_properties_entry_changed_h), self);
-
- return object;
+
+ g_object_connect(selfp->mailbox_entry,
+ "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+ "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+ NULL);
}
private void
- radio_toggled_h (Gtk:Toggle:Button *togglebutton (check null type),
- gpointer user_data (check null))
+ add_idle_usage (self,
+ MNIMAPMailboxUseIDLE usage,
+ const char *mnemonic (check null))
+ {
+ MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+ GtkWidget *label;
+ GtkWidget *hbox;
+
+ if (usage == 0)
+ {
+ label = gtk_label_new(_("Use the <span style=\"italic\">IDLE</span> extension:"));
+ gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+ }
+ else
+ label = gtk_label_new(NULL);
+
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ selfp->use_idle_radio[usage] = usage == 0
+ ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+ : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->use_idle_radio[0]), mnemonic);
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), selfp->use_idle_radio[usage], TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+
+ gtk_size_group_add_widget(pi->details_size_group, label);
+ }
+
+ private void
+ radio_toggled_h (GtkToggleButton *togglebutton, gpointer user_data)
{
Self *self = user_data;
gtk_widget_set_sensitive(selfp->mailbox_entry, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)));
+
g_object_notify(G_OBJECT(self), "complete");
+ g_object_notify(G_OBJECT(self), "default-name");
}
- interface MN:Mailbox:Properties private gboolean
- set_uri (MN:Mailbox:Properties *properties (check null type),
- MN:URI *uri (check null type))
+ override (MN:Mailbox:Properties) void
+ set_mailbox (MNMailboxProperties *properties, MN:Mailbox *mailbox)
{
Self *self = SELF(properties);
-
- if (MN_URI_IS_IMAP(uri))
+ MNIMAPMailbox *imap_mailbox = MN_IMAP_MAILBOX(mailbox);
+
+ PARENT_HANDLER(properties, mailbox);
+
+ if (! mn_utf8_strcasecmp(imap_mailbox->runtime_mailbox, "INBOX"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
+ else
{
- mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- MN_URI_IS_SSL(uri),
- MN_URI_IS_INBAND_SSL(uri),
- uri->username,
- uri->password,
- uri->authmech,
- uri->hostname,
- uri->port);
-
- if (! strcmp(uri->path, "INBOX"))
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
- else
- {
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
- gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), uri->path);
- }
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), ! mn_uri_has_query(uri, "noidle"));
-
- return TRUE;
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
+ gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), imap_mailbox->runtime_mailbox);
}
- else
- return FALSE;
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[imap_mailbox->use_idle_extension]), TRUE);
}
- interface MN:Mailbox:Properties private MNURI *
- get_uri (MN:Mailbox:Properties *properties (check null type))
+ override (MN:Mailbox:Properties) MNMailbox *
+ get_mailbox (MNMailboxProperties *properties)
{
Self *self = SELF(properties);
- gboolean ssl;
- gboolean inband_ssl;
- const char *username;
- const char *password;
- char *authmech;
- const char *hostname;
- int port;
- const char *mailbox = NULL;
- gboolean noidle;
- MNURI *uri;
-
- mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- &ssl,
- &inband_ssl,
- &username,
- &password,
- &authmech,
- &hostname,
- &port);
-
- mailbox = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio))
- ? "INBOX"
- : gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
- noidle = ! gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->idle_check));
-
- uri = mn_uri_new_imap(ssl, inband_ssl, username, password, authmech, hostname, port, mailbox, noidle);
- g_free(authmech);
-
- return uri;
+ MNIMAPMailboxUseIDLE use_idle;
+ MNMailbox *mailbox;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ for (use_idle = 0; use_idle < MN_IMAP_MAILBOX_N_USE_IDLE; use_idle++)
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[use_idle])))
+ break;
+
+ g_object_set(mailbox, "use-idle-extension", use_idle, NULL);
+
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)))
+ g_object_set(mailbox, "mailbox", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry)), NULL);
+
+ return mailbox;
}
}
diff --git a/src/mn-imap-mailbox-properties.h b/src/mn-imap-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -60,8 +60,10 @@ GType mn_imap_mailbox_properties_get_type (void);
*/
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name", __extension__ ({gchar **z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
+#define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name",(gchar **)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */
diff --git a/src/mn-imap-mailbox.c b/src/mn-imap-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -21,7 +21,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 36 "mn-imap-mailbox.gob"
+#line 43 "mn-imap-mailbox.gob"
#include "config.h"
#include <stdio.h>
@@ -33,6 +33,7 @@
#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
#include "mn-util.h"
#include "mn-message-mime.h"
@@ -45,80 +46,99 @@
#define REMOVED(self) (g_atomic_int_get(&(self)->_priv->removed))
- enum
- {
- STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
- STATE_CAPABILITY,
+enum
+{
+ STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+ STATE_CAPABILITY,
#ifdef WITH_SSL
- STATE_STARTTLS,
+ STATE_STARTTLS,
#endif
#ifdef WITH_SASL
- STATE_AUTHENTICATE,
+ STATE_AUTHENTICATE,
#endif
- STATE_LOGIN,
- STATE_EXAMINE,
- STATE_SEARCH,
- STATE_FETCH,
- STATE_IDLE,
- STATE_LOGOUT
- };
+ STATE_LOGIN,
+ STATE_EXAMINE,
+ STATE_SEARCH,
+ STATE_FETCH,
+ STATE_IDLE,
+ STATE_LOGOUT
+};
+
+typedef enum
+{
+ IDLE_STATE_NORMAL,
+ IDLE_STATE_IDLING,
+ IDLE_STATE_WAS_IDLING
+} IdleState;
+
+struct _MNClientSessionPrivate
+{
+ MNMailbox *mailbox;
+ MNAuthenticatedMailbox *authenticated_mailbox;
+ MNPIMailbox *pi_mailbox;
+ MNIMAPMailbox *self;
+ MNClientSession *session;
+
+ const char *server_software;
+ gboolean server_software_supports_idle;
- enum
- {
- RESULT_ERROR_LOGOUT = -1, /* server reported an error, logout normally */
- RESULT_ERROR_END = -2, /* server reported an error, close the connection */
- RESULT_DEFAULT_HANDLER = -3 /* invoke the default response handler */
- };
-
- typedef enum
- {
- IDLE_STATE_NORMAL,
- IDLE_STATE_IDLING,
- IDLE_STATE_WAS_IDLING
- } IdleState;
-
- struct _MNClientSessionPrivate
- {
- MNMailbox *mailbox;
- MNAuthenticatedMailbox *authenticated_mailbox;
- MNIMAPMailbox *self;
- MNClientSession *session;
-
- int numeric_tag;
- char tag[5];
-
- char **capabilities;
- GSList *auth_mechanisms;
- gboolean authenticated;
-
- gboolean search_received;
- GSList *fetch_numbers;
- char *fetch_set;
-
- GSList *received_numbers;
- GSList *messages;
+ int numeric_tag;
+ char tag[5];
+
+ char **capabilities;
+ GSList *auth_mechanisms;
+ gboolean authenticated;
+
+ gboolean search_received;
+ GSList *fetch_numbers;
+ char *fetch_set;
+
+ GSList *received_numbers;
+ GSList *messages;
#ifdef WITH_SSL
- gboolean starttls_completed;
+ gboolean starttls_completed;
#endif
#ifdef WITH_SASL
- const char *sasl_mechanism;
+ GSList *sasl_remaining_mechanisms;
+ const char *sasl_mechanism;
#endif
- IdleState idle_state;
- gboolean could_idle; /* could idle at least once */
- };
+ IdleState idle_state;
+ gboolean could_idle; /* could idle at least once */
+};
- struct _MNClientSessionResponse
- {
- char *continuation;
- char *tag;
- char *response;
- char *code;
- char *arguments;
- };
-
-#line 122 "mn-imap-mailbox.c"
+struct _MNClientSessionResponse
+{
+ char *continuation;
+ char *tag;
+ char *response;
+ char *code;
+ char *arguments;
+};
+
+int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 143, 143, 993 };
+
+/* variable taken from Evolution (camel-utf8.c) */
+static char *utf7_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
+
+#line 126 "mn-imap-mailbox.c"
+static const GEnumValue _mn_imap_mailbox_use_idle_values[] = {
+ { MN_IMAP_MAILBOX_USE_IDLE_NEVER, (char *)"MN_IMAP_MAILBOX_USE_IDLE_NEVER", (char *)"never" },
+ { MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT, (char *)"MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT", (char *)"autodetect" },
+ { MN_IMAP_MAILBOX_USE_IDLE_ALWAYS, (char *)"MN_IMAP_MAILBOX_USE_IDLE_ALWAYS", (char *)"always" },
+ { 0, NULL, NULL }
+};
+
+GType
+mn_imap_mailbox_use_idle_get_type (void)
+{
+ static GType type = 0;
+ if ___GOB_UNLIKELY(type == 0)
+ type = g_enum_register_static ("MNIMAPMailboxUseIDLE", _mn_imap_mailbox_use_idle_values);
+ return type;
+}
+
/* self casting macros */
#define SELF(x) MN_IMAP_MAILBOX(x)
#define SELF_CONST(x) MN_IMAP_MAILBOX_CONST(x)
@@ -133,18 +153,21 @@ typedef MNIMAPMailbox Self;
typedef MNIMAPMailboxClass SelfClass;
/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
static void mn_imap_mailbox_init (MNIMAPMailbox * o) G_GNUC_UNUSED;
static void mn_imap_mailbox_class_init (MNIMAPMailboxClass * class) G_GNUC_UNUSED;
static GObject * ___2_mn_imap_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_imap_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_imap_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___3_mn_imap_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_imap_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
+static gboolean mn_imap_mailbox_split_uri_location (const char * location, int maxlen, char * hostport, char * path, gboolean * has_path) G_GNUC_UNUSED;
+static void ___6_mn_imap_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_imap_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_imap_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_imap_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
@@ -159,15 +182,15 @@ static int mn_imap_mailbox_enter_idle_cb (MNClientSession * session, MNClientSes
static int mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void ___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static void mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_imap_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void ___1b_mn_imap_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_imap_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_imap_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static MNClientSessionResponse * mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static void mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_imap_mailbox_default_handler (MNClientSessionResponse * response, MNClientSessionPrivate * priv, int error_code_when_bye) G_GNUC_UNUSED;
static void mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static void mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
+static void mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response) G_GNUC_UNUSED;
static int mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...) G_GNUC_UNUSED;
static gboolean mn_imap_mailbox_handle_capability_code (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
static void mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities) G_GNUC_UNUSED;
@@ -175,19 +198,28 @@ static gboolean mn_imap_mailbox_session_has_capability (MNClientSessionPrivate *
static int mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_login) G_GNUC_UNUSED;
+static void mn_imap_mailbox_session_detect_imapd (MNClientSession * session, MNClientSessionResponse * greeting_response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static char * mn_imap_mailbox_quote (const char * str) G_GNUC_UNUSED;
+static char * mn_imap_mailbox_utf8_to_imap_utf7 (const char * str) G_GNUC_UNUSED;
+static void mn_imap_mailbox_imap_utf7_closeb64 (GString * out, guint32 v, guint32 i) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_MAILBOX,
+ PROP_USE_IDLE_EXTENSION
+};
/* pointer to the class of our parent */
-static MNAuthenticatedMailboxClass *parent_class = NULL;
+static MNPIMailboxClass *parent_class = NULL;
/* Short form macros */
+#define self_split_uri_location mn_imap_mailbox_split_uri_location
#define self_handle_greeting_cb mn_imap_mailbox_handle_greeting_cb
#define self_enter_capability_cb mn_imap_mailbox_enter_capability_cb
#define self_handle_capability_cb mn_imap_mailbox_handle_capability_cb
#define self_enter_starttls_cb mn_imap_mailbox_enter_starttls_cb
#define self_handle_starttls_cb mn_imap_mailbox_handle_starttls_cb
-#define self_sasl_get_username_cb mn_imap_mailbox_sasl_get_username_cb
-#define self_sasl_get_password_cb mn_imap_mailbox_sasl_get_password_cb
+#define self_sasl_get_credentials_cb mn_imap_mailbox_sasl_get_credentials_cb
#define self_enter_authenticate_cb mn_imap_mailbox_enter_authenticate_cb
#define self_handle_authenticate_cb mn_imap_mailbox_handle_authenticate_cb
#define self_enter_login_cb mn_imap_mailbox_enter_login_cb
@@ -206,7 +238,7 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
#define self_warning_cb mn_imap_mailbox_warning_cb
#define self_response_new_cb mn_imap_mailbox_response_new_cb
#define self_response_free_cb mn_imap_mailbox_response_free_cb
-#define self_custom_handler_cb mn_imap_mailbox_custom_handler_cb
+#define self_default_handler mn_imap_mailbox_default_handler
#define self_pre_read_cb mn_imap_mailbox_pre_read_cb
#define self_post_read_cb mn_imap_mailbox_post_read_cb
#define self_session_set_error_from_arguments mn_imap_mailbox_session_set_error_from_arguments
@@ -217,7 +249,11 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
#define self_session_after_capability mn_imap_mailbox_session_after_capability
#define self_session_authenticate mn_imap_mailbox_session_authenticate
#define self_session_authenticate_fallback mn_imap_mailbox_session_authenticate_fallback
+#define self_session_detect_imapd mn_imap_mailbox_session_detect_imapd
#define self_quote mn_imap_mailbox_quote
+#define self_utf8_to_imap_utf7 mn_imap_mailbox_utf8_to_imap_utf7
+#define self_imap_utf7_closeb64 mn_imap_mailbox_imap_utf7_closeb64
+#define self_build_name mn_imap_mailbox_build_name
GType
mn_imap_mailbox_get_type (void)
{
@@ -237,7 +273,7 @@ mn_imap_mailbox_get_type (void)
NULL
};
- type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNIMAPMailbox", &info, (GTypeFlags)0);
+ type = g_type_register_static (MN_TYPE_PI_MAILBOX, "MNIMAPMailbox", &info, (GTypeFlags)0);
}
return type;
@@ -269,9 +305,15 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 138 "mn-imap-mailbox.gob"
+#line 156 "mn-imap-mailbox.gob"
if(self->_priv->idle_session_mutex) { g_mutex_free ((gpointer) self->_priv->idle_session_mutex); self->_priv->idle_session_mutex = NULL; }
-#line 275 "mn-imap-mailbox.c"
+#line 311 "mn-imap-mailbox.c"
+#line 158 "mn-imap-mailbox.gob"
+ if(self->mailbox) { g_free ((gpointer) self->mailbox); self->mailbox = NULL; }
+#line 314 "mn-imap-mailbox.c"
+#line 165 "mn-imap-mailbox.gob"
+ if(self->runtime_mailbox) { g_free ((gpointer) self->runtime_mailbox); self->runtime_mailbox = NULL; }
+#line 317 "mn-imap-mailbox.c"
}
#undef __GOB_FUNCTION__
@@ -279,51 +321,156 @@ static void
mn_imap_mailbox_init (MNIMAPMailbox * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNIMAPMailboxPrivate);
-#line 138 "mn-imap-mailbox.gob"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_IMAP_MAILBOX,MNIMAPMailboxPrivate);
+#line 156 "mn-imap-mailbox.gob"
o->_priv->idle_session_mutex = g_mutex_new();
-#line 286 "mn-imap-mailbox.c"
+#line 328 "mn-imap-mailbox.c"
}
#undef __GOB_FUNCTION__
-#line 140 "mn-imap-mailbox.gob"
+#line 174 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_class_init (MNIMAPMailboxClass * class G_GNUC_UNUSED)
-#line 292 "mn-imap-mailbox.c"
+#line 334 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+ MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
g_type_class_add_private(class,sizeof(MNIMAPMailboxPrivate));
- parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
+ parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX);
-#line 145 "mn-imap-mailbox.gob"
+#line 180 "mn-imap-mailbox.gob"
g_object_class->constructor = ___2_mn_imap_mailbox_constructor;
-#line 162 "mn-imap-mailbox.gob"
- mn_mailbox_class->impl_is = ___3_mn_imap_mailbox_impl_is;
-#line 168 "mn-imap-mailbox.gob"
- mn_mailbox_class->removed = ___4_mn_imap_mailbox_removed;
-#line 778 "mn-imap-mailbox.gob"
- mn_mailbox_class->impl_check = ___1a_mn_imap_mailbox_impl_check;
-#line 310 "mn-imap-mailbox.c"
+#line 194 "mn-imap-mailbox.gob"
+ mn_mailbox_class->seal = ___3_mn_imap_mailbox_seal;
+#line 216 "mn-imap-mailbox.gob"
+ mn_mailbox_class->parse_uri = ___4_mn_imap_mailbox_parse_uri;
+#line 317 "mn-imap-mailbox.gob"
+ mn_mailbox_class->removed = ___6_mn_imap_mailbox_removed;
+#line 1012 "mn-imap-mailbox.gob"
+ mn_authenticated_mailbox_class->impl_check = ___1b_mn_imap_mailbox_impl_check;
+#line 355 "mn-imap-mailbox.c"
g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_string
+ ("mailbox" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ "INBOX" /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_IGNORE_CASE | MN_MAILBOX_PARAM_PERMANENT | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (g_object_class,
+ PROP_MAILBOX,
+ param_spec);
+ param_spec = g_param_spec_enum
+ ("use_idle_extension" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ MN_TYPE_IMAP_MAILBOX_USE_IDLE /* enum_type */,
+ MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (g_object_class,
+ PROP_USE_IDLE_EXTENSION,
+ param_spec);
+ }
{
-#line 141 "mn-imap-mailbox.gob"
+#line 175 "mn-imap-mailbox.gob"
- MN_MAILBOX_CLASS(class)->format = "IMAP";
+ MN_MAILBOX_CLASS(class)->type = "imap";
+ MN_PI_MAILBOX_CLASS(class)->default_ports = mn_imap_mailbox_default_ports;
-#line 317 "mn-imap-mailbox.c"
+#line 388 "mn-imap-mailbox.c"
}
}
#undef __GOB_FUNCTION__
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::set_property"
+{
+ MNIMAPMailbox *self G_GNUC_UNUSED;
+
+ self = MN_IMAP_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_MAILBOX:
+ {
+#line 159 "mn-imap-mailbox.gob"
+{ char *old = self->mailbox; self->mailbox = g_value_dup_string (VAL); g_free (old); }
+#line 409 "mn-imap-mailbox.c"
+ }
+ break;
+ case PROP_USE_IDLE_EXTENSION:
+ {
+#line 168 "mn-imap-mailbox.gob"
+self->use_idle_extension = g_value_get_enum (VAL);
+#line 416 "mn-imap-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::get_property"
+{
+ MNIMAPMailbox *self G_GNUC_UNUSED;
+
+ self = MN_IMAP_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_MAILBOX:
+ {
+#line 159 "mn-imap-mailbox.gob"
+g_value_set_string (VAL, self->mailbox);
+#line 447 "mn-imap-mailbox.c"
+ }
+ break;
+ case PROP_USE_IDLE_EXTENSION:
+ {
+#line 168 "mn-imap-mailbox.gob"
+g_value_set_enum (VAL, self->use_idle_extension);
+#line 454 "mn-imap-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
-#line 145 "mn-imap-mailbox.gob"
+#line 180 "mn-imap-mailbox.gob"
static GObject *
___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 327 "mn-imap-mailbox.c"
+#line 474 "mn-imap-mailbox.c"
#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
((G_OBJECT_CLASS(parent_class)->constructor)? \
(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -331,65 +478,187 @@ ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::constructor"
{
-#line 147 "mn-imap-mailbox.gob"
+#line 182 "mn-imap-mailbox.gob"
GObject *object;
MNMailbox *mailbox;
object = PARENT_HANDLER(type, n_construct_properties, construct_params);
mailbox = MN_MAILBOX(object);
-
-#ifndef WITH_SSL
- if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
- mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
+
+ mn_mailbox_set_format(mailbox, "IMAP");
return object;
}}
-#line 350 "mn-imap-mailbox.c"
+#line 494 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 162 "mn-imap-mailbox.gob"
-static gboolean
-___3_mn_imap_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 357 "mn-imap-mailbox.c"
+#line 194 "mn-imap-mailbox.gob"
+static void
+___3_mn_imap_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 501 "mn-imap-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::seal"
+{
+#line 196 "mn-imap-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+
+ PARENT_HANDLER(mailbox);
+
+ self->runtime_mailbox = g_strdup(self->mailbox ? self->mailbox : "INBOX");
+
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+ MN_PI_MAILBOX(mailbox)->hostname,
+ self->runtime_mailbox);
+ }}
+#line 521 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 216 "mn-imap-mailbox.gob"
+static MNMailbox *
+___4_mn_imap_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 528 "mn-imap-mailbox.c"
#define PARENT_HANDLER(___dummy,___uri) \
- ((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
- (* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
- ((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_is"
-#line 162 "mn-imap-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 162 "mn-imap-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 368 "mn-imap-mailbox.c"
-{
-#line 164 "mn-imap-mailbox.gob"
+ ((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+ (* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+ ((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::parse_uri"
+{
+#line 218 "mn-imap-mailbox.gob"
- return MN_URI_IS_IMAP(uri);
+ int len;
+ int buflen;
+ char *username = NULL;
+ char *authmech = NULL;
+ char *hostname;
+ char *path = NULL;
+ int port;
+ MNMailbox *mailbox;
+
+ len = strlen(uri);
+ buflen = len + 1;
+
+ {
+ char scheme_buf[buflen];
+ char auth_buf[buflen];
+ char location_buf[buflen];
+ char hostport_buf[buflen];
+ char path_buf[buflen];
+ char username_buf[buflen];
+ char authmech_buf[buflen];
+ char hostname_buf[buflen];
+ gboolean has_auth;
+ gboolean has_path;
+ gboolean has_username = FALSE;
+ gboolean has_authmech = FALSE;
+
+ if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+ return NULL;
+
+ if (strcmp(scheme_buf, "imap"))
+ return NULL;
+
+ if (! self_split_uri_location(location_buf, len, hostport_buf, path_buf, &has_path))
+ return NULL;
+
+ if (has_auth)
+ {
+ if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+ return NULL;
+
+ if (has_authmech && ! strcmp(authmech_buf, "*"))
+ has_authmech = FALSE;
+ }
+
+ mn_pi_mailbox_split_uri_hostport(hostport_buf, len, hostname_buf, &port);
+
+ if (has_username)
+ username = gnome_vfs_unescape_string(username_buf, NULL);
+ if (has_authmech)
+ authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+ hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+ if (has_path)
+ path = gnome_vfs_unescape_string(path_buf, NULL);
+ }
+
+ mailbox = mn_mailbox_new("imap",
+ "username", username,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ "mailbox", path,
+ NULL);
+
+ g_free(username);
+ g_free(authmech);
+ g_free(hostname);
+ g_free(path);
+
+ return mailbox;
}}
-#line 374 "mn-imap-mailbox.c"
+#line 608 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 168 "mn-imap-mailbox.gob"
+#line 290 "mn-imap-mailbox.gob"
+static gboolean
+mn_imap_mailbox_split_uri_location (const char * location, int maxlen, char * hostport, char * path, gboolean * has_path)
+#line 615 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::split_uri_location"
+#line 290 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (location != NULL, (gboolean )0);
+#line 290 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (hostport != NULL, (gboolean )0);
+#line 290 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (path != NULL, (gboolean )0);
+#line 290 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (has_path != NULL, (gboolean )0);
+#line 626 "mn-imap-mailbox.c"
+{
+#line 296 "mn-imap-mailbox.gob"
+
+ char *pat;
+ int n;
+
+ pat = g_strdup_printf("%%%i[^/]/%%%is", maxlen, maxlen);
+ n = sscanf(location, pat, hostport, path);
+ g_free(pat);
+
+ g_return_val_if_fail(n >= 1, FALSE);
+
+ *has_path = n == 2;
+ if (*has_path)
+ {
+ /* we only handle enc_mailbox (see the RFC 2192 ABNF) */
+ if (strspn(path, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.+!*'(),%&=~:@/") != strlen(path))
+ return FALSE; /* more than enc_mailbox, unhandled */
+ }
+
+ return TRUE;
+ }}
+#line 649 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 317 "mn-imap-mailbox.gob"
static void
-___4_mn_imap_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 381 "mn-imap-mailbox.c"
+___6_mn_imap_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 655 "mn-imap-mailbox.c"
#define PARENT_HANDLER(___mailbox) \
{ if(MN_MAILBOX_CLASS(parent_class)->removed) \
(* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::removed"
-#line 168 "mn-imap-mailbox.gob"
- g_return_if_fail (mailbox != NULL);
-#line 168 "mn-imap-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 391 "mn-imap-mailbox.c"
{
-#line 170 "mn-imap-mailbox.gob"
+#line 319 "mn-imap-mailbox.gob"
Self *self = SELF(mailbox);
@@ -405,25 +674,18 @@ ___4_mn_imap_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
PARENT_HANDLER(mailbox);
}}
-#line 409 "mn-imap-mailbox.c"
+#line 678 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 186 "mn-imap-mailbox.gob"
+#line 335 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 416 "mn-imap-mailbox.c"
+#line 685 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_greeting_cb"
-#line 186 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 186 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 186 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 425 "mn-imap-mailbox.c"
{
-#line 190 "mn-imap-mailbox.gob"
+#line 339 "mn-imap-mailbox.gob"
priv->session = session;
@@ -431,6 +693,7 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (! response->tag && IS_OK(response))
{
+ self_session_detect_imapd(session, response, priv);
return self_handle_capability_code(priv, response)
? self_session_after_capability(priv)
: STATE_CAPABILITY;
@@ -438,52 +701,44 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
else if (! response->tag && IS(response, "PREAUTH"))
{
priv->authenticated = TRUE;
+ self_session_detect_imapd(session, response, priv);
return self_handle_capability_code(priv, response)
? self_session_after_capability(priv)
: STATE_CAPABILITY;
}
else if (! response->tag && IS_BYE(response))
- return RESULT_ERROR_END;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}}
-#line 451 "mn-imap-mailbox.c"
+#line 718 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 214 "mn-imap-mailbox.gob"
+#line 368 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 457 "mn-imap-mailbox.c"
+#line 724 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_capability_cb"
-#line 214 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 214 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 464 "mn-imap-mailbox.c"
{
-#line 217 "mn-imap-mailbox.gob"
+#line 371 "mn-imap-mailbox.gob"
return self_session_write(priv, "CAPABILITY");
}}
-#line 470 "mn-imap-mailbox.c"
+#line 732 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 221 "mn-imap-mailbox.gob"
+#line 375 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 476 "mn-imap-mailbox.c"
+#line 738 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_capability_cb"
-#line 221 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 221 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 221 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 485 "mn-imap-mailbox.c"
{
-#line 225 "mn-imap-mailbox.gob"
+#line 379 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -495,10 +750,13 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
{
return priv->capabilities
? self_session_after_capability(priv)
- : mn_client_session_error(session, _("server did not send capabilities"));
+ : mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send capabilities"));
}
else if (IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -509,24 +767,19 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}}
-#line 515 "mn-imap-mailbox.c"
+#line 773 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 253 "mn-imap-mailbox.gob"
+#line 410 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 521 "mn-imap-mailbox.c"
+#line 779 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_starttls_cb"
-#line 253 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 253 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 528 "mn-imap-mailbox.c"
{
-#line 256 "mn-imap-mailbox.gob"
+#line 413 "mn-imap-mailbox.gob"
#ifdef WITH_SSL
return self_session_write(priv, "STARTTLS");
@@ -534,24 +787,17 @@ mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPri
g_return_val_if_reached(0);
#endif /* WITH_SSL */
}}
-#line 538 "mn-imap-mailbox.c"
+#line 791 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 264 "mn-imap-mailbox.gob"
+#line 421 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 544 "mn-imap-mailbox.c"
+#line 797 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_starttls_cb"
-#line 264 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 264 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 264 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 553 "mn-imap-mailbox.c"
{
-#line 268 "mn-imap-mailbox.gob"
+#line 425 "mn-imap-mailbox.gob"
#ifdef WITH_SSL
if (response->continuation)
@@ -565,7 +811,7 @@ mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionRe
priv->starttls_completed = TRUE;
return mn_client_session_enable_ssl(session)
? STATE_CAPABILITY
- : RESULT_ERROR_END;
+ : MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
else if (IS_BAD(response))
return self_session_authenticate(priv);
@@ -574,83 +820,65 @@ mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionRe
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
#else
g_return_val_if_reached(0);
#endif /* WITH_SSL */
}}
-#line 583 "mn-imap-mailbox.c"
+#line 829 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 296 "mn-imap-mailbox.gob"
-static const char *
-mn_imap_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 589 "mn-imap-mailbox.c"
+#line 453 "mn-imap-mailbox.gob"
+static void
+mn_imap_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password)
+#line 835 "mn-imap-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::sasl_get_username_cb"
-#line 296 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (const char * )0);
-#line 296 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 596 "mn-imap-mailbox.c"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::sasl_get_credentials_cb"
{
-#line 299 "mn-imap-mailbox.gob"
+#line 458 "mn-imap-mailbox.gob"
#ifdef WITH_SASL
- return priv->mailbox->uri->username;
-#else
- g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
- }}
-#line 606 "mn-imap-mailbox.c"
-#undef __GOB_FUNCTION__
+ g_return_if_fail(username != NULL || password != NULL);
-#line 307 "mn-imap-mailbox.gob"
-static const char *
-mn_imap_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 612 "mn-imap-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::sasl_get_password_cb"
-#line 307 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (const char * )0);
-#line 307 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 619 "mn-imap-mailbox.c"
-{
-#line 310 "mn-imap-mailbox.gob"
-
-#ifdef WITH_SASL
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- return priv->authenticated_mailbox->password;
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+ username != NULL,
+ password != NULL);
+
+ if (username)
+ *username = priv->authenticated_mailbox->runtime_username;
+
+ if (password)
+ *password = priv->authenticated_mailbox->runtime_password;
#else
- g_return_val_if_reached(NULL);
+ g_return_if_reached();
#endif /* WITH_SASL */
}}
-#line 630 "mn-imap-mailbox.c"
+#line 857 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 319 "mn-imap-mailbox.gob"
+#line 476 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 636 "mn-imap-mailbox.c"
+#line 863 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_authenticate_cb"
-#line 319 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 319 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 643 "mn-imap-mailbox.c"
{
-#line 322 "mn-imap-mailbox.gob"
+#line 479 "mn-imap-mailbox.gob"
#ifdef WITH_SASL
+ priv->sasl_mechanism = NULL;
+
if (mn_client_session_sasl_authentication_start(priv->session,
"imap",
- priv->auth_mechanisms,
- priv->mailbox->uri->authmech,
+ priv->sasl_remaining_mechanisms,
+ priv->pi_mailbox->authmech,
&priv->sasl_mechanism,
- FALSE /* [1] */))
- return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+ NULL, /* [1] */
+ NULL)) /* [1] */
+ {
+ g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+ return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+ }
else
return priv->authenticated_mailbox->cancelled
? STATE_LOGOUT
@@ -664,24 +892,17 @@ mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessio
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 668 "mn-imap-mailbox.c"
+#line 896 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 345 "mn-imap-mailbox.gob"
+#line 508 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 674 "mn-imap-mailbox.c"
+#line 902 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_authenticate_cb"
-#line 345 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 345 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 345 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 683 "mn-imap-mailbox.c"
{
-#line 349 "mn-imap-mailbox.gob"
+#line 512 "mn-imap-mailbox.gob"
#ifdef WITH_SASL
if (response->tag)
@@ -716,12 +937,14 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
: STATE_CAPABILITY;
}
else
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
else if (IS_NO(response) || IS_BAD(response))
- return priv->authenticated_mailbox->cancelled
- ? STATE_LOGOUT
- : self_session_authenticate_fallback(priv, FALSE);
+ {
+ return priv->authenticated_mailbox->cancelled
+ ? STATE_LOGOUT
+ : self_session_authenticate_fallback(priv, FALSE);
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -729,32 +952,27 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
else if (response->continuation)
return mn_client_session_sasl_authentication_step(session, response->continuation);
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
#else
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 738 "mn-imap-mailbox.c"
+#line 961 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 402 "mn-imap-mailbox.gob"
+#line 567 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 744 "mn-imap-mailbox.c"
+#line 967 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_login_cb"
-#line 402 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 402 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 751 "mn-imap-mailbox.c"
{
-#line 405 "mn-imap-mailbox.gob"
+#line 570 "mn-imap-mailbox.gob"
if (self_session_has_capability(priv, "LOGINDISABLED"))
{
mn_client_session_notice(session, _("server advertised LOGINDISABLED, not using LOGIN authentication"));
- mn_client_session_error(session, _("unable to login"));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to login"));
return STATE_LOGOUT;
}
else
@@ -763,12 +981,14 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
char *quoted_password;
int result;
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- if (! priv->authenticated_mailbox->password)
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+
+ if (! priv->authenticated_mailbox->runtime_username
+ || ! priv->authenticated_mailbox->runtime_password)
return STATE_LOGOUT;
- quoted_username = self_quote(priv->mailbox->uri->username);
- quoted_password = self_quote(priv->authenticated_mailbox->password);
+ quoted_username = self_quote(priv->authenticated_mailbox->runtime_username);
+ quoted_password = self_quote(priv->authenticated_mailbox->runtime_password);
result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
g_free(quoted_username);
g_free(quoted_password);
@@ -776,24 +996,17 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
return result;
}
}}
-#line 780 "mn-imap-mailbox.c"
+#line 1000 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 432 "mn-imap-mailbox.gob"
+#line 599 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 786 "mn-imap-mailbox.c"
+#line 1006 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_login_cb"
-#line 432 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 432 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 432 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 795 "mn-imap-mailbox.c"
{
-#line 436 "mn-imap-mailbox.gob"
+#line 603 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -815,52 +1028,44 @@ mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionRespo
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}}
-#line 821 "mn-imap-mailbox.c"
+#line 1034 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 460 "mn-imap-mailbox.gob"
+#line 627 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_examine_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 827 "mn-imap-mailbox.c"
+#line 1040 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_examine_cb"
-#line 460 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 460 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 834 "mn-imap-mailbox.c"
{
-#line 463 "mn-imap-mailbox.gob"
+#line 630 "mn-imap-mailbox.gob"
+ char *utf7_mailbox;
char *quoted_mailbox;
int result;
- quoted_mailbox = self_quote(priv->mailbox->uri->path);
+ utf7_mailbox = self_utf8_to_imap_utf7(priv->self->runtime_mailbox);
+ quoted_mailbox = self_quote(utf7_mailbox);
+ g_free(utf7_mailbox);
+
result = self_session_write(priv, "EXAMINE %s", quoted_mailbox);
g_free(quoted_mailbox);
return result;
}}
-#line 847 "mn-imap-mailbox.c"
+#line 1059 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 474 "mn-imap-mailbox.gob"
+#line 645 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 853 "mn-imap-mailbox.c"
+#line 1065 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_examine_cb"
-#line 474 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 474 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 474 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 862 "mn-imap-mailbox.c"
{
-#line 478 "mn-imap-mailbox.gob"
+#line 649 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -871,30 +1076,28 @@ mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionRes
if (IS_OK(response))
return STATE_SEARCH;
else if (IS_NO(response) || IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}}
-#line 883 "mn-imap-mailbox.c"
+#line 1091 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 497 "mn-imap-mailbox.gob"
+#line 671 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 889 "mn-imap-mailbox.c"
+#line 1097 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_search_cb"
-#line 497 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 497 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 896 "mn-imap-mailbox.c"
{
-#line 500 "mn-imap-mailbox.gob"
+#line 674 "mn-imap-mailbox.gob"
priv->search_received = FALSE;
@@ -906,24 +1109,17 @@ mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientSessionPriva
return self_session_write(priv, "SEARCH UNSEEN");
}}
-#line 910 "mn-imap-mailbox.c"
+#line 1113 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 512 "mn-imap-mailbox.gob"
+#line 686 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 916 "mn-imap-mailbox.c"
+#line 1119 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_search_cb"
-#line 512 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 512 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 512 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 925 "mn-imap-mailbox.c"
{
-#line 516 "mn-imap-mailbox.gob"
+#line 690 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -944,16 +1140,17 @@ mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResp
gdk_flush();
GDK_THREADS_LEAVE();
- return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
- ? STATE_IDLE
- : STATE_LOGOUT;
+ return STATE_IDLE;
}
}
else /* compliance error */
- return mn_client_session_error(session, _("server did not send search results"));
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send search results"));
}
else if (IS_NO(response) || IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -989,24 +1186,19 @@ mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResp
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}}
-#line 995 "mn-imap-mailbox.c"
+#line 1192 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 584 "mn-imap-mailbox.gob"
+#line 759 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1001 "mn-imap-mailbox.c"
+#line 1198 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_fetch_cb"
-#line 584 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 584 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1008 "mn-imap-mailbox.c"
{
-#line 587 "mn-imap-mailbox.gob"
+#line 762 "mn-imap-mailbox.gob"
g_return_val_if_fail(priv->fetch_set != NULL, 0);
@@ -1018,24 +1210,17 @@ mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivat
return self_session_write(priv, "FETCH %s BODY[HEADER]", priv->fetch_set);
}}
-#line 1022 "mn-imap-mailbox.c"
+#line 1214 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 599 "mn-imap-mailbox.gob"
+#line 774 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1028 "mn-imap-mailbox.c"
+#line 1220 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_fetch_cb"
-#line 599 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 599 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 599 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1037 "mn-imap-mailbox.c"
{
-#line 603 "mn-imap-mailbox.gob"
+#line 778 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -1050,19 +1235,32 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
MN_LIST_FOREACH(l, priv->fetch_numbers)
if (! g_slist_find(priv->received_numbers, l->data))
/* compliance error */
- return mn_client_session_error(session, _("server did not send all the messages we requested"));
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send all the messages we requested"));
GDK_THREADS_ENTER();
+
mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+ /*
+ * In impl_check(), we do not hold the GDK lock while
+ * unreffing the message list. We have just exposed
+ * the list to other threads through our
+ * mn_mailbox_set_messages() call, so unref it here,
+ * while we hold the GDK lock.
+ */
+ mn_g_object_slist_free(priv->messages);
+ priv->messages = NULL;
+
gdk_flush();
GDK_THREADS_LEAVE();
- return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
- ? STATE_IDLE
- : STATE_LOGOUT;
+ return STATE_IDLE;
}
else if (IS_NO(response) || IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -1095,74 +1293,105 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
buf = mn_client_session_read(session, len);
if (! buf)
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
- priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox->uri, buf, len));
+ priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox, buf, len));
/* read end of line (after literal) */
if (! mn_client_session_read_line(session))
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
else
- priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox->uri, _("unable to fetch message")));
+ priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox, _("unable to fetch message")));
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}}
-#line 1116 "mn-imap-mailbox.c"
+#line 1314 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 680 "mn-imap-mailbox.gob"
+#line 868 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_idle_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1122 "mn-imap-mailbox.c"
+#line 1320 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_idle_cb"
-#line 680 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 680 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1129 "mn-imap-mailbox.c"
{
-#line 683 "mn-imap-mailbox.gob"
+#line 871 "mn-imap-mailbox.gob"
+ if (! REMOVED(priv->self))
+ {
+ if (priv->self->use_idle_extension == MN_IMAP_MAILBOX_USE_IDLE_NEVER)
+ mn_client_session_notice(session, _("\"Use the IDLE extension\" set to \"never\" in the mailbox properties, logging out"));
+ else
+ {
+ if (self_session_has_capability(priv, "IDLE"))
+ {
+ switch (priv->self->use_idle_extension)
+ {
+ case MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT:
+ if (priv->server_software_supports_idle)
+ goto idle;
+ else
+ mn_client_session_notice(session, _("the remote server runs %s, not using the IDLE extension"), priv->server_software);
+ break;
+
+ case MN_IMAP_MAILBOX_USE_IDLE_ALWAYS:
+ if (! priv->server_software_supports_idle)
+ mn_client_session_warning(session, _("the remote server runs %s, the IDLE extension might not function properly"), priv->server_software);
+ goto idle;
+ break;
+
+ default:
+ g_return_val_if_reached(0);
+ }
+ }
+ else
+ mn_client_session_notice(session, _("the remote server does not support the IDLE extension, logging out"));
+ }
+ }
+
+ return STATE_LOGOUT;
+
+ idle:
priv->idle_state = IDLE_STATE_NORMAL;
- return REMOVED(priv->self) ? STATE_LOGOUT : self_session_write(priv, "IDLE");
+ return self_session_write(priv, "IDLE");
}}
-#line 1136 "mn-imap-mailbox.c"
+#line 1364 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 688 "mn-imap-mailbox.gob"
+#line 911 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1142 "mn-imap-mailbox.c"
+#line 1370 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_idle_cb"
-#line 688 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 688 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 688 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1151 "mn-imap-mailbox.c"
{
-#line 692 "mn-imap-mailbox.gob"
+#line 915 "mn-imap-mailbox.gob"
if (priv->idle_state == IDLE_STATE_IDLING)
{
if (response->continuation || response->tag)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
- priv->idle_state = IDLE_STATE_WAS_IDLING;
-
if (IS_BYE(response))
- return MN_CLIENT_SESSION_RESULT_END; /* we'll reconnect */
- else
- /* any other response wakes us up */
- return mn_client_session_write(session, "DONE");
+ {
+ priv->idle_state = IDLE_STATE_WAS_IDLING;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT; /* we'll reconnect */
+ }
+ else if (response->arguments
+ && mn_str_isnumeric(response->response)
+ && (! g_ascii_strcasecmp(response->arguments, "EXISTS")
+ || ! g_ascii_strcasecmp(response->arguments, "RECENT")
+ || ! g_ascii_strcasecmp(response->arguments, "EXPUNGE")
+ || mn_ascii_str_case_has_prefix(response->arguments, "FETCH ")))
+ {
+ priv->idle_state = IDLE_STATE_WAS_IDLING;
+ return mn_client_session_write(session, "DONE"); /* wake up */
+ }
}
else
{
@@ -1206,79 +1435,65 @@ mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionRespon
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}}
-#line 1212 "mn-imap-mailbox.c"
+#line 1441 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 751 "mn-imap-mailbox.gob"
+#line 982 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1218 "mn-imap-mailbox.c"
+#line 1447 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_logout_cb"
-#line 751 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 751 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1225 "mn-imap-mailbox.c"
{
-#line 754 "mn-imap-mailbox.gob"
+#line 985 "mn-imap-mailbox.gob"
return self_session_write(priv, "LOGOUT");
}}
-#line 1231 "mn-imap-mailbox.c"
+#line 1455 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 758 "mn-imap-mailbox.gob"
+#line 989 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1237 "mn-imap-mailbox.c"
+#line 1461 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_logout_cb"
-#line 758 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 758 "mn-imap-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 758 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1246 "mn-imap-mailbox.c"
{
-#line 762 "mn-imap-mailbox.gob"
+#line 993 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (response->tag && HAS_CURRENT_TAG(response, priv))
{
if (IS_OK(response))
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
else if (IS_BAD(response))
- return RESULT_ERROR_END;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
else
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}}
-#line 1264 "mn-imap-mailbox.c"
+#line 1484 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 778 "mn-imap-mailbox.gob"
+#line 1012 "mn-imap-mailbox.gob"
static void
-___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 1270 "mn-imap-mailbox.c"
+___1b_mn_imap_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 1490 "mn-imap-mailbox.c"
#define PARENT_HANDLER(___mailbox) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+ { if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+ (* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_check"
-#line 778 "mn-imap-mailbox.gob"
- g_return_if_fail (mailbox != NULL);
-#line 778 "mn-imap-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 1280 "mn-imap-mailbox.c"
{
-#line 780 "mn-imap-mailbox.gob"
+#line 1014 "mn-imap-mailbox.gob"
Self *self = SELF(mailbox);
MNClientSessionState states[] = {
@@ -1304,34 +1519,42 @@ ___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
self_warning_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb,
self_pre_read_cb,
self_post_read_cb,
#ifdef WITH_SASL
- self_sasl_get_username_cb,
- self_sasl_get_password_cb,
+ self_sasl_get_credentials_cb,
#endif
};
MNClientSessionPrivate priv;
gboolean status;
GError *err = NULL;
+ gboolean again;
PARENT_HANDLER(mailbox);
+ /* check if the parent handler has disabled the mailbox */
+ if (! MN_MAILBOX(self)->must_poll)
+ return;
+
do
{
+ g_clear_error(&err);
+ again = FALSE;
+
memset(&priv, 0, sizeof(priv));
- priv.mailbox = mailbox;
- priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+ priv.mailbox = MN_MAILBOX(self);
+ priv.authenticated_mailbox = mailbox;
+ priv.pi_mailbox = MN_PI_MAILBOX(self);
priv.self = self;
+ priv.server_software_supports_idle = TRUE; /* assume it does */
status = mn_client_session_run(states,
&callbacks,
#ifdef WITH_SSL
- MN_URI_IS_SSL(mailbox->uri),
+ priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
#endif
- mailbox->uri->hostname,
- mailbox->uri->port,
+ priv.pi_mailbox->hostname,
+ priv.pi_mailbox->runtime_port,
&priv,
&err);
@@ -1343,83 +1566,77 @@ ___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
g_slist_free(priv.received_numbers);
mn_g_object_slist_free(priv.messages);
+
+#ifdef WITH_SASL
+ g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
+
+ if (priv.could_idle && ! REMOVED(self))
+ {
+ if (status)
+ again = TRUE;
+ /* some servers abruptly disconnect for inactivity */
+ else if (g_error_matches(err, MN_CLIENT_SESSION_ERROR, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST))
+ {
+ mn_mailbox_notice(priv.mailbox, "%s", err->message);
+ again = TRUE;
+ }
+ }
}
- while (status && priv.could_idle && ! REMOVED(self));
+ while (again);
GDK_THREADS_ENTER();
- mn_mailbox_set_must_poll(mailbox, TRUE);
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
if (! status)
{
- mn_mailbox_set_error(mailbox, "%s", err->message);
+ mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
g_error_free(err);
}
- mn_mailbox_end_check(mailbox);
gdk_flush();
GDK_THREADS_LEAVE();
}}
-#line 1363 "mn-imap-mailbox.c"
+#line 1601 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 861 "mn-imap-mailbox.gob"
+#line 1118 "mn-imap-mailbox.gob"
static void
-mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1370 "mn-imap-mailbox.c"
+mn_imap_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1608 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::notice_cb"
-#line 861 "mn-imap-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 861 "mn-imap-mailbox.gob"
- g_return_if_fail (str != NULL);
-#line 861 "mn-imap-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1379 "mn-imap-mailbox.c"
{
-#line 865 "mn-imap-mailbox.gob"
+#line 1122 "mn-imap-mailbox.gob"
- mn_mailbox_notice(priv->mailbox, "%s", str);
+ mn_mailbox_notice(priv->mailbox, "%s", message);
}}
-#line 1385 "mn-imap-mailbox.c"
+#line 1616 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 869 "mn-imap-mailbox.gob"
+#line 1126 "mn-imap-mailbox.gob"
static void
-mn_imap_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1391 "mn-imap-mailbox.c"
+mn_imap_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1622 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::warning_cb"
-#line 869 "mn-imap-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 869 "mn-imap-mailbox.gob"
- g_return_if_fail (str != NULL);
-#line 869 "mn-imap-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1400 "mn-imap-mailbox.c"
{
-#line 873 "mn-imap-mailbox.gob"
+#line 1130 "mn-imap-mailbox.gob"
- mn_mailbox_warning(priv->mailbox, "%s", str);
+ mn_mailbox_warning(priv->mailbox, "%s", message);
}}
-#line 1406 "mn-imap-mailbox.c"
+#line 1630 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 877 "mn-imap-mailbox.gob"
+#line 1134 "mn-imap-mailbox.gob"
static MNClientSessionResponse *
mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1412 "mn-imap-mailbox.c"
+#line 1636 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_new_cb"
-#line 877 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 877 "mn-imap-mailbox.gob"
- g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 877 "mn-imap-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1421 "mn-imap-mailbox.c"
-{
-#line 881 "mn-imap-mailbox.gob"
+{
+#line 1138 "mn-imap-mailbox.gob"
MNClientSessionResponse *response = NULL;
@@ -1473,24 +1690,17 @@ mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input,
return response;
}}
-#line 1477 "mn-imap-mailbox.c"
+#line 1694 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 935 "mn-imap-mailbox.gob"
+#line 1192 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1483 "mn-imap-mailbox.c"
+#line 1700 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_free_cb"
-#line 935 "mn-imap-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 935 "mn-imap-mailbox.gob"
- g_return_if_fail (response != NULL);
-#line 935 "mn-imap-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1492 "mn-imap-mailbox.c"
{
-#line 939 "mn-imap-mailbox.gob"
+#line 1196 "mn-imap-mailbox.gob"
g_free(response->continuation);
g_free(response->tag);
@@ -1499,61 +1709,42 @@ mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResp
g_free(response->arguments);
g_free(response);
}}
-#line 1503 "mn-imap-mailbox.c"
+#line 1713 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 948 "mn-imap-mailbox.gob"
+#line 1205 "mn-imap-mailbox.gob"
static int
-mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1509 "mn-imap-mailbox.c"
+mn_imap_mailbox_default_handler (MNClientSessionResponse * response, MNClientSessionPrivate * priv, int error_code_when_bye)
+#line 1719 "mn-imap-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::custom_handler_cb"
-#line 948 "mn-imap-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 948 "mn-imap-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::default_handler"
+#line 1205 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 948 "mn-imap-mailbox.gob"
+#line 1205 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1518 "mn-imap-mailbox.c"
+#line 1726 "mn-imap-mailbox.c"
{
-#line 953 "mn-imap-mailbox.gob"
+#line 1209 "mn-imap-mailbox.gob"
- switch (result)
+ if (! response->tag && IS_BYE(response))
{
- case RESULT_ERROR_LOGOUT:
- self_session_set_error_from_arguments(priv, response);
- return STATE_LOGOUT;
-
- case RESULT_ERROR_END:
- self_session_set_error_from_arguments(priv, response);
- return MN_CLIENT_SESSION_RESULT_END;
-
- case RESULT_DEFAULT_HANDLER:
- if (! response->tag && IS_BYE(response))
- return RESULT_ERROR_END;
- else
- return MN_CLIENT_SESSION_RESULT_CONTINUE;
-
- default:
- g_return_val_if_reached(0);
+ self_session_set_error_from_arguments(priv, error_code_when_bye, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
+ else
+ return MN_CLIENT_SESSION_RESULT_CONTINUE;
}}
-#line 1542 "mn-imap-mailbox.c"
+#line 1738 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 975 "mn-imap-mailbox.gob"
+#line 1219 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1548 "mn-imap-mailbox.c"
+#line 1744 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::pre_read_cb"
-#line 975 "mn-imap-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 975 "mn-imap-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1555 "mn-imap-mailbox.c"
{
-#line 978 "mn-imap-mailbox.gob"
+#line 1222 "mn-imap-mailbox.gob"
if (priv->idle_state == IDLE_STATE_IDLING)
{
@@ -1562,22 +1753,17 @@ mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate *
g_mutex_unlock(priv->self->_priv->idle_session_mutex);
}
}}
-#line 1566 "mn-imap-mailbox.c"
+#line 1757 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 987 "mn-imap-mailbox.gob"
+#line 1231 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1572 "mn-imap-mailbox.c"
+#line 1763 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::post_read_cb"
-#line 987 "mn-imap-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 987 "mn-imap-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1579 "mn-imap-mailbox.c"
{
-#line 990 "mn-imap-mailbox.gob"
+#line 1234 "mn-imap-mailbox.gob"
if (priv->idle_state == IDLE_STATE_IDLING)
{
@@ -1586,44 +1772,44 @@ mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate
g_mutex_unlock(priv->self->_priv->idle_session_mutex);
}
}}
-#line 1590 "mn-imap-mailbox.c"
+#line 1776 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 999 "mn-imap-mailbox.gob"
+#line 1243 "mn-imap-mailbox.gob"
static void
-mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1596 "mn-imap-mailbox.c"
+mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response)
+#line 1782 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_set_error_from_arguments"
-#line 999 "mn-imap-mailbox.gob"
+#line 1243 "mn-imap-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 999 "mn-imap-mailbox.gob"
+#line 1243 "mn-imap-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 1603 "mn-imap-mailbox.c"
+#line 1789 "mn-imap-mailbox.c"
{
-#line 1002 "mn-imap-mailbox.gob"
+#line 1247 "mn-imap-mailbox.gob"
if (response->arguments)
- mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+ mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
else
- mn_client_session_error(priv->session, _("unknown server error"));
+ mn_client_session_error(priv->session, code, _("unknown server error"));
}}
-#line 1612 "mn-imap-mailbox.c"
+#line 1798 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 1009 "mn-imap-mailbox.gob"
+#line 1254 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...)
-#line 1618 "mn-imap-mailbox.c"
+#line 1804 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_write"
-#line 1009 "mn-imap-mailbox.gob"
+#line 1254 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1009 "mn-imap-mailbox.gob"
+#line 1254 "mn-imap-mailbox.gob"
g_return_val_if_fail (format != NULL, (int )0);
-#line 1625 "mn-imap-mailbox.c"
+#line 1811 "mn-imap-mailbox.c"
{
-#line 1013 "mn-imap-mailbox.gob"
+#line 1258 "mn-imap-mailbox.gob"
va_list args;
char *command;
@@ -1642,22 +1828,22 @@ mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * forma
return result;
}}
-#line 1646 "mn-imap-mailbox.c"
+#line 1832 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 1032 "mn-imap-mailbox.gob"
+#line 1277 "mn-imap-mailbox.gob"
static gboolean
mn_imap_mailbox_handle_capability_code (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1652 "mn-imap-mailbox.c"
+#line 1838 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_capability_code"
-#line 1032 "mn-imap-mailbox.gob"
+#line 1277 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (gboolean )0);
-#line 1032 "mn-imap-mailbox.gob"
+#line 1277 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (gboolean )0);
-#line 1659 "mn-imap-mailbox.c"
+#line 1845 "mn-imap-mailbox.c"
{
-#line 1035 "mn-imap-mailbox.gob"
+#line 1280 "mn-imap-mailbox.gob"
if (response->code)
{
@@ -1675,20 +1861,20 @@ mn_imap_mailbox_handle_capability_code (MNClientSessionPrivate * priv, MNClientS
return FALSE;
}}
-#line 1679 "mn-imap-mailbox.c"
+#line 1865 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 1053 "mn-imap-mailbox.gob"
+#line 1298 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities)
-#line 1685 "mn-imap-mailbox.c"
+#line 1871 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_parse_capabilities"
-#line 1053 "mn-imap-mailbox.gob"
+#line 1298 "mn-imap-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 1690 "mn-imap-mailbox.c"
+#line 1876 "mn-imap-mailbox.c"
{
-#line 1056 "mn-imap-mailbox.gob"
+#line 1301 "mn-imap-mailbox.gob"
g_strfreev(priv->capabilities);
priv->capabilities = NULL;
@@ -1696,6 +1882,11 @@ mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const
eel_g_slist_free_deep(priv->auth_mechanisms);
priv->auth_mechanisms = NULL;
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = NULL;
+#endif
+
if (capabilities)
{
int i;
@@ -1709,22 +1900,22 @@ mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const
else
priv->capabilities = g_new0(char *, 1);
}}
-#line 1713 "mn-imap-mailbox.c"
+#line 1904 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 1077 "mn-imap-mailbox.gob"
+#line 1327 "mn-imap-mailbox.gob"
static gboolean
mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const char * capability)
-#line 1719 "mn-imap-mailbox.c"
+#line 1910 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_has_capability"
-#line 1077 "mn-imap-mailbox.gob"
+#line 1327 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (gboolean )0);
-#line 1077 "mn-imap-mailbox.gob"
+#line 1327 "mn-imap-mailbox.gob"
g_return_val_if_fail (capability != NULL, (gboolean )0);
-#line 1726 "mn-imap-mailbox.c"
+#line 1917 "mn-imap-mailbox.c"
{
-#line 1080 "mn-imap-mailbox.gob"
+#line 1330 "mn-imap-mailbox.gob"
int i;
@@ -1736,35 +1927,34 @@ mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const cha
return FALSE;
}}
-#line 1740 "mn-imap-mailbox.c"
+#line 1931 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 1092 "mn-imap-mailbox.gob"
+#line 1342 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
-#line 1746 "mn-imap-mailbox.c"
+#line 1937 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_after_capability"
-#line 1092 "mn-imap-mailbox.gob"
+#line 1342 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1751 "mn-imap-mailbox.c"
+#line 1942 "mn-imap-mailbox.c"
{
-#line 1094 "mn-imap-mailbox.gob"
+#line 1344 "mn-imap-mailbox.gob"
if (priv->authenticated)
return STATE_EXAMINE;
else
{
#ifdef WITH_SSL
- if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
- && ! MN_URI_IS_SSL(priv->mailbox->uri)
+ if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
&& ! priv->starttls_completed)
{
if (self_session_has_capability(priv, "STARTTLS"))
return STATE_STARTTLS;
else
{
- mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
return STATE_LOGOUT;
}
}
@@ -1772,39 +1962,44 @@ mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
return self_session_authenticate(priv);
}
}}
-#line 1776 "mn-imap-mailbox.c"
+#line 1966 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 1117 "mn-imap-mailbox.gob"
+#line 1366 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1782 "mn-imap-mailbox.c"
+#line 1972 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate"
-#line 1117 "mn-imap-mailbox.gob"
+#line 1366 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1787 "mn-imap-mailbox.c"
+#line 1977 "mn-imap-mailbox.c"
{
-#line 1119 "mn-imap-mailbox.gob"
+#line 1368 "mn-imap-mailbox.gob"
- if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+ if (priv->pi_mailbox->authmech)
{
- if (*priv->mailbox->uri->authmech != '+')
+ if (*priv->pi_mailbox->authmech != '+')
{
#ifdef WITH_SASL
return STATE_AUTHENTICATE;
#else
- mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
return STATE_LOGOUT;
#endif /* WITH_SASL */
}
else
{
- if (! strcmp(priv->mailbox->uri->authmech, "+LOGIN"))
+ if (! strcmp(priv->pi_mailbox->authmech, "+LOGIN"))
return STATE_LOGIN;
else
{
- mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
return STATE_LOGOUT;
}
}
@@ -1812,29 +2007,50 @@ mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
else
{
#ifdef WITH_SASL
- if (priv->auth_mechanisms)
+ if (priv->sasl_remaining_mechanisms)
return STATE_AUTHENTICATE;
#endif /* WITH_SASL */
return STATE_LOGIN;
}
}}
-#line 1822 "mn-imap-mailbox.c"
+#line 2017 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 1152 "mn-imap-mailbox.gob"
+#line 1406 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_login)
-#line 1828 "mn-imap-mailbox.c"
+#line 2023 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate_fallback"
-#line 1152 "mn-imap-mailbox.gob"
+#line 1406 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1833 "mn-imap-mailbox.c"
+#line 2028 "mn-imap-mailbox.c"
{
-#line 1155 "mn-imap-mailbox.gob"
+#line 1409 "mn-imap-mailbox.gob"
- if (! priv->mailbox->uri->authmech)
+ if (! priv->pi_mailbox->authmech)
{
+#ifdef WITH_SASL
+ if (priv->sasl_mechanism)
+ {
+ GSList *elem;
+
+ elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+ if (elem)
+ {
+ priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+ if (priv->sasl_remaining_mechanisms)
+ {
+ mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+ return STATE_AUTHENTICATE;
+ }
+ }
+ }
+
+ /* SASL is not needed anymore, save some memory */
+ mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
if (! tried_login)
{
mn_client_session_notice(priv->session, _("falling back to IMAP LOGIN authentication"));
@@ -1842,18 +2058,55 @@ mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
}
}
- if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+ if (priv->authenticated_mailbox->prompted)
{
mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
return self_session_authenticate(priv);
}
else
{
- mn_client_session_error(priv->session, _("authentication failed"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
return STATE_LOGOUT;
}
}}
-#line 1857 "mn-imap-mailbox.c"
+#line 2073 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1452 "mn-imap-mailbox.gob"
+static void
+mn_imap_mailbox_session_detect_imapd (MNClientSession * session, MNClientSessionResponse * greeting_response, MNClientSessionPrivate * priv)
+#line 2079 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_detect_imapd"
+#line 1452 "mn-imap-mailbox.gob"
+ g_return_if_fail (session != NULL);
+#line 1452 "mn-imap-mailbox.gob"
+ g_return_if_fail (greeting_response != NULL);
+#line 1452 "mn-imap-mailbox.gob"
+ g_return_if_fail (priv != NULL);
+#line 2088 "mn-imap-mailbox.c"
+{
+#line 1456 "mn-imap-mailbox.gob"
+
+ if (greeting_response->arguments)
+ {
+ char *str;
+
+ /*
+ * Try to detect UW imapd by looking for " IMAP4rev1 YEAR."
+ */
+
+ if ((str = mn_strstr_span(greeting_response->arguments, " IMAP4rev1 "))
+ && strspn(str, "0123456789") == 4
+ && str[4] == '.')
+ {
+ priv->server_software = "UW imapd";
+ priv->server_software_supports_idle = FALSE;
+ return;
+ }
+ }
+ }}
+#line 2110 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
/**
@@ -1864,17 +2117,17 @@ mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
*
* Return value: the quoted string.
**/
-#line 1185 "mn-imap-mailbox.gob"
+#line 1484 "mn-imap-mailbox.gob"
static char *
mn_imap_mailbox_quote (const char * str)
-#line 1871 "mn-imap-mailbox.c"
+#line 2124 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::quote"
-#line 1185 "mn-imap-mailbox.gob"
+#line 1484 "mn-imap-mailbox.gob"
g_return_val_if_fail (str != NULL, (char * )0);
-#line 1876 "mn-imap-mailbox.c"
+#line 2129 "mn-imap-mailbox.c"
{
-#line 1187 "mn-imap-mailbox.gob"
+#line 1486 "mn-imap-mailbox.gob"
GString *quoted;
int i;
@@ -1889,5 +2142,142 @@ mn_imap_mailbox_quote (const char * str)
return g_string_free(quoted, FALSE);
}}
-#line 1893 "mn-imap-mailbox.c"
+#line 2146 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+/**
+ * mn_imap_mailbox_utf8_to_imap_utf7:
+ * @str: the UTF-8 string to convert to modified UTF-7
+ *
+ * Converts a string from UTF-8 to modified UTF-7 as defined by RFC 3501.
+ *
+ * Return value: the string converted to modified UTF-7.
+ **/
+#line 1509 "mn-imap-mailbox.gob"
+static char *
+mn_imap_mailbox_utf8_to_imap_utf7 (const char * str)
+#line 2160 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::utf8_to_imap_utf7"
+#line 1509 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (str != NULL, (char * )0);
+#line 2165 "mn-imap-mailbox.c"
+{
+#line 1511 "mn-imap-mailbox.gob"
+
+ gunichar c;
+ guint32 x, v = 0;
+ int state = 0;
+ GString *out;
+ int i = 0;
+
+ /*
+ * Taken from the Ximian Evolution sources (camel-utf8.c) and
+ * edited for tyle.
+ */
+
+ out = g_string_new(NULL);
+
+ while ((c = g_utf8_get_char(str)))
+ {
+ if (c >= 0x20 && c <= 0x7e)
+ {
+ if (state == 1)
+ {
+ self_imap_utf7_closeb64(out, v, i);
+ state = 0;
+ i = 0;
+ }
+ if (c == '&')
+ g_string_append(out, "&-");
+ else
+ g_string_append_c(out, c);
+ }
+ else
+ {
+ if (state == 0)
+ {
+ g_string_append_c(out, '&');
+ state = 1;
+ }
+
+ v = (v << 16) | c;
+ i += 16;
+
+ while (i >= 6)
+ {
+ x = (v >> (i - 6)) & 0x3f;
+ g_string_append_c(out, utf7_alphabet[x]);
+ i -= 6;
+ }
+ }
+
+ str = g_utf8_next_char(str);
+ }
+
+ if (state == 1)
+ self_imap_utf7_closeb64(out, v, i);
+
+ return g_string_free(out, FALSE);
+ }}
+#line 2224 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1568 "mn-imap-mailbox.gob"
+static void
+mn_imap_mailbox_imap_utf7_closeb64 (GString * out, guint32 v, guint32 i)
+#line 2230 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::imap_utf7_closeb64"
+#line 1568 "mn-imap-mailbox.gob"
+ g_return_if_fail (out != NULL);
+#line 2235 "mn-imap-mailbox.c"
+{
+#line 1570 "mn-imap-mailbox.gob"
+
+ /*
+ * Taken from the Ximian Evolution sources (camel-utf8.c) and
+ * edited for tyle.
+ */
+
+ if (i > 0)
+ {
+ guint32 x;
+
+ x = (v << (6 - i)) & 0x3f;
+ g_string_append_c(out, utf7_alphabet[x]);
+ }
+
+ g_string_append_c(out, '-');
+ }}
+#line 2254 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1587 "mn-imap-mailbox.gob"
+char *
+mn_imap_mailbox_build_name (const char * username, const char * hostname, const char * mailbox)
+#line 2260 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::build_name"
+#line 1587 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (hostname != NULL, (char * )0);
+#line 2265 "mn-imap-mailbox.c"
+{
+#line 1591 "mn-imap-mailbox.gob"
+
+ GString *name;
+
+ name = g_string_new(NULL);
+
+ if (username)
+ g_string_append_printf(name, "%s@", username);
+
+ g_string_append(name, hostname);
+
+ if (mailbox && mn_utf8_strcasecmp(mailbox, "INBOX"))
+ g_string_append_printf(name, "/%s", mailbox);
+
+ return g_string_free(name, FALSE);
+ }}
+#line 2283 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-imap-mailbox.gob b/src/mn-imap-mailbox.gob
@@ -5,6 +5,7 @@
*
* - RFC 3501
* - RFC 2177
+ * - RFC 2192 (subset)
*
* Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
@@ -23,10 +24,16 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
+%}
+
+%h{
+#define MN_IMAP_MAILBOX_N_USE_IDLE 3
+
+extern int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
%}
%privateheader{
@@ -44,6 +51,7 @@ requires 2.0.10
#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
#include "mn-util.h"
#include "mn-message-mime.h"
@@ -56,90 +64,117 @@ requires 2.0.10
#define REMOVED(self) (g_atomic_int_get(&(self)->_priv->removed))
- enum
- {
- STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
- STATE_CAPABILITY,
+enum
+{
+ STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+ STATE_CAPABILITY,
#ifdef WITH_SSL
- STATE_STARTTLS,
+ STATE_STARTTLS,
#endif
#ifdef WITH_SASL
- STATE_AUTHENTICATE,
+ STATE_AUTHENTICATE,
#endif
- STATE_LOGIN,
- STATE_EXAMINE,
- STATE_SEARCH,
- STATE_FETCH,
- STATE_IDLE,
- STATE_LOGOUT
- };
+ STATE_LOGIN,
+ STATE_EXAMINE,
+ STATE_SEARCH,
+ STATE_FETCH,
+ STATE_IDLE,
+ STATE_LOGOUT
+};
- enum
- {
- RESULT_ERROR_LOGOUT = -1, /* server reported an error, logout normally */
- RESULT_ERROR_END = -2, /* server reported an error, close the connection */
- RESULT_DEFAULT_HANDLER = -3 /* invoke the default response handler */
- };
-
- typedef enum
- {
- IDLE_STATE_NORMAL,
- IDLE_STATE_IDLING,
- IDLE_STATE_WAS_IDLING
- } IdleState;
-
- struct _MNClientSessionPrivate
- {
- MNMailbox *mailbox;
- MNAuthenticatedMailbox *authenticated_mailbox;
- MNIMAPMailbox *self;
- MNClientSession *session;
-
- int numeric_tag;
- char tag[5];
-
- char **capabilities;
- GSList *auth_mechanisms;
- gboolean authenticated;
+typedef enum
+{
+ IDLE_STATE_NORMAL,
+ IDLE_STATE_IDLING,
+ IDLE_STATE_WAS_IDLING
+} IdleState;
- gboolean search_received;
- GSList *fetch_numbers;
- char *fetch_set;
+struct _MNClientSessionPrivate
+{
+ MNMailbox *mailbox;
+ MNAuthenticatedMailbox *authenticated_mailbox;
+ MNPIMailbox *pi_mailbox;
+ MNIMAPMailbox *self;
+ MNClientSession *session;
+
+ const char *server_software;
+ gboolean server_software_supports_idle;
+
+ int numeric_tag;
+ char tag[5];
- GSList *received_numbers;
- GSList *messages;
+ char **capabilities;
+ GSList *auth_mechanisms;
+ gboolean authenticated;
+
+ gboolean search_received;
+ GSList *fetch_numbers;
+ char *fetch_set;
+
+ GSList *received_numbers;
+ GSList *messages;
#ifdef WITH_SSL
- gboolean starttls_completed;
+ gboolean starttls_completed;
#endif
#ifdef WITH_SASL
- const char *sasl_mechanism;
+ GSList *sasl_remaining_mechanisms;
+ const char *sasl_mechanism;
#endif
- IdleState idle_state;
- gboolean could_idle; /* could idle at least once */
- };
+ IdleState idle_state;
+ gboolean could_idle; /* could idle at least once */
+};
- struct _MNClientSessionResponse
- {
- char *continuation;
- char *tag;
- char *response;
- char *code;
- char *arguments;
- };
+struct _MNClientSessionResponse
+{
+ char *continuation;
+ char *tag;
+ char *response;
+ char *code;
+ char *arguments;
+};
+
+int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 143, 143, 993 };
+
+/* variable taken from Evolution (camel-utf8.c) */
+static char *utf7_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
%}
-class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
+enum MN_IMAP_MAILBOX_USE_IDLE
+{
+ NEVER,
+ AUTODETECT,
+ ALWAYS
+} MN:IMAP:Mailbox:Use:IDLE;
+
+class MN:IMAP:Mailbox from MN:PI:Mailbox
{
private int removed; /* boolean, access with g_atomic_int_ API */
private MNClientSessionPrivate *idle_session;
private GMutex *idle_session_mutex = {g_mutex_new()} destroywith g_mutex_free;
+ public char *mailbox destroywith g_free;
+ property STRING mailbox (link,
+ flags = CONSTRUCT
+ | MN_MAILBOX_PARAM_PERMANENT
+ | MN_MAILBOX_PARAM_IGNORE_CASE,
+ default_value = "INBOX");
+
+ public char *runtime_mailbox destroywith g_free;
+
+ public MNIMAPMailboxUseIDLE use_idle_extension;
+ property ENUM use_idle_extension (link,
+ enum_type = MN:IMAP:Mailbox:Use:IDLE,
+ flags = CONSTRUCT
+ | MN_MAILBOX_PARAM_PERMANENT,
+ default_value = MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT);
+
class_init (class)
{
- MN_MAILBOX_CLASS(class)->format = "IMAP";
+ MN_MAILBOX_CLASS(class)->type = "imap";
+ MN_PI_MAILBOX_CLASS(class)->default_ports = mn_imap_mailbox_default_ports;
}
override (G:Object) GObject *
@@ -150,23 +185,137 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
object = PARENT_HANDLER(type, n_construct_properties, construct_params);
mailbox = MN_MAILBOX(object);
-
-#ifndef WITH_SSL
- if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
- mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
+
+ mn_mailbox_set_format(mailbox, "IMAP");
return object;
}
- override (MN:Mailbox) gboolean
- impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
+ override (MN:Mailbox) void
+ seal (MNMailbox *mailbox)
{
- return MN_URI_IS_IMAP(uri);
+ Self *self = SELF(mailbox);
+
+ PARENT_HANDLER(mailbox);
+
+ self->runtime_mailbox = g_strdup(self->mailbox ? self->mailbox : "INBOX");
+
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+ MN_PI_MAILBOX(mailbox)->hostname,
+ self->runtime_mailbox);
+ }
+
+ /*
+ * Parses a RFC 2192 IMAP URL.
+ *
+ * Note: we only handle a subset of the RFC 2192 specification,
+ * since mailbox lists, message lists and message parts have no
+ * meaning in Mail Notification.
+ */
+ override (MN:Mailbox) MNMailbox *
+ parse_uri (MNMailbox *dummy, const char *uri)
+ {
+ int len;
+ int buflen;
+ char *username = NULL;
+ char *authmech = NULL;
+ char *hostname;
+ char *path = NULL;
+ int port;
+ MNMailbox *mailbox;
+
+ len = strlen(uri);
+ buflen = len + 1;
+
+ {
+ char scheme_buf[buflen];
+ char auth_buf[buflen];
+ char location_buf[buflen];
+ char hostport_buf[buflen];
+ char path_buf[buflen];
+ char username_buf[buflen];
+ char authmech_buf[buflen];
+ char hostname_buf[buflen];
+ gboolean has_auth;
+ gboolean has_path;
+ gboolean has_username = FALSE;
+ gboolean has_authmech = FALSE;
+
+ if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+ return NULL;
+
+ if (strcmp(scheme_buf, "imap"))
+ return NULL;
+
+ if (! self_split_uri_location(location_buf, len, hostport_buf, path_buf, &has_path))
+ return NULL;
+
+ if (has_auth)
+ {
+ if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+ return NULL;
+
+ if (has_authmech && ! strcmp(authmech_buf, "*"))
+ has_authmech = FALSE;
+ }
+
+ mn_pi_mailbox_split_uri_hostport(hostport_buf, len, hostname_buf, &port);
+
+ if (has_username)
+ username = gnome_vfs_unescape_string(username_buf, NULL);
+ if (has_authmech)
+ authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+ hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+ if (has_path)
+ path = gnome_vfs_unescape_string(path_buf, NULL);
+ }
+
+ mailbox = mn_mailbox_new("imap",
+ "username", username,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ "mailbox", path,
+ NULL);
+
+ g_free(username);
+ g_free(authmech);
+ g_free(hostname);
+ g_free(path);
+
+ return mailbox;
}
+
+ private gboolean
+ split_uri_location (const char *location (check null),
+ int maxlen,
+ char *hostport (check null),
+ char *path (check null),
+ gboolean *has_path (check null))
+ {
+ char *pat;
+ int n;
+ pat = g_strdup_printf("%%%i[^/]/%%%is", maxlen, maxlen);
+ n = sscanf(location, pat, hostport, path);
+ g_free(pat);
+
+ g_return_val_if_fail(n >= 1, FALSE);
+
+ *has_path = n == 2;
+ if (*has_path)
+ {
+ /* we only handle enc_mailbox (see the RFC 2192 ABNF) */
+ if (strspn(path, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.+!*'(),%&=~:@/") != strlen(path))
+ return FALSE; /* more than enc_mailbox, unhandled */
+ }
+
+ return TRUE;
+ }
+
override (MN:Mailbox) void
- removed (MN:Mailbox *mailbox (check null type))
+ removed (MNMailbox *mailbox)
{
Self *self = SELF(mailbox);
@@ -184,9 +333,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_greeting_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_greeting_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
priv->session = session;
@@ -194,6 +343,7 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (! response->tag && IS_OK(response))
{
+ self_session_detect_imapd(session, response, priv);
return self_handle_capability_code(priv, response)
? self_session_after_capability(priv)
: STATE_CAPABILITY;
@@ -201,27 +351,31 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
else if (! response->tag && IS(response, "PREAUTH"))
{
priv->authenticated = TRUE;
+ self_session_detect_imapd(session, response, priv);
return self_handle_capability_code(priv, response)
? self_session_after_capability(priv)
: STATE_CAPABILITY;
}
else if (! response->tag && IS_BYE(response))
- return RESULT_ERROR_END;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
private int
- enter_capability_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_capability_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
return self_session_write(priv, "CAPABILITY");
}
private int
- handle_capability_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_capability_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -233,10 +387,13 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
{
return priv->capabilities
? self_session_after_capability(priv)
- : mn_client_session_error(session, _("server did not send capabilities"));
+ : mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send capabilities"));
}
else if (IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -247,12 +404,12 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}
private int
- enter_starttls_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_starttls_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SSL
return self_session_write(priv, "STARTTLS");
@@ -262,9 +419,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_starttls_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_starttls_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SSL
if (response->continuation)
@@ -278,7 +435,7 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
priv->starttls_completed = TRUE;
return mn_client_session_enable_ssl(session)
? STATE_CAPABILITY
- : RESULT_ERROR_END;
+ : MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
else if (IS_BAD(response))
return self_session_authenticate(priv);
@@ -287,47 +444,53 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
#else
g_return_val_if_reached(0);
#endif /* WITH_SSL */
}
- private const char *
- sasl_get_username_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ private void
+ sasl_get_credentials_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv,
+ const char **username,
+ const char **password)
{
#ifdef WITH_SASL
- return priv->mailbox->uri->username;
-#else
- g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
- }
+ g_return_if_fail(username != NULL || password != NULL);
- private const char *
- sasl_get_password_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
- {
-#ifdef WITH_SASL
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- return priv->authenticated_mailbox->password;
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+ username != NULL,
+ password != NULL);
+
+ if (username)
+ *username = priv->authenticated_mailbox->runtime_username;
+
+ if (password)
+ *password = priv->authenticated_mailbox->runtime_password;
#else
- g_return_val_if_reached(NULL);
+ g_return_if_reached();
#endif /* WITH_SASL */
}
private int
- enter_authenticate_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_authenticate_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SASL
+ priv->sasl_mechanism = NULL;
+
if (mn_client_session_sasl_authentication_start(priv->session,
"imap",
- priv->auth_mechanisms,
- priv->mailbox->uri->authmech,
+ priv->sasl_remaining_mechanisms,
+ priv->pi_mailbox->authmech,
&priv->sasl_mechanism,
- FALSE /* [1] */))
- return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+ NULL, /* [1] */
+ NULL)) /* [1] */
+ {
+ g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+ return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+ }
else
return priv->authenticated_mailbox->cancelled
? STATE_LOGOUT
@@ -343,9 +506,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_authenticate_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_authenticate_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SASL
if (response->tag)
@@ -380,12 +543,14 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
: STATE_CAPABILITY;
}
else
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
else if (IS_NO(response) || IS_BAD(response))
- return priv->authenticated_mailbox->cancelled
- ? STATE_LOGOUT
- : self_session_authenticate_fallback(priv, FALSE);
+ {
+ return priv->authenticated_mailbox->cancelled
+ ? STATE_LOGOUT
+ : self_session_authenticate_fallback(priv, FALSE);
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -393,20 +558,20 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
else if (response->continuation)
return mn_client_session_sasl_authentication_step(session, response->continuation);
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
#else
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}
private int
- enter_login_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_login_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
if (self_session_has_capability(priv, "LOGINDISABLED"))
{
mn_client_session_notice(session, _("server advertised LOGINDISABLED, not using LOGIN authentication"));
- mn_client_session_error(session, _("unable to login"));
+ mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to login"));
return STATE_LOGOUT;
}
else
@@ -415,12 +580,14 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
char *quoted_password;
int result;
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- if (! priv->authenticated_mailbox->password)
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+
+ if (! priv->authenticated_mailbox->runtime_username
+ || ! priv->authenticated_mailbox->runtime_password)
return STATE_LOGOUT;
- quoted_username = self_quote(priv->mailbox->uri->username);
- quoted_password = self_quote(priv->authenticated_mailbox->password);
+ quoted_username = self_quote(priv->authenticated_mailbox->runtime_username);
+ quoted_password = self_quote(priv->authenticated_mailbox->runtime_password);
result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
g_free(quoted_username);
g_free(quoted_password);
@@ -430,9 +597,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_login_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_login_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -454,17 +621,21 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}
private int
- enter_examine_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_examine_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
+ char *utf7_mailbox;
char *quoted_mailbox;
int result;
- quoted_mailbox = self_quote(priv->mailbox->uri->path);
+ utf7_mailbox = self_utf8_to_imap_utf7(priv->self->runtime_mailbox);
+ quoted_mailbox = self_quote(utf7_mailbox);
+ g_free(utf7_mailbox);
+
result = self_session_write(priv, "EXAMINE %s", quoted_mailbox);
g_free(quoted_mailbox);
@@ -472,9 +643,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_examine_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_examine_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -485,18 +656,21 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
if (IS_OK(response))
return STATE_SEARCH;
else if (IS_NO(response) || IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}
private int
- enter_search_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_search_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
priv->search_received = FALSE;
@@ -510,9 +684,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_search_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_search_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -533,16 +707,17 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
gdk_flush();
GDK_THREADS_LEAVE();
- return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
- ? STATE_IDLE
- : STATE_LOGOUT;
+ return STATE_IDLE;
}
}
else /* compliance error */
- return mn_client_session_error(session, _("server did not send search results"));
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send search results"));
}
else if (IS_NO(response) || IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -578,12 +753,12 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}
private int
- enter_fetch_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_fetch_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
g_return_val_if_fail(priv->fetch_set != NULL, 0);
@@ -597,9 +772,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_fetch_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_fetch_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -614,19 +789,32 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
MN_LIST_FOREACH(l, priv->fetch_numbers)
if (! g_slist_find(priv->received_numbers, l->data))
/* compliance error */
- return mn_client_session_error(session, _("server did not send all the messages we requested"));
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send all the messages we requested"));
GDK_THREADS_ENTER();
+
mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+ /*
+ * In impl_check(), we do not hold the GDK lock while
+ * unreffing the message list. We have just exposed
+ * the list to other threads through our
+ * mn_mailbox_set_messages() call, so unref it here,
+ * while we hold the GDK lock.
+ */
+ mn_g_object_slist_free(priv->messages);
+ priv->messages = NULL;
+
gdk_flush();
GDK_THREADS_LEAVE();
- return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
- ? STATE_IDLE
- : STATE_LOGOUT;
+ return STATE_IDLE;
}
else if (IS_NO(response) || IS_BAD(response))
- return RESULT_ERROR_LOGOUT;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_LOGOUT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -659,49 +847,92 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
buf = mn_client_session_read(session, len);
if (! buf)
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
- priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox->uri, buf, len));
+ priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox, buf, len));
/* read end of line (after literal) */
if (! mn_client_session_read_line(session))
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
else
- priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox->uri, _("unable to fetch message")));
+ priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox, _("unable to fetch message")));
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}
private int
- enter_idle_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_idle_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
+ if (! REMOVED(priv->self))
+ {
+ if (priv->self->use_idle_extension == MN_IMAP_MAILBOX_USE_IDLE_NEVER)
+ mn_client_session_notice(session, _("\"Use the IDLE extension\" set to \"never\" in the mailbox properties, logging out"));
+ else
+ {
+ if (self_session_has_capability(priv, "IDLE"))
+ {
+ switch (priv->self->use_idle_extension)
+ {
+ case MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT:
+ if (priv->server_software_supports_idle)
+ goto idle;
+ else
+ mn_client_session_notice(session, _("the remote server runs %s, not using the IDLE extension"), priv->server_software);
+ break;
+
+ case MN_IMAP_MAILBOX_USE_IDLE_ALWAYS:
+ if (! priv->server_software_supports_idle)
+ mn_client_session_warning(session, _("the remote server runs %s, the IDLE extension might not function properly"), priv->server_software);
+ goto idle;
+ break;
+
+ default:
+ g_return_val_if_reached(0);
+ }
+ }
+ else
+ mn_client_session_notice(session, _("the remote server does not support the IDLE extension, logging out"));
+ }
+ }
+
+ return STATE_LOGOUT;
+
+ idle:
priv->idle_state = IDLE_STATE_NORMAL;
- return REMOVED(priv->self) ? STATE_LOGOUT : self_session_write(priv, "IDLE");
+ return self_session_write(priv, "IDLE");
}
private int
- handle_idle_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_idle_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
if (priv->idle_state == IDLE_STATE_IDLING)
{
if (response->continuation || response->tag)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
- priv->idle_state = IDLE_STATE_WAS_IDLING;
-
if (IS_BYE(response))
- return MN_CLIENT_SESSION_RESULT_END; /* we'll reconnect */
- else
- /* any other response wakes us up */
- return mn_client_session_write(session, "DONE");
+ {
+ priv->idle_state = IDLE_STATE_WAS_IDLING;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT; /* we'll reconnect */
+ }
+ else if (response->arguments
+ && mn_str_isnumeric(response->response)
+ && (! g_ascii_strcasecmp(response->arguments, "EXISTS")
+ || ! g_ascii_strcasecmp(response->arguments, "RECENT")
+ || ! g_ascii_strcasecmp(response->arguments, "EXPUNGE")
+ || mn_ascii_str_case_has_prefix(response->arguments, "FETCH ")))
+ {
+ priv->idle_state = IDLE_STATE_WAS_IDLING;
+ return mn_client_session_write(session, "DONE"); /* wake up */
+ }
}
else
{
@@ -745,29 +976,32 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
}
- return RESULT_DEFAULT_HANDLER;
+ return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
}
private int
- enter_logout_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_logout_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
return self_session_write(priv, "LOGOUT");
}
private int
- handle_logout_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_logout_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (response->tag && HAS_CURRENT_TAG(response, priv))
{
if (IS_OK(response))
- return MN_CLIENT_SESSION_RESULT_END;
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
else if (IS_BAD(response))
- return RESULT_ERROR_END;
+ {
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+ }
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
@@ -775,8 +1009,8 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
- override (MN:Mailbox) void
- impl_check (MN:Mailbox *mailbox (check null type))
+ override (MN:Authenticated:Mailbox) void
+ impl_check (MNAuthenticatedMailbox *mailbox)
{
Self *self = SELF(mailbox);
MNClientSessionState states[] = {
@@ -802,34 +1036,42 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
self_warning_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb,
self_pre_read_cb,
self_post_read_cb,
#ifdef WITH_SASL
- self_sasl_get_username_cb,
- self_sasl_get_password_cb,
+ self_sasl_get_credentials_cb,
#endif
};
MNClientSessionPrivate priv;
gboolean status;
GError *err = NULL;
+ gboolean again;
PARENT_HANDLER(mailbox);
+ /* check if the parent handler has disabled the mailbox */
+ if (! MN_MAILBOX(self)->must_poll)
+ return;
+
do
{
+ g_clear_error(&err);
+ again = FALSE;
+
memset(&priv, 0, sizeof(priv));
- priv.mailbox = mailbox;
- priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+ priv.mailbox = MN_MAILBOX(self);
+ priv.authenticated_mailbox = mailbox;
+ priv.pi_mailbox = MN_PI_MAILBOX(self);
priv.self = self;
+ priv.server_software_supports_idle = TRUE; /* assume it does */
status = mn_client_session_run(states,
&callbacks,
#ifdef WITH_SSL
- MN_URI_IS_SSL(mailbox->uri),
+ priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
#endif
- mailbox->uri->hostname,
- mailbox->uri->port,
+ priv.pi_mailbox->hostname,
+ priv.pi_mailbox->runtime_port,
&priv,
&err);
@@ -841,43 +1083,58 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
g_slist_free(priv.received_numbers);
mn_g_object_slist_free(priv.messages);
+
+#ifdef WITH_SASL
+ g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
+
+ if (priv.could_idle && ! REMOVED(self))
+ {
+ if (status)
+ again = TRUE;
+ /* some servers abruptly disconnect for inactivity */
+ else if (g_error_matches(err, MN_CLIENT_SESSION_ERROR, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST))
+ {
+ mn_mailbox_notice(priv.mailbox, "%s", err->message);
+ again = TRUE;
+ }
+ }
}
- while (status && priv.could_idle && ! REMOVED(self));
+ while (again);
GDK_THREADS_ENTER();
- mn_mailbox_set_must_poll(mailbox, TRUE);
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
if (! status)
{
- mn_mailbox_set_error(mailbox, "%s", err->message);
+ mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
g_error_free(err);
}
- mn_mailbox_end_check(mailbox);
gdk_flush();
GDK_THREADS_LEAVE();
}
private void
- notice_cb (MNClientSession *session (check null),
- const char *str (check null),
- MNClientSessionPrivate *priv (check null))
+ notice_cb (MNClientSession *session,
+ const char *message,
+ MNClientSessionPrivate *priv)
{
- mn_mailbox_notice(priv->mailbox, "%s", str);
+ mn_mailbox_notice(priv->mailbox, "%s", message);
}
private void
- warning_cb (MNClientSession *session (check null),
- const char *str (check null),
- MNClientSessionPrivate *priv (check null))
+ warning_cb (MNClientSession *session,
+ const char *message,
+ MNClientSessionPrivate *priv)
{
- mn_mailbox_warning(priv->mailbox, "%s", str);
+ mn_mailbox_warning(priv->mailbox, "%s", message);
}
private MNClientSessionResponse *
- response_new_cb (MNClientSession *session (check null),
- const char *input (check null),
- MNClientSessionPrivate *priv (check null))
+ response_new_cb (MNClientSession *session,
+ const char *input,
+ MNClientSessionPrivate *priv)
{
MNClientSessionResponse *response = NULL;
@@ -933,9 +1190,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private void
- response_free_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ response_free_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
g_free(response->continuation);
g_free(response->tag);
@@ -946,35 +1203,22 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
- custom_handler_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- int result,
- MNClientSessionPrivate *priv (check null))
+ default_handler (MNClientSessionResponse *response (check null),
+ MNClientSessionPrivate *priv (check null),
+ int error_code_when_bye)
{
- switch (result)
+ if (! response->tag && IS_BYE(response))
{
- case RESULT_ERROR_LOGOUT:
- self_session_set_error_from_arguments(priv, response);
- return STATE_LOGOUT;
-
- case RESULT_ERROR_END:
- self_session_set_error_from_arguments(priv, response);
- return MN_CLIENT_SESSION_RESULT_END;
-
- case RESULT_DEFAULT_HANDLER:
- if (! response->tag && IS_BYE(response))
- return RESULT_ERROR_END;
- else
- return MN_CLIENT_SESSION_RESULT_CONTINUE;
-
- default:
- g_return_val_if_reached(0);
+ self_session_set_error_from_arguments(priv, error_code_when_bye, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
}
+ else
+ return MN_CLIENT_SESSION_RESULT_CONTINUE;
}
-
+
private void
- pre_read_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ pre_read_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
if (priv->idle_state == IDLE_STATE_IDLING)
{
@@ -985,8 +1229,8 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private void
- post_read_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ post_read_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
if (priv->idle_state == IDLE_STATE_IDLING)
{
@@ -998,12 +1242,13 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
private void
session_set_error_from_arguments (MNClientSessionPrivate *priv (check null),
+ int code,
MNClientSessionResponse *response (check null))
{
if (response->arguments)
- mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+ mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
else
- mn_client_session_error(priv->session, _("unknown server error"));
+ mn_client_session_error(priv->session, code, _("unknown server error"));
}
private int
@@ -1060,6 +1305,11 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
eel_g_slist_free_deep(priv->auth_mechanisms);
priv->auth_mechanisms = NULL;
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = NULL;
+#endif
+
if (capabilities)
{
int i;
@@ -1097,15 +1347,14 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
else
{
#ifdef WITH_SSL
- if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
- && ! MN_URI_IS_SSL(priv->mailbox->uri)
+ if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
&& ! priv->starttls_completed)
{
if (self_session_has_capability(priv, "STARTTLS"))
return STATE_STARTTLS;
else
{
- mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
return STATE_LOGOUT;
}
}
@@ -1117,24 +1366,29 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
private int
session_authenticate (MNClientSessionPrivate *priv (check null))
{
- if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+ if (priv->pi_mailbox->authmech)
{
- if (*priv->mailbox->uri->authmech != '+')
+ if (*priv->pi_mailbox->authmech != '+')
{
#ifdef WITH_SASL
return STATE_AUTHENTICATE;
#else
- mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
return STATE_LOGOUT;
#endif /* WITH_SASL */
}
else
{
- if (! strcmp(priv->mailbox->uri->authmech, "+LOGIN"))
+ if (! strcmp(priv->pi_mailbox->authmech, "+LOGIN"))
return STATE_LOGIN;
else
{
- mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
return STATE_LOGOUT;
}
}
@@ -1142,7 +1396,7 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
else
{
#ifdef WITH_SASL
- if (priv->auth_mechanisms)
+ if (priv->sasl_remaining_mechanisms)
return STATE_AUTHENTICATE;
#endif /* WITH_SASL */
return STATE_LOGIN;
@@ -1153,8 +1407,29 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
session_authenticate_fallback (MNClientSessionPrivate *priv (check null),
gboolean tried_login)
{
- if (! priv->mailbox->uri->authmech)
+ if (! priv->pi_mailbox->authmech)
{
+#ifdef WITH_SASL
+ if (priv->sasl_mechanism)
+ {
+ GSList *elem;
+
+ elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+ if (elem)
+ {
+ priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+ if (priv->sasl_remaining_mechanisms)
+ {
+ mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+ return STATE_AUTHENTICATE;
+ }
+ }
+ }
+
+ /* SASL is not needed anymore, save some memory */
+ mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
if (! tried_login)
{
mn_client_session_notice(priv->session, _("falling back to IMAP LOGIN authentication"));
@@ -1162,18 +1437,42 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
}
- if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+ if (priv->authenticated_mailbox->prompted)
{
mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
return self_session_authenticate(priv);
}
else
{
- mn_client_session_error(priv->session, _("authentication failed"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
return STATE_LOGOUT;
}
}
+ private void
+ session_detect_imapd (MNClientSession *session (check null),
+ MNClientSessionResponse *greeting_response (check null),
+ MNClientSessionPrivate *priv (check null))
+ {
+ if (greeting_response->arguments)
+ {
+ char *str;
+
+ /*
+ * Try to detect UW imapd by looking for " IMAP4rev1 YEAR."
+ */
+
+ if ((str = mn_strstr_span(greeting_response->arguments, " IMAP4rev1 "))
+ && strspn(str, "0123456789") == 4
+ && str[4] == '.')
+ {
+ priv->server_software = "UW imapd";
+ priv->server_software_supports_idle = FALSE;
+ return;
+ }
+ }
+ }
+
/**
* quote:
* @str: the string to quote
@@ -1198,4 +1497,110 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
return g_string_free(quoted, FALSE);
}
+
+ /**
+ * utf8_to_imap_utf7:
+ * @str: the UTF-8 string to convert to modified UTF-7
+ *
+ * Converts a string from UTF-8 to modified UTF-7 as defined by RFC 3501.
+ *
+ * Return value: the string converted to modified UTF-7.
+ **/
+ private char *
+ utf8_to_imap_utf7 (const char *str (check null))
+ {
+ gunichar c;
+ guint32 x, v = 0;
+ int state = 0;
+ GString *out;
+ int i = 0;
+
+ /*
+ * Taken from the Ximian Evolution sources (camel-utf8.c) and
+ * edited for tyle.
+ */
+
+ out = g_string_new(NULL);
+
+ while ((c = g_utf8_get_char(str)))
+ {
+ if (c >= 0x20 && c <= 0x7e)
+ {
+ if (state == 1)
+ {
+ self_imap_utf7_closeb64(out, v, i);
+ state = 0;
+ i = 0;
+ }
+ if (c == '&')
+ g_string_append(out, "&-");
+ else
+ g_string_append_c(out, c);
+ }
+ else
+ {
+ if (state == 0)
+ {
+ g_string_append_c(out, '&');
+ state = 1;
+ }
+
+ v = (v << 16) | c;
+ i += 16;
+
+ while (i >= 6)
+ {
+ x = (v >> (i - 6)) & 0x3f;
+ g_string_append_c(out, utf7_alphabet[x]);
+ i -= 6;
+ }
+ }
+
+ str = g_utf8_next_char(str);
+ }
+
+ if (state == 1)
+ self_imap_utf7_closeb64(out, v, i);
+
+ return g_string_free(out, FALSE);
+ }
+
+ private void
+ imap_utf7_closeb64 (GString *out (check null), guint32 v, guint32 i)
+ {
+ /*
+ * Taken from the Ximian Evolution sources (camel-utf8.c) and
+ * edited for tyle.
+ */
+
+ if (i > 0)
+ {
+ guint32 x;
+
+ x = (v << (6 - i)) & 0x3f;
+ g_string_append_c(out, utf7_alphabet[x]);
+ }
+
+ g_string_append_c(out, '-');
+ }
+
+ public char *
+ build_name (const char *username,
+ const char *hostname (check null),
+ const char *mailbox)
+ {
+ GString *name;
+
+ name = g_string_new(NULL);
+
+ if (username)
+ g_string_append_printf(name, "%s@", username);
+
+ g_string_append(name, hostname);
+
+ if (mailbox && mn_utf8_strcasecmp(mailbox, "INBOX"))
+ g_string_append_printf(name, "/%s", mailbox);
+
+ return g_string_free(name, FALSE);
+ }
}
diff --git a/src/mn-imap-mailbox.h b/src/mn-imap-mailbox.h
@@ -1,10 +1,10 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
#ifndef __MN_IMAP_MAILBOX_H__
#define __MN_IMAP_MAILBOX_H__
@@ -14,6 +14,21 @@ extern "C" {
#endif /* __cplusplus */
+
+#define MN_IMAP_MAILBOX_N_USE_IDLE 3
+
+extern int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+
+
+typedef enum {
+ MN_IMAP_MAILBOX_USE_IDLE_NEVER,
+ MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT,
+ MN_IMAP_MAILBOX_USE_IDLE_ALWAYS
+} MNIMAPMailboxUseIDLE;
+#define MN_TYPE_IMAP_MAILBOX_USE_IDLE mn_imap_mailbox_use_idle_get_type()
+GType mn_imap_mailbox_use_idle_get_type (void);
+
+
/*
* Type checking and casting macros
*/
@@ -36,7 +51,11 @@ typedef struct _MNIMAPMailboxPrivate MNIMAPMailboxPrivate;
typedef struct _MNIMAPMailbox MNIMAPMailbox;
#endif
struct _MNIMAPMailbox {
- MNAuthenticatedMailbox __parent__;
+ MNPIMailbox __parent__;
+ /*< public >*/
+ char * mailbox;
+ char * runtime_mailbox;
+ MNIMAPMailboxUseIDLE use_idle_extension;
/*< private >*/
MNIMAPMailboxPrivate *_priv;
};
@@ -46,7 +65,7 @@ struct _MNIMAPMailbox {
*/
typedef struct _MNIMAPMailboxClass MNIMAPMailboxClass;
struct _MNIMAPMailboxClass {
- MNAuthenticatedMailboxClass __parent__;
+ MNPIMailboxClass __parent__;
};
@@ -54,6 +73,25 @@ struct _MNIMAPMailboxClass {
* Public methods
*/
GType mn_imap_mailbox_get_type (void);
+char * mn_imap_mailbox_build_name (const char * username,
+ const char * hostname,
+ const char * mailbox);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_IMAP_MAILBOX_PROP_MAILBOX(arg) "mailbox", __extension__ ({gchar *z = (arg); z;})
+#define MN_IMAP_MAILBOX_GET_PROP_MAILBOX(arg) "mailbox", __extension__ ({gchar **z = (arg); z;})
+#define MN_IMAP_MAILBOX_PROP_USE_IDLE_EXTENSION(arg) "use_idle_extension", __extension__ ({gint z = (arg); z;})
+#define MN_IMAP_MAILBOX_GET_PROP_USE_IDLE_EXTENSION(arg) "use_idle_extension", __extension__ ({gint *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_IMAP_MAILBOX_PROP_MAILBOX(arg) "mailbox",(gchar *)(arg)
+#define MN_IMAP_MAILBOX_GET_PROP_MAILBOX(arg) "mailbox",(gchar **)(arg)
+#define MN_IMAP_MAILBOX_PROP_USE_IDLE_EXTENSION(arg) "use_idle_extension",(gint )(arg)
+#define MN_IMAP_MAILBOX_GET_PROP_USE_IDLE_EXTENSION(arg) "use_idle_extension",(gint *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
#ifdef __cplusplus
}
diff --git a/src/mn-mail-icon-private.h b/src/mn-mail-icon-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_MAIL_ICON_PRIVATE_H__
#define __MN_MAIL_ICON_PRIVATE_H__
diff --git a/src/mn-mail-icon.c b/src/mn-mail-icon.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -26,8 +26,8 @@
#line 31 "mn-mail-icon.gob"
#include "config.h"
+#include <glib/gi18n.h>
#include <gdk/gdkkeysyms.h>
-#include <gnome.h>
#include "mn-stock.h"
#include "mn-util.h"
@@ -306,7 +306,7 @@ mn_mail_icon_init (MNMailIcon * self G_GNUC_UNUSED)
#line 307 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::init"
- self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailIconPrivate);
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAIL_ICON,MNMailIconPrivate);
#line 41 "mn-mail-icon.gob"
self->_priv->tooltips = mn_tooltips_new();
#line 313 "mn-mail-icon.c"
@@ -333,7 +333,7 @@ mn_mail_icon_init (MNMailIcon * self G_GNUC_UNUSED)
mn_menu_shell_append(shell, NULL, NULL);
properties_item = mn_menu_shell_append(shell, GTK_STOCK_PROPERTIES, NULL);
help_item = mn_menu_shell_append(shell, GTK_STOCK_HELP, NULL);
- about_item = mn_menu_shell_append(shell, GNOME_STOCK_ABOUT, NULL);
+ about_item = mn_menu_shell_append(shell, GTK_STOCK_ABOUT, NULL);
mn_menu_shell_append(shell, NULL, NULL);
remove_item = mn_menu_shell_append(shell, GTK_STOCK_REMOVE, _("R_emove From Notification Area"));
@@ -608,11 +608,6 @@ mn_mail_icon_show_help_h (GtkWidget * widget, GtkWidgetHelpType help_type, gpoin
#line 609 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::show_help_h"
-#line 128 "mn-mail-icon.gob"
- g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 128 "mn-mail-icon.gob"
- g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 616 "mn-mail-icon.c"
{
#line 132 "mn-mail-icon.gob"
@@ -624,24 +619,15 @@ mn_mail_icon_show_help_h (GtkWidget * widget, GtkWidgetHelpType help_type, gpoin
else
return FALSE;
}}
-#line 628 "mn-mail-icon.c"
+#line 623 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
#line 142 "mn-mail-icon.gob"
static gboolean
mn_mail_icon_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 634 "mn-mail-icon.c"
+#line 629 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::button_press_event_h"
-#line 142 "mn-mail-icon.gob"
- g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 142 "mn-mail-icon.gob"
- g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 142 "mn-mail-icon.gob"
- g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 142 "mn-mail-icon.gob"
- g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 645 "mn-mail-icon.c"
{
#line 146 "mn-mail-icon.gob"
@@ -657,24 +643,15 @@ mn_mail_icon_button_press_event_h (GtkWidget * widget, GdkEventButton * event, g
return FALSE; /* propagate event */
}}
-#line 661 "mn-mail-icon.c"
+#line 647 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
#line 160 "mn-mail-icon.gob"
static gboolean
mn_mail_icon_button_release_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 667 "mn-mail-icon.c"
+#line 653 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::button_release_event_h"
-#line 160 "mn-mail-icon.gob"
- g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 160 "mn-mail-icon.gob"
- g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 160 "mn-mail-icon.gob"
- g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 160 "mn-mail-icon.gob"
- g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 678 "mn-mail-icon.c"
{
#line 164 "mn-mail-icon.gob"
@@ -688,24 +665,17 @@ mn_mail_icon_button_release_event_h (GtkWidget * widget, GdkEventButton * event,
return FALSE; /* propagate event */
}}
-#line 692 "mn-mail-icon.c"
+#line 669 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
#line 176 "mn-mail-icon.gob"
static gboolean
mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_data)
-#line 698 "mn-mail-icon.c"
+#line 675 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::popup_menu_h"
-#line 176 "mn-mail-icon.gob"
- g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 176 "mn-mail-icon.gob"
- g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 176 "mn-mail-icon.gob"
- g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 707 "mn-mail-icon.c"
{
-#line 179 "mn-mail-icon.gob"
+#line 178 "mn-mail-icon.gob"
Self *self = user_data;
@@ -714,30 +684,17 @@ mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_data)
return TRUE; /* a menu was activated */
}}
-#line 718 "mn-mail-icon.c"
+#line 688 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
-#line 188 "mn-mail-icon.gob"
+#line 187 "mn-mail-icon.gob"
static void
mn_mail_icon_popup_menu_position_cb (GtkMenu * menu, int * x, int * y, gboolean * push_in, gpointer user_data)
-#line 724 "mn-mail-icon.c"
+#line 694 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::popup_menu_position_cb"
-#line 188 "mn-mail-icon.gob"
- g_return_if_fail (menu != NULL);
-#line 188 "mn-mail-icon.gob"
- g_return_if_fail (GTK_IS_MENU (menu));
-#line 188 "mn-mail-icon.gob"
- g_return_if_fail (x != NULL);
-#line 188 "mn-mail-icon.gob"
- g_return_if_fail (y != NULL);
-#line 188 "mn-mail-icon.gob"
- g_return_if_fail (push_in != NULL);
-#line 188 "mn-mail-icon.gob"
- g_return_if_fail (user_data != NULL);
-#line 739 "mn-mail-icon.c"
{
-#line 194 "mn-mail-icon.gob"
+#line 193 "mn-mail-icon.gob"
GtkWidget *widget = user_data;
@@ -758,38 +715,38 @@ mn_mail_icon_popup_menu_position_cb (GtkMenu * menu, int * x, int * y, gboolean
*push_in = TRUE;
}}
-#line 762 "mn-mail-icon.c"
+#line 719 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
-#line 215 "mn-mail-icon.gob"
+#line 214 "mn-mail-icon.gob"
void
mn_mail_icon_set_tip_widget (MNMailIcon * self, GtkWidget * tip_widget)
-#line 768 "mn-mail-icon.c"
+#line 725 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::set_tip_widget"
-#line 215 "mn-mail-icon.gob"
+#line 214 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 215 "mn-mail-icon.gob"
+#line 214 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 775 "mn-mail-icon.c"
+#line 732 "mn-mail-icon.c"
{
-#line 217 "mn-mail-icon.gob"
+#line 216 "mn-mail-icon.gob"
mn_tooltips_set_tip_widget(selfp->tooltips, selfp->event_box, tip_widget);
}}
-#line 781 "mn-mail-icon.c"
+#line 738 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
-#line 221 "mn-mail-icon.gob"
+#line 220 "mn-mail-icon.gob"
GtkWidget *
mn_mail_icon_new (void)
-#line 787 "mn-mail-icon.c"
+#line 744 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::new"
{
-#line 223 "mn-mail-icon.gob"
+#line 222 "mn-mail-icon.gob"
return GTK_WIDGET(GET_NEW_VARG("title", _("Mail Notification"), NULL));
}}
-#line 795 "mn-mail-icon.c"
+#line 752 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-mail-icon.gob b/src/mn-mail-icon.gob
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
@@ -30,8 +30,8 @@ requires 2.0.10
%{
#include "config.h"
+#include <glib/gi18n.h>
#include <gdk/gdkkeysyms.h>
-#include <gnome.h>
#include "mn-stock.h"
#include "mn-util.h"
%}
@@ -94,7 +94,7 @@ class MN:Mail:Icon from Egg:Tray:Icon
mn_menu_shell_append(shell, NULL, NULL);
properties_item = mn_menu_shell_append(shell, GTK_STOCK_PROPERTIES, NULL);
help_item = mn_menu_shell_append(shell, GTK_STOCK_HELP, NULL);
- about_item = mn_menu_shell_append(shell, GNOME_STOCK_ABOUT, NULL);
+ about_item = mn_menu_shell_append(shell, GTK_STOCK_ABOUT, NULL);
mn_menu_shell_append(shell, NULL, NULL);
remove_item = mn_menu_shell_append(shell, GTK_STOCK_REMOVE, _("R_emove From Notification Area"));
@@ -126,7 +126,7 @@ class MN:Mail:Icon from Egg:Tray:Icon
}
private gboolean
- show_help_h (Gtk:Widget *widget (check null type),
+ show_help_h (GtkWidget *widget,
GtkWidgetHelpType help_type,
gpointer user_data)
{
@@ -140,9 +140,9 @@ class MN:Mail:Icon from Egg:Tray:Icon
}
private gboolean
- button_press_event_h (Gtk:Widget *widget (check null type),
- GdkEventButton *event (check null),
- gpointer user_data (check null))
+ button_press_event_h (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
{
Self *self = user_data;
@@ -158,9 +158,9 @@ class MN:Mail:Icon from Egg:Tray:Icon
}
private gboolean
- button_release_event_h (Gtk:Widget *widget (check null type),
- GdkEventButton *event (check null),
- gpointer user_data (check null))
+ button_release_event_h (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
{
Self *self = user_data;
@@ -174,8 +174,7 @@ class MN:Mail:Icon from Egg:Tray:Icon
}
private gboolean
- popup_menu_h (Gtk:Widget *widget (check null type),
- gpointer user_data (check null))
+ popup_menu_h (GtkWidget *widget, gpointer user_data)
{
Self *self = user_data;
@@ -186,11 +185,11 @@ class MN:Mail:Icon from Egg:Tray:Icon
}
private void
- popup_menu_position_cb (Gtk:Menu *menu (check null type),
- int *x (check null),
- int *y (check null),
- gboolean *push_in (check null),
- gpointer user_data (check null))
+ popup_menu_position_cb (GtkMenu *menu,
+ int *x,
+ int *y,
+ gboolean *push_in,
+ gpointer user_data)
{
GtkWidget *widget = user_data;
diff --git a/src/mn-mail-icon.h b/src/mn-mail-icon.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-mail-summary-popup-private.h b/src/mn-mail-summary-popup-private.h
@@ -0,0 +1,38 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_MAIL_SUMMARY_POPUP_PRIVATE_H__
+#define __MN_MAIL_SUMMARY_POPUP_PRIVATE_H__
+
+#include "mn-mail-summary-popup.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-mail-summary-popup.gob"
+
+#include "mn-shell.h"
+
+#line 18 "mn-mail-summary-popup-private.h"
+struct _MNMailSummaryPopupPrivate {
+#line 41 "mn-mail-summary-popup.gob"
+ GtkWidget * image;
+#line 42 "mn-mail-summary-popup.gob"
+ GtkWidget * title;
+#line 43 "mn-mail-summary-popup.gob"
+ GtkWidget * message_view;
+#line 45 "mn-mail-summary-popup.gob"
+ GdkGravity gravity;
+#line 47 "mn-mail-summary-popup.gob"
+ unsigned int timeout_id;
+#line 30 "mn-mail-summary-popup-private.h"
+};
+gboolean mn_mail_summary_popup_button_press_event_h (MNMailSummaryPopup * self, GdkEventButton * button, GtkWidget * widget);
+GtkWidget * mn_mail_summary_popup_message_view_new_cb (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mail-summary-popup.c b/src/mn-mail-summary-popup.c
@@ -0,0 +1,746 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mail-summary-popup.h"
+
+#include "mn-mail-summary-popup-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 29 "mn-mail-summary-popup.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-util.h"
+#include "mn-conf.h"
+#include "mn-stock.h"
+#include "mn-message-view.h"
+
+#line 37 "mn-mail-summary-popup.c"
+/* self casting macros */
+#define SELF(x) MN_MAIL_SUMMARY_POPUP(x)
+#define SELF_CONST(x) MN_MAIL_SUMMARY_POPUP_CONST(x)
+#define IS_SELF(x) MN_IS_MAIL_SUMMARY_POPUP(x)
+#define TYPE_SELF MN_TYPE_MAIL_SUMMARY_POPUP
+#define SELF_CLASS(x) MN_MAIL_SUMMARY_POPUP_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAIL_SUMMARY_POPUP_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMailSummaryPopup Self;
+typedef MNMailSummaryPopupClass SelfClass;
+
+/* here are local prototypes */
+static void mn_mail_summary_popup_class_init (MNMailSummaryPopupClass * c) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_init (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void ___2_mn_mail_summary_popup_finalize (GObject * object) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_realize_set_decorations_h (MNMailSummaryPopup * self, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_realize_set_geometry_h (MNMailSummaryPopup * self, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_autoclose_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_geometry_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_fonts_aspect_source_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_fonts_title_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_fonts_contents_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_install_timeout (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static gboolean mn_mail_summary_popup_timeout_cb (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_geometry (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_title_font (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_contents_font (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_font (MNMailSummaryPopup * self, GtkWidget * widget, const char * conf_key) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static GtkWindowClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_realize_set_decorations_h mn_mail_summary_popup_realize_set_decorations_h
+#define self_realize_set_geometry_h mn_mail_summary_popup_realize_set_geometry_h
+#define self_notify_autoclose_cb mn_mail_summary_popup_notify_autoclose_cb
+#define self_notify_delay_cb mn_mail_summary_popup_notify_delay_cb
+#define self_notify_geometry_cb mn_mail_summary_popup_notify_geometry_cb
+#define self_notify_fonts_aspect_source_cb mn_mail_summary_popup_notify_fonts_aspect_source_cb
+#define self_notify_fonts_title_font_cb mn_mail_summary_popup_notify_fonts_title_font_cb
+#define self_notify_fonts_contents_font_cb mn_mail_summary_popup_notify_fonts_contents_font_cb
+#define self_install_timeout mn_mail_summary_popup_install_timeout
+#define self_timeout_cb mn_mail_summary_popup_timeout_cb
+#define self_set_geometry mn_mail_summary_popup_set_geometry
+#define self_set_title_font mn_mail_summary_popup_set_title_font
+#define self_set_contents_font mn_mail_summary_popup_set_contents_font
+#define self_set_font mn_mail_summary_popup_set_font
+#define self_set_messages mn_mail_summary_popup_set_messages
+#define self_reset_timeout mn_mail_summary_popup_reset_timeout
+#define self_new mn_mail_summary_popup_new
+#define self_button_press_event_h mn_mail_summary_popup_button_press_event_h
+#define self_message_view_new_cb mn_mail_summary_popup_message_view_new_cb
+GType
+mn_mail_summary_popup_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNMailSummaryPopupClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_mail_summary_popup_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNMailSummaryPopup),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_mail_summary_popup_init,
+ NULL
+ };
+
+ type = g_type_register_static (GTK_TYPE_WINDOW, "MNMailSummaryPopup", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMailSummaryPopup *)g_object_new(mn_mail_summary_popup_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMailSummaryPopup * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMailSummaryPopup *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNMailSummaryPopup *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNMailSummaryPopup *)g_object_new_valist (mn_mail_summary_popup_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::finalize"
+ MNMailSummaryPopup *self G_GNUC_UNUSED = MN_MAIL_SUMMARY_POPUP (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 116 "mn-mail-summary-popup.gob"
+ ___2_mn_mail_summary_popup_finalize(obj_self);
+#line 144 "mn-mail-summary-popup.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_mail_summary_popup_class_init (MNMailSummaryPopupClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+ g_type_class_add_private(c,sizeof(MNMailSummaryPopupPrivate));
+
+ parent_class = g_type_class_ref (GTK_TYPE_WINDOW);
+
+#line 116 "mn-mail-summary-popup.gob"
+ g_object_class->finalize = ___finalize;
+#line 160 "mn-mail-summary-popup.c"
+}
+#undef __GOB_FUNCTION__
+#line 49 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_init (MNMailSummaryPopup * self G_GNUC_UNUSED)
+#line 166 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::init"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAIL_SUMMARY_POPUP,MNMailSummaryPopupPrivate);
+#line 29 "mn-mail-summary-popup.gob"
+ self->_priv->gravity = -1;
+#line 172 "mn-mail-summary-popup.c"
+ {
+#line 50 "mn-mail-summary-popup.gob"
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+ MN_INTERFACE_FILE("mail-summary-popup.glade"),
+ "eventbox",
+ "mn_mail_summary_popup_",
+ "image", &selfp->image,
+ "mn-mail-summary-popup-title", &selfp->title,
+ "mn-message-view", &selfp->message_view,
+ NULL);
+
+ gtk_widget_set_name(GTK_WIDGET(self), "mn-mail-summary-popup");
+
+ /*
+ * The popup must:
+ *
+ * - be sticky
+ * - be kept above other windows
+ * - not be focusable
+ * - not be decorated
+ * - not appear in the pager
+ * - not appear in the taskbar
+ *
+ * An easy way to meet these requirements is to use a window of
+ * type GTK_WINDOW_POPUP, but unfortunately these are not hidden
+ * by xscreensaver
+ * (http://bugzilla.gnome.org/show_bug.cgi?id=154529).
+ *
+ * We therefore use a window of type GTK_WINDOW_TOPLEVEL along
+ * with appropriate properties (but a drawback is
+ * http://bugzilla.gnome.org/show_bug.cgi?id=154593).
+ */
+
+ gtk_window_set_title(GTK_WINDOW(self), "");
+ gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+ gtk_window_set_keep_above(GTK_WINDOW(self), TRUE);
+ gtk_window_set_decorated(GTK_WINDOW(self), FALSE);
+ gtk_window_set_skip_taskbar_hint(GTK_WINDOW(self), TRUE);
+ gtk_window_set_skip_pager_hint(GTK_WINDOW(self), TRUE);
+ gtk_window_set_accept_focus(GTK_WINDOW(self), FALSE);
+ gtk_window_set_focus_on_map(GTK_WINDOW(self), FALSE);
+ gtk_window_stick(GTK_WINDOW(self));
+
+ gtk_image_set_from_stock(GTK_IMAGE(selfp->image), MN_STOCK_MAIL_SUMMARY, -1);
+
+ self_set_title_font(self);
+ self_set_contents_font(self);
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+ self_install_timeout(self);
+
+ mn_conf_notifications_add(self,
+ MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, self_notify_autoclose_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_NAMESPACE, self_notify_delay_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_POSITION, self_notify_geometry_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE, self_notify_geometry_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, self_notify_fonts_aspect_source_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, self_notify_fonts_title_font_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, self_notify_fonts_contents_font_cb, self,
+ NULL);
+
+ g_object_connect(self,
+ "signal::realize", self_realize_set_decorations_h, NULL,
+ "signal::realize", self_realize_set_geometry_h, NULL,
+ NULL);
+
+#line 240 "mn-mail-summary-popup.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 116 "mn-mail-summary-popup.gob"
+static void
+___2_mn_mail_summary_popup_finalize (GObject * object G_GNUC_UNUSED)
+#line 250 "mn-mail-summary-popup.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::finalize"
+{
+#line 118 "mn-mail-summary-popup.gob"
+
+ Self *self = SELF(object);
+
+ if (selfp->timeout_id)
+ g_source_remove(selfp->timeout_id);
+
+ PARENT_HANDLER(object);
+ }}
+#line 266 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 127 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_realize_set_decorations_h (MNMailSummaryPopup * self, gpointer user_data)
+#line 273 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::realize_set_decorations_h"
+#line 127 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 127 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 280 "mn-mail-summary-popup.c"
+{
+#line 129 "mn-mail-summary-popup.gob"
+
+ /*
+ * gdk_window_set_decorations() needs the widget's GdkWindow, this
+ * is why we must call it after the widget is realized.
+ */
+ gdk_window_set_decorations(GTK_WIDGET(self)->window, GDK_DECOR_BORDER);
+ }}
+#line 290 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 137 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_realize_set_geometry_h (MNMailSummaryPopup * self, gpointer user_data)
+#line 296 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::realize_set_geometry_h"
+#line 137 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 137 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 303 "mn-mail-summary-popup.c"
+{
+#line 139 "mn-mail-summary-popup.gob"
+
+ /* one shot */
+ g_signal_handlers_disconnect_by_func(self, self_realize_set_geometry_h, NULL);
+ self_set_geometry(self);
+ }}
+#line 311 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 145 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_notify_autoclose_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 317 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_autoclose_cb"
+{
+#line 150 "mn-mail-summary-popup.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+ {
+ if (! selfp->timeout_id)
+ self_install_timeout(self);
+ }
+ else
+ mn_source_clear(&selfp->timeout_id);
+
+ GDK_THREADS_LEAVE();
+ }}
+#line 337 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 166 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 343 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_delay_cb"
+{
+#line 171 "mn-mail-summary-popup.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_reset_timeout(self);
+
+ GDK_THREADS_LEAVE();
+ }}
+#line 357 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 181 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_notify_geometry_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 363 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_geometry_cb"
+{
+#line 186 "mn-mail-summary-popup.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_geometry(self);
+
+ GDK_THREADS_LEAVE();
+ }}
+#line 377 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 196 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_notify_fonts_aspect_source_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 383 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_fonts_aspect_source_cb"
+{
+#line 201 "mn-mail-summary-popup.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_title_font(self);
+ self_set_contents_font(self);
+
+ GDK_THREADS_LEAVE();
+ }}
+#line 398 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 212 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_notify_fonts_title_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 404 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_fonts_title_font_cb"
+{
+#line 217 "mn-mail-summary-popup.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_title_font(self);
+
+ GDK_THREADS_LEAVE();
+ }}
+#line 418 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 227 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_notify_fonts_contents_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 424 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_fonts_contents_font_cb"
+{
+#line 232 "mn-mail-summary-popup.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_contents_font(self);
+
+ GDK_THREADS_LEAVE();
+ }}
+#line 438 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 242 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_install_timeout (MNMailSummaryPopup * self)
+#line 444 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::install_timeout"
+#line 242 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 242 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 451 "mn-mail-summary-popup.c"
+{
+#line 244 "mn-mail-summary-popup.gob"
+
+ g_return_if_fail(selfp->timeout_id == 0);
+
+ selfp->timeout_id = mn_timeout_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+ MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+ (GSourceFunc) self_timeout_cb,
+ self);
+ }}
+#line 462 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 253 "mn-mail-summary-popup.gob"
+static gboolean
+mn_mail_summary_popup_timeout_cb (MNMailSummaryPopup * self)
+#line 468 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::timeout_cb"
+#line 253 "mn-mail-summary-popup.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 253 "mn-mail-summary-popup.gob"
+ g_return_val_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self), (gboolean )0);
+#line 475 "mn-mail-summary-popup.c"
+{
+#line 255 "mn-mail-summary-popup.gob"
+
+ GDK_THREADS_ENTER();
+ gtk_widget_destroy(GTK_WIDGET(self));
+ GDK_THREADS_LEAVE();
+
+ return FALSE; /* remove timeout */
+ }}
+#line 485 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 263 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_set_geometry (MNMailSummaryPopup * self)
+#line 491 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_geometry"
+#line 263 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 263 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 498 "mn-mail-summary-popup.c"
+{
+#line 265 "mn-mail-summary-popup.gob"
+
+ MNPosition position;
+ int horizontal_offset;
+ int vertical_offset;
+ int popup_width;
+ int popup_height;
+ int screen_width;
+ int screen_height;
+ GdkGravity gravity_mapping[] = {
+ GDK_GRAVITY_NORTH_WEST,
+ GDK_GRAVITY_NORTH_EAST,
+ GDK_GRAVITY_SOUTH_WEST,
+ GDK_GRAVITY_SOUTH_EAST
+ };
+ GdkGravity gravity;
+ int x;
+ int y;
+ gboolean reshow = FALSE;
+
+ position = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+ horizontal_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET);
+ vertical_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET);
+
+ gtk_window_get_size(GTK_WINDOW(self), &popup_width, &popup_height);
+ screen_width = gdk_screen_width();
+ screen_height = gdk_screen_height();
+
+ g_return_if_fail(position >= 0 && position < G_N_ELEMENTS(gravity_mapping));
+ gravity = gravity_mapping[position];
+
+ x = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_SOUTH_WEST)
+ ? horizontal_offset
+ : screen_width - popup_width - horizontal_offset;
+ y = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_NORTH_EAST)
+ ? vertical_offset
+ : screen_height - popup_height - vertical_offset;
+
+ /*
+ * If the gravity changes, the gtk_window_move() call will misplace
+ * the window (probably a Metacity bug).
+ *
+ * A workaround is to reshow the window.
+ */
+ if (gravity != selfp->gravity)
+ {
+ if (selfp->gravity != -1)
+ reshow = TRUE;
+
+ selfp->gravity = gravity;
+ }
+
+ if (reshow)
+ {
+ gtk_widget_hide(GTK_WIDGET(self));
+
+ /*
+ * If we do not unrealize the window, it will appear in the
+ * task bar the next time we show it.
+ */
+ gtk_widget_unrealize(GTK_WIDGET(self));
+ }
+
+ gtk_window_set_gravity(GTK_WINDOW(self), gravity);
+ gtk_window_move(GTK_WINDOW(self), x, y);
+
+ if (reshow)
+ gtk_widget_show(GTK_WIDGET(self));
+ }}
+#line 569 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 334 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_set_title_font (MNMailSummaryPopup * self)
+#line 575 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_title_font"
+#line 334 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 334 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 582 "mn-mail-summary-popup.c"
+{
+#line 336 "mn-mail-summary-popup.gob"
+
+ self_set_font(self, selfp->title, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT);
+ }}
+#line 588 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 340 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_set_contents_font (MNMailSummaryPopup * self)
+#line 594 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_contents_font"
+#line 340 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 340 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 601 "mn-mail-summary-popup.c"
+{
+#line 342 "mn-mail-summary-popup.gob"
+
+ self_set_font(self, selfp->message_view, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT);
+ }}
+#line 607 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 346 "mn-mail-summary-popup.gob"
+static void
+mn_mail_summary_popup_set_font (MNMailSummaryPopup * self, GtkWidget * widget, const char * conf_key)
+#line 613 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_font"
+#line 346 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 346 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 346 "mn-mail-summary-popup.gob"
+ g_return_if_fail (widget != NULL);
+#line 346 "mn-mail-summary-popup.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 346 "mn-mail-summary-popup.gob"
+ g_return_if_fail (conf_key != NULL);
+#line 626 "mn-mail-summary-popup.c"
+{
+#line 350 "mn-mail-summary-popup.gob"
+
+ PangoFontDescription *font_desc = NULL;
+
+ if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
+ {
+ char *str;
+
+ str = eel_gconf_get_string(conf_key);
+ if (str)
+ {
+ font_desc = pango_font_description_from_string(str);
+ g_free(str);
+ }
+ }
+
+ gtk_widget_modify_font(widget, font_desc);
+ if (font_desc)
+ pango_font_description_free(font_desc);
+ }}
+#line 648 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 370 "mn-mail-summary-popup.gob"
+void
+mn_mail_summary_popup_set_messages (MNMailSummaryPopup * self, GSList * messages)
+#line 654 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_messages"
+#line 370 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 370 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 370 "mn-mail-summary-popup.gob"
+ g_return_if_fail (messages != NULL);
+#line 663 "mn-mail-summary-popup.c"
+{
+#line 372 "mn-mail-summary-popup.gob"
+
+ mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+ }}
+#line 669 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 376 "mn-mail-summary-popup.gob"
+void
+mn_mail_summary_popup_reset_timeout (MNMailSummaryPopup * self)
+#line 675 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::reset_timeout"
+#line 376 "mn-mail-summary-popup.gob"
+ g_return_if_fail (self != NULL);
+#line 376 "mn-mail-summary-popup.gob"
+ g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 682 "mn-mail-summary-popup.c"
+{
+#line 378 "mn-mail-summary-popup.gob"
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+ {
+ mn_source_clear(&selfp->timeout_id);
+ self_install_timeout(self);
+ }
+ }}
+#line 692 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 386 "mn-mail-summary-popup.gob"
+GtkWidget *
+mn_mail_summary_popup_new (void)
+#line 698 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::new"
+{
+#line 388 "mn-mail-summary-popup.gob"
+
+ return GTK_WIDGET(GET_NEW);
+ }}
+#line 706 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 394 "mn-mail-summary-popup.gob"
+gboolean
+mn_mail_summary_popup_button_press_event_h (MNMailSummaryPopup * self, GdkEventButton * button, GtkWidget * widget)
+#line 712 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::button_press_event_h"
+#line 394 "mn-mail-summary-popup.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 394 "mn-mail-summary-popup.gob"
+ g_return_val_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self), (gboolean )0);
+#line 719 "mn-mail-summary-popup.c"
+{
+#line 396 "mn-mail-summary-popup.gob"
+
+ gtk_widget_destroy(GTK_WIDGET(self));
+
+ return TRUE; /* do not propagate event */
+ }}
+#line 727 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 402 "mn-mail-summary-popup.gob"
+GtkWidget *
+mn_mail_summary_popup_message_view_new_cb (void)
+#line 733 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::message_view_new_cb"
+{
+#line 404 "mn-mail-summary-popup.gob"
+
+ GtkWidget *view;
+
+ view = mn_message_view_new(TRUE, FALSE);
+ gtk_widget_show(view);
+
+ return view;
+ }}
+#line 746 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-mail-summary-popup.gob b/src/mn-mail-summary-popup.gob
@@ -0,0 +1,412 @@
+/*
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+%}
+
+%privateheader{
+#include "mn-shell.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-util.h"
+#include "mn-conf.h"
+#include "mn-stock.h"
+#include "mn-message-view.h"
+%}
+
+class MN:Mail:Summary:Popup from Gtk:Window
+{
+ private GtkWidget *image;
+ private GtkWidget *title;
+ private GtkWidget *message_view;
+
+ private GdkGravity gravity = -1;
+
+ private unsigned int timeout_id;
+
+ init (self)
+ {
+ mn_container_create_interface(GTK_CONTAINER(self),
+ MN_INTERFACE_FILE("mail-summary-popup.glade"),
+ "eventbox",
+ "mn_mail_summary_popup_",
+ "image", &selfp->image,
+ "mn-mail-summary-popup-title", &selfp->title,
+ "mn-message-view", &selfp->message_view,
+ NULL);
+
+ gtk_widget_set_name(GTK_WIDGET(self), "mn-mail-summary-popup");
+
+ /*
+ * The popup must:
+ *
+ * - be sticky
+ * - be kept above other windows
+ * - not be focusable
+ * - not be decorated
+ * - not appear in the pager
+ * - not appear in the taskbar
+ *
+ * An easy way to meet these requirements is to use a window of
+ * type GTK_WINDOW_POPUP, but unfortunately these are not hidden
+ * by xscreensaver
+ * (http://bugzilla.gnome.org/show_bug.cgi?id=154529).
+ *
+ * We therefore use a window of type GTK_WINDOW_TOPLEVEL along
+ * with appropriate properties (but a drawback is
+ * http://bugzilla.gnome.org/show_bug.cgi?id=154593).
+ */
+
+ gtk_window_set_title(GTK_WINDOW(self), "");
+ gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+ gtk_window_set_keep_above(GTK_WINDOW(self), TRUE);
+ gtk_window_set_decorated(GTK_WINDOW(self), FALSE);
+ gtk_window_set_skip_taskbar_hint(GTK_WINDOW(self), TRUE);
+ gtk_window_set_skip_pager_hint(GTK_WINDOW(self), TRUE);
+ gtk_window_set_accept_focus(GTK_WINDOW(self), FALSE);
+ gtk_window_set_focus_on_map(GTK_WINDOW(self), FALSE);
+ gtk_window_stick(GTK_WINDOW(self));
+
+ gtk_image_set_from_stock(GTK_IMAGE(selfp->image), MN_STOCK_MAIL_SUMMARY, -1);
+
+ self_set_title_font(self);
+ self_set_contents_font(self);
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+ self_install_timeout(self);
+
+ mn_conf_notifications_add(self,
+ MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, self_notify_autoclose_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_NAMESPACE, self_notify_delay_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_POSITION, self_notify_geometry_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE, self_notify_geometry_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, self_notify_fonts_aspect_source_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, self_notify_fonts_title_font_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, self_notify_fonts_contents_font_cb, self,
+ NULL);
+
+ g_object_connect(self,
+ "signal::realize", self_realize_set_decorations_h, NULL,
+ "signal::realize", self_realize_set_geometry_h, NULL,
+ NULL);
+ }
+
+ override (G:Object) void
+ finalize (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ if (selfp->timeout_id)
+ g_source_remove(selfp->timeout_id);
+
+ PARENT_HANDLER(object);
+ }
+
+ private void
+ realize_set_decorations_h (self, gpointer user_data)
+ {
+ /*
+ * gdk_window_set_decorations() needs the widget's GdkWindow, this
+ * is why we must call it after the widget is realized.
+ */
+ gdk_window_set_decorations(GTK_WIDGET(self)->window, GDK_DECOR_BORDER);
+ }
+
+ private void
+ realize_set_geometry_h (self, gpointer user_data)
+ {
+ /* one shot */
+ g_signal_handlers_disconnect_by_func(self, self_realize_set_geometry_h, NULL);
+ self_set_geometry(self);
+ }
+
+ private void
+ notify_autoclose_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+ {
+ if (! selfp->timeout_id)
+ self_install_timeout(self);
+ }
+ else
+ mn_source_clear(&selfp->timeout_id);
+
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ notify_delay_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_reset_timeout(self);
+
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ notify_geometry_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_geometry(self);
+
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ notify_fonts_aspect_source_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_title_font(self);
+ self_set_contents_font(self);
+
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ notify_fonts_title_font_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_title_font(self);
+
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ notify_fonts_contents_font_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ self_set_contents_font(self);
+
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ install_timeout (self)
+ {
+ g_return_if_fail(selfp->timeout_id == 0);
+
+ selfp->timeout_id = mn_timeout_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+ MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+ (GSourceFunc) self_timeout_cb,
+ self);
+ }
+
+ private gboolean
+ timeout_cb (self)
+ {
+ GDK_THREADS_ENTER();
+ gtk_widget_destroy(GTK_WIDGET(self));
+ GDK_THREADS_LEAVE();
+
+ return FALSE; /* remove timeout */
+ }
+
+ private void
+ set_geometry (self)
+ {
+ MNPosition position;
+ int horizontal_offset;
+ int vertical_offset;
+ int popup_width;
+ int popup_height;
+ int screen_width;
+ int screen_height;
+ GdkGravity gravity_mapping[] = {
+ GDK_GRAVITY_NORTH_WEST,
+ GDK_GRAVITY_NORTH_EAST,
+ GDK_GRAVITY_SOUTH_WEST,
+ GDK_GRAVITY_SOUTH_EAST
+ };
+ GdkGravity gravity;
+ int x;
+ int y;
+ gboolean reshow = FALSE;
+
+ position = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+ horizontal_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET);
+ vertical_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET);
+
+ gtk_window_get_size(GTK_WINDOW(self), &popup_width, &popup_height);
+ screen_width = gdk_screen_width();
+ screen_height = gdk_screen_height();
+
+ g_return_if_fail(position >= 0 && position < G_N_ELEMENTS(gravity_mapping));
+ gravity = gravity_mapping[position];
+
+ x = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_SOUTH_WEST)
+ ? horizontal_offset
+ : screen_width - popup_width - horizontal_offset;
+ y = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_NORTH_EAST)
+ ? vertical_offset
+ : screen_height - popup_height - vertical_offset;
+
+ /*
+ * If the gravity changes, the gtk_window_move() call will misplace
+ * the window (probably a Metacity bug).
+ *
+ * A workaround is to reshow the window.
+ */
+ if (gravity != selfp->gravity)
+ {
+ if (selfp->gravity != -1)
+ reshow = TRUE;
+
+ selfp->gravity = gravity;
+ }
+
+ if (reshow)
+ {
+ gtk_widget_hide(GTK_WIDGET(self));
+
+ /*
+ * If we do not unrealize the window, it will appear in the
+ * task bar the next time we show it.
+ */
+ gtk_widget_unrealize(GTK_WIDGET(self));
+ }
+
+ gtk_window_set_gravity(GTK_WINDOW(self), gravity);
+ gtk_window_move(GTK_WINDOW(self), x, y);
+
+ if (reshow)
+ gtk_widget_show(GTK_WIDGET(self));
+ }
+
+ private void
+ set_title_font (self)
+ {
+ self_set_font(self, selfp->title, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT);
+ }
+
+ private void
+ set_contents_font (self)
+ {
+ self_set_font(self, selfp->message_view, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT);
+ }
+
+ private void
+ set_font (self,
+ Gtk:Widget *widget (check null type),
+ const char *conf_key (check null))
+ {
+ PangoFontDescription *font_desc = NULL;
+
+ if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
+ {
+ char *str;
+
+ str = eel_gconf_get_string(conf_key);
+ if (str)
+ {
+ font_desc = pango_font_description_from_string(str);
+ g_free(str);
+ }
+ }
+
+ gtk_widget_modify_font(widget, font_desc);
+ if (font_desc)
+ pango_font_description_free(font_desc);
+ }
+
+ public void
+ set_messages (self, GSList *messages (check null))
+ {
+ mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+ }
+
+ public void
+ reset_timeout (self)
+ {
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+ {
+ mn_source_clear(&selfp->timeout_id);
+ self_install_timeout(self);
+ }
+ }
+
+ public GtkWidget *
+ new (void)
+ {
+ return GTK_WIDGET(GET_NEW);
+ }
+
+ /* libglade callbacks */
+
+ protected gboolean
+ button_press_event_h (self, GdkEventButton *button, GtkWidget *widget)
+ {
+ gtk_widget_destroy(GTK_WIDGET(self));
+
+ return TRUE; /* do not propagate event */
+ }
+
+ protected GtkWidget *
+ message_view_new_cb (void)
+ {
+ GtkWidget *view;
+
+ view = mn_message_view_new(TRUE, FALSE);
+ gtk_widget_show(view);
+
+ return view;
+ }
+}
diff --git a/src/mn-mail-summary-popup.h b/src/mn-mail-summary-popup.h
@@ -0,0 +1,66 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+
+#ifndef __MN_MAIL_SUMMARY_POPUP_H__
+#define __MN_MAIL_SUMMARY_POPUP_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MAIL_SUMMARY_POPUP (mn_mail_summary_popup_get_type())
+#define MN_MAIL_SUMMARY_POPUP(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mail_summary_popup_get_type(), MNMailSummaryPopup)
+#define MN_MAIL_SUMMARY_POPUP_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mail_summary_popup_get_type(), MNMailSummaryPopup const)
+#define MN_MAIL_SUMMARY_POPUP_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_mail_summary_popup_get_type(), MNMailSummaryPopupClass)
+#define MN_IS_MAIL_SUMMARY_POPUP(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mail_summary_popup_get_type ())
+
+#define MN_MAIL_SUMMARY_POPUP_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mail_summary_popup_get_type(), MNMailSummaryPopupClass)
+
+/* Private structure type */
+typedef struct _MNMailSummaryPopupPrivate MNMailSummaryPopupPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAIL_SUMMARY_POPUP__
+#define __TYPEDEF_MN_MAIL_SUMMARY_POPUP__
+typedef struct _MNMailSummaryPopup MNMailSummaryPopup;
+#endif
+struct _MNMailSummaryPopup {
+ GtkWindow __parent__;
+ /*< private >*/
+ MNMailSummaryPopupPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMailSummaryPopupClass MNMailSummaryPopupClass;
+struct _MNMailSummaryPopupClass {
+ GtkWindowClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_mail_summary_popup_get_type (void);
+void mn_mail_summary_popup_set_messages (MNMailSummaryPopup * self,
+ GSList * messages);
+void mn_mail_summary_popup_reset_timeout (MNMailSummaryPopup * self);
+GtkWidget * mn_mail_summary_popup_new (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mailbox-private.h b/src/mn-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_MAILBOX_PRIVATE_H__
#define __MN_MAILBOX_PRIVATE_H__
@@ -10,46 +10,22 @@ extern "C" {
#endif /* __cplusplus */
-#line 28 "mn-mailbox.gob"
+#line 34 "mn-mailbox.gob"
-#include <libgnomevfs/gnome-vfs.h>
+typedef enum
+{
+ /* save to mailboxes.xml */
+ MN_MAILBOX_PARAM_PERMANENT = 1 << (G_PARAM_USER_SHIFT + 0),
- typedef enum
- {
- MN_MAILBOX_MONITOR_EVENT_CHANGED = 1 << GNOME_VFS_MONITOR_EVENT_CHANGED,
- MN_MAILBOX_MONITOR_EVENT_DELETED = 1 << GNOME_VFS_MONITOR_EVENT_DELETED,
- MN_MAILBOX_MONITOR_EVENT_STARTEXECUTING = 1 << GNOME_VFS_MONITOR_EVENT_STARTEXECUTING,
- MN_MAILBOX_MONITOR_EVENT_STOPEXECUTING = 1 << GNOME_VFS_MONITOR_EVENT_STOPEXECUTING,
- MN_MAILBOX_MONITOR_EVENT_CREATED = 1 << GNOME_VFS_MONITOR_EVENT_CREATED,
- MN_MAILBOX_MONITOR_EVENT_METADATA_CHANGED = 1 << GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED
- } MNMailboxMonitorEventType;
+ /* require a string property to be non-empty */
+ MN_MAILBOX_PARAM_REQUIRED = 1 << (G_PARAM_USER_SHIFT + 1),
+
+ /* ignore the case of a string property when checking if it has the default value */
+ MN_MAILBOX_PARAM_IGNORE_CASE = 1 << (G_PARAM_USER_SHIFT + 2)
+} MNMailboxParamFlags;
#line 28 "mn-mailbox-private.h"
-struct _MNMailboxPrivate {
-#line 141 "mn-mailbox.gob"
- char * name;
-#line 145 "mn-mailbox.gob"
- gboolean must_poll;
-#line 151 "mn-mailbox.gob"
- GSList * messages;
-#line 205 "mn-mailbox.gob"
- char * error;
-#line 225 "mn-mailbox.gob"
- GnomeVFSMonitorHandle * monitor_handle;
-#line 226 "mn-mailbox.gob"
- char * monitor_uri;
-#line 227 "mn-mailbox.gob"
- MNMailboxMonitorEventType monitor_events;
-#line 229 "mn-mailbox.gob"
- gboolean checking;
-#line 360 "mn-mailbox.gob"
- char * init_error;
-#line 48 "mn-mailbox-private.h"
-};
void mn_mailbox_set_error (MNMailbox * self, const char * format, ...);
-void mn_mailbox_set_init_error (MNMailbox * self, const char * format, ...);
-void mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType monitor_type, MNMailboxMonitorEventType events);
-void mn_mailbox_end_check (MNMailbox * self);
void mn_mailbox_notice (MNMailbox * self, const char * format, ...);
void mn_mailbox_warning (MNMailbox * self, const char * format, ...);
diff --git a/src/mn-mailbox-properties-dialog-private.h b/src/mn-mailbox-properties-dialog-private.h
@@ -0,0 +1,52 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_H__
+#define __MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_H__
+
+#include "mn-mailbox-properties-dialog.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNMailboxPropertiesDialogPrivate {
+#line 63 "mn-mailbox-properties-dialog.gob"
+ GtkWindow * dialog_parent;
+#line 66 "mn-mailbox-properties-dialog.gob"
+ MNMailbox * mailbox;
+#line 98 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * mailbox_type_label;
+#line 99 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * mailbox_type_combo;
+#line 100 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * mailbox_name_label;
+#line 101 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * mailbox_name_entry;
+#line 102 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * mailbox_name_default_button;
+#line 104 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * type_section_label;
+#line 105 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * properties_event_box;
+#line 107 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * apply_button;
+#line 108 "mn-mailbox-properties-dialog.gob"
+ GtkWidget * accept_button;
+#line 110 "mn-mailbox-properties-dialog.gob"
+ GtkListStore * store;
+#line 112 "mn-mailbox-properties-dialog.gob"
+ char * default_name;
+#line 113 "mn-mailbox-properties-dialog.gob"
+ gboolean custom_name;
+#line 42 "mn-mailbox-properties-dialog-private.h"
+};
+void mn_mailbox_properties_dialog_type_changed_h (MNMailboxPropertiesDialog * self, GtkComboBox * combobox);
+void mn_mailbox_properties_dialog_name_changed_h (MNMailboxPropertiesDialog * self, GtkEditable * editable);
+void mn_mailbox_properties_dialog_name_default_button_clicked_h (MNMailboxPropertiesDialog * self, GtkButton * button);
+void mn_mailbox_properties_dialog_entry_activate_h (MNMailboxPropertiesDialog * self, GtkEntry * entry);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mailbox-properties-dialog.c b/src/mn-mailbox-properties-dialog.c
@@ -1,27 +1,37 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mailbox-properties-dialog.h"
+
+#include "mn-mailbox-properties-dialog-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 26 "mn-mailbox-properties-dialog.gob"
#include "config.h"
#include <glib/gi18n.h>
-#include "mn-mailbox-properties-dialog.h"
#include "mn-mailbox-properties.h"
#include "mn-autodetect-mailbox-properties.h"
-#include "mn-system-mailbox-properties.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox-properties.h"
+#endif
#ifdef WITH_POP3
#include "mn-pop3-mailbox-properties.h"
#endif
@@ -31,439 +41,931 @@
#ifdef WITH_GMAIL
#include "mn-gmail-mailbox-properties.h"
#endif
-#include "mn-conf.h"
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox-properties.h"
+#endif
#include "mn-util.h"
-#include "mn-stock.h"
#include "mn-mailboxes.h"
-
-/*** types *******************************************************************/
-
-typedef struct
-{
- GtkWidget *mailbox_type_label;
- GtkWidget *mailbox_type_combo;
- GtkWidget *properties_event_box;
-
- MNURI *uri;
- GtkWidget *apply_button;
- GtkWidget *accept_button;
- GtkListStore *store;
-} Private;
+#include "mn-shell.h"
enum {
COLUMN_PROPERTIES,
- COLUMN_TEXT,
+ COLUMN_STOCK_ID,
+ COLUMN_LABEL,
N_COLUMNS
};
-
-/*** variables ***************************************************************/
static GType selected_type = 0;
-/*** functions ***************************************************************/
-
-static void mn_mailbox_properties_dialog_private_free (Private *private);
-
-static void mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog *dialog,
- GType properties_type);
-
-static void mn_mailbox_properties_dialog_select_properties (MNMailboxPropertiesDialog *dialog);
-static void mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog *dialog, MNMailboxProperties *properties);
-static MNMailboxProperties *mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog *dialog);
-static MNMailboxProperties *mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog *dialog, GType type);
-
-static void mn_mailbox_properties_dialog_set_uri (MNMailboxPropertiesDialog *dialog, MNURI *uri);
-static void mn_mailbox_properties_dialog_set_contents (MNMailboxPropertiesDialog *dialog);
-
-static void mn_mailbox_properties_dialog_update_sensitivity (MNMailboxPropertiesDialog *dialog);
+#line 61 "mn-mailbox-properties-dialog.c"
+/* self casting macros */
+#define SELF(x) MN_MAILBOX_PROPERTIES_DIALOG(x)
+#define SELF_CONST(x) MN_MAILBOX_PROPERTIES_DIALOG_CONST(x)
+#define IS_SELF(x) MN_IS_MAILBOX_PROPERTIES_DIALOG(x)
+#define TYPE_SELF MN_TYPE_MAILBOX_PROPERTIES_DIALOG
+#define SELF_CLASS(x) MN_MAILBOX_PROPERTIES_DIALOG_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAILBOX_PROPERTIES_DIALOG_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMailboxPropertiesDialog Self;
+typedef MNMailboxPropertiesDialogClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_mailbox_properties_dialog_init (MNMailboxPropertiesDialog * o) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_class_init (MNMailboxPropertiesDialogClass * c) G_GNUC_UNUSED;
+static GObject * ___3_mn_mailbox_properties_dialog_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog * self, GType type) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog * self, MNMailboxProperties * properties) G_GNUC_UNUSED;
+static MNMailboxProperties * mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog * self) G_GNUC_UNUSED;
+static MNMailboxProperties * mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog * self, const char * type) G_GNUC_UNUSED;
+static MNMailboxProperties * mn_mailbox_properties_dialog_get_properties_by_g_type (MNMailboxPropertiesDialog * self, GType type) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_update_complete (MNMailboxPropertiesDialog * self) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_update_default_name (MNMailboxPropertiesDialog * self) G_GNUC_UNUSED;
-/*** implementation **********************************************************/
+enum {
+ PROP_0,
+ PROP_DIALOG_PARENT,
+ PROP_MAILBOX
+};
-GtkWidget *
-mn_mailbox_properties_dialog_new (GtkWindow *parent, MNURI *uri)
+/* pointer to the class of our parent */
+static MNDialogClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_get_mailbox mn_mailbox_properties_dialog_get_mailbox
+#define self_set_mailbox mn_mailbox_properties_dialog_set_mailbox
+#define self_add_type mn_mailbox_properties_dialog_add_type
+#define self_set_active_properties mn_mailbox_properties_dialog_set_active_properties
+#define self_get_active_properties mn_mailbox_properties_dialog_get_active_properties
+#define self_get_properties_by_type mn_mailbox_properties_dialog_get_properties_by_type
+#define self_get_properties_by_g_type mn_mailbox_properties_dialog_get_properties_by_g_type
+#define self_get_current_mailbox mn_mailbox_properties_dialog_get_current_mailbox
+#define self_apply mn_mailbox_properties_dialog_apply
+#define self_update_complete mn_mailbox_properties_dialog_update_complete
+#define self_update_default_name mn_mailbox_properties_dialog_update_default_name
+#define self_new mn_mailbox_properties_dialog_new
+#define self_type_changed_h mn_mailbox_properties_dialog_type_changed_h
+#define self_name_changed_h mn_mailbox_properties_dialog_name_changed_h
+#define self_name_default_button_clicked_h mn_mailbox_properties_dialog_name_default_button_clicked_h
+#define self_entry_activate_h mn_mailbox_properties_dialog_entry_activate_h
+GType
+mn_mailbox_properties_dialog_get_type (void)
{
- MNMailboxPropertiesDialog *dialog;
- Private *private;
- GtkCellRenderer *renderer;
-
- private = g_new0(Private, 1);
- mn_create_interface(MN_INTERFACE_FILE("mailbox-properties.glade"),
- "dialog", &dialog,
- "mailbox_type_label", &private->mailbox_type_label,
- "mailbox_type_combo", &private->mailbox_type_combo,
- "properties_event_box", &private->properties_event_box,
- NULL);
-
- g_object_set_data_full(G_OBJECT(dialog),
- MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_KEY,
- private,
- (GDestroyNotify) mn_mailbox_properties_dialog_private_free);
-
- if (parent)
- gtk_window_set_transient_for(GTK_WINDOW(dialog), parent);
-
- /* finish the type combo box */
-
- private->store = gtk_list_store_new(N_COLUMNS,
- GTK_TYPE_WIDGET,
- G_TYPE_STRING);
-
- mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
- mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_SYSTEM_MAILBOX_PROPERTIES);
-#ifdef WITH_POP3
- mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_POP3_MAILBOX_PROPERTIES);
-#endif
-#ifdef WITH_IMAP
- mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_IMAP_MAILBOX_PROPERTIES);
-#endif
-#ifdef WITH_GMAIL
- mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_GMAIL_MAILBOX_PROPERTIES);
-#endif
-
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(private->mailbox_type_combo), renderer, TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(private->mailbox_type_combo), renderer,
- "markup", COLUMN_TEXT,
- NULL);
-
- gtk_combo_box_set_model(GTK_COMBO_BOX(private->mailbox_type_combo), GTK_TREE_MODEL(private->store));
-
- /* setup the dialog depending on the mode (edit or add) */
-
- gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
- if (uri)
- {
- private->apply_button = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_APPLY, GTK_RESPONSE_APPLY);
- gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
- private->accept_button = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
-
- mn_mailbox_properties_dialog_set_uri(dialog, uri);
- mn_mailbox_properties_dialog_set_contents(dialog);
- }
- else
- {
- MNMailboxProperties *properties;
-
- gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
- private->accept_button = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT);
-
- if (! selected_type)
- selected_type = MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES;
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNMailboxPropertiesDialogClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_mailbox_properties_dialog_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNMailboxPropertiesDialog),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_mailbox_properties_dialog_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_DIALOG, "MNMailboxPropertiesDialog", &info, (GTypeFlags)0);
+ }
- properties = mn_mailbox_properties_dialog_get_properties_by_type(dialog, selected_type);
- mn_mailbox_properties_dialog_set_active_properties(dialog, properties);
+ return type;
+}
- gtk_window_set_title(GTK_WINDOW(dialog), _("Add a Mailbox"));
- }
- gtk_widget_grab_default(private->accept_button);
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMailboxPropertiesDialog *)g_object_new(mn_mailbox_properties_dialog_get_type(), NULL))
- return GTK_WIDGET(dialog);
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMailboxPropertiesDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMailboxPropertiesDialog *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNMailboxPropertiesDialog *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNMailboxPropertiesDialog *)g_object_new_valist (mn_mailbox_properties_dialog_get_type (), first, ap);
+ va_end (ap);
+ return ret;
}
+
static void
-mn_mailbox_properties_dialog_private_free (Private *private)
+___dispose (GObject *obj_self)
{
- g_return_if_fail(private != NULL);
-
- if (private->uri)
- g_object_unref(private->uri);
- g_object_unref(private->store);
- g_free(private);
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::dispose"
+ MNMailboxPropertiesDialog *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES_DIALOG (obj_self);
+ if (G_OBJECT_CLASS (parent_class)->dispose) \
+ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
+#line 66 "mn-mailbox-properties-dialog.gob"
+ if(self->_priv->mailbox) { g_object_unref ((gpointer) self->_priv->mailbox); self->_priv->mailbox = NULL; }
+#line 167 "mn-mailbox-properties-dialog.c"
+#line 110 "mn-mailbox-properties-dialog.gob"
+ if(self->_priv->store) { g_object_unref ((gpointer) self->_priv->store); self->_priv->store = NULL; }
+#line 170 "mn-mailbox-properties-dialog.c"
}
+#undef __GOB_FUNCTION__
+
static void
-mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog *dialog,
- GType properties_type)
+___finalize(GObject *obj_self)
{
- Private *private;
- GtkSizeGroup *size_group;
- MNMailboxProperties *properties;
- char *label;
- GtkTreeIter iter;
-
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
- size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- properties = g_object_new(properties_type, "size-group", size_group, NULL);
- g_object_unref(size_group);
-
- mn_gtk_object_ref_and_sink(GTK_OBJECT(properties));
-
- gtk_list_store_append(private->store, &iter);
-
- label = mn_mailbox_properties_get_label(properties);
- gtk_list_store_set(private->store, &iter,
- COLUMN_PROPERTIES, properties,
- COLUMN_TEXT, label,
- -1);
- g_free(label);
-
- gtk_widget_show(GTK_WIDGET(properties));
- g_signal_connect_swapped(properties, "notify::complete", G_CALLBACK(mn_mailbox_properties_dialog_update_sensitivity), dialog);
-
- g_object_unref(properties); /* now it belongs to the store */
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::finalize"
+ MNMailboxPropertiesDialog *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES_DIALOG (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 112 "mn-mailbox-properties-dialog.gob"
+ if(self->_priv->default_name) { g_free ((gpointer) self->_priv->default_name); self->_priv->default_name = NULL; }
+#line 185 "mn-mailbox-properties-dialog.c"
}
+#undef __GOB_FUNCTION__
-static void
-mn_mailbox_properties_dialog_select_properties (MNMailboxPropertiesDialog *dialog)
+static void
+mn_mailbox_properties_dialog_init (MNMailboxPropertiesDialog * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_MAILBOX_PROPERTIES_DIALOG,MNMailboxPropertiesDialogPrivate);
+}
+#undef __GOB_FUNCTION__
+static void
+mn_mailbox_properties_dialog_class_init (MNMailboxPropertiesDialogClass * c G_GNUC_UNUSED)
{
- Private *private;
- MNMailboxProperties *properties;
- GtkSizeGroup *size_group;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+ g_type_class_add_private(c,sizeof(MNMailboxPropertiesDialogPrivate));
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+ parent_class = g_type_class_ref (MN_TYPE_DIALOG);
- properties = (MNMailboxProperties *) GTK_BIN(private->properties_event_box)->child;
- if (properties)
+#line 115 "mn-mailbox-properties-dialog.gob"
+ g_object_class->constructor = ___3_mn_mailbox_properties_dialog_constructor;
+#line 208 "mn-mailbox-properties-dialog.c"
+ g_object_class->dispose = ___dispose;
+ g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
{
- size_group = mn_mailbox_properties_get_size_group(properties);
- gtk_size_group_remove_widget(size_group, private->mailbox_type_label);
- gtk_container_remove(GTK_CONTAINER(private->properties_event_box), GTK_WIDGET(properties));
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_pointer
+ ("dialog_parent" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (g_object_class,
+ PROP_DIALOG_PARENT,
+ param_spec);
+ param_spec = g_param_spec_object
+ ("mailbox" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ MN_TYPE_MAILBOX /* object_type */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (g_object_class,
+ PROP_MAILBOX,
+ param_spec);
}
-
- properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
- gtk_container_add(GTK_CONTAINER(private->properties_event_box), GTK_WIDGET(properties));
- size_group = mn_mailbox_properties_get_size_group(properties);
- gtk_size_group_add_widget(size_group, private->mailbox_type_label);
}
+#undef __GOB_FUNCTION__
static void
-mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog *dialog,
- MNMailboxProperties *properties)
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::set_property"
{
- Private *private;
- gboolean valid;
- GtkTreeIter iter;
+ MNMailboxPropertiesDialog *self G_GNUC_UNUSED;
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES(properties));
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+ self = MN_MAILBOX_PROPERTIES_DIALOG (object);
- valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(private->store), &iter);
- while (valid)
- {
- MNMailboxProperties *these_properties;
+ switch (property_id) {
+ case PROP_DIALOG_PARENT:
+ {
+#line 64 "mn-mailbox-properties-dialog.gob"
+self->_priv->dialog_parent = g_value_get_pointer (VAL);
+#line 253 "mn-mailbox-properties-dialog.c"
+ }
+ break;
+ case PROP_MAILBOX:
+ {
+#line 72 "mn-mailbox-properties-dialog.gob"
- gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &these_properties, -1);
- g_object_unref(these_properties);
+ GObject *object;
- if (these_properties == properties)
+ if (selfp->mailbox)
{
- gtk_combo_box_set_active_iter(GTK_COMBO_BOX(private->mailbox_type_combo), &iter);
- break;
+ g_object_unref(selfp->mailbox);
+ selfp->mailbox = NULL;
}
- valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(private->store), &iter);
- }
-}
-
-static MNMailboxProperties *
-mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog *dialog)
-{
- Private *private;
- GtkTreeIter iter;
- MNMailboxProperties *properties = NULL;
+ object = g_value_dup_object(VAL);
+ if (object)
+ {
+ char *title;
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), 0);
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+ selfp->mailbox = MN_MAILBOX(object);
- if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(private->mailbox_type_combo), &iter))
- {
- gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &properties, -1);
- g_object_unref(properties);
- }
-
- return properties;
+ title = g_strdup_printf(_("%s Properties"), selfp->mailbox->runtime_name);
+ gtk_window_set_title(GTK_WINDOW(self), title);
+ g_free(title);
+ }
+
+#line 280 "mn-mailbox-properties-dialog.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
}
+#undef __GOB_FUNCTION__
-static MNMailboxProperties *
-mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog *dialog,
- GType type)
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_property"
{
- Private *private;
- gboolean valid;
- GtkTreeIter iter;
-
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), NULL);
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
- valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(private->store), &iter);
- while (valid)
- {
- MNMailboxProperties *properties;
+ MNMailboxPropertiesDialog *self G_GNUC_UNUSED;
+
+ self = MN_MAILBOX_PROPERTIES_DIALOG (object);
+
+ switch (property_id) {
+ case PROP_DIALOG_PARENT:
+ {
+#line 64 "mn-mailbox-properties-dialog.gob"
+g_value_set_pointer (VAL, self->_priv->dialog_parent);
+#line 311 "mn-mailbox-properties-dialog.c"
+ }
+ break;
+ case PROP_MAILBOX:
+ {
+#line 94 "mn-mailbox-properties-dialog.gob"
+
+ g_value_set_object(VAL, selfp->mailbox);
+
+#line 320 "mn-mailbox-properties-dialog.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
- gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &properties, -1);
- g_object_unref(properties);
- if (G_TYPE_CHECK_INSTANCE_TYPE(properties, type))
- return properties;
- valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(private->store), &iter);
- }
+#line 94 "mn-mailbox-properties-dialog.gob"
+MNMailbox *
+mn_mailbox_properties_dialog_get_mailbox (MNMailboxPropertiesDialog * self)
+#line 340 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_mailbox"
+{
+#line 67 "mn-mailbox-properties-dialog.gob"
+ MNMailbox* val; g_object_get (G_OBJECT (self), "mailbox", &val, NULL); return val;
+}}
+#line 347 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 72 "mn-mailbox-properties-dialog.gob"
+void
+mn_mailbox_properties_dialog_set_mailbox (MNMailboxPropertiesDialog * self, MNMailbox * val)
+#line 353 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::set_mailbox"
+{
+#line 67 "mn-mailbox-properties-dialog.gob"
+ g_object_set (G_OBJECT (self), "mailbox", val, NULL);
+}}
+#line 360 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 115 "mn-mailbox-properties-dialog.gob"
+static GObject *
+___3_mn_mailbox_properties_dialog_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 366 "mn-mailbox-properties-dialog.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+ ((G_OBJECT_CLASS(parent_class)->constructor)? \
+ (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+ ((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::constructor"
+{
+#line 117 "mn-mailbox-properties-dialog.gob"
+
+ GObject *object;
+ Self *self;
+ GtkCellRenderer *renderer;
+ MNMailboxProperties *properties;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+ MN_INTERFACE_FILE("mailbox-properties-dialog.glade"),
+ "vbox",
+ "mn_mailbox_properties_dialog_",
+ "mailbox_type_label", &selfp->mailbox_type_label,
+ "mailbox_type_combo", &selfp->mailbox_type_combo,
+ "mailbox_name_label", &selfp->mailbox_name_label,
+ "mailbox_name_entry", &selfp->mailbox_name_entry,
+ "mailbox_name_default_button", &selfp->mailbox_name_default_button,
+ "type_section_label", &selfp->type_section_label,
+ "properties_event_box", &selfp->properties_event_box,
+ NULL);
+
+ gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+
+ if (selfp->dialog_parent)
+ gtk_window_set_transient_for(GTK_WINDOW(self), selfp->dialog_parent);
+
+ /* finish the type combo box */
+
+ selfp->store = gtk_list_store_new(N_COLUMNS,
+ GTK_TYPE_WIDGET,
+ G_TYPE_STRING,
+ G_TYPE_STRING);
- return NULL;
-}
+ self_add_type(self, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ self_add_type(self, MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_POP3
+ self_add_type(self, MN_TYPE_POP3_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_IMAP
+ self_add_type(self, MN_TYPE_IMAP_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_GMAIL
+ self_add_type(self, MN_TYPE_GMAIL_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_EVOLUTION
+ self_add_type(self, MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES);
+#endif
-static void
-mn_mailbox_properties_dialog_set_uri (MNMailboxPropertiesDialog *dialog,
- MNURI *uri)
+ renderer = gtk_cell_renderer_pixbuf_new();
+ g_object_set(renderer, "stock-size", GTK_ICON_SIZE_MENU, NULL);
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, FALSE);;
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+ "stock-id", COLUMN_STOCK_ID,
+ NULL);
+
+ renderer = gtk_cell_renderer_text_new();
+ g_object_set(renderer, "xpad", 6, NULL);
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, TRUE);
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+ "markup", COLUMN_LABEL,
+ NULL);
+
+ gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->mailbox_type_combo), GTK_TREE_MODEL(selfp->store));
+
+ /* setup the dialog depending on the mode (edit or add) */
+
+ gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
+ if (selfp->mailbox)
+ {
+ selfp->apply_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_APPLY, GTK_RESPONSE_APPLY);
+ gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_OK, GTK_RESPONSE_OK);
+
+ properties = self_get_properties_by_type(self, MN_MAILBOX_GET_CLASS(selfp->mailbox)->type);
+ }
+ else
+ {
+ gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT);
+
+ if (! selected_type)
+ selected_type = MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES;
+
+ properties = self_get_properties_by_g_type(self, selected_type);
+
+ gtk_window_set_title(GTK_WINDOW(self), _("Add a Mailbox"));
+ }
+
+ self_set_active_properties(self, properties);
+
+ if (selfp->mailbox)
+ {
+ mn_mailbox_properties_set_mailbox(properties, selfp->mailbox);
+ if (selfp->mailbox->name)
+ gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), selfp->mailbox->name);
+ }
+
+ g_object_unref(properties);
+
+ gtk_widget_grab_default(selfp->accept_button);
+
+ return object;
+ }}
+#line 481 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 224 "mn-mailbox-properties-dialog.gob"
+static void
+mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog * self, GType type)
+#line 488 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::add_type"
+#line 224 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 224 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 224 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (type != 0);
+#line 497 "mn-mailbox-properties-dialog.c"
+{
+#line 226 "mn-mailbox-properties-dialog.gob"
+
+ MNMailboxProperties *properties;
+ MNMailboxPropertiesClass *p_class;
+ GtkTreeIter iter;
+ GSList *l;
+
+ properties = g_object_new(type, NULL);
+ mn_gtk_object_ref_and_sink(GTK_OBJECT(properties));
+
+ p_class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+ gtk_list_store_append(selfp->store, &iter);
+ gtk_list_store_set(selfp->store, &iter,
+ COLUMN_PROPERTIES, properties,
+ COLUMN_STOCK_ID, p_class->stock_id,
+ COLUMN_LABEL, p_class->combo_label,
+ -1);
+
+ gtk_widget_show(GTK_WIDGET(properties));
+
+ g_object_connect(properties,
+ "swapped-signal::notify::complete", self_update_complete, self,
+ "swapped-signal::notify::default-name", self_update_default_name, self,
+ NULL);
+
+ MN_LIST_FOREACH(l, properties->entries)
+ g_signal_connect_swapped(l->data, "activate", G_CALLBACK(self_entry_activate_h), self);
+
+ g_object_unref(properties); /* now it belongs to the store */
+ }}
+#line 530 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 257 "mn-mailbox-properties-dialog.gob"
+static void
+mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog * self, MNMailboxProperties * properties)
+#line 536 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::set_active_properties"
+#line 257 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 257 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 257 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (properties != NULL);
+#line 257 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (properties));
+#line 547 "mn-mailbox-properties-dialog.c"
+{
+#line 260 "mn-mailbox-properties-dialog.gob"
+
+ gboolean valid;
+ GtkTreeIter iter;
+
+ valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+ while (valid)
+ {
+ MNMailboxProperties *these_properties;
+
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &these_properties, -1);
+ g_object_unref(these_properties);
+
+ if (these_properties == properties)
+ {
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter);
+ break;
+ }
+
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+ }
+ }}
+#line 571 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 282 "mn-mailbox-properties-dialog.gob"
+static MNMailboxProperties *
+mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog * self)
+#line 577 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_active_properties"
+#line 282 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (self != NULL, (MNMailboxProperties * )0);
+#line 282 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailboxProperties * )0);
+#line 584 "mn-mailbox-properties-dialog.c"
{
- Private *private;
- char *title;
+#line 284 "mn-mailbox-properties-dialog.gob"
+
+ GtkTreeIter iter;
+ MNMailboxProperties *properties = NULL;
+
+ if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter))
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+ return properties;
+ }}
+#line 596 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 294 "mn-mailbox-properties-dialog.gob"
+static MNMailboxProperties *
+mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog * self, const char * type)
+#line 602 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_properties_by_type"
+#line 294 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (self != NULL, (MNMailboxProperties * )0);
+#line 294 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailboxProperties * )0);
+#line 294 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (type != NULL, (MNMailboxProperties * )0);
+#line 611 "mn-mailbox-properties-dialog.c"
+{
+#line 296 "mn-mailbox-properties-dialog.gob"
+
+ gboolean valid;
+ GtkTreeIter iter;
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
- g_return_if_fail(MN_IS_URI(uri));
+ valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+ while (valid)
+ {
+ MNMailboxProperties *properties;
+ MNMailboxPropertiesClass *class;
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+ class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
- if (private->uri)
- g_object_unref(private->uri);
- private->uri = g_object_ref(uri);
+ if (class->type && ! strcmp(class->type, type))
+ return properties;
- title = g_strdup_printf(_("%s Properties"), uri->human_readable);
- gtk_window_set_title(GTK_WINDOW(dialog), title);
- g_free(title);
-}
+ g_object_unref(properties);
-static void
-mn_mailbox_properties_dialog_set_contents (MNMailboxPropertiesDialog *dialog)
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+ }
+
+ return NULL;
+ }}
+#line 638 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 321 "mn-mailbox-properties-dialog.gob"
+static MNMailboxProperties *
+mn_mailbox_properties_dialog_get_properties_by_g_type (MNMailboxPropertiesDialog * self, GType type)
+#line 644 "mn-mailbox-properties-dialog.c"
{
- Private *private;
- gboolean valid;
- GtkTreeIter iter;
- MNMailboxProperties *properties;
- gboolean found = FALSE;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_properties_by_g_type"
+#line 321 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (self != NULL, (MNMailboxProperties * )0);
+#line 321 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailboxProperties * )0);
+#line 321 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (type != 0, (MNMailboxProperties * )0);
+#line 653 "mn-mailbox-properties-dialog.c"
+{
+#line 323 "mn-mailbox-properties-dialog.gob"
+
+ gboolean valid;
+ GtkTreeIter iter;
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
+ valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+ while (valid)
+ {
+ MNMailboxProperties *properties;
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
- g_return_if_fail(private->uri != NULL);
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
- valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(private->store), &iter);
- while (valid)
- {
- gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &properties, -1);
- g_object_unref(properties);
+ if (G_TYPE_CHECK_INSTANCE_TYPE(properties, type))
+ return properties;
- if (! MN_IS_AUTODETECT_MAILBOX_PROPERTIES(properties)
- && mn_mailbox_properties_set_uri(properties, private->uri))
- {
- found = TRUE;
- break;
- }
+ g_object_unref(properties);
- valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(private->store), &iter);
- }
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+ }
- if (! found)
- {
- properties = mn_mailbox_properties_dialog_get_properties_by_type(dialog, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
- mn_mailbox_properties_set_uri(properties, private->uri);
- }
- mn_mailbox_properties_dialog_set_active_properties(dialog, properties);
-}
+ return NULL;
+ }}
+#line 677 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
-MNURI *
-mn_mailbox_properties_dialog_get_uri (MNMailboxPropertiesDialog *dialog)
+#line 345 "mn-mailbox-properties-dialog.gob"
+MNMailbox *
+mn_mailbox_properties_dialog_get_current_mailbox (MNMailboxPropertiesDialog * self)
+#line 683 "mn-mailbox-properties-dialog.c"
{
- Private *private;
-
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), NULL);
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_current_mailbox"
+#line 345 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (self != NULL, (MNMailbox * )0);
+#line 345 "mn-mailbox-properties-dialog.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailbox * )0);
+#line 690 "mn-mailbox-properties-dialog.c"
+{
+#line 347 "mn-mailbox-properties-dialog.gob"
+
+ MNMailboxProperties *properties;
+ MNMailbox *mailbox;
+
+ properties = self_get_active_properties(self);
+ mailbox = mn_mailbox_properties_get_mailbox(properties);
+ g_object_unref(properties);
+
+ if (selfp->custom_name)
+ g_object_set(G_OBJECT(mailbox), "name", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry)), NULL);
+
+ return mailbox;
+ }}
+#line 706 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 361 "mn-mailbox-properties-dialog.gob"
+void
+mn_mailbox_properties_dialog_apply (MNMailboxPropertiesDialog * self)
+#line 712 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::apply"
+#line 361 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 361 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 719 "mn-mailbox-properties-dialog.c"
+{
+#line 363 "mn-mailbox-properties-dialog.gob"
+
+ MNMailbox *new_mailbox;
- return private->uri;
-}
+ new_mailbox = self_get_current_mailbox(self);
+ g_return_if_fail(MN_IS_MAILBOX(new_mailbox));
-MNURI *
-mn_mailbox_properties_dialog_get_current_uri (MNMailboxPropertiesDialog *dialog)
-{
- Private *private;
- MNMailboxProperties *properties;
+ mn_mailbox_seal(new_mailbox);
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), NULL);
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+ mn_mailboxes_queue_remove(mn_shell->mailboxes, selfp->mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, new_mailbox);
- properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
- return mn_mailbox_properties_get_uri(properties);
-}
+ self_set_mailbox(self, new_mailbox);
+ g_object_unref(new_mailbox);
+ }}
+#line 736 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
-void
-mn_mailbox_properties_dialog_apply (MNMailboxPropertiesDialog *dialog)
+#line 378 "mn-mailbox-properties-dialog.gob"
+static void
+mn_mailbox_properties_dialog_update_complete (MNMailboxPropertiesDialog * self)
+#line 742 "mn-mailbox-properties-dialog.c"
{
- Private *private;
- MNURI *new_uri;
-
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::update_complete"
+#line 378 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 378 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 749 "mn-mailbox-properties-dialog.c"
+{
+#line 380 "mn-mailbox-properties-dialog.gob"
+
+ MNMailboxProperties *properties;
+
+ properties = self_get_active_properties(self);
+ if (properties)
+ {
+ gboolean complete;
+
+ g_object_get(G_OBJECT(properties), "complete", &complete, NULL);
+ g_object_unref(properties);
+
+ gtk_widget_set_sensitive(selfp->mailbox_name_entry, complete);
+ gtk_widget_set_sensitive(selfp->mailbox_name_default_button, complete && selfp->custom_name);
+ if (selfp->apply_button)
+ gtk_widget_set_sensitive(selfp->apply_button, complete);
+ gtk_widget_set_sensitive(selfp->accept_button, complete);
+ }
+ }}
+#line 770 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 399 "mn-mailbox-properties-dialog.gob"
+static void
+mn_mailbox_properties_dialog_update_default_name (MNMailboxPropertiesDialog * self)
+#line 776 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::update_default_name"
+#line 399 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 399 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 783 "mn-mailbox-properties-dialog.c"
+{
+#line 401 "mn-mailbox-properties-dialog.gob"
+
+ MNMailboxProperties *properties;
- new_uri = mn_mailbox_properties_dialog_get_current_uri(dialog);
- g_return_if_fail(MN_IS_URI(new_uri));
+ properties = self_get_active_properties(self);
+ if (properties)
+ {
+ gboolean complete;
+ const char *default_name;
- if (strcmp(new_uri->text, private->uri->text))
- {
- GSList *gconf_mailboxes;
- GSList *elem;
+ g_free(selfp->default_name);
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
+ g_object_get(G_OBJECT(properties),
+ "complete", &complete,
+ "default-name", &selfp->default_name,
+ NULL);
+ g_object_unref(properties);
- elem = mn_mailboxes_conf_find_uri(gconf_mailboxes, private->uri);
- if (elem)
- {
- g_free(elem->data);
- elem->data = g_strdup(new_uri->text);
- }
-
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
+ default_name = complete ? selfp->default_name : NULL;
- mn_mailbox_properties_dialog_set_uri(dialog, new_uri);
- }
- g_object_unref(new_uri);
-}
-
-static void
-mn_mailbox_properties_dialog_update_sensitivity (MNMailboxPropertiesDialog *dialog)
+ gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), default_name ? default_name : "");
+ gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name = FALSE);
+ }
+ }}
+#line 809 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 425 "mn-mailbox-properties-dialog.gob"
+GtkWidget *
+mn_mailbox_properties_dialog_new (GtkWindow * parent, MNMailbox * mailbox)
+#line 815 "mn-mailbox-properties-dialog.c"
{
- Private *private;
- MNMailboxProperties *properties;
-
- g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
- properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
- if (properties)
- {
- gboolean complete;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::new"
+{
+#line 427 "mn-mailbox-properties-dialog.gob"
+
+ return GTK_WIDGET(GET_NEW_VARG(MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(parent),
+ MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(mailbox),
+ NULL));
+ }}
+#line 825 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 435 "mn-mailbox-properties-dialog.gob"
+void
+mn_mailbox_properties_dialog_type_changed_h (MNMailboxPropertiesDialog * self, GtkComboBox * combobox)
+#line 831 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::type_changed_h"
+#line 435 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 435 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 838 "mn-mailbox-properties-dialog.c"
+{
+#line 437 "mn-mailbox-properties-dialog.gob"
+
+ MNMailboxProperties *properties;
+ MNMailboxPropertiesClass *class;
+ char *markup;
+
+ properties = (MNMailboxProperties *) GTK_BIN(selfp->properties_event_box)->child;
+ if (properties)
+ {
+ gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_type_label);
+ gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_name_label);
+ gtk_size_group_remove_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+ gtk_container_remove(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+ }
+
+ properties = self_get_active_properties(self);
+ gtk_container_add(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+ gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_type_label);
+ gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_name_label);
+ gtk_size_group_add_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+
+ class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>", class->section_label ? class->section_label : class->combo_label);
+ gtk_label_set_markup(GTK_LABEL(selfp->type_section_label), markup);
+ g_free(markup);
- g_object_get(G_OBJECT(properties), "complete", &complete, NULL);
+ if (! selfp->mailbox) /* mode is add */
+ selected_type = G_TYPE_FROM_INSTANCE(properties);
- if (private->apply_button)
- gtk_widget_set_sensitive(private->apply_button, complete);
- gtk_widget_set_sensitive(private->accept_button, complete);
- }
-}
+ self_update_complete(self);
+ self_update_default_name(self);
-/* libglade callbacks */
+ g_object_unref(properties);
+ }}
+#line 875 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
-void
-mn_mailbox_properties_dialog_mailbox_type_changed_h (gpointer user_data,
- GtkComboBox *combobox)
+#line 472 "mn-mailbox-properties-dialog.gob"
+void
+mn_mailbox_properties_dialog_name_changed_h (MNMailboxPropertiesDialog * self, GtkEditable * editable)
+#line 881 "mn-mailbox-properties-dialog.c"
{
- MNMailboxPropertiesDialog *dialog = user_data;
- Private *private;
-
- private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
- mn_mailbox_properties_dialog_select_properties(dialog);
- if (! private->uri) /* mode is add */
- {
- MNMailboxProperties *properties;
-
- properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
- selected_type = G_TYPE_FROM_INSTANCE(properties);
- }
-
- mn_mailbox_properties_dialog_update_sensitivity(dialog);
-}
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::name_changed_h"
+#line 472 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 472 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 888 "mn-mailbox-properties-dialog.c"
+{
+#line 474 "mn-mailbox-properties-dialog.gob"
+
+ const char *name;
+
+ name = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry));
+ selfp->custom_name = mn_utf8_strcmp(name, selfp->default_name ? selfp->default_name : "") != 0;
+
+ gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name);
+ }}
+#line 899 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 483 "mn-mailbox-properties-dialog.gob"
+void
+mn_mailbox_properties_dialog_name_default_button_clicked_h (MNMailboxPropertiesDialog * self, GtkButton * button)
+#line 905 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::name_default_button_clicked_h"
+#line 483 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 483 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 912 "mn-mailbox-properties-dialog.c"
+{
+#line 485 "mn-mailbox-properties-dialog.gob"
+
+ self_update_default_name(self);
+ }}
+#line 918 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 489 "mn-mailbox-properties-dialog.gob"
+void
+mn_mailbox_properties_dialog_entry_activate_h (MNMailboxPropertiesDialog * self, GtkEntry * entry)
+#line 924 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::entry_activate_h"
+#line 489 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 489 "mn-mailbox-properties-dialog.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 931 "mn-mailbox-properties-dialog.c"
+{
+#line 491 "mn-mailbox-properties-dialog.gob"
+
+ if (GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(self)->default_widget))
+ gtk_window_activate_default(GTK_WINDOW(self));
+ else
+ {
+ MNMailboxProperties *properties;
+ GtkWidget *next = GTK_WIDGET(entry);
+
+ properties = self_get_active_properties(self);
+ g_return_if_fail(properties != NULL);
+
+ do
+ {
+ GSList *elem;
+
+ if (next == selfp->mailbox_name_entry)
+ elem = properties->entries;
+ else
+ {
+ elem = g_slist_find(properties->entries, next);
+ g_return_if_fail(elem != NULL);
+
+ elem = elem->next;
+ }
+
+ next = elem ? elem->data : selfp->mailbox_name_entry;
+ if (next == GTK_WIDGET(entry))
+ next = NULL;
+ }
+ while (next && ! (GTK_WIDGET_MAPPED(next)
+ && GTK_WIDGET_VISIBLE(next)
+ && GTK_WIDGET_SENSITIVE(next)));
+
+ if (next)
+ gtk_widget_grab_focus(next);
+ }
+ }}
+#line 971 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox-properties-dialog.gob b/src/mn-mailbox-properties-dialog.gob
@@ -0,0 +1,528 @@
+/*
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-dialog.h"
+#include "mn-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-properties.h"
+#include "mn-autodetect-mailbox-properties.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox-properties.h"
+#endif
+#ifdef WITH_POP3
+#include "mn-pop3-mailbox-properties.h"
+#endif
+#ifdef WITH_IMAP
+#include "mn-imap-mailbox-properties.h"
+#endif
+#ifdef WITH_GMAIL
+#include "mn-gmail-mailbox-properties.h"
+#endif
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox-properties.h"
+#endif
+#include "mn-util.h"
+#include "mn-mailboxes.h"
+#include "mn-shell.h"
+
+enum {
+ COLUMN_PROPERTIES,
+ COLUMN_STOCK_ID,
+ COLUMN_LABEL,
+ N_COLUMNS
+};
+
+static GType selected_type = 0;
+%}
+
+class MN:Mailbox:Properties:Dialog from MN:Dialog
+{
+ /* "parent" is a GtkWidget property, do not conflict with it */
+ private GtkWindow *dialog_parent;
+ property POINTER dialog_parent (link, flags = CONSTRUCT_ONLY, type = GtkWindow *);
+
+ private MNMailbox *mailbox unrefwith g_object_unref;
+ property OBJECT mailbox (flags = CONSTRUCT,
+ object_type = MN:Mailbox,
+ type = MNMailbox *,
+ export)
+ set
+ {
+ GObject *object;
+
+ if (selfp->mailbox)
+ {
+ g_object_unref(selfp->mailbox);
+ selfp->mailbox = NULL;
+ }
+
+ object = g_value_dup_object(VAL);
+ if (object)
+ {
+ char *title;
+
+ selfp->mailbox = MN_MAILBOX(object);
+
+ title = g_strdup_printf(_("%s Properties"), selfp->mailbox->runtime_name);
+ gtk_window_set_title(GTK_WINDOW(self), title);
+ g_free(title);
+ }
+ }
+ get
+ {
+ g_value_set_object(VAL, selfp->mailbox);
+ };
+
+ private GtkWidget *mailbox_type_label;
+ private GtkWidget *mailbox_type_combo;
+ private GtkWidget *mailbox_name_label;
+ private GtkWidget *mailbox_name_entry;
+ private GtkWidget *mailbox_name_default_button;
+
+ private GtkWidget *type_section_label;
+ private GtkWidget *properties_event_box;
+
+ private GtkWidget *apply_button;
+ private GtkWidget *accept_button;
+
+ private GtkListStore *store unrefwith g_object_unref;
+
+ private char *default_name destroywith g_free;
+ private gboolean custom_name;
+
+ override (G:Object) GObject *
+ constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ {
+ GObject *object;
+ Self *self;
+ GtkCellRenderer *renderer;
+ MNMailboxProperties *properties;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+ MN_INTERFACE_FILE("mailbox-properties-dialog.glade"),
+ "vbox",
+ "mn_mailbox_properties_dialog_",
+ "mailbox_type_label", &selfp->mailbox_type_label,
+ "mailbox_type_combo", &selfp->mailbox_type_combo,
+ "mailbox_name_label", &selfp->mailbox_name_label,
+ "mailbox_name_entry", &selfp->mailbox_name_entry,
+ "mailbox_name_default_button", &selfp->mailbox_name_default_button,
+ "type_section_label", &selfp->type_section_label,
+ "properties_event_box", &selfp->properties_event_box,
+ NULL);
+
+ gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+
+ if (selfp->dialog_parent)
+ gtk_window_set_transient_for(GTK_WINDOW(self), selfp->dialog_parent);
+
+ /* finish the type combo box */
+
+ selfp->store = gtk_list_store_new(N_COLUMNS,
+ GTK_TYPE_WIDGET,
+ G_TYPE_STRING,
+ G_TYPE_STRING);
+
+ self_add_type(self, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ self_add_type(self, MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_POP3
+ self_add_type(self, MN_TYPE_POP3_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_IMAP
+ self_add_type(self, MN_TYPE_IMAP_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_GMAIL
+ self_add_type(self, MN_TYPE_GMAIL_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_EVOLUTION
+ self_add_type(self, MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES);
+#endif
+
+ renderer = gtk_cell_renderer_pixbuf_new();
+ g_object_set(renderer, "stock-size", GTK_ICON_SIZE_MENU, NULL);
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, FALSE);;
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+ "stock-id", COLUMN_STOCK_ID,
+ NULL);
+
+ renderer = gtk_cell_renderer_text_new();
+ g_object_set(renderer, "xpad", 6, NULL);
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, TRUE);
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+ "markup", COLUMN_LABEL,
+ NULL);
+
+ gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->mailbox_type_combo), GTK_TREE_MODEL(selfp->store));
+
+ /* setup the dialog depending on the mode (edit or add) */
+
+ gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
+ if (selfp->mailbox)
+ {
+ selfp->apply_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_APPLY, GTK_RESPONSE_APPLY);
+ gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_OK, GTK_RESPONSE_OK);
+
+ properties = self_get_properties_by_type(self, MN_MAILBOX_GET_CLASS(selfp->mailbox)->type);
+ }
+ else
+ {
+ gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT);
+
+ if (! selected_type)
+ selected_type = MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES;
+
+ properties = self_get_properties_by_g_type(self, selected_type);
+
+ gtk_window_set_title(GTK_WINDOW(self), _("Add a Mailbox"));
+ }
+
+ self_set_active_properties(self, properties);
+
+ if (selfp->mailbox)
+ {
+ mn_mailbox_properties_set_mailbox(properties, selfp->mailbox);
+ if (selfp->mailbox->name)
+ gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), selfp->mailbox->name);
+ }
+
+ g_object_unref(properties);
+
+ gtk_widget_grab_default(selfp->accept_button);
+
+ return object;
+ }
+
+ private void
+ add_type (self, GType type (check != 0))
+ {
+ MNMailboxProperties *properties;
+ MNMailboxPropertiesClass *p_class;
+ GtkTreeIter iter;
+ GSList *l;
+
+ properties = g_object_new(type, NULL);
+ mn_gtk_object_ref_and_sink(GTK_OBJECT(properties));
+
+ p_class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+ gtk_list_store_append(selfp->store, &iter);
+ gtk_list_store_set(selfp->store, &iter,
+ COLUMN_PROPERTIES, properties,
+ COLUMN_STOCK_ID, p_class->stock_id,
+ COLUMN_LABEL, p_class->combo_label,
+ -1);
+
+ gtk_widget_show(GTK_WIDGET(properties));
+
+ g_object_connect(properties,
+ "swapped-signal::notify::complete", self_update_complete, self,
+ "swapped-signal::notify::default-name", self_update_default_name, self,
+ NULL);
+
+ MN_LIST_FOREACH(l, properties->entries)
+ g_signal_connect_swapped(l->data, "activate", G_CALLBACK(self_entry_activate_h), self);
+
+ g_object_unref(properties); /* now it belongs to the store */
+ }
+
+ private void
+ set_active_properties (self,
+ MN:Mailbox:Properties *properties (check null type))
+ {
+ gboolean valid;
+ GtkTreeIter iter;
+
+ valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+ while (valid)
+ {
+ MNMailboxProperties *these_properties;
+
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &these_properties, -1);
+ g_object_unref(these_properties);
+
+ if (these_properties == properties)
+ {
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter);
+ break;
+ }
+
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+ }
+ }
+
+ private MNMailboxProperties *
+ get_active_properties (self)
+ {
+ GtkTreeIter iter;
+ MNMailboxProperties *properties = NULL;
+
+ if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter))
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+ return properties;
+ }
+
+ private MNMailboxProperties *
+ get_properties_by_type (self, const char *type (check null))
+ {
+ gboolean valid;
+ GtkTreeIter iter;
+
+ valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+ while (valid)
+ {
+ MNMailboxProperties *properties;
+ MNMailboxPropertiesClass *class;
+
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+ class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+ if (class->type && ! strcmp(class->type, type))
+ return properties;
+
+ g_object_unref(properties);
+
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+ }
+
+ return NULL;
+ }
+
+ private MNMailboxProperties *
+ get_properties_by_g_type (self, GType type (check != 0))
+ {
+ gboolean valid;
+ GtkTreeIter iter;
+
+ valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+ while (valid)
+ {
+ MNMailboxProperties *properties;
+
+ gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+ if (G_TYPE_CHECK_INSTANCE_TYPE(properties, type))
+ return properties;
+
+ g_object_unref(properties);
+
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+ }
+
+ return NULL;
+ }
+
+ public MNMailbox *
+ get_current_mailbox (self)
+ {
+ MNMailboxProperties *properties;
+ MNMailbox *mailbox;
+
+ properties = self_get_active_properties(self);
+ mailbox = mn_mailbox_properties_get_mailbox(properties);
+ g_object_unref(properties);
+
+ if (selfp->custom_name)
+ g_object_set(G_OBJECT(mailbox), "name", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry)), NULL);
+
+ return mailbox;
+ }
+
+ public void
+ apply (self)
+ {
+ MNMailbox *new_mailbox;
+
+ new_mailbox = self_get_current_mailbox(self);
+ g_return_if_fail(MN_IS_MAILBOX(new_mailbox));
+
+ mn_mailbox_seal(new_mailbox);
+
+ mn_mailboxes_queue_remove(mn_shell->mailboxes, selfp->mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, new_mailbox);
+
+ self_set_mailbox(self, new_mailbox);
+ g_object_unref(new_mailbox);
+ }
+
+ private void
+ update_complete (self)
+ {
+ MNMailboxProperties *properties;
+
+ properties = self_get_active_properties(self);
+ if (properties)
+ {
+ gboolean complete;
+
+ g_object_get(G_OBJECT(properties), "complete", &complete, NULL);
+ g_object_unref(properties);
+
+ gtk_widget_set_sensitive(selfp->mailbox_name_entry, complete);
+ gtk_widget_set_sensitive(selfp->mailbox_name_default_button, complete && selfp->custom_name);
+ if (selfp->apply_button)
+ gtk_widget_set_sensitive(selfp->apply_button, complete);
+ gtk_widget_set_sensitive(selfp->accept_button, complete);
+ }
+ }
+
+ private void
+ update_default_name (self)
+ {
+ MNMailboxProperties *properties;
+
+ properties = self_get_active_properties(self);
+ if (properties)
+ {
+ gboolean complete;
+ const char *default_name;
+
+ g_free(selfp->default_name);
+
+ g_object_get(G_OBJECT(properties),
+ "complete", &complete,
+ "default-name", &selfp->default_name,
+ NULL);
+ g_object_unref(properties);
+
+ default_name = complete ? selfp->default_name : NULL;
+
+ gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), default_name ? default_name : "");
+ gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name = FALSE);
+ }
+ }
+
+ public GtkWidget *
+ new (GtkWindow *parent, MNMailbox *mailbox)
+ {
+ return GTK_WIDGET(GET_NEW_VARG(MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(parent),
+ MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(mailbox),
+ NULL));
+ }
+
+ /* libglade callbacks */
+
+ protected void
+ type_changed_h (self, GtkComboBox *combobox)
+ {
+ MNMailboxProperties *properties;
+ MNMailboxPropertiesClass *class;
+ char *markup;
+
+ properties = (MNMailboxProperties *) GTK_BIN(selfp->properties_event_box)->child;
+ if (properties)
+ {
+ gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_type_label);
+ gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_name_label);
+ gtk_size_group_remove_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+ gtk_container_remove(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+ }
+
+ properties = self_get_active_properties(self);
+ gtk_container_add(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+ gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_type_label);
+ gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_name_label);
+ gtk_size_group_add_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+
+ class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>", class->section_label ? class->section_label : class->combo_label);
+ gtk_label_set_markup(GTK_LABEL(selfp->type_section_label), markup);
+ g_free(markup);
+
+ if (! selfp->mailbox) /* mode is add */
+ selected_type = G_TYPE_FROM_INSTANCE(properties);
+
+ self_update_complete(self);
+ self_update_default_name(self);
+
+ g_object_unref(properties);
+ }
+
+ protected void
+ name_changed_h (self, GtkEditable *editable)
+ {
+ const char *name;
+
+ name = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry));
+ selfp->custom_name = mn_utf8_strcmp(name, selfp->default_name ? selfp->default_name : "") != 0;
+
+ gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name);
+ }
+
+ protected void
+ name_default_button_clicked_h (self, GtkButton *button)
+ {
+ self_update_default_name(self);
+ }
+
+ protected void
+ entry_activate_h (self, GtkEntry *entry)
+ {
+ if (GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(self)->default_widget))
+ gtk_window_activate_default(GTK_WINDOW(self));
+ else
+ {
+ MNMailboxProperties *properties;
+ GtkWidget *next = GTK_WIDGET(entry);
+
+ properties = self_get_active_properties(self);
+ g_return_if_fail(properties != NULL);
+
+ do
+ {
+ GSList *elem;
+
+ if (next == selfp->mailbox_name_entry)
+ elem = properties->entries;
+ else
+ {
+ elem = g_slist_find(properties->entries, next);
+ g_return_if_fail(elem != NULL);
+
+ elem = elem->next;
+ }
+
+ next = elem ? elem->data : selfp->mailbox_name_entry;
+ if (next == GTK_WIDGET(entry))
+ next = NULL;
+ }
+ while (next && ! (GTK_WIDGET_MAPPED(next)
+ && GTK_WIDGET_VISIBLE(next)
+ && GTK_WIDGET_SENSITIVE(next)));
+
+ if (next)
+ gtk_widget_grab_focus(next);
+ }
+ }
+}
diff --git a/src/mn-mailbox-properties-dialog.h b/src/mn-mailbox-properties-dialog.h
@@ -1,45 +1,86 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-dialog.h"
+#include "mn-mailbox.h"
+
+#ifndef __MN_MAILBOX_PROPERTIES_DIALOG_H__
+#define __MN_MAILBOX_PROPERTIES_DIALOG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
*/
+#define MN_TYPE_MAILBOX_PROPERTIES_DIALOG (mn_mailbox_properties_dialog_get_type())
+#define MN_MAILBOX_PROPERTIES_DIALOG(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialog)
+#define MN_MAILBOX_PROPERTIES_DIALOG_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialog const)
+#define MN_MAILBOX_PROPERTIES_DIALOG_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialogClass)
+#define MN_IS_MAILBOX_PROPERTIES_DIALOG(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mailbox_properties_dialog_get_type ())
+
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialogClass)
-#ifndef _MN_MAILBOX_PROPERTIES_DIALOG_H
-#define _MN_MAILBOX_PROPERTIES_DIALOG_H
+/* Private structure type */
+typedef struct _MNMailboxPropertiesDialogPrivate MNMailboxPropertiesDialogPrivate;
-#include <gtk/gtk.h>
-#include "mn-uri.h"
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAILBOX_PROPERTIES_DIALOG__
+#define __TYPEDEF_MN_MAILBOX_PROPERTIES_DIALOG__
+typedef struct _MNMailboxPropertiesDialog MNMailboxPropertiesDialog;
+#endif
+struct _MNMailboxPropertiesDialog {
+ MNDialog __parent__;
+ /*< private >*/
+ MNMailboxPropertiesDialogPrivate *_priv;
+};
-#define MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_KEY "mn-mailbox-properties-dialog-private"
-#define MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(obj) (g_object_get_data(G_OBJECT(obj), MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_KEY))
+/*
+ * Class definition
+ */
+typedef struct _MNMailboxPropertiesDialogClass MNMailboxPropertiesDialogClass;
+struct _MNMailboxPropertiesDialogClass {
+ MNDialogClass __parent__;
+};
-#define MN_TYPE_MAILBOX_PROPERTIES_DIALOG (GTK_TYPE_DIALOG)
-#define MN_MAILBOX_PROPERTIES_DIALOG(obj) (GTK_DIALOG(obj))
-#define MN_MAILBOX_PROPERTIES_DIALOG_CLASS(klass) (GTK_DIALOG_CLASS(klass))
-#define MN_IS_MAILBOX_PROPERTIES_DIALOG(obj) (GTK_IS_DIALOG(obj) && MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(obj))
-#define MN_IS_MAILBOX_PROPERTIES_DIALOG_CLASS(klass) (GTK_IS_DIALOG_CLASS(klass))
-#define MN_MAILBOX_PROPERTIES_DIALOG_GET_CLASS(obj) (GTK_DIALOG_GET_CLASS(obj))
-typedef GtkDialog MNMailboxPropertiesDialog;
-typedef GtkDialogClass MNMailboxPropertiesDialogClass;
+/*
+ * Public methods
+ */
+GType mn_mailbox_properties_dialog_get_type (void);
+MNMailbox * mn_mailbox_properties_dialog_get_mailbox (MNMailboxPropertiesDialog * self);
+void mn_mailbox_properties_dialog_set_mailbox (MNMailboxPropertiesDialog * self,
+ MNMailbox * val);
+MNMailbox * mn_mailbox_properties_dialog_get_current_mailbox (MNMailboxPropertiesDialog * self);
+void mn_mailbox_properties_dialog_apply (MNMailboxPropertiesDialog * self);
+GtkWidget * mn_mailbox_properties_dialog_new (GtkWindow * parent,
+ MNMailbox * mailbox);
-GtkWidget *mn_mailbox_properties_dialog_new (GtkWindow *parent, MNURI *uri);
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(arg) "dialog_parent", __extension__ ({GtkWindow * z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_DIALOG_PARENT(arg) "dialog_parent", __extension__ ({GtkWindow * *z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(arg) "mailbox", __extension__ ({MNMailbox * z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_MAILBOX(arg) "mailbox", __extension__ ({MNMailbox * *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(arg) "dialog_parent",(GtkWindow * )(arg)
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_DIALOG_PARENT(arg) "dialog_parent",(GtkWindow * *)(arg)
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(arg) "mailbox",(MNMailbox * )(arg)
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_MAILBOX(arg) "mailbox",(MNMailbox * *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
-MNURI *mn_mailbox_properties_dialog_get_uri (MNMailboxPropertiesDialog *dialog);
-MNURI *mn_mailbox_properties_dialog_get_current_uri (MNMailboxPropertiesDialog *dialog);
-void mn_mailbox_properties_dialog_apply (MNMailboxPropertiesDialog *dialog);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
-#endif /* _MN_MAILBOX_PROPERTIES_DIALOG_H */
+#endif
diff --git a/src/mn-mailbox-properties-private.h b/src/mn-mailbox-properties-private.h
@@ -0,0 +1,21 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+void mn_mailbox_properties_notify_complete (MNMailboxProperties * self);
+void mn_mailbox_properties_notify_default_name (MNMailboxProperties * self);
+void mn_mailbox_properties_add_entry (MNMailboxProperties * self, GtkEntry * entry);
+void mn_mailbox_properties_add_entries (MNMailboxProperties * self, GtkEntry * entry, ...);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mailbox-properties-util.c b/src/mn-mailbox-properties-util.c
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <stdarg.h>
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include "mn-mailbox-properties-util.h"
-#include "mn-auth-combo-box.h"
-
-/*** functions ***************************************************************/
-
-#if defined(WITH_POP3) || defined(WITH_IMAP) || defined(WITH_GMAIL)
-static void mn_mailbox_properties_entry_activate_h (GtkEntry *entry, gpointer user_data);
-#endif
-
-/*** implementation **********************************************************/
-
-#if defined(WITH_POP3) || defined(WITH_IMAP) || defined(WITH_GMAIL)
-void
-mn_mailbox_properties_field_new (GtkVBox *vbox,
- const char *mnemonic,
- GtkWidget **label,
- GtkWidget **entry)
-{
- GtkWidget *hbox;
-
- g_return_if_fail(GTK_IS_VBOX(vbox));
- g_return_if_fail(mnemonic != NULL);
- g_return_if_fail(label != NULL);
- g_return_if_fail(entry != NULL);
-
- *label = gtk_label_new_with_mnemonic(mnemonic);
- gtk_misc_set_alignment(GTK_MISC(*label), 0.0, 0.5);
-
- *entry = gtk_entry_new();
- gtk_label_set_mnemonic_widget(GTK_LABEL(*label), *entry);
-
- hbox = gtk_hbox_new(FALSE, 12);
- gtk_box_pack_start(GTK_BOX(hbox), *label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), *entry, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- gtk_widget_show_all(hbox);
-}
-
-void
-mn_mailbox_properties_credentials_new (GtkVBox *vbox,
- GtkWidget **username_label,
- GtkWidget **username_entry,
- GtkWidget **password_label,
- GtkWidget **password_entry)
-{
- const char *username;
-
- g_return_if_fail(GTK_IS_VBOX(vbox));
- g_return_if_fail(username_label != NULL);
- g_return_if_fail(username_entry != NULL);
- g_return_if_fail(password_label != NULL);
- g_return_if_fail(password_entry != NULL);
-
- mn_mailbox_properties_field_new(vbox,
- _("_Username:"),
- username_label,
- username_entry);
-
- /* defaults to the login name */
- username = g_get_user_name();
- if (username)
- gtk_entry_set_text(GTK_ENTRY(*username_entry), username);
-
- mn_mailbox_properties_field_new(vbox,
- _("_Password:"),
- password_label,
- password_entry);
- gtk_entry_set_visibility(GTK_ENTRY(*password_entry), FALSE);
-}
-
-void
-mn_mailbox_properties_link_entries (GtkEntry *first, ...)
-{
- va_list args;
- GtkEntry *entry = first;
- GtkEntry *next;
-
- g_return_if_fail(GTK_IS_ENTRY(first));
-
- va_start(args, first);
- do
- {
- next = va_arg(args, GtkEntry *);
- if (next)
- g_return_if_fail(GTK_IS_ENTRY(next));
-
- g_signal_connect(entry,
- "activate",
- G_CALLBACK(mn_mailbox_properties_entry_activate_h),
- next ? next : first);
- entry = next;
- }
- while (next);
- va_end(args);
-}
-
-static void
-mn_mailbox_properties_entry_activate_h (GtkEntry *entry, gpointer user_data)
-{
- GtkWidget *next = user_data;
- GtkWidget *toplevel;
-
- toplevel = gtk_widget_get_toplevel(GTK_WIDGET(entry));
- if (GTK_WIDGET_TOPLEVEL(toplevel)
- && GTK_WINDOW(toplevel)->default_widget
- && GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(toplevel)->default_widget))
- gtk_window_activate_default(GTK_WINDOW(toplevel));
- else
- gtk_widget_grab_focus(next);
-}
-#endif /* WITH_POP3 || WITH_IMAP || WITH_GMAIL */
-
-#if defined(WITH_POP3) || defined(WITH_IMAP)
-void
-mn_mailbox_properties_connection_type_new (GtkVBox *vbox,
- const char *mnemonic,
- int default_port,
- GtkRadioButton *radio_group,
- GtkWidget **label,
- GtkWidget **radio,
- GtkWidget **spin)
-{
- GtkWidget *hbox;
- GtkWidget *port_label;
-
- g_return_if_fail(GTK_IS_VBOX(vbox));
- g_return_if_fail(mnemonic != NULL);
- g_return_if_fail(label != NULL);
- g_return_if_fail(radio != NULL);
- g_return_if_fail(spin != NULL);
-
- *label = gtk_label_new(radio_group ? NULL : _("Connection type:"));
- gtk_misc_set_alignment(GTK_MISC(*label), 0.0, 0.5);
-
- *radio = radio_group
- ? gtk_radio_button_new_with_mnemonic_from_widget(radio_group, mnemonic)
- : gtk_radio_button_new_with_mnemonic(NULL, mnemonic);
-
- port_label = gtk_label_new(_("Port:"));
-
- *spin = gtk_spin_button_new_with_range(0, 0xFFFF, 1);
- gtk_entry_set_activates_default(GTK_ENTRY(*spin), TRUE);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(*spin), default_port);
- gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(*spin), TRUE);
-
- hbox = gtk_hbox_new(FALSE, 12);
- gtk_box_pack_start(GTK_BOX(hbox), *label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), *radio, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), port_label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), *spin, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- gtk_widget_show_all(hbox);
-}
-
-void
-mn_mailbox_properties_authentication_new (GtkVBox *vbox,
- GtkWidget **label,
- GtkWidget **auth_combo)
-{
- GtkWidget *hbox;
-
- g_return_if_fail(GTK_IS_VBOX(vbox));
- g_return_if_fail(label != NULL);
- g_return_if_fail(auth_combo != NULL);
-
- hbox = gtk_hbox_new(FALSE, 12);
- *label = gtk_label_new_with_mnemonic(_("_Authentication mechanism:"));
- gtk_misc_set_alignment(GTK_MISC(*label), 0.0, 0.5);
-
- *auth_combo = mn_auth_combo_box_new();
- gtk_label_set_mnemonic_widget(GTK_LABEL(*label), *auth_combo);
-
- gtk_box_pack_start(GTK_BOX(hbox), *label, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), *auth_combo, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- gtk_widget_show_all(hbox);
-}
-#endif /* WITH_POP3 || WITH_IMAP */
diff --git a/src/mn-mailbox-properties-util.h b/src/mn-mailbox-properties-util.h
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_MAILBOX_PROPERTIES_UTIL_H
-#define _MN_MAILBOX_PROPERTIES_UTIL_H
-
-#include "config.h"
-#include <stdarg.h>
-#include <gtk/gtk.h>
-
-#if defined(WITH_POP3) || defined(WITH_IMAP) || defined(WITH_GMAIL)
-void mn_mailbox_properties_field_new (GtkVBox *vbox,
- const char *mnemonic,
- GtkWidget **label,
- GtkWidget **entry);
-void mn_mailbox_properties_credentials_new (GtkVBox *vbox,
- GtkWidget **username_label,
- GtkWidget **username_entry,
- GtkWidget **password_label,
- GtkWidget **password_entry);
-void mn_mailbox_properties_link_entries (GtkEntry *first, ...);
-#endif /* WITH_POP3 || WITH_IMAP || WITH_GMAIL */
-
-#if defined(WITH_POP3) || defined(WITH_IMAP)
-void mn_mailbox_properties_connection_type_new (GtkVBox *vbox,
- const char *mnemonic,
- int default_port,
- GtkRadioButton *radio_group,
- GtkWidget **label,
- GtkWidget **radio,
- GtkWidget **spin);
-void mn_mailbox_properties_authentication_new (GtkVBox *vbox,
- GtkWidget **label,
- GtkWidget **auth_combo);
-#endif /* WITH_POP3 || WITH_IMAP */
-
-#endif /* _MN_MAILBOX_PROPERTIES_UTIL_H */
diff --git a/src/mn-mailbox-properties.c b/src/mn-mailbox-properties.c
@@ -1,121 +1,369 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
#include "mn-mailbox-properties.h"
-/*** functions ***************************************************************/
+#include "mn-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+/* self casting macros */
+#define SELF(x) MN_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAILBOX_PROPERTIES_GET_CLASS(x)
-static void mn_mailbox_properties_iface_init (MNMailboxPropertiesIface *iface);
+/* self typedefs */
+typedef MNMailboxProperties Self;
+typedef MNMailboxPropertiesClass SelfClass;
-/*** implementation **********************************************************/
+/* here are local prototypes */
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_mailbox_properties_class_init (MNMailboxPropertiesClass * c) G_GNUC_UNUSED;
+static MNMailbox * ___real_mn_mailbox_properties_get_mailbox (MNMailboxProperties * self);
+static void mn_mailbox_properties_init (MNMailboxProperties * self) G_GNUC_UNUSED;
+enum {
+ PROP_0,
+ PROP_COMPLETE,
+ PROP_DEFAULT_NAME
+};
+
+/* pointer to the class of our parent */
+static GtkVBoxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_set_mailbox mn_mailbox_properties_set_mailbox
+#define self_get_mailbox mn_mailbox_properties_get_mailbox
+#define self_notify_complete mn_mailbox_properties_notify_complete
+#define self_notify_default_name mn_mailbox_properties_notify_default_name
+#define self_add_entry mn_mailbox_properties_add_entry
+#define self_add_entries mn_mailbox_properties_add_entries
GType
mn_mailbox_properties_get_type (void)
{
- static GType mailbox_properties_type = 0;
-
- if (! mailbox_properties_type)
- {
- static const GTypeInfo mailbox_properties_info = {
- sizeof(MNMailboxPropertiesIface),
- NULL,
- NULL,
- (GClassInitFunc) mn_mailbox_properties_iface_init,
- NULL,
- NULL,
- 0,
- 0,
- NULL
- };
-
- mailbox_properties_type = g_type_register_static(G_TYPE_INTERFACE,
- "MNMailboxProperties",
- &mailbox_properties_info,
- 0);
- }
-
- return mailbox_properties_type;
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNMailboxPropertiesClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_mailbox_properties_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNMailboxProperties),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_mailbox_properties_init,
+ NULL
+ };
+
+ type = g_type_register_static (GTK_TYPE_VBOX, "MNMailboxProperties", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMailboxProperties *)g_object_new(mn_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNMailboxProperties *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNMailboxProperties *)g_object_new_valist (mn_mailbox_properties_get_type (), first, ap);
+ va_end (ap);
+ return ret;
}
+
static void
-mn_mailbox_properties_iface_init (MNMailboxPropertiesIface *iface)
-{
- g_object_interface_install_property(iface,
- g_param_spec_string("label",
- _("Label"),
- _("The marked up text to show in the type combo box"),
- NULL,
- G_PARAM_READABLE));
- g_object_interface_install_property(iface,
- g_param_spec_object("size-group",
- _("Size group"),
- _("A GtkSizeGroup for aligning control labels"),
- GTK_TYPE_SIZE_GROUP,
- G_PARAM_WRITABLE | G_PARAM_READABLE | G_PARAM_CONSTRUCT_ONLY));
- g_object_interface_install_property(iface,
- g_param_spec_boolean("complete",
- _("Complete"),
- _("Whether the properties are completely filled or not"),
- FALSE,
- G_PARAM_READABLE));
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::dispose"
+ MNMailboxProperties *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES (obj_self);
+ if (G_OBJECT_CLASS (parent_class)->dispose) \
+ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
+#line 34 "mn-mailbox-properties.gob"
+ if(self->label_size_group) { g_object_unref ((gpointer) self->label_size_group); self->label_size_group = NULL; }
+#line 113 "mn-mailbox-properties.c"
+#line 35 "mn-mailbox-properties.gob"
+ if(self->entry_button_size_group) { g_object_unref ((gpointer) self->entry_button_size_group); self->entry_button_size_group = NULL; }
+#line 116 "mn-mailbox-properties.c"
}
+#undef __GOB_FUNCTION__
+
-GtkSizeGroup *
-mn_mailbox_properties_get_size_group (MNMailboxProperties *properties)
+static void
+___finalize(GObject *obj_self)
{
- GtkSizeGroup *size_group;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::finalize"
+ MNMailboxProperties *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES (obj_self);
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 37 "mn-mailbox-properties.gob"
+ if(self->entries) { g_slist_free ((gpointer) self->entries); self->entries = NULL; }
+#line 130 "mn-mailbox-properties.c"
+}
+#undef __GOB_FUNCTION__
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), NULL);
+static void
+mn_mailbox_properties_class_init (MNMailboxPropertiesClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
- g_object_get(G_OBJECT(properties), "size-group", &size_group, NULL);
- g_object_unref(size_group);
+ parent_class = g_type_class_ref (GTK_TYPE_VBOX);
- return size_group;
+ c->set_mailbox = NULL;
+#line 47 "mn-mailbox-properties.gob"
+ c->get_mailbox = ___real_mn_mailbox_properties_get_mailbox;
+#line 145 "mn-mailbox-properties.c"
+ g_object_class->dispose = ___dispose;
+ g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_boolean
+ ("complete" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ FALSE /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE));
+ g_object_class_install_property (g_object_class,
+ PROP_COMPLETE,
+ param_spec);
+ param_spec = g_param_spec_string
+ ("default_name" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE));
+ g_object_class_install_property (g_object_class,
+ PROP_DEFAULT_NAME,
+ param_spec);
+ }
+}
+#undef __GOB_FUNCTION__
+#line 53 "mn-mailbox-properties.gob"
+static void
+mn_mailbox_properties_init (MNMailboxProperties * self G_GNUC_UNUSED)
+#line 176 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::init"
+#line 34 "mn-mailbox-properties.gob"
+ self->label_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+#line 181 "mn-mailbox-properties.c"
+#line 35 "mn-mailbox-properties.gob"
+ self->entry_button_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+#line 184 "mn-mailbox-properties.c"
+ {
+#line 54 "mn-mailbox-properties.gob"
+
+ gtk_box_set_spacing(GTK_BOX(self), 6);
+
+#line 190 "mn-mailbox-properties.c"
+ }
}
+#undef __GOB_FUNCTION__
-char *
-mn_mailbox_properties_get_label (MNMailboxProperties *properties)
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::get_property"
{
- char *label;
+ MNMailboxProperties *self G_GNUC_UNUSED;
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), NULL);
+ self = MN_MAILBOX_PROPERTIES (object);
- g_object_get(G_OBJECT(properties), "label", &label, NULL);
- return label;
+ switch (property_id) {
+ case PROP_COMPLETE:
+ {
+#line 40 "mn-mailbox-properties.gob"
+ g_value_set_boolean(VAL, TRUE);
+#line 211 "mn-mailbox-properties.c"
+ }
+ break;
+ case PROP_DEFAULT_NAME:
+ {
+#line 42 "mn-mailbox-properties.gob"
+ g_value_set_string(VAL, NULL);
+#line 218 "mn-mailbox-properties.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
}
+#undef __GOB_FUNCTION__
+
-gboolean
-mn_mailbox_properties_set_uri (MNMailboxProperties *properties,
- MNURI *uri)
+#line 44 "mn-mailbox-properties.gob"
+void
+mn_mailbox_properties_set_mailbox (MNMailboxProperties * self, MNMailbox * mailbox)
+#line 237 "mn-mailbox-properties.c"
{
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), FALSE);
- g_return_val_if_fail(MN_IS_URI(uri), FALSE);
+ MNMailboxPropertiesClass *klass;
+#line 44 "mn-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 44 "mn-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 244 "mn-mailbox-properties.c"
+ klass = MN_MAILBOX_PROPERTIES_GET_CLASS(self);
- return MN_MAILBOX_PROPERTIES_GET_IFACE(properties)->set_uri(properties, uri);
+ if(klass->set_mailbox)
+ (*klass->set_mailbox)(self,mailbox);
}
-MNURI *
-mn_mailbox_properties_get_uri (MNMailboxProperties *properties)
+#line 47 "mn-mailbox-properties.gob"
+MNMailbox *
+mn_mailbox_properties_get_mailbox (MNMailboxProperties * self)
+#line 254 "mn-mailbox-properties.c"
{
- g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), NULL);
+ MNMailboxPropertiesClass *klass;
+#line 47 "mn-mailbox-properties.gob"
+ g_return_val_if_fail (self != NULL, (MNMailbox * )0);
+#line 47 "mn-mailbox-properties.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNMailbox * )0);
+#line 261 "mn-mailbox-properties.c"
+ klass = MN_MAILBOX_PROPERTIES_GET_CLASS(self);
- return MN_MAILBOX_PROPERTIES_GET_IFACE(properties)->get_uri(properties);
+ if(klass->get_mailbox)
+ return (*klass->get_mailbox)(self);
+ else
+ return (MNMailbox * )(0);
}
+#line 47 "mn-mailbox-properties.gob"
+static MNMailbox *
+___real_mn_mailbox_properties_get_mailbox (MNMailboxProperties * self G_GNUC_UNUSED)
+#line 272 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::get_mailbox"
+{
+#line 49 "mn-mailbox-properties.gob"
+
+ return mn_mailbox_new(SELF_GET_CLASS(self)->type, NULL);
+ }}
+#line 280 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+
+#line 58 "mn-mailbox-properties.gob"
+void
+mn_mailbox_properties_notify_complete (MNMailboxProperties * self)
+#line 287 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::notify_complete"
+#line 58 "mn-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 58 "mn-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 294 "mn-mailbox-properties.c"
+{
+#line 60 "mn-mailbox-properties.gob"
+
+ g_object_notify(G_OBJECT(self), "complete");
+ }}
+#line 300 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 64 "mn-mailbox-properties.gob"
+void
+mn_mailbox_properties_notify_default_name (MNMailboxProperties * self)
+#line 306 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::notify_default_name"
+#line 64 "mn-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 64 "mn-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 313 "mn-mailbox-properties.c"
+{
+#line 66 "mn-mailbox-properties.gob"
+
+ g_object_notify(G_OBJECT(self), "default-name");
+ }}
+#line 319 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 70 "mn-mailbox-properties.gob"
+void
+mn_mailbox_properties_add_entry (MNMailboxProperties * self, GtkEntry * entry)
+#line 325 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::add_entry"
+#line 70 "mn-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 70 "mn-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 70 "mn-mailbox-properties.gob"
+ g_return_if_fail (entry != NULL);
+#line 70 "mn-mailbox-properties.gob"
+ g_return_if_fail (GTK_IS_ENTRY (entry));
+#line 336 "mn-mailbox-properties.c"
+{
+#line 72 "mn-mailbox-properties.gob"
+
+ self->entries = g_slist_append(self->entries, entry);
+ }}
+#line 342 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 76 "mn-mailbox-properties.gob"
+void
+mn_mailbox_properties_add_entries (MNMailboxProperties * self, GtkEntry * entry, ...)
+#line 348 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::add_entries"
+#line 76 "mn-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 76 "mn-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 355 "mn-mailbox-properties.c"
+{
+#line 78 "mn-mailbox-properties.gob"
+
+ va_list args;
+
+ va_start(args, entry);
+ while (entry)
+ {
+ self_add_entry(self, entry);
+ entry = va_arg(args, GtkEntry *);
+ }
+ va_end(args);
+ }}
+#line 369 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox-properties.gob b/src/mn-mailbox-properties.gob
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+#include <stdarg.h>
+#include "mn-mailbox.h"
+%}
+
+class MN:Mailbox:Properties from Gtk:VBox
+{
+ classwide const char *type;
+ classwide const char *stock_id;
+ classwide const char *combo_label;
+ classwide const char *section_label;
+
+ protected GtkSizeGroup *label_size_group = {gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)} unrefwith g_object_unref;
+ protected GtkSizeGroup *entry_button_size_group = {gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)} unrefwith g_object_unref;
+
+ protected GSList *entries destroywith g_slist_free;
+
+ property BOOLEAN complete
+ get { g_value_set_boolean(VAL, TRUE); };
+ property STRING default_name
+ get { g_value_set_string(VAL, NULL); };
+
+ virtual public void
+ set_mailbox (self, MNMailbox *mailbox);
+
+ virtual public MNMailbox *
+ get_mailbox (self)
+ {
+ return mn_mailbox_new(SELF_GET_CLASS(self)->type, NULL);
+ }
+
+ init (self)
+ {
+ gtk_box_set_spacing(GTK_BOX(self), 6);
+ }
+
+ protected void
+ notify_complete (self)
+ {
+ g_object_notify(G_OBJECT(self), "complete");
+ }
+
+ protected void
+ notify_default_name (self)
+ {
+ g_object_notify(G_OBJECT(self), "default-name");
+ }
+
+ protected void
+ add_entry (self, Gtk:Entry *entry (check null type))
+ {
+ self->entries = g_slist_append(self->entries, entry);
+ }
+
+ protected void
+ add_entries (self, GtkEntry *entry, ...)
+ {
+ va_list args;
+
+ va_start(args, entry);
+ while (entry)
+ {
+ self_add_entry(self, entry);
+ entry = va_arg(args, GtkEntry *);
+ }
+ va_end(args);
+ }
+}
diff --git a/src/mn-mailbox-properties.h b/src/mn-mailbox-properties.h
@@ -1,49 +1,84 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+#include <stdarg.h>
+#include "mn-mailbox.h"
+
+#ifndef __MN_MAILBOX_PROPERTIES_H__
+#define __MN_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
*/
+#define MN_TYPE_MAILBOX_PROPERTIES (mn_mailbox_properties_get_type())
+#define MN_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_get_type(), MNMailboxProperties)
+#define MN_MAILBOX_PROPERTIES_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_get_type(), MNMailboxProperties const)
+#define MN_MAILBOX_PROPERTIES_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_mailbox_properties_get_type(), MNMailboxPropertiesClass)
+#define MN_IS_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mailbox_properties_get_type ())
-#ifndef _MN_MAILBOX_PROPERTIES_H
-#define _MN_MAILBOX_PROPERTIES_H
+#define MN_MAILBOX_PROPERTIES_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mailbox_properties_get_type(), MNMailboxPropertiesClass)
-#include <glib-object.h>
-#include "mn-uri.h"
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_MAILBOX_PROPERTIES__
+typedef struct _MNMailboxProperties MNMailboxProperties;
+#endif
+struct _MNMailboxProperties {
+ GtkVBox __parent__;
+ /*< private >*/
+ GtkSizeGroup * label_size_group; /* protected */
+ GtkSizeGroup * entry_button_size_group; /* protected */
+ GSList * entries; /* protected */
+};
-#define MN_TYPE_MAILBOX_PROPERTIES (mn_mailbox_properties_get_type ())
-#define MN_MAILBOX_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), MN_TYPE_MAILBOX_PROPERTIES, MNMailboxProperties))
-#define MN_IS_MAILBOX_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), MN_TYPE_MAILBOX_PROPERTIES))
-#define MN_MAILBOX_PROPERTIES_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), MN_TYPE_MAILBOX_PROPERTIES, MNMailboxPropertiesIface))
+/*
+ * Class definition
+ */
+typedef struct _MNMailboxPropertiesClass MNMailboxPropertiesClass;
+struct _MNMailboxPropertiesClass {
+ GtkVBoxClass __parent__;
+ void (* set_mailbox) (MNMailboxProperties * self, MNMailbox * mailbox);
+ MNMailbox * (* get_mailbox) (MNMailboxProperties * self);
+ const char * type;
+ const char * stock_id;
+ const char * combo_label;
+ const char * section_label;
+};
-typedef struct _MNMailboxProperties MNMailboxProperties; /* dummy */
-typedef struct
-{
- GTypeInterface parent;
+/*
+ * Public methods
+ */
+GType mn_mailbox_properties_get_type (void);
+void mn_mailbox_properties_set_mailbox (MNMailboxProperties * self,
+ MNMailbox * mailbox);
+MNMailbox * mn_mailbox_properties_get_mailbox (MNMailboxProperties * self);
- gboolean (* set_uri) (MNMailboxProperties *properties,
- MNURI *uri);
- MNURI * (* get_uri) (MNMailboxProperties *properties);
-} MNMailboxPropertiesIface;
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
+#define MN_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
-GType mn_mailbox_properties_get_type (void);
-GtkSizeGroup *mn_mailbox_properties_get_size_group (MNMailboxProperties *properties);
-char *mn_mailbox_properties_get_label (MNMailboxProperties *properties);
-gboolean mn_mailbox_properties_set_uri (MNMailboxProperties *properties,
- MNURI *uri);
-MNURI *mn_mailbox_properties_get_uri (MNMailboxProperties *properties);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
-#endif /* _MN_MAILBOX_PROPERTIES_H */
+#endif
diff --git a/src/mn-mailbox-view-private.h b/src/mn-mailbox-view-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_MAILBOX_VIEW_PRIVATE_H__
#define __MN_MAILBOX_VIEW_PRIVATE_H__
@@ -10,17 +10,17 @@ extern "C" {
#endif /* __cplusplus */
struct _MNMailboxViewPrivate {
-#line 51 "mn-mailbox-view.gob"
+#line 70 "mn-mailbox-view.gob"
GtkWidget * menu;
-#line 52 "mn-mailbox-view.gob"
+#line 71 "mn-mailbox-view.gob"
GtkWidget * remove_item;
-#line 53 "mn-mailbox-view.gob"
+#line 72 "mn-mailbox-view.gob"
GtkWidget * cut_item;
-#line 54 "mn-mailbox-view.gob"
+#line 73 "mn-mailbox-view.gob"
GtkWidget * copy_item;
-#line 55 "mn-mailbox-view.gob"
+#line 74 "mn-mailbox-view.gob"
GtkWidget * paste_item;
-#line 56 "mn-mailbox-view.gob"
+#line 75 "mn-mailbox-view.gob"
GtkWidget * properties_item;
#line 26 "mn-mailbox-view-private.h"
};
diff --git a/src/mn-mailbox-view.c b/src/mn-mailbox-view.c
@@ -1,16 +1,14 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
-#include <string.h> /* memset() */
-
#include "mn-mailbox-view.h"
#include "mn-mailbox-view-private.h"
@@ -23,9 +21,10 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-mailbox-view.gob"
+#line 25 "mn-mailbox-view.gob"
#include "config.h"
+#include <string.h>
#include <glib/gi18n.h>
#include <gdk/gdkkeysyms.h>
#include "mn-util.h"
@@ -33,22 +32,39 @@
#include "mn-stock.h"
#include "mn-mailbox-properties-dialog.h"
#include "mn-conf.h"
-#include "mn-uri.h"
+#include "mn-mailbox.h"
+#include "nautilus-cell-renderer-pixbuf-emblem.h"
+
+enum
+{
+ COLUMN_MAILBOX,
+ COLUMN_ICON,
+ COLUMN_EMBLEM,
+ COLUMN_PIXBUF,
+ COLUMN_LABEL,
+ COLUMN_RAW_LABEL,
+ N_COLUMNS
+};
-#define GNOME_COPIED_FILES "x-special/gnome-copied-files"
+enum
+{
+ TARGET_MAILBOXES,
+ TARGET_GNOME_COPIED_FILES,
+ N_TARGETS
+};
- enum {
- COLUMN_URI,
- COLUMN_MAILBOX_ICON,
- COLUMN_MAILBOX,
- COLUMN_FORMAT,
- N_COLUMNS
- };
+static struct
+{
+ char *name;
+ GdkAtom atom;
+} clipboard_info[N_TARGETS] = {
+ { "x-special/mail-notification-mailboxes" },
+ { "x-special/gnome-copied-files" }
+};
- static GtkClipboard *global_clipboard;
- static GdkAtom gnome_copied_files_atom;
+static GtkClipboard *global_clipboard;
-#line 52 "mn-mailbox-view.c"
+#line 68 "mn-mailbox-view.c"
/* self casting macros */
#define SELF(x) MN_MAILBOX_VIEW(x)
#define SELF_CONST(x) MN_MAILBOX_VIEW_CONST(x)
@@ -68,14 +84,15 @@ static void ___real_mn_mailbox_view_activate_remove (MNMailboxView * self);
static void ___real_mn_mailbox_view_activate_cut (MNMailboxView * self);
static void ___real_mn_mailbox_view_activate_copy (MNMailboxView * self);
static void ___real_mn_mailbox_view_activate_paste (MNMailboxView * self);
-static void mn_mailbox_view_activate_paste_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data) G_GNUC_UNUSED;
static void ___real_mn_mailbox_view_activate_properties (MNMailboxView * self);
static void mn_mailbox_view_activate_properties_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data) G_GNUC_UNUSED;
static void mn_mailbox_view_class_init (MNMailboxViewClass * class) G_GNUC_UNUSED;
static void mn_mailbox_view_init (MNMailboxView * self) G_GNUC_UNUSED;
+static int mn_mailbox_view_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data) G_GNUC_UNUSED;
+static gboolean mn_mailbox_view_search_equal_cb (GtkTreeModel * model, int column, const char * key, GtkTreeIter * iter, gpointer search_data) G_GNUC_UNUSED;
static void mn_mailbox_view_append (MNMailboxView * self, MNMailbox * mailbox) G_GNUC_UNUSED;
static void mn_mailbox_view_mailbox_added_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailbox_view_mailbox_changed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailbox_view_mailbox_notify_h (MNMailboxes * mailboxes, MNMailbox * mailbox, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailbox_view_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailbox_view_update_iter (MNMailboxView * self, GtkTreeIter * iter, MNMailbox * mailbox) G_GNUC_UNUSED;
static gboolean mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTreeIter * iter) G_GNUC_UNUSED;
@@ -90,7 +107,7 @@ static void mn_mailbox_view_select_all (MNMailboxView * self) G_GNUC_UNUSED;
static void mn_mailbox_view_properties_add_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailbox_view_properties_edit_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailbox_view_popup_menu (MNMailboxView * self, unsigned int button, guint32 activate_time) G_GNUC_UNUSED;
-static void mn_mailbox_view_popup_menu_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data) G_GNUC_UNUSED;
+static void mn_mailbox_view_popup_menu_targets_received_cb (GtkClipboard * clipboard, GdkAtom * atoms, int n_atoms, gpointer data) G_GNUC_UNUSED;
static gboolean mn_mailbox_view_popup_menu_h (GtkWidget * widget, gpointer user_data) G_GNUC_UNUSED;
static gboolean mn_mailbox_view_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailbox_view_row_activated_h (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * column, gpointer user_data) G_GNUC_UNUSED;
@@ -138,12 +155,13 @@ static GtkTreeViewClass *parent_class = NULL;
#define self_activate_cut mn_mailbox_view_activate_cut
#define self_activate_copy mn_mailbox_view_activate_copy
#define self_activate_paste mn_mailbox_view_activate_paste
-#define self_activate_paste_receive_cb mn_mailbox_view_activate_paste_receive_cb
#define self_activate_properties mn_mailbox_view_activate_properties
#define self_activate_properties_cb mn_mailbox_view_activate_properties_cb
+#define self_sort_cb mn_mailbox_view_sort_cb
+#define self_search_equal_cb mn_mailbox_view_search_equal_cb
#define self_append mn_mailbox_view_append
#define self_mailbox_added_h mn_mailbox_view_mailbox_added_h
-#define self_mailbox_changed_h mn_mailbox_view_mailbox_changed_h
+#define self_mailbox_notify_h mn_mailbox_view_mailbox_notify_h
#define self_mailbox_removed_h mn_mailbox_view_mailbox_removed_h
#define self_update_iter mn_mailbox_view_update_iter
#define self_find_mailbox mn_mailbox_view_find_mailbox
@@ -158,7 +176,7 @@ static GtkTreeViewClass *parent_class = NULL;
#define self_properties_add_response_h mn_mailbox_view_properties_add_response_h
#define self_properties_edit_response_h mn_mailbox_view_properties_edit_response_h
#define self_popup_menu mn_mailbox_view_popup_menu
-#define self_popup_menu_receive_cb mn_mailbox_view_popup_menu_receive_cb
+#define self_popup_menu_targets_received_cb mn_mailbox_view_popup_menu_targets_received_cb
#define self_popup_menu_h mn_mailbox_view_popup_menu_h
#define self_button_press_event_h mn_mailbox_view_button_press_event_h
#define self_row_activated_h mn_mailbox_view_row_activated_h
@@ -214,16 +232,16 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 51 "mn-mailbox-view.gob"
+#line 70 "mn-mailbox-view.gob"
if(self->_priv->menu) { gtk_widget_destroy ((gpointer) self->_priv->menu); self->_priv->menu = NULL; }
-#line 220 "mn-mailbox-view.c"
+#line 238 "mn-mailbox-view.c"
}
#undef __GOB_FUNCTION__
-#line 195 "mn-mailbox-view.gob"
+#line 232 "mn-mailbox-view.gob"
static void
mn_mailbox_view_class_init (MNMailboxViewClass * class G_GNUC_UNUSED)
-#line 227 "mn-mailbox-view.c"
+#line 245 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
@@ -281,27 +299,30 @@ mn_mailbox_view_class_init (MNMailboxViewClass * class G_GNUC_UNUSED)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
class->activate_add = ___real_mn_mailbox_view_activate_add;
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
class->activate_remove = ___real_mn_mailbox_view_activate_remove;
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
class->activate_cut = ___real_mn_mailbox_view_activate_cut;
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
class->activate_copy = ___real_mn_mailbox_view_activate_copy;
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
class->activate_paste = ___real_mn_mailbox_view_activate_paste;
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
class->activate_properties = ___real_mn_mailbox_view_activate_properties;
-#line 297 "mn-mailbox-view.c"
+#line 315 "mn-mailbox-view.c"
g_object_class->finalize = ___finalize;
{
-#line 196 "mn-mailbox-view.gob"
+#line 233 "mn-mailbox-view.gob"
GtkBindingSet *binding_set;
+ int i;
global_clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
- gnome_copied_files_atom = gdk_atom_intern(GNOME_COPIED_FILES, FALSE);
+
+ for (i = 0; i < N_TARGETS; i++)
+ clipboard_info[i].atom = gdk_atom_intern(clipboard_info[i].name, FALSE);
binding_set = gtk_binding_set_by_class(class);
@@ -324,22 +345,22 @@ mn_mailbox_view_class_init (MNMailboxViewClass * class G_GNUC_UNUSED)
gtk_binding_entry_add_signal(binding_set, GDK_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
gtk_binding_entry_add_signal(binding_set, GDK_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
-#line 328 "mn-mailbox-view.c"
+#line 349 "mn-mailbox-view.c"
}
}
#undef __GOB_FUNCTION__
-#line 224 "mn-mailbox-view.gob"
+#line 264 "mn-mailbox-view.gob"
static void
mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
-#line 335 "mn-mailbox-view.c"
+#line 356 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::init"
- self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailboxViewPrivate);
-#line 51 "mn-mailbox-view.gob"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAILBOX_VIEW,MNMailboxViewPrivate);
+#line 70 "mn-mailbox-view.gob"
self->_priv->menu = gtk_menu_new();
-#line 341 "mn-mailbox-view.c"
+#line 362 "mn-mailbox-view.c"
{
-#line 225 "mn-mailbox-view.gob"
+#line 265 "mn-mailbox-view.gob"
GtkMenuShell *shell;
GtkWidget *add_item;
@@ -348,7 +369,7 @@ mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
GtkTreeViewColumn *column;
GtkCellRenderer *renderer;
GtkTreeSelection *selection;
- GSList *l;
+ GList *l;
/* popup menu */
@@ -376,56 +397,63 @@ mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
/* store */
store = gtk_list_store_new(N_COLUMNS,
- MN_TYPE_URI,
+ MN_TYPE_MAILBOX,
G_TYPE_STRING,
+ GDK_TYPE_PIXBUF,
+ GDK_TYPE_PIXBUF,
G_TYPE_STRING,
G_TYPE_STRING);
+
+ gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store),
+ self_sort_cb,
+ NULL,
+ NULL);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store),
+ GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
+ GTK_SORT_ASCENDING);
+
gtk_tree_view_set_model(GTK_TREE_VIEW(self), GTK_TREE_MODEL(store));
g_object_unref(store);
- /* mailbox column */
-
column = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(column, _("Mailbox"));
- gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
- gtk_tree_view_column_set_sort_column_id(column, COLUMN_MAILBOX);
- renderer = gtk_cell_renderer_pixbuf_new();
+ renderer = nautilus_cell_renderer_pixbuf_emblem_new();
+ g_object_set(renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_add_attribute(column, renderer, "stock-id", COLUMN_MAILBOX_ICON);
+ gtk_tree_view_column_set_attributes(column, renderer,
+ "stock-id", COLUMN_ICON,
+ "pixbuf-emblem", COLUMN_EMBLEM,
+ "pixbuf", COLUMN_PIXBUF,
+ NULL);
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_column_pack_start(column, renderer, TRUE);
- gtk_tree_view_column_add_attribute(column, renderer, "text", COLUMN_MAILBOX);
-
- gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
+ gtk_tree_view_column_add_attribute(column, renderer, "markup", COLUMN_LABEL);
- /* format column */
-
- column = gtk_tree_view_column_new_with_attributes(_("Format"),
- gtk_cell_renderer_text_new(),
- "text", COLUMN_FORMAT,
- NULL);
-
- gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
- gtk_tree_view_column_set_sort_column_id(column, COLUMN_FORMAT);
gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
/* misc */
- gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_MAILBOX);
+ gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_RAW_LABEL);
+ gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(self), self_search_equal_cb, NULL, NULL);
+
+ gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(self), FALSE);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
- MN_LIST_FOREACH(l, mn_mailboxes_get(mn_shell->mailboxes))
+ MN_LIST_FOREACH(l, mn_shell->mailboxes->list)
self_append(self, l->data);
self_update_sensitivity(self);
mn_g_object_connect(self,
mn_shell->mailboxes,
"signal::mailbox-added", self_mailbox_added_h, self,
- "signal::mailbox-changed", self_mailbox_changed_h, self,
+ "signal::mailbox-notify::stock-id", self_mailbox_notify_h, self,
+ "signal::mailbox-notify::must-poll", self_mailbox_notify_h, self,
+ "signal::mailbox-notify::format", self_mailbox_notify_h, self,
+ "signal::mailbox-notify::error", self_mailbox_notify_h, self,
"signal::mailbox-removed", self_mailbox_removed_h, self,
NULL);
@@ -437,15 +465,15 @@ mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
"signal::row-activated", self_row_activated_h, NULL,
NULL);
-#line 441 "mn-mailbox-view.c"
+#line 469 "mn-mailbox-view.c"
}
}
#undef __GOB_FUNCTION__
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
void
mn_mailbox_view_activate_add (MNMailboxView * self)
-#line 449 "mn-mailbox-view.c"
+#line 477 "mn-mailbox-view.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -453,11 +481,11 @@ mn_mailbox_view_activate_add (MNMailboxView * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 461 "mn-mailbox-view.c"
+#line 489 "mn-mailbox-view.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -470,20 +498,18 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
static void
___real_mn_mailbox_view_activate_add (MNMailboxView * self G_GNUC_UNUSED)
-#line 477 "mn-mailbox-view.c"
+#line 505 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_add"
{
-#line 60 "mn-mailbox-view.gob"
+#line 79 "mn-mailbox-view.gob"
- GtkWidget *toplevel;
GtkWidget *dialog;
- toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
- dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), NULL);
+ dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), NULL);
g_signal_connect(dialog,
"response",
@@ -492,13 +518,13 @@ ___real_mn_mailbox_view_activate_add (MNMailboxView * self G_GNUC_UNUSED)
gtk_widget_show(dialog);
}}
-#line 496 "mn-mailbox-view.c"
+#line 522 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
void
mn_mailbox_view_activate_remove (MNMailboxView * self)
-#line 502 "mn-mailbox-view.c"
+#line 528 "mn-mailbox-view.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -506,11 +532,11 @@ mn_mailbox_view_activate_remove (MNMailboxView * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 514 "mn-mailbox-view.c"
+#line 540 "mn-mailbox-view.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -523,24 +549,24 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
static void
___real_mn_mailbox_view_activate_remove (MNMailboxView * self G_GNUC_UNUSED)
-#line 530 "mn-mailbox-view.c"
+#line 556 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_remove"
{
-#line 77 "mn-mailbox-view.gob"
+#line 94 "mn-mailbox-view.gob"
self_remove_mailbox(self);
}}
-#line 538 "mn-mailbox-view.c"
+#line 564 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
void
mn_mailbox_view_activate_cut (MNMailboxView * self)
-#line 544 "mn-mailbox-view.c"
+#line 570 "mn-mailbox-view.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -548,11 +574,11 @@ mn_mailbox_view_activate_cut (MNMailboxView * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 556 "mn-mailbox-view.c"
+#line 582 "mn-mailbox-view.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -565,25 +591,25 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
static void
___real_mn_mailbox_view_activate_cut (MNMailboxView * self G_GNUC_UNUSED)
-#line 572 "mn-mailbox-view.c"
+#line 598 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_cut"
{
-#line 83 "mn-mailbox-view.gob"
+#line 100 "mn-mailbox-view.gob"
self_copy_mailbox(self);
self_remove_mailbox(self);
}}
-#line 581 "mn-mailbox-view.c"
+#line 607 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
void
mn_mailbox_view_activate_copy (MNMailboxView * self)
-#line 587 "mn-mailbox-view.c"
+#line 613 "mn-mailbox-view.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -591,11 +617,11 @@ mn_mailbox_view_activate_copy (MNMailboxView * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 599 "mn-mailbox-view.c"
+#line 625 "mn-mailbox-view.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -608,24 +634,24 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
static void
___real_mn_mailbox_view_activate_copy (MNMailboxView * self G_GNUC_UNUSED)
-#line 615 "mn-mailbox-view.c"
+#line 641 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_copy"
{
-#line 90 "mn-mailbox-view.gob"
+#line 107 "mn-mailbox-view.gob"
self_copy_mailbox(self);
}}
-#line 623 "mn-mailbox-view.c"
+#line 649 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
void
mn_mailbox_view_activate_paste (MNMailboxView * self)
-#line 629 "mn-mailbox-view.c"
+#line 655 "mn-mailbox-view.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -633,11 +659,11 @@ mn_mailbox_view_activate_paste (MNMailboxView * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 641 "mn-mailbox-view.c"
+#line 667 "mn-mailbox-view.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -650,87 +676,99 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
static void
___real_mn_mailbox_view_activate_paste (MNMailboxView * self G_GNUC_UNUSED)
-#line 657 "mn-mailbox-view.c"
+#line 683 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_paste"
{
-#line 96 "mn-mailbox-view.gob"
+#line 113 "mn-mailbox-view.gob"
- gtk_clipboard_request_contents(global_clipboard,
- gnome_copied_files_atom,
- self_activate_paste_receive_cb,
- NULL);
- }}
-#line 668 "mn-mailbox-view.c"
-#undef __GOB_FUNCTION__
+ GtkSelectionData *data;
-#line 103 "mn-mailbox-view.gob"
-static void
-mn_mailbox_view_activate_paste_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data)
-#line 674 "mn-mailbox-view.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_paste_receive_cb"
-#line 103 "mn-mailbox-view.gob"
- g_return_if_fail (clipboard != NULL);
-#line 103 "mn-mailbox-view.gob"
- g_return_if_fail (selection_data != NULL);
-#line 681 "mn-mailbox-view.c"
-{
-#line 107 "mn-mailbox-view.gob"
-
- if (selection_data->type == gnome_copied_files_atom
- && selection_data->format == 8
- && selection_data->length > 0)
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_MAILBOXES].atom);
+ if (data)
{
- char *gnome_copied_files;
- gboolean status;
- MNGnomeCopiedFilesType type;
- GSList *uri_list;
+ GSList *configurations;
+ GSList *l;
+
+ memcpy(&configurations, data->data, data->length);
+
+ MN_LIST_FOREACH(l, configurations)
+ {
+ MNMailbox *mailbox;
- gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
- status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
- g_free(gnome_copied_files);
+ mailbox = mn_mailbox_new_from_configuration(l->data);
- if (status)
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+
+ g_object_unref(mailbox);
+ }
+
+ gtk_selection_data_free(data);
+ return;
+ }
+
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_GNOME_COPIED_FILES].atom);
+ if (data)
+ {
+ if (data->format == 8 && data->length > 0)
{
- if (type == MN_GNOME_COPIED_FILES_COPY)
- {
- GSList *new_mailboxes = NULL;
- GSList *l;
-
- MN_LIST_FOREACH(l, uri_list)
- {
- const char *uri = l->data;
-
- if (! mn_mailboxes_find(mn_shell->mailboxes, uri))
- new_mailboxes = g_slist_append(new_mailboxes, g_strdup(uri));
- }
+ char *gnome_copied_files;
+ gboolean status;
+ MNGnomeCopiedFilesType type;
+ GSList *uri_list;
- if (new_mailboxes)
+ gnome_copied_files = g_strndup(data->data, data->length);
+ status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
+ g_free(gnome_copied_files);
+
+ if (status)
+ {
+ if (type == MN_GNOME_COPIED_FILES_COPY)
{
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
- gconf_mailboxes = g_slist_concat(gconf_mailboxes, new_mailboxes);
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
+ GSList *l;
+ GSList *invalid_uri_list = NULL;
+
+ MN_LIST_FOREACH(l, uri_list)
+ {
+ const char *uri = l->data;
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_uri(uri);
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
+ }
+ else
+ invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+ }
+
+ if (invalid_uri_list)
+ {
+ mn_invalid_uri_list_dialog(mn_widget_get_parent_window(GTK_WIDGET(self)), _("A paste error has occurred"), invalid_uri_list);
+ g_slist_free(invalid_uri_list);
+ }
}
+
+ eel_g_slist_free_deep(uri_list);
}
-
- eel_g_slist_free_deep(uri_list);
}
+
+ gtk_selection_data_free(data);
}
}}
-#line 728 "mn-mailbox-view.c"
+#line 766 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
void
mn_mailbox_view_activate_properties (MNMailboxView * self)
-#line 734 "mn-mailbox-view.c"
+#line 772 "mn-mailbox-view.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -738,11 +776,11 @@ mn_mailbox_view_activate_properties (MNMailboxView * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 746 "mn-mailbox-view.c"
+#line 784 "mn-mailbox-view.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -755,58 +793,44 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
static void
___real_mn_mailbox_view_activate_properties (MNMailboxView * self G_GNUC_UNUSED)
-#line 762 "mn-mailbox-view.c"
+#line 800 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_properties"
{
-#line 154 "mn-mailbox-view.gob"
+#line 194 "mn-mailbox-view.gob"
GtkTreeSelection *selection;
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
gtk_tree_selection_selected_foreach(selection, self_activate_properties_cb, self);
}}
-#line 773 "mn-mailbox-view.c"
+#line 811 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 161 "mn-mailbox-view.gob"
+#line 201 "mn-mailbox-view.gob"
static void
mn_mailbox_view_activate_properties_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data)
-#line 779 "mn-mailbox-view.c"
+#line 817 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_properties_cb"
-#line 161 "mn-mailbox-view.gob"
- g_return_if_fail (model != NULL);
-#line 161 "mn-mailbox-view.gob"
- g_return_if_fail (GTK_IS_TREE_MODEL (model));
-#line 161 "mn-mailbox-view.gob"
- g_return_if_fail (path != NULL);
-#line 161 "mn-mailbox-view.gob"
- g_return_if_fail (iter != NULL);
-#line 161 "mn-mailbox-view.gob"
- g_return_if_fail (data != NULL);
-#line 792 "mn-mailbox-view.c"
{
-#line 166 "mn-mailbox-view.gob"
+#line 206 "mn-mailbox-view.gob"
Self *self = data;
- MNURI *uri;
+ MNMailbox *mailbox;
GtkWidget *dialog;
- gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
+ gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
- dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, uri);
+ dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, mailbox);
if (dialog)
gtk_window_present(GTK_WINDOW(dialog));
else
{
- GtkWidget *toplevel;
-
- toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
- dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), uri);
+ dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), mailbox);
g_signal_connect(dialog,
"response",
@@ -817,30 +841,124 @@ mn_mailbox_view_activate_properties_cb (GtkTreeModel * model, GtkTreePath * path
gtk_widget_show(dialog);
}
- g_object_unref(uri);
+ g_object_unref(mailbox);
}}
-#line 823 "mn-mailbox-view.c"
+#line 847 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 323 "mn-mailbox-view.gob"
+#line 370 "mn-mailbox-view.gob"
+static int
+mn_mailbox_view_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data)
+#line 855 "mn-mailbox-view.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:View::sort_cb"
+{
+#line 375 "mn-mailbox-view.gob"
+
+ MNMailbox *mailbox_a;
+ MNMailbox *mailbox_b;
+ int cmp;
+
+ gtk_tree_model_get(model, a, COLUMN_MAILBOX, &mailbox_a, -1);
+ gtk_tree_model_get(model, b, COLUMN_MAILBOX, &mailbox_b, -1);
+
+ cmp = mn_mailboxes_compare_by_name_func(mailbox_a, mailbox_b);
+
+ g_object_unref(mailbox_a);
+ g_object_unref(mailbox_b);
+
+ return cmp;
+ }}
+#line 875 "mn-mailbox-view.c"
+#undef __GOB_FUNCTION__
+
+#line 391 "mn-mailbox-view.gob"
+static gboolean
+mn_mailbox_view_search_equal_cb (GtkTreeModel * model, int column, const char * key, GtkTreeIter * iter, gpointer search_data)
+#line 881 "mn-mailbox-view.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:View::search_equal_cb"
+{
+#line 397 "mn-mailbox-view.gob"
+
+ gboolean status = TRUE;
+ GValue value = { 0, };
+ GValue transformed = { 0, };
+ const char *str;
+ char *normalized_string;
+ char *normalized_key;
+
+ /*
+ * The stock gtk_tree_view_search_equal_func() only searches the
+ * start of the string, using strncmp(). We use strstr(), to
+ * search anywhere inside the string.
+ */
+
+ gtk_tree_model_get_value(model, iter, column, &value);
+
+ g_value_init(&transformed, G_TYPE_STRING);
+
+ if (! g_value_transform(&value, &transformed))
+ {
+ g_value_unset(&value);
+ return TRUE;
+ }
+
+ g_value_unset(&value);
+
+ str = g_value_get_string(&transformed);
+ if (! str)
+ {
+ g_value_unset(&transformed);
+ return TRUE;
+ }
+
+ normalized_string = g_utf8_normalize(str, -1, G_NORMALIZE_ALL);
+ normalized_key = g_utf8_normalize(key, -1, G_NORMALIZE_ALL);
+
+ if (normalized_string && normalized_key)
+ {
+ char *case_normalized_string;
+ char *case_normalized_key;
+
+ case_normalized_string = g_utf8_casefold(normalized_string, -1);
+ case_normalized_key = g_utf8_casefold(normalized_key, -1);
+
+ if (strstr(case_normalized_string, case_normalized_key))
+ status = FALSE;
+
+ g_free(case_normalized_string);
+ g_free(case_normalized_key);
+ }
+
+ g_value_unset (&transformed);
+ g_free(normalized_key);
+ g_free(normalized_string);
+
+ return status;
+ }}
+#line 943 "mn-mailbox-view.c"
+#undef __GOB_FUNCTION__
+
+#line 455 "mn-mailbox-view.gob"
static void
mn_mailbox_view_append (MNMailboxView * self, MNMailbox * mailbox)
-#line 831 "mn-mailbox-view.c"
+#line 949 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::append"
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
g_return_if_fail (mailbox != NULL);
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 842 "mn-mailbox-view.c"
+#line 960 "mn-mailbox-view.c"
{
-#line 325 "mn-mailbox-view.gob"
+#line 457 "mn-mailbox-view.gob"
GtkTreeModel *model;
GtkTreeIter iter;
@@ -849,55 +967,33 @@ mn_mailbox_view_append (MNMailboxView * self, MNMailbox * mailbox)
gtk_list_store_append(GTK_LIST_STORE(model), &iter);
self_update_iter(self, &iter, mailbox);
}}
-#line 853 "mn-mailbox-view.c"
+#line 971 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 334 "mn-mailbox-view.gob"
+#line 466 "mn-mailbox-view.gob"
static void
mn_mailbox_view_mailbox_added_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 859 "mn-mailbox-view.c"
+#line 977 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_added_h"
-#line 334 "mn-mailbox-view.gob"
- g_return_if_fail (mailboxes != NULL);
-#line 334 "mn-mailbox-view.gob"
- g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 334 "mn-mailbox-view.gob"
- g_return_if_fail (mailbox != NULL);
-#line 334 "mn-mailbox-view.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 334 "mn-mailbox-view.gob"
- g_return_if_fail (user_data != NULL);
-#line 872 "mn-mailbox-view.c"
{
-#line 338 "mn-mailbox-view.gob"
+#line 470 "mn-mailbox-view.gob"
Self *self = user_data;
self_append(self, mailbox);
}}
-#line 880 "mn-mailbox-view.c"
+#line 987 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 344 "mn-mailbox-view.gob"
+#line 476 "mn-mailbox-view.gob"
static void
-mn_mailbox_view_mailbox_changed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 886 "mn-mailbox-view.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_changed_h"
-#line 344 "mn-mailbox-view.gob"
- g_return_if_fail (mailboxes != NULL);
-#line 344 "mn-mailbox-view.gob"
- g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 344 "mn-mailbox-view.gob"
- g_return_if_fail (mailbox != NULL);
-#line 344 "mn-mailbox-view.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 344 "mn-mailbox-view.gob"
- g_return_if_fail (user_data != NULL);
-#line 899 "mn-mailbox-view.c"
+mn_mailbox_view_mailbox_notify_h (MNMailboxes * mailboxes, MNMailbox * mailbox, GParamSpec * pspec, gpointer user_data)
+#line 993 "mn-mailbox-view.c"
{
-#line 348 "mn-mailbox-view.gob"
+#define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_notify_h"
+{
+#line 481 "mn-mailbox-view.gob"
Self *self = user_data;
GtkTreeIter iter;
@@ -905,28 +1001,17 @@ mn_mailbox_view_mailbox_changed_h (MNMailboxes * mailboxes, MNMailbox * mailbox,
if (self_find_mailbox(self, mailbox, &iter))
self_update_iter(self, &iter, mailbox);
}}
-#line 909 "mn-mailbox-view.c"
+#line 1005 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 356 "mn-mailbox-view.gob"
+#line 489 "mn-mailbox-view.gob"
static void
mn_mailbox_view_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 915 "mn-mailbox-view.c"
+#line 1011 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_removed_h"
-#line 356 "mn-mailbox-view.gob"
- g_return_if_fail (mailboxes != NULL);
-#line 356 "mn-mailbox-view.gob"
- g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 356 "mn-mailbox-view.gob"
- g_return_if_fail (mailbox != NULL);
-#line 356 "mn-mailbox-view.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 356 "mn-mailbox-view.gob"
- g_return_if_fail (user_data != NULL);
-#line 928 "mn-mailbox-view.c"
{
-#line 360 "mn-mailbox-view.gob"
+#line 493 "mn-mailbox-view.gob"
Self *self = user_data;
GtkTreeIter iter;
@@ -939,75 +1024,119 @@ mn_mailbox_view_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox,
gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
}
}}
-#line 943 "mn-mailbox-view.c"
+#line 1028 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
static void
mn_mailbox_view_update_iter (MNMailboxView * self, GtkTreeIter * iter, MNMailbox * mailbox)
-#line 949 "mn-mailbox-view.c"
+#line 1034 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::update_iter"
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
g_return_if_fail (iter != NULL);
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
g_return_if_fail (mailbox != NULL);
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 962 "mn-mailbox-view.c"
+#line 1047 "mn-mailbox-view.c"
{
-#line 377 "mn-mailbox-view.gob"
+#line 510 "mn-mailbox-view.gob"
- MNMailboxClass *class;
- const char *stock_id;
GtkTreeModel *model;
-
- class = MN_MAILBOX_GET_CLASS(mailbox);
-
- if (MN_URI_IS_SYSTEM_MAILBOX(mailbox->uri))
- stock_id = MN_STOCK_SYSTEM_MAILBOX;
+ char *status;
+ const char *stock_id = NULL;
+ const char *emblem_stock_id = NULL;
+ GdkPixbuf *emblem = NULL;
+ char *markup;
+ char *text;
+
+ if (mailbox->format)
+ {
+ if (mailbox->error)
+ {
+ status = g_strdup_printf(_("unhandled %s mailbox (%s)"), mailbox->format, mailbox->error);
+ emblem_stock_id = MN_STOCK_ERROR;
+ }
+ else
+ {
+ status = g_strdup_printf(_("%s mailbox"), mailbox->format);
+ if (mailbox->must_poll)
+ emblem_stock_id = MN_STOCK_POLLED;
+ }
+ }
else
- {
- if (class->stock_id)
- stock_id = class->stock_id;
- else
- stock_id = MN_URI_IS_LOCAL(mailbox->uri) ? MN_STOCK_LOCAL : MN_STOCK_REMOTE;
- }
+ {
+ if (mailbox->error)
+ {
+ status = g_strdup(mailbox->error);
+ if (strcmp(mailbox->stock_id, MN_STOCK_UNKNOWN))
+ emblem_stock_id = MN_STOCK_UNKNOWN;
+ }
+ else
+ {
+ status = g_strdup(_("detecting mailbox type..."));
+ stock_id = GTK_STOCK_EXECUTE;
+ }
+ }
+
+ if (! stock_id)
+ stock_id = mailbox->stock_id;
+
+ if (emblem_stock_id)
+ emblem = gtk_widget_render_icon(GTK_WIDGET(self),
+ emblem_stock_id,
+ GTK_ICON_SIZE_MENU,
+ NULL);
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>\n%s",
+ mailbox->runtime_name,
+ status);
+ text = g_strdup_printf("%s\n%s", mailbox->runtime_name, status);
+ g_free(status);
model = gtk_tree_view_get_model(GTK_TREE_VIEW(self));
gtk_list_store_set(GTK_LIST_STORE(model), iter,
- COLUMN_URI, mailbox->uri,
- COLUMN_MAILBOX_ICON, stock_id,
- COLUMN_MAILBOX, mn_mailbox_get_name(mailbox),
- COLUMN_FORMAT, class->format,
+ COLUMN_MAILBOX, mailbox,
+ COLUMN_ICON, stock_id,
+ COLUMN_EMBLEM, emblem,
+ COLUMN_PIXBUF, NULL,
+ COLUMN_LABEL, markup,
+ COLUMN_RAW_LABEL, text,
-1);
+
+ if (emblem)
+ g_object_unref(emblem);
+
+ g_free(markup);
+ g_free(text);
}}
-#line 990 "mn-mailbox-view.c"
+#line 1119 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
static gboolean
mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTreeIter * iter)
-#line 996 "mn-mailbox-view.c"
+#line 1125 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::find_mailbox"
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
g_return_val_if_fail (MN_IS_MAILBOX_VIEW (self), (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
g_return_val_if_fail (mailbox != NULL, (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
g_return_val_if_fail (MN_IS_MAILBOX (mailbox), (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
g_return_val_if_fail (iter != NULL, (gboolean )0);
-#line 1009 "mn-mailbox-view.c"
+#line 1138 "mn-mailbox-view.c"
{
-#line 407 "mn-mailbox-view.gob"
+#line 584 "mn-mailbox-view.gob"
GtkTreeModel *model;
GtkTreeIter our_iter;
@@ -1018,12 +1147,12 @@ mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTree
while (valid)
{
- MNURI *uri;
+ MNMailbox *this_mailbox;
gboolean is;
- gtk_tree_model_get(model, &our_iter, COLUMN_URI, &uri, -1);
- is = ! strcmp(uri->text, mailbox->uri->text);
- g_object_unref(uri);
+ gtk_tree_model_get(model, &our_iter, COLUMN_MAILBOX, &this_mailbox, -1);
+ is = mailbox == this_mailbox;
+ g_object_unref(this_mailbox);
if (is)
{
@@ -1036,22 +1165,22 @@ mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTree
return FALSE;
}}
-#line 1040 "mn-mailbox-view.c"
+#line 1169 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 436 "mn-mailbox-view.gob"
+#line 613 "mn-mailbox-view.gob"
static void
mn_mailbox_view_update_sensitivity (MNMailboxView * self)
-#line 1046 "mn-mailbox-view.c"
+#line 1175 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::update_sensitivity"
-#line 436 "mn-mailbox-view.gob"
+#line 613 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 436 "mn-mailbox-view.gob"
+#line 613 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1053 "mn-mailbox-view.c"
+#line 1182 "mn-mailbox-view.c"
{
-#line 438 "mn-mailbox-view.gob"
+#line 615 "mn-mailbox-view.gob"
GtkTreeSelection *selection;
gboolean has_selection;
@@ -1064,215 +1193,171 @@ mn_mailbox_view_update_sensitivity (MNMailboxView * self)
gtk_widget_set_sensitive(selfp->copy_item, has_selection);
gtk_widget_set_sensitive(selfp->properties_item, has_selection);
}}
-#line 1068 "mn-mailbox-view.c"
+#line 1197 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 451 "mn-mailbox-view.gob"
+#line 628 "mn-mailbox-view.gob"
static void
mn_mailbox_view_remove_mailbox (MNMailboxView * self)
-#line 1074 "mn-mailbox-view.c"
+#line 1203 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::remove_mailbox"
-#line 451 "mn-mailbox-view.gob"
+#line 628 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 451 "mn-mailbox-view.gob"
+#line 628 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1081 "mn-mailbox-view.c"
+#line 1210 "mn-mailbox-view.c"
{
-#line 453 "mn-mailbox-view.gob"
+#line 630 "mn-mailbox-view.gob"
GtkTreeSelection *selection;
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
- gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, &gconf_mailboxes);
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
+ gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, NULL);
}}
-#line 1095 "mn-mailbox-view.c"
+#line 1219 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 465 "mn-mailbox-view.gob"
+#line 637 "mn-mailbox-view.gob"
static void
mn_mailbox_view_remove_mailbox_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data)
-#line 1101 "mn-mailbox-view.c"
+#line 1225 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::remove_mailbox_cb"
-#line 465 "mn-mailbox-view.gob"
- g_return_if_fail (model != NULL);
-#line 465 "mn-mailbox-view.gob"
- g_return_if_fail (GTK_IS_TREE_MODEL (model));
-#line 465 "mn-mailbox-view.gob"
- g_return_if_fail (path != NULL);
-#line 465 "mn-mailbox-view.gob"
- g_return_if_fail (iter != NULL);
-#line 465 "mn-mailbox-view.gob"
- g_return_if_fail (data != NULL);
-#line 1114 "mn-mailbox-view.c"
{
-#line 470 "mn-mailbox-view.gob"
+#line 642 "mn-mailbox-view.gob"
- GSList **gconf_mailboxes = data;
- MNURI *uri;
- GSList *elem;
+ MNMailbox *mailbox;
- gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
-
- /* remove all the mailboxes with that URI */
- while ((elem = mn_mailboxes_conf_find_uri(*gconf_mailboxes, uri)))
- *gconf_mailboxes = mn_g_slist_delete_link_deep(*gconf_mailboxes, elem);
-
- g_object_unref(uri);
+ gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+ mn_mailboxes_queue_remove(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
}}
-#line 1130 "mn-mailbox-view.c"
+#line 1237 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 484 "mn-mailbox-view.gob"
+#line 650 "mn-mailbox-view.gob"
static void
mn_mailbox_view_copy_mailbox (MNMailboxView * self)
-#line 1136 "mn-mailbox-view.c"
+#line 1243 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::copy_mailbox"
-#line 484 "mn-mailbox-view.gob"
+#line 650 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 484 "mn-mailbox-view.gob"
+#line 650 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1143 "mn-mailbox-view.c"
+#line 1250 "mn-mailbox-view.c"
{
-#line 486 "mn-mailbox-view.gob"
+#line 652 "mn-mailbox-view.gob"
+ GSList *configurations = NULL;
GtkTreeSelection *selection;
- GSList *uri_list = NULL;
- char *gnome_copied_files;
- const GtkTargetEntry target = { GNOME_COPIED_FILES, 0, 0 };
+ const GtkTargetEntry targets[] = {
+ { clipboard_info[TARGET_MAILBOXES].name, 0, TARGET_MAILBOXES }
+ };
gboolean status;
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
- gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &uri_list);
-
- gnome_copied_files = mn_build_gnome_copied_files(MN_GNOME_COPIED_FILES_COPY, uri_list);
- eel_g_slist_free_deep(uri_list);
+ gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &configurations);
status = gtk_clipboard_set_with_data(global_clipboard,
- &target,
- 1,
+ targets,
+ G_N_ELEMENTS(targets),
self_get_clipboard_cb,
self_clear_clipboard_cb,
- gnome_copied_files);
+ configurations);
g_return_if_fail(status == TRUE);
}}
-#line 1167 "mn-mailbox-view.c"
+#line 1272 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 508 "mn-mailbox-view.gob"
+#line 672 "mn-mailbox-view.gob"
static void
mn_mailbox_view_copy_mailbox_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data)
-#line 1173 "mn-mailbox-view.c"
+#line 1278 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::copy_mailbox_cb"
-#line 508 "mn-mailbox-view.gob"
- g_return_if_fail (model != NULL);
-#line 508 "mn-mailbox-view.gob"
- g_return_if_fail (GTK_IS_TREE_MODEL (model));
-#line 508 "mn-mailbox-view.gob"
- g_return_if_fail (path != NULL);
-#line 508 "mn-mailbox-view.gob"
- g_return_if_fail (iter != NULL);
-#line 508 "mn-mailbox-view.gob"
- g_return_if_fail (data != NULL);
-#line 1186 "mn-mailbox-view.c"
{
-#line 513 "mn-mailbox-view.gob"
+#line 677 "mn-mailbox-view.gob"
- GSList **uri_list = data;
- MNURI *uri;
+ GSList **configurations = data;
+ MNMailbox *mailbox;
- gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
- *uri_list = g_slist_append(*uri_list, g_strdup(uri->text));
- g_object_unref(uri);
+ gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+ *configurations = g_slist_append(*configurations, mn_mailbox_get_configuration(mailbox));
+ g_object_unref(mailbox);
}}
-#line 1197 "mn-mailbox-view.c"
+#line 1291 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 522 "mn-mailbox-view.gob"
+#line 686 "mn-mailbox-view.gob"
static void
mn_mailbox_view_get_clipboard_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, unsigned int info, gpointer user_data_or_owner)
-#line 1203 "mn-mailbox-view.c"
+#line 1297 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::get_clipboard_cb"
-#line 522 "mn-mailbox-view.gob"
- g_return_if_fail (clipboard != NULL);
-#line 522 "mn-mailbox-view.gob"
- g_return_if_fail (selection_data != NULL);
-#line 522 "mn-mailbox-view.gob"
- g_return_if_fail (user_data_or_owner != NULL);
-#line 1212 "mn-mailbox-view.c"
-{
-#line 527 "mn-mailbox-view.gob"
+{
+#line 691 "mn-mailbox-view.gob"
- const char *gnome_copied_files = user_data_or_owner;
- gtk_selection_data_set(selection_data, gnome_copied_files_atom, 8, gnome_copied_files, strlen(gnome_copied_files));
+ const GSList *configurations = user_data_or_owner;
+ unsigned char buf[sizeof(configurations)];
+
+ memcpy(buf, &configurations, sizeof(configurations));
+ gtk_selection_data_set(selection_data,
+ clipboard_info[info].atom,
+ 8,
+ buf,
+ sizeof(buf));
}}
-#line 1219 "mn-mailbox-view.c"
+#line 1313 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 532 "mn-mailbox-view.gob"
+#line 703 "mn-mailbox-view.gob"
static void
mn_mailbox_view_clear_clipboard_cb (GtkClipboard * clipboard, gpointer user_data_or_owner)
-#line 1225 "mn-mailbox-view.c"
+#line 1319 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::clear_clipboard_cb"
-#line 532 "mn-mailbox-view.gob"
- g_return_if_fail (clipboard != NULL);
-#line 532 "mn-mailbox-view.gob"
- g_return_if_fail (user_data_or_owner != NULL);
-#line 1232 "mn-mailbox-view.c"
{
-#line 535 "mn-mailbox-view.gob"
+#line 705 "mn-mailbox-view.gob"
- char *gnome_copied_files = user_data_or_owner;
- g_free(gnome_copied_files);
+ GSList *configurations = user_data_or_owner;
+
+ eel_g_slist_free_deep_custom(configurations, (GFunc) mn_mailbox_configuration_free, NULL);
}}
-#line 1239 "mn-mailbox-view.c"
+#line 1329 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 540 "mn-mailbox-view.gob"
+#line 711 "mn-mailbox-view.gob"
static void
mn_mailbox_view_select_all (MNMailboxView * self)
-#line 1245 "mn-mailbox-view.c"
+#line 1335 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::select_all"
-#line 540 "mn-mailbox-view.gob"
+#line 711 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 540 "mn-mailbox-view.gob"
+#line 711 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1252 "mn-mailbox-view.c"
+#line 1342 "mn-mailbox-view.c"
{
-#line 542 "mn-mailbox-view.gob"
+#line 713 "mn-mailbox-view.gob"
GtkTreeSelection *selection;
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
gtk_tree_selection_select_all(selection);
}}
-#line 1261 "mn-mailbox-view.c"
+#line 1351 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 549 "mn-mailbox-view.gob"
+#line 720 "mn-mailbox-view.gob"
static void
mn_mailbox_view_properties_add_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 1267 "mn-mailbox-view.c"
+#line 1357 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::properties_add_response_h"
-#line 549 "mn-mailbox-view.gob"
- g_return_if_fail (dialog != NULL);
-#line 549 "mn-mailbox-view.gob"
- g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 1274 "mn-mailbox-view.c"
{
-#line 553 "mn-mailbox-view.gob"
+#line 724 "mn-mailbox-view.gob"
if (response == GTK_RESPONSE_HELP)
mn_display_help(GTK_WINDOW(dialog), "mailbox-properties");
@@ -1280,44 +1365,29 @@ mn_mailbox_view_properties_add_response_h (GtkDialog * dialog, int response, gpo
gtk_widget_destroy(GTK_WIDGET(dialog));
else if (response == GTK_RESPONSE_ACCEPT)
{
- MNURI *uri;
+ MNMailbox *mailbox;
- uri = mn_mailbox_properties_dialog_get_current_uri(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
- g_return_if_fail(MN_IS_URI(uri));
-
- if (! mn_mailboxes_find_uri(mn_shell->mailboxes, uri))
- {
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
- gconf_mailboxes = g_slist_append(gconf_mailboxes, g_strdup(uri->text));
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
-
- gtk_widget_destroy(GTK_WIDGET(dialog));
- }
- else
- mn_error_dialog(GTK_WINDOW(dialog), NULL, NULL, _("Unable to add mailbox"), _("The mailbox is already in the list."));
+ mailbox = mn_mailbox_properties_dialog_get_current_mailbox(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
+ g_return_if_fail(MN_IS_MAILBOX(mailbox));
+
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_add(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
- g_object_unref(uri);
+ gtk_widget_destroy(GTK_WIDGET(dialog));
}
}}
-#line 1306 "mn-mailbox-view.c"
+#line 1381 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 583 "mn-mailbox-view.gob"
+#line 744 "mn-mailbox-view.gob"
static void
mn_mailbox_view_properties_edit_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 1312 "mn-mailbox-view.c"
+#line 1387 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::properties_edit_response_h"
-#line 583 "mn-mailbox-view.gob"
- g_return_if_fail (dialog != NULL);
-#line 583 "mn-mailbox-view.gob"
- g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 1319 "mn-mailbox-view.c"
{
-#line 587 "mn-mailbox-view.gob"
+#line 748 "mn-mailbox-view.gob"
if (response == GTK_RESPONSE_HELP)
mn_display_help(GTK_WINDOW(dialog), "mailbox-properties");
@@ -1329,90 +1399,63 @@ mn_mailbox_view_properties_edit_response_h (GtkDialog * dialog, int response, gp
gtk_widget_destroy(GTK_WIDGET(dialog));
}
}}
-#line 1333 "mn-mailbox-view.c"
+#line 1403 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 599 "mn-mailbox-view.gob"
+#line 760 "mn-mailbox-view.gob"
static void
mn_mailbox_view_popup_menu (MNMailboxView * self, unsigned int button, guint32 activate_time)
-#line 1339 "mn-mailbox-view.c"
+#line 1409 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu"
-#line 599 "mn-mailbox-view.gob"
+#line 760 "mn-mailbox-view.gob"
g_return_if_fail (self != NULL);
-#line 599 "mn-mailbox-view.gob"
+#line 760 "mn-mailbox-view.gob"
g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1346 "mn-mailbox-view.c"
+#line 1416 "mn-mailbox-view.c"
{
-#line 601 "mn-mailbox-view.gob"
+#line 762 "mn-mailbox-view.gob"
- gtk_clipboard_request_contents(global_clipboard,
- gnome_copied_files_atom,
- self_popup_menu_receive_cb,
- self);
+ gtk_clipboard_request_targets(global_clipboard, self_popup_menu_targets_received_cb, self);
gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, NULL, NULL, button, activate_time);
}}
-#line 1356 "mn-mailbox-view.c"
+#line 1423 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 609 "mn-mailbox-view.gob"
+#line 767 "mn-mailbox-view.gob"
static void
-mn_mailbox_view_popup_menu_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data)
-#line 1362 "mn-mailbox-view.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu_receive_cb"
-#line 609 "mn-mailbox-view.gob"
- g_return_if_fail (clipboard != NULL);
-#line 609 "mn-mailbox-view.gob"
- g_return_if_fail (selection_data != NULL);
-#line 609 "mn-mailbox-view.gob"
- g_return_if_fail (data != NULL);
-#line 1371 "mn-mailbox-view.c"
+mn_mailbox_view_popup_menu_targets_received_cb (GtkClipboard * clipboard, GdkAtom * atoms, int n_atoms, gpointer data)
+#line 1429 "mn-mailbox-view.c"
{
-#line 613 "mn-mailbox-view.gob"
+#define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu_targets_received_cb"
+{
+#line 772 "mn-mailbox-view.gob"
Self *self = data;
+ int i;
gboolean can_paste = FALSE;
- if (selection_data->type == gnome_copied_files_atom
- && selection_data->format == 8
- && selection_data->length > 0)
- {
- char *gnome_copied_files;
- gboolean status;
- MNGnomeCopiedFilesType type;
- GSList *uri_list;
-
- gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
- status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
- g_free(gnome_copied_files);
-
- if (status)
- {
- if (type == MN_GNOME_COPIED_FILES_COPY && uri_list)
- can_paste = TRUE;
- eel_g_slist_free_deep(uri_list);
- }
- }
+ for (i = 0; i < n_atoms; i++)
+ if (atoms[i] == clipboard_info[TARGET_MAILBOXES].atom
+ || atoms[i] == clipboard_info[TARGET_GNOME_COPIED_FILES].atom)
+ {
+ can_paste = TRUE;
+ break;
+ }
gtk_widget_set_sensitive(selfp->paste_item, can_paste);
}}
-#line 1401 "mn-mailbox-view.c"
+#line 1449 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 641 "mn-mailbox-view.gob"
+#line 788 "mn-mailbox-view.gob"
static gboolean
mn_mailbox_view_popup_menu_h (GtkWidget * widget, gpointer user_data)
-#line 1407 "mn-mailbox-view.c"
+#line 1455 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu_h"
-#line 641 "mn-mailbox-view.gob"
- g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 641 "mn-mailbox-view.gob"
- g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 1414 "mn-mailbox-view.c"
{
-#line 644 "mn-mailbox-view.gob"
+#line 790 "mn-mailbox-view.gob"
Self *self = SELF(widget);
@@ -1421,69 +1464,51 @@ mn_mailbox_view_popup_menu_h (GtkWidget * widget, gpointer user_data)
return TRUE; /* a menu was activated */
}}
-#line 1425 "mn-mailbox-view.c"
+#line 1468 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 653 "mn-mailbox-view.gob"
+#line 799 "mn-mailbox-view.gob"
static gboolean
mn_mailbox_view_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 1431 "mn-mailbox-view.c"
+#line 1474 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::button_press_event_h"
-#line 653 "mn-mailbox-view.gob"
- g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 653 "mn-mailbox-view.gob"
- g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 653 "mn-mailbox-view.gob"
- g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 1440 "mn-mailbox-view.c"
-{
-#line 657 "mn-mailbox-view.gob"
+{
+#line 803 "mn-mailbox-view.gob"
if (event->button == 3)
self_popup_menu(SELF(widget), event->button, event->time);
return FALSE; /* propagate event */
}}
-#line 1449 "mn-mailbox-view.c"
+#line 1485 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 664 "mn-mailbox-view.gob"
+#line 810 "mn-mailbox-view.gob"
static void
mn_mailbox_view_row_activated_h (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * column, gpointer user_data)
-#line 1455 "mn-mailbox-view.c"
+#line 1491 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::row_activated_h"
-#line 664 "mn-mailbox-view.gob"
- g_return_if_fail (treeview != NULL);
-#line 664 "mn-mailbox-view.gob"
- g_return_if_fail (GTK_IS_TREE_VIEW (treeview));
-#line 664 "mn-mailbox-view.gob"
- g_return_if_fail (path != NULL);
-#line 664 "mn-mailbox-view.gob"
- g_return_if_fail (column != NULL);
-#line 664 "mn-mailbox-view.gob"
- g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (column));
-#line 1468 "mn-mailbox-view.c"
{
-#line 669 "mn-mailbox-view.gob"
+#line 815 "mn-mailbox-view.gob"
self_activate_properties(SELF(treeview));
}}
-#line 1474 "mn-mailbox-view.c"
+#line 1499 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
-#line 673 "mn-mailbox-view.gob"
+#line 819 "mn-mailbox-view.gob"
GtkWidget *
mn_mailbox_view_new (void)
-#line 1480 "mn-mailbox-view.c"
+#line 1505 "mn-mailbox-view.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox:View::new"
{
-#line 675 "mn-mailbox-view.gob"
+#line 821 "mn-mailbox-view.gob"
g_return_val_if_fail(mn_shell != NULL, NULL);
return GTK_WIDGET(GET_NEW);
}}
-#line 1489 "mn-mailbox-view.c"
+#line 1514 "mn-mailbox-view.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox-view.gob b/src/mn-mailbox-view.gob
@@ -16,13 +16,15 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
%}
+
%{
#include "config.h"
+#include <string.h>
#include <glib/gi18n.h>
#include <gdk/gdkkeysyms.h>
#include "mn-util.h"
@@ -30,20 +32,37 @@ requires 2.0.10
#include "mn-stock.h"
#include "mn-mailbox-properties-dialog.h"
#include "mn-conf.h"
-#include "mn-uri.h"
-
-#define GNOME_COPIED_FILES "x-special/gnome-copied-files"
+#include "mn-mailbox.h"
+#include "nautilus-cell-renderer-pixbuf-emblem.h"
- enum {
- COLUMN_URI,
- COLUMN_MAILBOX_ICON,
- COLUMN_MAILBOX,
- COLUMN_FORMAT,
- N_COLUMNS
- };
+enum
+{
+ COLUMN_MAILBOX,
+ COLUMN_ICON,
+ COLUMN_EMBLEM,
+ COLUMN_PIXBUF,
+ COLUMN_LABEL,
+ COLUMN_RAW_LABEL,
+ N_COLUMNS
+};
+
+enum
+{
+ TARGET_MAILBOXES,
+ TARGET_GNOME_COPIED_FILES,
+ N_TARGETS
+};
- static GtkClipboard *global_clipboard;
- static GdkAtom gnome_copied_files_atom;
+static struct
+{
+ char *name;
+ GdkAtom atom;
+} clipboard_info[N_TARGETS] = {
+ { "x-special/mail-notification-mailboxes" },
+ { "x-special/gnome-copied-files" }
+};
+
+static GtkClipboard *global_clipboard;
%}
class MN:Mailbox:View from Gtk:Tree:View
@@ -58,11 +77,9 @@ class MN:Mailbox:View from Gtk:Tree:View
signal (ACTION) public NONE (NONE)
void activate_add (self)
{
- GtkWidget *toplevel;
GtkWidget *dialog;
- toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
- dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), NULL);
+ dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), NULL);
g_signal_connect(dialog,
"response",
@@ -94,61 +111,84 @@ class MN:Mailbox:View from Gtk:Tree:View
signal (ACTION) public NONE (NONE)
void activate_paste (self)
{
- gtk_clipboard_request_contents(global_clipboard,
- gnome_copied_files_atom,
- self_activate_paste_receive_cb,
- NULL);
- }
+ GtkSelectionData *data;
- private void
- activate_paste_receive_cb (GtkClipboard *clipboard (check null),
- GtkSelectionData *selection_data (check null),
- gpointer data)
- {
- if (selection_data->type == gnome_copied_files_atom
- && selection_data->format == 8
- && selection_data->length > 0)
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_MAILBOXES].atom);
+ if (data)
{
- char *gnome_copied_files;
- gboolean status;
- MNGnomeCopiedFilesType type;
- GSList *uri_list;
+ GSList *configurations;
+ GSList *l;
+
+ memcpy(&configurations, data->data, data->length);
+
+ MN_LIST_FOREACH(l, configurations)
+ {
+ MNMailbox *mailbox;
- gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
- status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
- g_free(gnome_copied_files);
+ mailbox = mn_mailbox_new_from_configuration(l->data);
+
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+
+ g_object_unref(mailbox);
+ }
- if (status)
+ gtk_selection_data_free(data);
+ return;
+ }
+
+ data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_GNOME_COPIED_FILES].atom);
+ if (data)
+ {
+ if (data->format == 8 && data->length > 0)
{
- if (type == MN_GNOME_COPIED_FILES_COPY)
- {
- GSList *new_mailboxes = NULL;
- GSList *l;
-
- MN_LIST_FOREACH(l, uri_list)
- {
- const char *uri = l->data;
-
- if (! mn_mailboxes_find(mn_shell->mailboxes, uri))
- new_mailboxes = g_slist_append(new_mailboxes, g_strdup(uri));
- }
+ char *gnome_copied_files;
+ gboolean status;
+ MNGnomeCopiedFilesType type;
+ GSList *uri_list;
+
+ gnome_copied_files = g_strndup(data->data, data->length);
+ status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
+ g_free(gnome_copied_files);
- if (new_mailboxes)
+ if (status)
+ {
+ if (type == MN_GNOME_COPIED_FILES_COPY)
{
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
- gconf_mailboxes = g_slist_concat(gconf_mailboxes, new_mailboxes);
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
+ GSList *l;
+ GSList *invalid_uri_list = NULL;
+
+ MN_LIST_FOREACH(l, uri_list)
+ {
+ const char *uri = l->data;
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_uri(uri);
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
+ }
+ else
+ invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+ }
+
+ if (invalid_uri_list)
+ {
+ mn_invalid_uri_list_dialog(mn_widget_get_parent_window(GTK_WIDGET(self)), _("A paste error has occurred"), invalid_uri_list);
+ g_slist_free(invalid_uri_list);
+ }
}
+
+ eel_g_slist_free_deep(uri_list);
}
-
- eel_g_slist_free_deep(uri_list);
}
+
+ gtk_selection_data_free(data);
}
}
-
+
signal (ACTION) public NONE (NONE)
void activate_properties (self)
{
@@ -159,26 +199,23 @@ class MN:Mailbox:View from Gtk:Tree:View
}
private void
- activate_properties_cb (Gtk:Tree:Model *model (check null type),
- GtkTreePath *path (check null),
- GtkTreeIter *iter (check null),
- gpointer data (check null))
+ activate_properties_cb (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data)
{
Self *self = data;
- MNURI *uri;
+ MNMailbox *mailbox;
GtkWidget *dialog;
- gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
+ gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
- dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, uri);
+ dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, mailbox);
if (dialog)
gtk_window_present(GTK_WINDOW(dialog));
else
{
- GtkWidget *toplevel;
-
- toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
- dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), uri);
+ dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), mailbox);
g_signal_connect(dialog,
"response",
@@ -189,15 +226,18 @@ class MN:Mailbox:View from Gtk:Tree:View
gtk_widget_show(dialog);
}
- g_object_unref(uri);
+ g_object_unref(mailbox);
}
class_init (class)
{
GtkBindingSet *binding_set;
+ int i;
global_clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
- gnome_copied_files_atom = gdk_atom_intern(GNOME_COPIED_FILES, FALSE);
+
+ for (i = 0; i < N_TARGETS; i++)
+ clipboard_info[i].atom = gdk_atom_intern(clipboard_info[i].name, FALSE);
binding_set = gtk_binding_set_by_class(class);
@@ -230,7 +270,7 @@ class MN:Mailbox:View from Gtk:Tree:View
GtkTreeViewColumn *column;
GtkCellRenderer *renderer;
GtkTreeSelection *selection;
- GSList *l;
+ GList *l;
/* popup menu */
@@ -258,56 +298,63 @@ class MN:Mailbox:View from Gtk:Tree:View
/* store */
store = gtk_list_store_new(N_COLUMNS,
- MN_TYPE_URI,
+ MN_TYPE_MAILBOX,
G_TYPE_STRING,
+ GDK_TYPE_PIXBUF,
+ GDK_TYPE_PIXBUF,
G_TYPE_STRING,
G_TYPE_STRING);
+
+ gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store),
+ self_sort_cb,
+ NULL,
+ NULL);
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store),
+ GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
+ GTK_SORT_ASCENDING);
+
gtk_tree_view_set_model(GTK_TREE_VIEW(self), GTK_TREE_MODEL(store));
g_object_unref(store);
- /* mailbox column */
-
column = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(column, _("Mailbox"));
- gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
- gtk_tree_view_column_set_sort_column_id(column, COLUMN_MAILBOX);
- renderer = gtk_cell_renderer_pixbuf_new();
+ renderer = nautilus_cell_renderer_pixbuf_emblem_new();
+ g_object_set(renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_add_attribute(column, renderer, "stock-id", COLUMN_MAILBOX_ICON);
+ gtk_tree_view_column_set_attributes(column, renderer,
+ "stock-id", COLUMN_ICON,
+ "pixbuf-emblem", COLUMN_EMBLEM,
+ "pixbuf", COLUMN_PIXBUF,
+ NULL);
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_column_pack_start(column, renderer, TRUE);
- gtk_tree_view_column_add_attribute(column, renderer, "text", COLUMN_MAILBOX);
+ gtk_tree_view_column_add_attribute(column, renderer, "markup", COLUMN_LABEL);
gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
- /* format column */
-
- column = gtk_tree_view_column_new_with_attributes(_("Format"),
- gtk_cell_renderer_text_new(),
- "text", COLUMN_FORMAT,
- NULL);
-
- gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
- gtk_tree_view_column_set_sort_column_id(column, COLUMN_FORMAT);
- gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
-
/* misc */
- gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_MAILBOX);
+ gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_RAW_LABEL);
+ gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(self), self_search_equal_cb, NULL, NULL);
+
+ gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(self), FALSE);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
- MN_LIST_FOREACH(l, mn_mailboxes_get(mn_shell->mailboxes))
+ MN_LIST_FOREACH(l, mn_shell->mailboxes->list)
self_append(self, l->data);
self_update_sensitivity(self);
mn_g_object_connect(self,
mn_shell->mailboxes,
"signal::mailbox-added", self_mailbox_added_h, self,
- "signal::mailbox-changed", self_mailbox_changed_h, self,
+ "signal::mailbox-notify::stock-id", self_mailbox_notify_h, self,
+ "signal::mailbox-notify::must-poll", self_mailbox_notify_h, self,
+ "signal::mailbox-notify::format", self_mailbox_notify_h, self,
+ "signal::mailbox-notify::error", self_mailbox_notify_h, self,
"signal::mailbox-removed", self_mailbox_removed_h, self,
NULL);
@@ -320,6 +367,91 @@ class MN:Mailbox:View from Gtk:Tree:View
NULL);
}
+ private int
+ sort_cb (GtkTreeModel *model,
+ GtkTreeIter *a,
+ GtkTreeIter *b,
+ gpointer user_data)
+ {
+ MNMailbox *mailbox_a;
+ MNMailbox *mailbox_b;
+ int cmp;
+
+ gtk_tree_model_get(model, a, COLUMN_MAILBOX, &mailbox_a, -1);
+ gtk_tree_model_get(model, b, COLUMN_MAILBOX, &mailbox_b, -1);
+
+ cmp = mn_mailboxes_compare_by_name_func(mailbox_a, mailbox_b);
+
+ g_object_unref(mailbox_a);
+ g_object_unref(mailbox_b);
+
+ return cmp;
+ }
+
+ private gboolean
+ search_equal_cb (GtkTreeModel *model,
+ int column,
+ const char *key,
+ GtkTreeIter *iter,
+ gpointer search_data)
+ {
+ gboolean status = TRUE;
+ GValue value = { 0, };
+ GValue transformed = { 0, };
+ const char *str;
+ char *normalized_string;
+ char *normalized_key;
+
+ /*
+ * The stock gtk_tree_view_search_equal_func() only searches the
+ * start of the string, using strncmp(). We use strstr(), to
+ * search anywhere inside the string.
+ */
+
+ gtk_tree_model_get_value(model, iter, column, &value);
+
+ g_value_init(&transformed, G_TYPE_STRING);
+
+ if (! g_value_transform(&value, &transformed))
+ {
+ g_value_unset(&value);
+ return TRUE;
+ }
+
+ g_value_unset(&value);
+
+ str = g_value_get_string(&transformed);
+ if (! str)
+ {
+ g_value_unset(&transformed);
+ return TRUE;
+ }
+
+ normalized_string = g_utf8_normalize(str, -1, G_NORMALIZE_ALL);
+ normalized_key = g_utf8_normalize(key, -1, G_NORMALIZE_ALL);
+
+ if (normalized_string && normalized_key)
+ {
+ char *case_normalized_string;
+ char *case_normalized_key;
+
+ case_normalized_string = g_utf8_casefold(normalized_string, -1);
+ case_normalized_key = g_utf8_casefold(normalized_key, -1);
+
+ if (strstr(case_normalized_string, case_normalized_key))
+ status = FALSE;
+
+ g_free(case_normalized_string);
+ g_free(case_normalized_key);
+ }
+
+ g_value_unset (&transformed);
+ g_free(normalized_key);
+ g_free(normalized_string);
+
+ return status;
+ }
+
private void
append (self, MN:Mailbox *mailbox (check null type))
{
@@ -332,9 +464,9 @@ class MN:Mailbox:View from Gtk:Tree:View
}
private void
- mailbox_added_h (MN:Mailboxes *mailboxes (check null type),
- MN:Mailbox *mailbox (check null type),
- gpointer user_data (check null))
+ mailbox_added_h (MNMailboxes *mailboxes,
+ MNMailbox *mailbox,
+ gpointer user_data)
{
Self *self = user_data;
@@ -342,9 +474,10 @@ class MN:Mailbox:View from Gtk:Tree:View
}
private void
- mailbox_changed_h (MN:Mailboxes *mailboxes (check null type),
- MN:Mailbox *mailbox (check null type),
- gpointer user_data (check null))
+ mailbox_notify_h (MNMailboxes *mailboxes,
+ MNMailbox *mailbox,
+ GParamSpec *pspec,
+ gpointer user_data)
{
Self *self = user_data;
GtkTreeIter iter;
@@ -354,9 +487,9 @@ class MN:Mailbox:View from Gtk:Tree:View
}
private void
- mailbox_removed_h (MN:Mailboxes *mailboxes (check null type),
- MN:Mailbox *mailbox (check null type),
- gpointer user_data (check null))
+ mailbox_removed_h (MNMailboxes *mailboxes,
+ MNMailbox *mailbox,
+ gpointer user_data)
{
Self *self = user_data;
GtkTreeIter iter;
@@ -375,29 +508,73 @@ class MN:Mailbox:View from Gtk:Tree:View
GtkTreeIter *iter (check null),
MN:Mailbox *mailbox (check null type))
{
- MNMailboxClass *class;
- const char *stock_id;
GtkTreeModel *model;
-
- class = MN_MAILBOX_GET_CLASS(mailbox);
-
- if (MN_URI_IS_SYSTEM_MAILBOX(mailbox->uri))
- stock_id = MN_STOCK_SYSTEM_MAILBOX;
+ char *status;
+ const char *stock_id = NULL;
+ const char *emblem_stock_id = NULL;
+ GdkPixbuf *emblem = NULL;
+ char *markup;
+ char *text;
+
+ if (mailbox->format)
+ {
+ if (mailbox->error)
+ {
+ status = g_strdup_printf(_("unhandled %s mailbox (%s)"), mailbox->format, mailbox->error);
+ emblem_stock_id = MN_STOCK_ERROR;
+ }
+ else
+ {
+ status = g_strdup_printf(_("%s mailbox"), mailbox->format);
+ if (mailbox->must_poll)
+ emblem_stock_id = MN_STOCK_POLLED;
+ }
+ }
else
- {
- if (class->stock_id)
- stock_id = class->stock_id;
- else
- stock_id = MN_URI_IS_LOCAL(mailbox->uri) ? MN_STOCK_LOCAL : MN_STOCK_REMOTE;
- }
+ {
+ if (mailbox->error)
+ {
+ status = g_strdup(mailbox->error);
+ if (strcmp(mailbox->stock_id, MN_STOCK_UNKNOWN))
+ emblem_stock_id = MN_STOCK_UNKNOWN;
+ }
+ else
+ {
+ status = g_strdup(_("detecting mailbox type..."));
+ stock_id = GTK_STOCK_EXECUTE;
+ }
+ }
+
+ if (! stock_id)
+ stock_id = mailbox->stock_id;
+
+ if (emblem_stock_id)
+ emblem = gtk_widget_render_icon(GTK_WIDGET(self),
+ emblem_stock_id,
+ GTK_ICON_SIZE_MENU,
+ NULL);
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>\n%s",
+ mailbox->runtime_name,
+ status);
+ text = g_strdup_printf("%s\n%s", mailbox->runtime_name, status);
+ g_free(status);
model = gtk_tree_view_get_model(GTK_TREE_VIEW(self));
gtk_list_store_set(GTK_LIST_STORE(model), iter,
- COLUMN_URI, mailbox->uri,
- COLUMN_MAILBOX_ICON, stock_id,
- COLUMN_MAILBOX, mn_mailbox_get_name(mailbox),
- COLUMN_FORMAT, class->format,
+ COLUMN_MAILBOX, mailbox,
+ COLUMN_ICON, stock_id,
+ COLUMN_EMBLEM, emblem,
+ COLUMN_PIXBUF, NULL,
+ COLUMN_LABEL, markup,
+ COLUMN_RAW_LABEL, text,
-1);
+
+ if (emblem)
+ g_object_unref(emblem);
+
+ g_free(markup);
+ g_free(text);
}
private gboolean
@@ -414,12 +591,12 @@ class MN:Mailbox:View from Gtk:Tree:View
while (valid)
{
- MNURI *uri;
+ MNMailbox *this_mailbox;
gboolean is;
- gtk_tree_model_get(model, &our_iter, COLUMN_URI, &uri, -1);
- is = ! strcmp(uri->text, mailbox->uri->text);
- g_object_unref(uri);
+ gtk_tree_model_get(model, &our_iter, COLUMN_MAILBOX, &this_mailbox, -1);
+ is = mailbox == this_mailbox;
+ g_object_unref(this_mailbox);
if (is)
{
@@ -452,89 +629,83 @@ class MN:Mailbox:View from Gtk:Tree:View
remove_mailbox (self)
{
GtkTreeSelection *selection;
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
- gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, &gconf_mailboxes);
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
+ gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, NULL);
}
private void
- remove_mailbox_cb (Gtk:Tree:Model *model (check null type),
- GtkTreePath *path (check null),
- GtkTreeIter *iter (check null),
- gpointer data (check null))
- {
- GSList **gconf_mailboxes = data;
- MNURI *uri;
- GSList *elem;
+ remove_mailbox_cb (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data)
+ {
+ MNMailbox *mailbox;
- gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
-
- /* remove all the mailboxes with that URI */
- while ((elem = mn_mailboxes_conf_find_uri(*gconf_mailboxes, uri)))
- *gconf_mailboxes = mn_g_slist_delete_link_deep(*gconf_mailboxes, elem);
-
- g_object_unref(uri);
+ gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+ mn_mailboxes_queue_remove(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
}
private void
copy_mailbox (self)
{
+ GSList *configurations = NULL;
GtkTreeSelection *selection;
- GSList *uri_list = NULL;
- char *gnome_copied_files;
- const GtkTargetEntry target = { GNOME_COPIED_FILES, 0, 0 };
+ const GtkTargetEntry targets[] = {
+ { clipboard_info[TARGET_MAILBOXES].name, 0, TARGET_MAILBOXES }
+ };
gboolean status;
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
- gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &uri_list);
-
- gnome_copied_files = mn_build_gnome_copied_files(MN_GNOME_COPIED_FILES_COPY, uri_list);
- eel_g_slist_free_deep(uri_list);
+ gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &configurations);
status = gtk_clipboard_set_with_data(global_clipboard,
- &target,
- 1,
+ targets,
+ G_N_ELEMENTS(targets),
self_get_clipboard_cb,
self_clear_clipboard_cb,
- gnome_copied_files);
+ configurations);
g_return_if_fail(status == TRUE);
}
private void
- copy_mailbox_cb (Gtk:Tree:Model *model (check null type),
- GtkTreePath *path (check null),
- GtkTreeIter *iter (check null),
- gpointer data (check null))
+ copy_mailbox_cb (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data)
{
- GSList **uri_list = data;
- MNURI *uri;
+ GSList **configurations = data;
+ MNMailbox *mailbox;
- gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
- *uri_list = g_slist_append(*uri_list, g_strdup(uri->text));
- g_object_unref(uri);
+ gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+ *configurations = g_slist_append(*configurations, mn_mailbox_get_configuration(mailbox));
+ g_object_unref(mailbox);
}
private void
- get_clipboard_cb (GtkClipboard *clipboard (check null),
- GtkSelectionData *selection_data (check null),
+ get_clipboard_cb (GtkClipboard *clipboard,
+ GtkSelectionData *selection_data,
unsigned int info,
- gpointer user_data_or_owner (check null))
+ gpointer user_data_or_owner)
{
- const char *gnome_copied_files = user_data_or_owner;
- gtk_selection_data_set(selection_data, gnome_copied_files_atom, 8, gnome_copied_files, strlen(gnome_copied_files));
+ const GSList *configurations = user_data_or_owner;
+ unsigned char buf[sizeof(configurations)];
+
+ memcpy(buf, &configurations, sizeof(configurations));
+ gtk_selection_data_set(selection_data,
+ clipboard_info[info].atom,
+ 8,
+ buf,
+ sizeof(buf));
}
private void
- clear_clipboard_cb (GtkClipboard *clipboard (check null),
- gpointer user_data_or_owner (check null))
+ clear_clipboard_cb (GtkClipboard *clipboard, gpointer user_data_or_owner)
{
- char *gnome_copied_files = user_data_or_owner;
- g_free(gnome_copied_files);
+ GSList *configurations = user_data_or_owner;
+
+ eel_g_slist_free_deep_custom(configurations, (GFunc) mn_mailbox_configuration_free, NULL);
}
private void
@@ -547,7 +718,7 @@ class MN:Mailbox:View from Gtk:Tree:View
}
private void
- properties_add_response_h (Gtk:Dialog *dialog (check null type),
+ properties_add_response_h (GtkDialog *dialog,
int response,
gpointer user_data)
{
@@ -557,31 +728,21 @@ class MN:Mailbox:View from Gtk:Tree:View
gtk_widget_destroy(GTK_WIDGET(dialog));
else if (response == GTK_RESPONSE_ACCEPT)
{
- MNURI *uri;
+ MNMailbox *mailbox;
- uri = mn_mailbox_properties_dialog_get_current_uri(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
- g_return_if_fail(MN_IS_URI(uri));
-
- if (! mn_mailboxes_find_uri(mn_shell->mailboxes, uri))
- {
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
- gconf_mailboxes = g_slist_append(gconf_mailboxes, g_strdup(uri->text));
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
-
- gtk_widget_destroy(GTK_WIDGET(dialog));
- }
- else
- mn_error_dialog(GTK_WINDOW(dialog), NULL, NULL, _("Unable to add mailbox"), _("The mailbox is already in the list."));
+ mailbox = mn_mailbox_properties_dialog_get_current_mailbox(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
+ g_return_if_fail(MN_IS_MAILBOX(mailbox));
+
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_add(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
- g_object_unref(uri);
+ gtk_widget_destroy(GTK_WIDGET(dialog));
}
}
private void
- properties_edit_response_h (Gtk:Dialog *dialog (check null type),
+ properties_edit_response_h (GtkDialog *dialog,
int response,
gpointer user_data)
{
@@ -599,48 +760,33 @@ class MN:Mailbox:View from Gtk:Tree:View
private void
popup_menu (self, unsigned int button, guint32 activate_time)
{
- gtk_clipboard_request_contents(global_clipboard,
- gnome_copied_files_atom,
- self_popup_menu_receive_cb,
- self);
+ gtk_clipboard_request_targets(global_clipboard, self_popup_menu_targets_received_cb, self);
gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, NULL, NULL, button, activate_time);
}
private void
- popup_menu_receive_cb (GtkClipboard *clipboard (check null),
- GtkSelectionData *selection_data (check null),
- gpointer data (check null))
+ popup_menu_targets_received_cb (GtkClipboard *clipboard,
+ GdkAtom *atoms,
+ int n_atoms,
+ gpointer data)
{
Self *self = data;
+ int i;
gboolean can_paste = FALSE;
- if (selection_data->type == gnome_copied_files_atom
- && selection_data->format == 8
- && selection_data->length > 0)
- {
- char *gnome_copied_files;
- gboolean status;
- MNGnomeCopiedFilesType type;
- GSList *uri_list;
-
- gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
- status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
- g_free(gnome_copied_files);
-
- if (status)
- {
- if (type == MN_GNOME_COPIED_FILES_COPY && uri_list)
- can_paste = TRUE;
- eel_g_slist_free_deep(uri_list);
- }
- }
+ for (i = 0; i < n_atoms; i++)
+ if (atoms[i] == clipboard_info[TARGET_MAILBOXES].atom
+ || atoms[i] == clipboard_info[TARGET_GNOME_COPIED_FILES].atom)
+ {
+ can_paste = TRUE;
+ break;
+ }
gtk_widget_set_sensitive(selfp->paste_item, can_paste);
}
private gboolean
- popup_menu_h (Gtk:Widget *widget (check null type),
- gpointer user_data)
+ popup_menu_h (GtkWidget *widget, gpointer user_data)
{
Self *self = SELF(widget);
@@ -651,8 +797,8 @@ class MN:Mailbox:View from Gtk:Tree:View
}
private gboolean
- button_press_event_h (Gtk:Widget *widget (check null type),
- GdkEventButton *event (check null),
+ button_press_event_h (GtkWidget *widget,
+ GdkEventButton *event,
gpointer user_data)
{
if (event->button == 3)
@@ -662,9 +808,9 @@ class MN:Mailbox:View from Gtk:Tree:View
}
private void
- row_activated_h (Gtk:Tree:View *treeview (check null type),
- GtkTreePath *path (check null),
- Gtk:Tree:View:Column *column (check null type),
+ row_activated_h (GtkTreeView *treeview,
+ GtkTreePath *path,
+ GtkTreeViewColumn *column,
gpointer user_data)
{
self_activate_properties(SELF(treeview));
diff --git a/src/mn-mailbox-view.h b/src/mn-mailbox-view.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-mailbox.c b/src/mn-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,18 +23,15 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 52 "mn-mailbox.gob"
+#line 48 "mn-mailbox.gob"
#include "config.h"
#include <glib/gi18n.h>
-#ifdef WITH_MBOX
-#include "mn-mbox-mailbox.h"
-#endif
-#ifdef WITH_MH
-#include "mn-mh-mailbox.h"
-#endif
-#ifdef WITH_MAILDIR
-#include "mn-maildir-mailbox.h"
+#include <eel/eel.h>
+#include <libgnomevfs/gnome-vfs.h>
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox.h"
+#include "mn-custom-vfs-mailbox.h"
#endif
#ifdef WITH_POP3
#include "mn-pop3-mailbox.h"
@@ -42,28 +39,25 @@
#ifdef WITH_IMAP
#include "mn-imap-mailbox.h"
#endif
-#ifdef WITH_SYLPHEED
-#include "mn-sylpheed-mailbox.h"
-#endif
#ifdef WITH_GMAIL
#include "mn-gmail-mailbox.h"
#endif
-#include "mn-vfs.h"
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox.h"
+#endif
#include "mn-util.h"
-#include "mn-unsupported-mailbox.h"
-#include "mn-conf.h"
+#include "mn-message.h"
-typedef struct
+struct _MNMailboxConfiguration
{
- MNURI *uri;
- void (*callback) (MNMailbox *self,
- gpointer user_data);
- gpointer user_data;
-} NewInfo;
+ GType type;
+ unsigned int n_parameters;
+ GParameter *parameters;
+};
- GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
-#line 67 "mn-mailbox.c"
+#line 61 "mn-mailbox.c"
/* self casting macros */
#define SELF(x) MN_MAILBOX(x)
#define SELF_CONST(x) MN_MAILBOX_CONST(x)
@@ -83,11 +77,13 @@ static void ___object_get_property (GObject *object, guint property_id, GValue *
static void mn_mailbox_init (MNMailbox * o) G_GNUC_UNUSED;
static void mn_mailbox_class_init (MNMailboxClass * c) G_GNUC_UNUSED;
static void mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new) G_GNUC_UNUSED;
-static void ___a_mn_mailbox_finalize (GObject * object) G_GNUC_UNUSED;
-static gpointer mn_mailbox_new_async_thread (gpointer data) G_GNUC_UNUSED;
-static void mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_mailbox_impl_is (MNMailbox * self, MNURI * uri) G_GNUC_UNUSED;
-static void mn_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
+static GType mn_mailbox_get_type_from_name (const char * type) G_GNUC_UNUSED;
+static MNMailbox * mn_mailbox_parse_obsolete_uri (const char * uri) G_GNUC_UNUSED;
+static gboolean mn_mailbox_validate (MNMailbox * self, GError ** err) G_GNUC_UNUSED;
+static void ___real_mn_mailbox_seal (MNMailbox * self);
+static MNMailbox * mn_mailbox_parse_uri (MNMailbox * self, const char * uri) G_GNUC_UNUSED;
+static gboolean mn_mailbox_import_string (GValue * value, const char * str) G_GNUC_UNUSED;
+static char * mn_mailbox_export_string (const GValue * value) G_GNUC_UNUSED;
/*
* Signal connection wrapper macro shortcuts
@@ -139,8 +135,9 @@ enum {
enum {
PROP_0,
- PROP_URI,
PROP_NAME,
+ PROP_STOCK_ID,
+ PROP_FORMAT,
PROP_MUST_POLL,
PROP_MESSAGES,
PROP_ERROR
@@ -153,26 +150,35 @@ static GObjectClass *parent_class = NULL;
/* Short form macros */
#define self_removed mn_mailbox_removed
-#define self_get_name mn_mailbox_get_name
+#define self_get_stock_id mn_mailbox_get_stock_id
+#define self_set_stock_id mn_mailbox_set_stock_id
+#define self_get_format mn_mailbox_get_format
+#define self_set_format mn_mailbox_set_format
#define self_get_must_poll mn_mailbox_get_must_poll
#define self_set_must_poll mn_mailbox_set_must_poll
#define self_get_messages mn_mailbox_get_messages
#define self_set_messages mn_mailbox_set_messages
#define self_messages_changed mn_mailbox_messages_changed
#define self_set_error mn_mailbox_set_error
-#define self_get_error mn_mailbox_get_error
#define self_init_types mn_mailbox_init_types
-#define self_new_async mn_mailbox_new_async
-#define self_new_async_thread mn_mailbox_new_async_thread
-#define self_set_init_error mn_mailbox_set_init_error
-#define self_monitor mn_mailbox_monitor
-#define self_monitor_cb mn_mailbox_monitor_cb
-#define self_impl_is mn_mailbox_impl_is
-#define self_impl_check mn_mailbox_impl_check
+#define self_get_type_from_name mn_mailbox_get_type_from_name
+#define self_new mn_mailbox_new
+#define self_new_from_xml_node mn_mailbox_new_from_xml_node
+#define self_xml_node_new mn_mailbox_xml_node_new
+#define self_new_from_uri mn_mailbox_new_from_uri
+#define self_new_from_configuration mn_mailbox_new_from_configuration
+#define self_get_configuration mn_mailbox_get_configuration
+#define self_configuration_free mn_mailbox_configuration_free
+#define self_new_from_obsolete_uri mn_mailbox_new_from_obsolete_uri
+#define self_parse_obsolete_uri mn_mailbox_parse_obsolete_uri
+#define self_validate mn_mailbox_validate
+#define self_seal mn_mailbox_seal
+#define self_parse_uri mn_mailbox_parse_uri
#define self_check mn_mailbox_check
-#define self_end_check mn_mailbox_end_check
#define self_notice mn_mailbox_notice
#define self_warning mn_mailbox_warning
+#define self_import_string mn_mailbox_import_string
+#define self_export_string mn_mailbox_export_string
GType
mn_mailbox_get_type (void)
{
@@ -217,43 +223,24 @@ GET_NEW_VARG (const char *first, ...)
static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::dispose"
- MNMailbox *self G_GNUC_UNUSED = MN_MAILBOX (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 130 "mn-mailbox.gob"
- if(self->uri) { g_object_unref ((gpointer) self->uri); self->uri = NULL; }
-#line 229 "mn-mailbox.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
___finalize(GObject *obj_self)
{
#define __GOB_FUNCTION__ "MN:Mailbox::finalize"
MNMailbox *self G_GNUC_UNUSED = MN_MAILBOX (obj_self);
- gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 231 "mn-mailbox.gob"
- ___a_mn_mailbox_finalize(obj_self);
-#line 242 "mn-mailbox.c"
-#line 141 "mn-mailbox.gob"
- if(self->_priv->name) { g_free ((gpointer) self->_priv->name); self->_priv->name = NULL; }
-#line 245 "mn-mailbox.c"
-#line 151 "mn-mailbox.gob"
- if(self->_priv->messages) { mn_g_object_slist_free ((gpointer) self->_priv->messages); self->_priv->messages = NULL; }
-#line 248 "mn-mailbox.c"
-#line 205 "mn-mailbox.gob"
- if(self->_priv->error) { g_free ((gpointer) self->_priv->error); self->_priv->error = NULL; }
-#line 251 "mn-mailbox.c"
-#line 226 "mn-mailbox.gob"
- if(self->_priv->monitor_uri) { g_free ((gpointer) self->_priv->monitor_uri); self->_priv->monitor_uri = NULL; }
-#line 254 "mn-mailbox.c"
-#line 360 "mn-mailbox.gob"
- if(self->_priv->init_error) { g_free ((gpointer) self->_priv->init_error); self->_priv->init_error = NULL; }
-#line 257 "mn-mailbox.c"
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 96 "mn-mailbox.gob"
+ if(self->runtime_name) { g_free ((gpointer) self->runtime_name); self->runtime_name = NULL; }
+#line 235 "mn-mailbox.c"
+#line 98 "mn-mailbox.gob"
+ if(self->name) { g_free ((gpointer) self->name); self->name = NULL; }
+#line 238 "mn-mailbox.c"
+#line 110 "mn-mailbox.gob"
+ if(self->messages) { mn_g_object_slist_free ((gpointer) self->messages); self->messages = NULL; }
+#line 241 "mn-mailbox.c"
+#line 163 "mn-mailbox.gob"
+ if(self->error) { g_free ((gpointer) self->error); self->error = NULL; }
+#line 244 "mn-mailbox.c"
}
#undef __GOB_FUNCTION__
@@ -261,13 +248,6 @@ static void
mn_mailbox_init (MNMailbox * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:Mailbox::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNMailboxPrivate);
-#line 52 "mn-mailbox.gob"
- o->uri = NULL;
-#line 268 "mn-mailbox.c"
-#line 143 "mn-mailbox.gob"
- o->_priv->must_poll = TRUE;
-#line 271 "mn-mailbox.c"
}
#undef __GOB_FUNCTION__
static void
@@ -276,8 +256,6 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
#define __GOB_FUNCTION__ "MN:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
- g_type_class_add_private(c,sizeof(MNMailboxPrivate));
-
parent_class = g_type_class_ref (G_TYPE_OBJECT);
object_signals[REMOVED_SIGNAL] =
@@ -298,53 +276,62 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
G_TYPE_NONE, 1,
G_TYPE_BOOLEAN);
if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailbox.gob line 202: Type mismatch of \"messages_changed\" signal signature");
+ g_error("mn-mailbox.gob line 160: Type mismatch of \"messages_changed\" signal signature");
}
c->removed = NULL;
c->messages_changed = NULL;
-#line 231 "mn-mailbox.gob"
+#line 753 "mn-mailbox.gob"
+ c->seal = ___real_mn_mailbox_seal;
+#line 287 "mn-mailbox.c"
+ c->parse_uri = NULL;
+ c->check = NULL;
g_object_class->finalize = ___finalize;
-#line 309 "mn-mailbox.c"
- c->impl_is = NULL;
- c->impl_check = NULL;
- g_object_class->dispose = ___dispose;
g_object_class->get_property = ___object_get_property;
g_object_class->set_property = ___object_set_property;
{
GParamSpec *param_spec;
- param_spec = g_param_spec_object
- ("uri" /* name */,
+ param_spec = g_param_spec_string
+ ("name" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_NAME,
+ param_spec);
+ param_spec = g_param_spec_string
+ ("stock_id" /* name */,
NULL /* nick */,
- _("The mailbox URI") /* blurb */,
- MN_TYPE_URI /* object_type */,
- (GParamFlags)(G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (g_object_class,
- PROP_URI,
+ PROP_STOCK_ID,
param_spec);
param_spec = g_param_spec_string
- ("name" /* name */,
+ ("format" /* name */,
NULL /* nick */,
- _("The mailbox human-readable name") /* blurb */,
+ NULL /* blurb */,
NULL /* default_value */,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (g_object_class,
- PROP_NAME,
+ PROP_FORMAT,
param_spec);
param_spec = g_param_spec_boolean
("must_poll" /* name */,
NULL /* nick */,
- _("Whether the mailbox has to be polled or not") /* blurb */,
+ NULL /* blurb */,
TRUE /* default_value */,
- (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
g_object_class_install_property (g_object_class,
PROP_MUST_POLL,
param_spec);
param_spec = g_param_spec_pointer
("messages" /* name */,
NULL /* nick */,
- _("The list of new and unread MNMessage objects") /* blurb */,
+ NULL /* blurb */,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (g_object_class,
PROP_MESSAGES,
@@ -352,7 +339,7 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
param_spec = g_param_spec_string
("error" /* name */,
NULL /* nick */,
- _("The mailbox error, if any") /* blurb */,
+ NULL /* blurb */,
NULL /* default_value */,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (g_object_class,
@@ -374,34 +361,37 @@ ___object_set_property (GObject *object,
self = MN_MAILBOX (object);
switch (property_id) {
- case PROP_URI:
+ case PROP_NAME:
{
-#line 135 "mn-mailbox.gob"
-
- g_return_if_fail(self->uri == NULL);
- self->uri = MN_URI(g_value_dup_object(VAL));
- selfp->name = g_strdup(self->uri->human_readable);
-
-#line 386 "mn-mailbox.c"
+#line 99 "mn-mailbox.gob"
+{ char *old = self->name; self->name = g_value_dup_string (VAL); g_free (old); }
+#line 369 "mn-mailbox.c"
}
break;
- case PROP_NAME:
+ case PROP_STOCK_ID:
{
-#line 142 "mn-mailbox.gob"
-{ char *old = self->_priv->name; self->_priv->name = g_value_dup_string (VAL); g_free (old); }
-#line 393 "mn-mailbox.c"
+#line 102 "mn-mailbox.gob"
+{ char *old = self->stock_id; self->stock_id = g_value_dup_string (VAL); g_free (old); }
+#line 376 "mn-mailbox.c"
+ }
+ break;
+ case PROP_FORMAT:
+ {
+#line 105 "mn-mailbox.gob"
+{ char *old = self->format; self->format = g_value_dup_string (VAL); g_free (old); }
+#line 383 "mn-mailbox.c"
}
break;
case PROP_MUST_POLL:
{
-#line 146 "mn-mailbox.gob"
-self->_priv->must_poll = g_value_get_boolean (VAL);
-#line 400 "mn-mailbox.c"
+#line 108 "mn-mailbox.gob"
+self->must_poll = g_value_get_boolean (VAL);
+#line 390 "mn-mailbox.c"
}
break;
case PROP_MESSAGES:
{
-#line 155 "mn-mailbox.gob"
+#line 113 "mn-mailbox.gob"
GSList *messages;
GSList *l;
@@ -410,7 +400,7 @@ self->_priv->must_poll = g_value_get_boolean (VAL);
messages = g_value_get_pointer(VAL);
- MN_LIST_FOREACH(l, selfp->messages)
+ MN_LIST_FOREACH(l, self->messages)
if (! mn_message_slist_find_by_id(messages, l->data))
{
changed = TRUE;
@@ -418,27 +408,34 @@ self->_priv->must_poll = g_value_get_boolean (VAL);
}
MN_LIST_FOREACH(l, messages)
- if (! mn_message_slist_find_by_id(selfp->messages, l->data))
+ if (! mn_message_slist_find_by_id(self->messages, l->data))
{
changed = TRUE;
has_new = TRUE;
break;
}
- mn_g_object_slist_free(selfp->messages);
- selfp->messages = mn_g_object_slist_copy(messages);
+ mn_g_object_slist_free(self->messages);
+ self->messages = mn_g_object_slist_copy(messages);
if (changed)
self_messages_changed(self, has_new);
-#line 435 "mn-mailbox.c"
+#line 425 "mn-mailbox.c"
}
break;
case PROP_ERROR:
{
-#line 206 "mn-mailbox.gob"
-{ char *old = self->_priv->error; self->_priv->error = g_value_dup_string (VAL); g_free (old); }
-#line 442 "mn-mailbox.c"
+#line 166 "mn-mailbox.gob"
+
+ g_free(self->error);
+ self->error = g_value_dup_string(VAL);
+
+ /* if an error is set, we unset messages */
+ if (self->error)
+ self_set_messages(self, NULL);
+
+#line 439 "mn-mailbox.c"
}
break;
default:
@@ -467,32 +464,48 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_NAME:
{
-#line 142 "mn-mailbox.gob"
-g_value_set_string (VAL, self->_priv->name);
-#line 473 "mn-mailbox.c"
+#line 99 "mn-mailbox.gob"
+g_value_set_string (VAL, self->name);
+#line 470 "mn-mailbox.c"
+ }
+ break;
+ case PROP_STOCK_ID:
+ {
+#line 102 "mn-mailbox.gob"
+g_value_set_string (VAL, self->stock_id);
+#line 477 "mn-mailbox.c"
+ }
+ break;
+ case PROP_FORMAT:
+ {
+#line 105 "mn-mailbox.gob"
+g_value_set_string (VAL, self->format);
+#line 484 "mn-mailbox.c"
}
break;
case PROP_MUST_POLL:
{
-#line 146 "mn-mailbox.gob"
-g_value_set_boolean (VAL, self->_priv->must_poll);
-#line 480 "mn-mailbox.c"
+#line 108 "mn-mailbox.gob"
+g_value_set_boolean (VAL, self->must_poll);
+#line 491 "mn-mailbox.c"
}
break;
case PROP_MESSAGES:
{
-#line 185 "mn-mailbox.gob"
+#line 143 "mn-mailbox.gob"
- g_value_set_pointer(VAL, selfp->messages);
+ g_value_set_pointer(VAL, self->messages);
-#line 489 "mn-mailbox.c"
+#line 500 "mn-mailbox.c"
}
break;
case PROP_ERROR:
{
-#line 206 "mn-mailbox.gob"
-g_value_set_string (VAL, self->_priv->error);
-#line 496 "mn-mailbox.c"
+#line 175 "mn-mailbox.gob"
+
+ g_value_set_string(VAL, self->error);
+
+#line 509 "mn-mailbox.c"
}
break;
default:
@@ -516,10 +529,10 @@ g_value_set_string (VAL, self->_priv->error);
* This signal gets emitted after the mailbox is removed from the
* mailboxes list.
**/
-#line 127 "mn-mailbox.gob"
+#line 93 "mn-mailbox.gob"
void
mn_mailbox_removed (MNMailbox * self)
-#line 523 "mn-mailbox.c"
+#line 536 "mn-mailbox.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -527,11 +540,11 @@ mn_mailbox_removed (MNMailbox * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 127 "mn-mailbox.gob"
+#line 93 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 127 "mn-mailbox.gob"
+#line 93 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 535 "mn-mailbox.c"
+#line 548 "mn-mailbox.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -545,79 +558,114 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 143 "mn-mailbox.gob"
-const char *
-mn_mailbox_get_name (MNMailbox * self)
-#line 552 "mn-mailbox.c"
+#line 102 "mn-mailbox.gob"
+gchar *
+mn_mailbox_get_stock_id (MNMailbox * self)
+#line 565 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::get_name"
-#line 143 "mn-mailbox.gob"
- g_return_val_if_fail (self != NULL, (const char * )0);
-#line 143 "mn-mailbox.gob"
- g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 559 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::get_stock_id"
{
-#line 143 "mn-mailbox.gob"
- return selfp->name; }}
-#line 563 "mn-mailbox.c"
+#line 102 "mn-mailbox.gob"
+ gchar* val; g_object_get (G_OBJECT (self), "stock_id", &val, NULL); return val;
+}}
+#line 572 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 102 "mn-mailbox.gob"
+void
+mn_mailbox_set_stock_id (MNMailbox * self, gchar * val)
+#line 578 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::set_stock_id"
+{
+#line 102 "mn-mailbox.gob"
+ g_object_set (G_OBJECT (self), "stock_id", val, NULL);
+}}
+#line 585 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 105 "mn-mailbox.gob"
+gchar *
+mn_mailbox_get_format (MNMailbox * self)
+#line 591 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::get_format"
+{
+#line 105 "mn-mailbox.gob"
+ gchar* val; g_object_get (G_OBJECT (self), "format", &val, NULL); return val;
+}}
+#line 598 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 105 "mn-mailbox.gob"
+void
+mn_mailbox_set_format (MNMailbox * self, gchar * val)
+#line 604 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::set_format"
+{
+#line 105 "mn-mailbox.gob"
+ g_object_set (G_OBJECT (self), "format", val, NULL);
+}}
+#line 611 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
gboolean
mn_mailbox_get_must_poll (MNMailbox * self)
-#line 569 "mn-mailbox.c"
+#line 617 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::get_must_poll"
{
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
gboolean val; g_object_get (G_OBJECT (self), "must_poll", &val, NULL); return val;
}}
-#line 576 "mn-mailbox.c"
+#line 624 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
void
mn_mailbox_set_must_poll (MNMailbox * self, gboolean val)
-#line 582 "mn-mailbox.c"
+#line 630 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::set_must_poll"
{
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
g_object_set (G_OBJECT (self), "must_poll", val, NULL);
}}
-#line 589 "mn-mailbox.c"
+#line 637 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 185 "mn-mailbox.gob"
-gpointer
+#line 143 "mn-mailbox.gob"
+const GSList *
mn_mailbox_get_messages (MNMailbox * self)
-#line 595 "mn-mailbox.c"
+#line 643 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::get_messages"
{
-#line 152 "mn-mailbox.gob"
- gpointer val; g_object_get (G_OBJECT (self), "messages", &val, NULL); return val;
+#line 111 "mn-mailbox.gob"
+ const GSList* val; g_object_get (G_OBJECT (self), "messages", &val, NULL); return val;
}}
-#line 602 "mn-mailbox.c"
+#line 650 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 155 "mn-mailbox.gob"
+#line 113 "mn-mailbox.gob"
void
-mn_mailbox_set_messages (MNMailbox * self, gpointer val)
-#line 608 "mn-mailbox.c"
+mn_mailbox_set_messages (MNMailbox * self, const GSList * val)
+#line 656 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::set_messages"
{
-#line 152 "mn-mailbox.gob"
+#line 111 "mn-mailbox.gob"
g_object_set (G_OBJECT (self), "messages", val, NULL);
}}
-#line 615 "mn-mailbox.c"
+#line 663 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 202 "mn-mailbox.gob"
+#line 160 "mn-mailbox.gob"
static void
mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
-#line 621 "mn-mailbox.c"
+#line 669 "mn-mailbox.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -625,11 +673,11 @@ mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 202 "mn-mailbox.gob"
+#line 160 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 202 "mn-mailbox.gob"
+#line 160 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 633 "mn-mailbox.c"
+#line 681 "mn-mailbox.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -648,19 +696,19 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[1]);
}
-#line 207 "mn-mailbox.gob"
+#line 179 "mn-mailbox.gob"
void
mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
-#line 655 "mn-mailbox.c"
+#line 703 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::set_error"
-#line 207 "mn-mailbox.gob"
+#line 179 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 207 "mn-mailbox.gob"
+#line 179 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 662 "mn-mailbox.c"
+#line 710 "mn-mailbox.c"
{
-#line 209 "mn-mailbox.gob"
+#line 181 "mn-mailbox.gob"
va_list args;
char *error = NULL;
@@ -675,73 +723,28 @@ mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
g_object_set(G_OBJECT(self), MN_MAILBOX_PROP_ERROR(error), NULL);
g_free(error);
}}
-#line 679 "mn-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 223 "mn-mailbox.gob"
-const char *
-mn_mailbox_get_error (MNMailbox * self)
-#line 685 "mn-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::get_error"
-#line 223 "mn-mailbox.gob"
- g_return_val_if_fail (self != NULL, (const char * )0);
-#line 223 "mn-mailbox.gob"
- g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 692 "mn-mailbox.c"
-{
-#line 223 "mn-mailbox.gob"
- return selfp->error; }}
-#line 696 "mn-mailbox.c"
+#line 727 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 231 "mn-mailbox.gob"
-static void
-___a_mn_mailbox_finalize (GObject * object G_GNUC_UNUSED)
-#line 702 "mn-mailbox.c"
-#define PARENT_HANDLER(___object) \
- { if(G_OBJECT_CLASS(parent_class)->finalize) \
- (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::finalize"
-#line 231 "mn-mailbox.gob"
- g_return_if_fail (object != NULL);
-#line 231 "mn-mailbox.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 712 "mn-mailbox.c"
-{
-#line 233 "mn-mailbox.gob"
-
- Self *self = SELF(object);
-
- if (selfp->monitor_handle)
- gnome_vfs_monitor_cancel(selfp->monitor_handle);
-
- PARENT_HANDLER(object);
- }}
-#line 723 "mn-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 242 "mn-mailbox.gob"
+#line 196 "mn-mailbox.gob"
void
mn_mailbox_init_types (void)
-#line 730 "mn-mailbox.c"
+#line 733 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::init_types"
{
-#line 244 "mn-mailbox.gob"
+#line 198 "mn-mailbox.gob"
int i = 0;
-#ifdef WITH_MBOX
- mn_mailbox_types[i++] = MN_TYPE_MBOX_MAILBOX;
-#endif
-#ifdef WITH_MH
- mn_mailbox_types[i++] = MN_TYPE_MH_MAILBOX;
-#endif
-#ifdef WITH_MAILDIR
- mn_mailbox_types[i++] = MN_TYPE_MAILDIR_MAILBOX;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ /*
+ * MNSystemVFSMailbox must be registered before
+ * MNCustomVFSMailbox, because the latter's parse_uri() method
+ * will accept any URI.
+ */
+ mn_mailbox_types[i++] = MN_TYPE_SYSTEM_VFS_MAILBOX;
+ mn_mailbox_types[i++] = MN_TYPE_CUSTOM_VFS_MAILBOX;
#endif
#ifdef WITH_POP3
mn_mailbox_types[i++] = MN_TYPE_POP3_MAILBOX;
@@ -749,384 +752,748 @@ mn_mailbox_init_types (void)
#ifdef WITH_IMAP
mn_mailbox_types[i++] = MN_TYPE_IMAP_MAILBOX;
#endif
-#ifdef WITH_SYLPHEED
- mn_mailbox_types[i++] = MN_TYPE_SYLPHEED_MAILBOX;
-#endif
#ifdef WITH_GMAIL
mn_mailbox_types[i++] = MN_TYPE_GMAIL_MAILBOX;
#endif
+#ifdef WITH_EVOLUTION
+ mn_mailbox_types[i++] = MN_TYPE_EVOLUTION_MAILBOX;
+#endif
mn_mailbox_types[i] = 0;
}}
-#line 761 "mn-mailbox.c"
+#line 764 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-/**
- * mn_mailbox_new_async:
- * @uri: location of the mailbox
- * @callback: a function like
- * "void (callback) (#MNMailbox *self, gpointer user_data)"
- * @user_data: data to pass to @callback
- *
- * Creates a new #MNMailbox asynchronously. The newly created
- * #MNMailbox will be passed to @callback.
- **/
-#line 281 "mn-mailbox.gob"
-void
-mn_mailbox_new_async (MNURI * uri, gpointer callback, gpointer user_data)
-#line 777 "mn-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::new_async"
-#line 281 "mn-mailbox.gob"
- g_return_if_fail (uri != NULL);
-#line 281 "mn-mailbox.gob"
- g_return_if_fail (MN_IS_URI (uri));
-#line 281 "mn-mailbox.gob"
- g_return_if_fail (callback != NULL);
-#line 786 "mn-mailbox.c"
-{
-#line 285 "mn-mailbox.gob"
+#line 225 "mn-mailbox.gob"
+static GType
+mn_mailbox_get_type_from_name (const char * type)
+#line 770 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::get_type_from_name"
+{
+#line 227 "mn-mailbox.gob"
- NewInfo *info;
+ int i;
- info = g_new(NewInfo, 1);
- info->uri = g_object_ref(uri);
- info->callback = callback;
- info->user_data = user_data;
+ for (i = 0; mn_mailbox_types[i]; i++)
+ {
+ SelfClass *class;
- mn_thread_create(self_new_async_thread, info);
+ class = g_type_class_peek(mn_mailbox_types[i]);
+ g_return_val_if_fail(class != NULL, 0);
+
+ if (! strcmp(class->type, type))
+ return mn_mailbox_types[i];
+ }
+
+ return 0;
}}
-#line 799 "mn-mailbox.c"
+#line 791 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 296 "mn-mailbox.gob"
-static gpointer
-mn_mailbox_new_async_thread (gpointer data)
-#line 805 "mn-mailbox.c"
+#line 244 "mn-mailbox.gob"
+MNMailbox *
+mn_mailbox_new (const char * type, const char * first, ...)
+#line 797 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::new_async_thread"
+#define __GOB_FUNCTION__ "MN:Mailbox::new"
{
-#line 298 "mn-mailbox.gob"
+#line 246 "mn-mailbox.gob"
- NewInfo *info = data;
- Self *mailbox = NULL;
+ va_list args;
+ GType type_id;
+ GObject *object;
+
+ g_return_val_if_fail(type != NULL, NULL);
+
+ type_id = self_get_type_from_name(type);
+ if (! type_id)
+ return NULL;
+
+ va_start(args, first);
+ object = g_object_new_valist(type_id, first, args);
+ va_end(args);
- if (info->uri->vfs)
+ return SELF(object);
+ }}
+#line 819 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 264 "mn-mailbox.gob"
+MNMailbox *
+mn_mailbox_new_from_xml_node (xmlNode * node, GError ** err)
+#line 825 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_xml_node"
+{
+#line 266 "mn-mailbox.gob"
+
+ char *type;
+ Self *self = NULL;
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
+
+ g_return_val_if_fail(node != NULL, NULL);
+
+ type = xmlGetProp(node, "type");
+ if (! type)
{
- if (! mn_vfs_test(info->uri->vfs, G_FILE_TEST_EXISTS))
- mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
+ g_set_error(err, 0, 0, _("\"type\" attribute missing"));
+ return NULL;
}
- if (! mailbox)
+ self = self_new(type, NULL);
+ if (! self)
{
- int i;
-
- for (i = 0; mn_mailbox_types[i]; i++)
- {
- SelfClass *class;
-
- class = g_type_class_peek(mn_mailbox_types[i]);
- g_return_val_if_fail(class != NULL, NULL);
-
- if (class->impl_is(NULL, info->uri))
- {
- mailbox = g_object_new(mn_mailbox_types[i], MN_MAILBOX_PROP_URI(G_OBJECT(info->uri)), NULL);
- if (mailbox->_priv->init_error)
- {
- MNMailbox *old_mailbox;
-
- old_mailbox = mailbox;
- mailbox = mn_unsupported_mailbox_new(info->uri, old_mailbox->_priv->init_error);
- g_object_unref(old_mailbox);
- }
-
- break;
- }
- }
+ g_set_error(err, 0, 0, _("unknown mailbox type \"%s\""), type);
+ goto end;
}
- if (! mailbox)
- mailbox = mn_unsupported_mailbox_new(info->uri, _("unknown format"));
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+ {
+ char *content;
- GDK_THREADS_ENTER();
+ content = xmlGetProp(node, g_param_spec_get_name(properties[i]));
+ if (content)
+ {
+ GValue value = { 0, };
- info->callback(mailbox, info->user_data);
+ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
- /*
- * A note on gdk_flush(): as adviced in the GDK threads
- * documentation, we only call gdk_flush() from a thread other
- * than our main thread (so we do not call it in idle and timeout
- * callbacks).
- */
- gdk_flush();
- GDK_THREADS_LEAVE();
+ if (self_import_string(&value, content))
+ g_object_set_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+ else
+ g_warning(_("property \"%s\": unable to transform string \"%s\" into a value of type \"%s\""),
+ g_param_spec_get_name(properties[i]), content, G_VALUE_TYPE_NAME(&value));
- /* mailbox is now owned by the callback, do not unref it */
+ g_value_unset(&value);
+ xmlFree(content);
+ }
+ }
+ g_free(properties);
+
+ if (! self_validate(self, err))
+ {
+ g_object_unref(self);
+ self = NULL;
+ }
- g_object_unref(info->uri);
- g_free(info);
+ end:
+ g_free(type);
+ return self;
+ }}
+#line 888 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 325 "mn-mailbox.gob"
+xmlNode *
+mn_mailbox_xml_node_new (MNMailbox * self)
+#line 894 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::xml_node_new"
+#line 325 "mn-mailbox.gob"
+ g_return_val_if_fail (self != NULL, (xmlNode * )0);
+#line 325 "mn-mailbox.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX (self), (xmlNode * )0);
+#line 901 "mn-mailbox.c"
+{
+#line 327 "mn-mailbox.gob"
+
+ xmlNode *node;
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
+
+ node = xmlNewNode(NULL, "mailbox");
+ xmlSetProp(node, "type", SELF_GET_CLASS(self)->type);
+
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+ {
+ GValue value = { 0, };
+ gboolean is_default;
+
+ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+ g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_IGNORE_CASE) != 0)
+ {
+ GValue default_value = { 0, };
+ const char *str;
+ const char *default_str;
+
+ g_assert(G_IS_PARAM_SPEC_STRING(properties[i]));
+
+ g_value_init(&default_value, G_TYPE_STRING);
+ g_param_value_set_default(properties[i], &default_value);
+
+ str = g_value_get_string(&value);
+ default_str = g_value_get_string(&default_value);
+
+ is_default = str && default_str && ! mn_utf8_strcasecmp(str, default_str);
+
+ g_value_unset(&default_value);
+ }
+ else
+ is_default = g_param_value_defaults(properties[i], &value);
+
+ if (! is_default)
+ {
+ char *str;
+
+ str = self_export_string(&value);
+ xmlSetProp(node, g_param_spec_get_name(properties[i]), str);
+ g_free(str);
+ }
+
+ g_value_unset(&value);
+ }
+ g_free(properties);
+
+ return node;
+ }}
+#line 959 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 383 "mn-mailbox.gob"
+MNMailbox *
+mn_mailbox_new_from_uri (const char * uri)
+#line 965 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_uri"
+#line 383 "mn-mailbox.gob"
+ g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
+#line 970 "mn-mailbox.c"
+{
+#line 385 "mn-mailbox.gob"
+
+ int i;
+
+ for (i = 0; mn_mailbox_types[i]; i++)
+ {
+ MNMailboxClass *class;
+
+ class = g_type_class_peek(mn_mailbox_types[i]);
+ g_return_val_if_fail(class != NULL, NULL);
+
+ if (class->parse_uri)
+ {
+ MNMailbox *mailbox;
+ mailbox = class->parse_uri(NULL, uri);
+ if (mailbox)
+ return mailbox;
+ }
+ }
+
return NULL;
}}
-#line 871 "mn-mailbox.c"
+#line 995 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 361 "mn-mailbox.gob"
-void
-mn_mailbox_set_init_error (MNMailbox * self, const char * format, ...)
-#line 877 "mn-mailbox.c"
+#line 408 "mn-mailbox.gob"
+MNMailbox *
+mn_mailbox_new_from_configuration (MNMailboxConfiguration * config)
+#line 1001 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::set_init_error"
-#line 361 "mn-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 361 "mn-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (self));
-#line 361 "mn-mailbox.gob"
- g_return_if_fail (format != NULL);
-#line 886 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_configuration"
+#line 408 "mn-mailbox.gob"
+ g_return_val_if_fail (config != NULL, (MNMailbox * )0);
+#line 1006 "mn-mailbox.c"
{
-#line 363 "mn-mailbox.gob"
+#line 410 "mn-mailbox.gob"
- va_list args;
+ return g_object_newv(config->type, config->n_parameters, config->parameters);
+ }}
+#line 1012 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
- g_return_if_fail(selfp->init_error == NULL);
+#line 414 "mn-mailbox.gob"
+MNMailboxConfiguration *
+mn_mailbox_get_configuration (MNMailbox * self)
+#line 1018 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::get_configuration"
+#line 414 "mn-mailbox.gob"
+ g_return_val_if_fail (self != NULL, (MNMailboxConfiguration * )0);
+#line 414 "mn-mailbox.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX (self), (MNMailboxConfiguration * )0);
+#line 1025 "mn-mailbox.c"
+{
+#line 416 "mn-mailbox.gob"
+
+ GObject *object = G_OBJECT(self);
+ GArray *parameters;
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
+ MNMailboxConfiguration *config;
+
+ parameters = g_array_new(FALSE, FALSE, sizeof(GParameter));
+
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+ {
+ GParameter parameter = { NULL, { 0, } };
+
+ parameter.name = g_param_spec_get_name(properties[i]);
+
+ g_value_init(¶meter.value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+ g_object_get_property(object, parameter.name, ¶meter.value);
+
+ g_array_append_val(parameters, parameter);
+ }
+ g_free(properties);
- va_start(args, format);
- selfp->init_error = g_strdup_vprintf(format, args);
- va_end(args);
+ config = g_new0(MNMailboxConfiguration, 1);
+ config->type = G_OBJECT_TYPE(self);
+ config->n_parameters = parameters->len;
+ config->parameters = (GParameter *) g_array_free(parameters, FALSE);
+
+ return config;
}}
-#line 898 "mn-mailbox.c"
+#line 1060 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 373 "mn-mailbox.gob"
+#line 449 "mn-mailbox.gob"
void
-mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType monitor_type, MNMailboxMonitorEventType events)
-#line 904 "mn-mailbox.c"
+mn_mailbox_configuration_free (MNMailboxConfiguration * config)
+#line 1066 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::monitor"
-#line 373 "mn-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 373 "mn-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (self));
-#line 373 "mn-mailbox.gob"
- g_return_if_fail (uri != NULL);
-#line 913 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::configuration_free"
+#line 449 "mn-mailbox.gob"
+ g_return_if_fail (config != NULL);
+#line 1071 "mn-mailbox.c"
{
-#line 378 "mn-mailbox.gob"
+#line 451 "mn-mailbox.gob"
- GnomeVFSResult result;
+ int i;
- g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
- g_return_if_fail(selfp->monitor_handle == NULL);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
+ for (i = 0; i < config->n_parameters; i++)
+ g_value_unset(&config->parameters[i].value);
- result = gnome_vfs_monitor_add(&selfp->monitor_handle,
- uri,
- monitor_type,
- self_monitor_cb,
- self);
+ g_free(config->parameters);
+ g_free(config);
+ }}
+#line 1083 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
- GDK_THREADS_ENTER();
-
- if (result == GNOME_VFS_OK)
+#line 461 "mn-mailbox.gob"
+MNMailbox *
+mn_mailbox_new_from_obsolete_uri (const char * uri)
+#line 1089 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_obsolete_uri"
+#line 461 "mn-mailbox.gob"
+ g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
+#line 1094 "mn-mailbox.c"
+{
+#line 463 "mn-mailbox.gob"
+
+ char *real_uri;
+ char *scheme;
+ gboolean obsolete = FALSE;
+ Self *self = NULL;
+
+ real_uri = g_str_has_prefix(uri, "pop3:") /* also handle very old pop3 locators */
+ ? g_strconcat("pop://", uri + 5, NULL)
+ : g_strdup(uri);
+
+ scheme = gnome_vfs_get_uri_scheme(real_uri);
+ if (scheme)
{
- selfp->monitor_uri = g_strdup(uri);
- selfp->monitor_events = events;
- self_set_must_poll(self, FALSE);
+ if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops")
+ || ! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps")
+ || ! strcmp(scheme, "gmail"))
+ obsolete = TRUE;
+ g_free(scheme);
}
- else
- {
- self_warning(self, _("unable to enable immediate notification: %s"), gnome_vfs_result_to_string(result));
- if (! eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
- {
- static gboolean first_time = TRUE;
-
- if (first_time)
- {
- int minutes;
- int seconds;
- char *str;
-
- first_time = FALSE;
-
- minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
- seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
-
- if (minutes == 0)
- str = g_strdup_printf(ngettext("As a fallback, they will be "
- "checked every %i second (this "
- "delay is configurable from the "
- "Properties Dialog).",
- "As a fallback, they will be "
- "checked every %i seconds (this "
- "delay is configurable from the "
- "Properties Dialog).",
- seconds),
- seconds);
- else if (seconds == 0)
- str = g_strdup_printf(ngettext("As a fallback, they will be "
- "checked every %i minute (this "
- "delay is configurable from the "
- "Properties Dialog).",
- "As a fallback, they will be "
- "checked every %i minutes (this "
- "delay is configurable from the "
- "Properties Dialog).",
- minutes),
- minutes);
- else
- str = g_strdup_printf(ngettext("As a fallback, they will be "
- "checked approximately every %i "
- "minute (this delay is "
- "configurable from the "
- "Properties Dialog).",
- "As a fallback, they will be "
- "checked approximately every %i "
- "minutes (this delay is "
- "configurable from the "
- "Properties Dialog).",
- minutes),
- minutes);
-
- mn_error_dialog(NULL,
- MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
- "immediate-notification",
- _("A monitoring error has occurred"),
- _("Mail Notification was unable to enable immediate "
- "notification for one or more mailboxes. %s"), str);
- g_free(str);
- }
- }
+ self = obsolete ? self_parse_obsolete_uri(real_uri) : self_new_from_uri(real_uri);
+ g_free(real_uri);
+
+ if (self && ! self_validate(self, NULL))
+ {
+ g_object_unref(self);
+ self = NULL;
}
+
+ return self;
}}
-#line 1005 "mn-mailbox.c"
+#line 1128 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 468 "mn-mailbox.gob"
-static void
-mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
-#line 1011 "mn-mailbox.c"
+#line 495 "mn-mailbox.gob"
+static MNMailbox *
+mn_mailbox_parse_obsolete_uri (const char * uri)
+#line 1134 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::monitor_cb"
-#line 468 "mn-mailbox.gob"
- g_return_if_fail (user_data != NULL);
-#line 1016 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::parse_obsolete_uri"
+#line 495 "mn-mailbox.gob"
+ g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
+#line 1139 "mn-mailbox.c"
{
-#line 474 "mn-mailbox.gob"
+#line 497 "mn-mailbox.gob"
+
+ int len;
+ int buflen;
+ char *scheme;
+ char *username;
+ char *password;
+ char *authmech;
+ char *hostname;
+ int port;
+ char *path;
+ char **queries;
+ Self *self = NULL;
+
+ len = strlen(uri);
+ buflen = len + 1;
+
+ {
+ char *pat;
+ char scheme_buf[buflen];
+ char auth_buf[buflen];
+ char location_buf[buflen];
+ char username_buf[buflen];
+ char password_buf[buflen];
+ char authmech_buf[buflen];
+ char hostname_buf[buflen];
+ int _port;
+ char path_buf[buflen];
+ char queries_buf[buflen];
+ gboolean has_location = FALSE;
+ gboolean has_password = FALSE;
+ gboolean has_authmech = FALSE;
+ gboolean has_port = FALSE;
+ gboolean has_path = FALSE;
+ gboolean has_queries = FALSE;
+ int n;
+
+ /* split URI in 3 parts: scheme, auth and location */
+
+ pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
+ n = sscanf(uri, pat, scheme_buf, auth_buf, location_buf);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ if (n == 3)
+ has_location = TRUE;
+ }
+ else
+ return NULL; /* unparsable */
+
+ /* split auth part in 3 subparts: username, password and authmech */
+
+ /*
+ * For backward compatibility with previous versions of Mail
+ * Notification, we also support ;auth= (in lowercase).
+ */
+
+ pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
+ n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ has_password = TRUE;
+ if (n == 3)
+ has_authmech = TRUE;
+ }
+ else
+ {
+ pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
+ n = sscanf(auth_buf, pat, username_buf, authmech_buf);
+ g_free(pat);
+
+ if (n >= 1)
+ {
+ if (n == 2)
+ has_authmech = TRUE;
+ }
+ else
+ return NULL; /* unparsable */
+ }
+
+ if (has_location)
+ {
+ char hostport_buf[buflen];
+
+ /* split location part in 3 subparts: hostport, path and queries */
+
+ pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
+ n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ has_path = TRUE;
+ if (n == 3)
+ has_queries = TRUE;
+ }
+ else
+ {
+ pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
+ n = sscanf(location_buf, pat, hostport_buf, queries_buf);
+ g_free(pat);
+
+ if (n == 2)
+ has_queries = TRUE;
+ }
+
+ /* split hostport in 2 subparts: host and port */
+
+ pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
+ n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+ g_free(pat);
+
+ if (n < 1)
+ {
+ pat = g_strdup_printf("%%%i[^:]:%%u", len);
+ n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+ g_free(pat);
+ }
- Self *self = user_data;
+ if (n == 2)
+ has_port = TRUE;
+ }
+
+ scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
+ username = gnome_vfs_unescape_string(username_buf, NULL);
+ password = has_password ? gnome_vfs_unescape_string(password_buf, NULL) : NULL;
+ authmech = has_authmech ? gnome_vfs_unescape_string(authmech_buf, NULL) : NULL;
+ hostname = has_location ? gnome_vfs_unescape_string(hostname_buf, NULL) : NULL;
+ port = has_port ? _port : 0;
+ path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : NULL;
+ if (has_queries)
+ {
+ int i;
+
+ queries = g_strsplit(queries_buf, "&", 0);
+ for (i = 0; queries[i]; i++)
+ {
+ char *unescaped;
+
+ unescaped = gnome_vfs_unescape_string(queries[i], NULL);
+
+ g_free(queries[i]);
+ queries[i] = unescaped;
+ }
+ }
+ else
+ queries = NULL;
+ }
+
+ if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops"))
+ {
+#ifdef WITH_POP3
+ MNPIMailboxConnectionType connection_type;
+
+ if (queries && eel_g_strv_find(queries, "STLS") != -1)
+ connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+ else
+ connection_type = ! strcmp(scheme, "pops")
+ ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+ : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+ self = self_new("pop3",
+ "connection-type", connection_type,
+ "username", username,
+ "password", password,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ NULL);
+#endif
+ }
+ else if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
+ {
+#ifdef WITH_IMAP
+ MNPIMailboxConnectionType connection_type;
+
+ if (queries && eel_g_strv_find(queries, "STARTTLS") != -1)
+ connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+ else
+ connection_type = ! strcmp(scheme, "imaps")
+ ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+ : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+ self = self_new("imap",
+ "connection-type", connection_type,
+ "username", username,
+ "password", password,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ "mailbox", path,
+ NULL);
+
+ if (queries && eel_g_strv_find(queries, "noidle") != -1)
+ g_object_set(G_OBJECT(self), "use-idle-extension", MN_IMAP_MAILBOX_USE_IDLE_NEVER, NULL);
+#endif
+ }
+ else if (! strcmp(scheme, "gmail"))
+ {
+#ifdef WITH_GMAIL
+ self = self_new("gmail",
+ "username", username,
+ "password", password,
+ NULL);
+#endif
+ }
+
+ g_free(scheme);
+ g_free(username);
+ g_free(password);
+ g_free(authmech);
+ g_free(hostname);
+ g_free(path);
+ g_strfreev(queries);
- GDK_THREADS_ENTER();
- if (selfp->monitor_events & (1 << event_type))
- self_check(self);
- GDK_THREADS_LEAVE();
+ return self;
}}
-#line 1027 "mn-mailbox.c"
+#line 1361 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 483 "mn-mailbox.gob"
+#line 717 "mn-mailbox.gob"
static gboolean
-mn_mailbox_impl_is (MNMailbox * self, MNURI * uri)
-#line 1033 "mn-mailbox.c"
+mn_mailbox_validate (MNMailbox * self, GError ** err)
+#line 1367 "mn-mailbox.c"
{
- MNMailboxClass *klass;
-#line 483 "mn-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:Mailbox::validate"
+#line 717 "mn-mailbox.gob"
g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 483 "mn-mailbox.gob"
+#line 717 "mn-mailbox.gob"
g_return_val_if_fail (MN_IS_MAILBOX (self), (gboolean )0);
-#line 1040 "mn-mailbox.c"
- klass = MN_MAILBOX_GET_CLASS(self);
+#line 1374 "mn-mailbox.c"
+{
+#line 719 "mn-mailbox.gob"
+
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
+
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_REQUIRED) != 0)
+ {
+ GValue value = { 0, };
+ const char *str;
+ gboolean is_empty;
+
+ g_return_val_if_fail(G_IS_PARAM_SPEC_STRING(properties[i]), FALSE);
+
+ g_value_init(&value, G_TYPE_STRING);
+ g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+
+ str = g_value_get_string(&value);
+ is_empty = ! str || ! *str;
+
+ g_value_unset(&value);
+
+ if (is_empty)
+ {
+ g_set_error(err, 0, 0, _("property \"%s\" has no value"), g_param_spec_get_name(properties[i]));
+ return FALSE;
+ }
+ }
+ g_free(properties);
- if(klass->impl_is)
- return (*klass->impl_is)(self,uri);
- else
- return (gboolean )(0);
-}
+ return TRUE;
+ }}
+#line 1410 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
-#line 485 "mn-mailbox.gob"
-static void
-mn_mailbox_impl_check (MNMailbox * self)
-#line 1052 "mn-mailbox.c"
+#line 753 "mn-mailbox.gob"
+void
+mn_mailbox_seal (MNMailbox * self)
+#line 1416 "mn-mailbox.c"
{
MNMailboxClass *klass;
-#line 485 "mn-mailbox.gob"
+#line 753 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 485 "mn-mailbox.gob"
+#line 753 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1059 "mn-mailbox.c"
+#line 1423 "mn-mailbox.c"
klass = MN_MAILBOX_GET_CLASS(self);
- if(klass->impl_check)
- (*klass->impl_check)(self);
+ if(klass->seal)
+ (*klass->seal)(self);
}
-
-#line 488 "mn-mailbox.gob"
-void
-mn_mailbox_check (MNMailbox * self)
-#line 1069 "mn-mailbox.c"
+#line 753 "mn-mailbox.gob"
+static void
+___real_mn_mailbox_seal (MNMailbox * self G_GNUC_UNUSED)
+#line 1432 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::check"
-#line 488 "mn-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 488 "mn-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1076 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::seal"
{
-#line 490 "mn-mailbox.gob"
+#line 755 "mn-mailbox.gob"
- g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
-
- if (! selfp->checking)
+ if (self->name)
{
- g_object_ref(self);
- selfp->checking = TRUE;
- self_set_error(self, NULL);
-
- mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_check, self);
+ g_free(self->runtime_name);
+ self->runtime_name = g_strdup(self->name);
}
}}
-#line 1091 "mn-mailbox.c"
+#line 1444 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 503 "mn-mailbox.gob"
+#line 763 "mn-mailbox.gob"
+static MNMailbox *
+mn_mailbox_parse_uri (MNMailbox * self, const char * uri)
+#line 1450 "mn-mailbox.c"
+{
+ MNMailboxClass *klass;
+#line 763 "mn-mailbox.gob"
+ g_return_val_if_fail (self != NULL, (MNMailbox * )0);
+#line 763 "mn-mailbox.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX (self), (MNMailbox * )0);
+#line 1457 "mn-mailbox.c"
+ klass = MN_MAILBOX_GET_CLASS(self);
+
+ if(klass->parse_uri)
+ return (*klass->parse_uri)(self,uri);
+ else
+ return (MNMailbox * )(0);
+}
+
+#line 766 "mn-mailbox.gob"
void
-mn_mailbox_end_check (MNMailbox * self)
-#line 1097 "mn-mailbox.c"
+mn_mailbox_check (MNMailbox * self)
+#line 1469 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::end_check"
-#line 503 "mn-mailbox.gob"
+ MNMailboxClass *klass;
+#line 766 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 503 "mn-mailbox.gob"
+#line 766 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1104 "mn-mailbox.c"
-{
-#line 505 "mn-mailbox.gob"
-
- g_return_if_fail(selfp->checking == TRUE);
+#line 1476 "mn-mailbox.c"
+ klass = MN_MAILBOX_GET_CLASS(self);
- selfp->checking = FALSE;
- g_object_unref(self);
- }}
-#line 1113 "mn-mailbox.c"
-#undef __GOB_FUNCTION__
+ if(klass->check)
+ (*klass->check)(self);
+}
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
void
mn_mailbox_notice (MNMailbox * self, const char * format, ...)
-#line 1119 "mn-mailbox.c"
+#line 1486 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::notice"
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
g_return_if_fail (format != NULL);
-#line 1128 "mn-mailbox.c"
+#line 1495 "mn-mailbox.c"
{
-#line 514 "mn-mailbox.gob"
+#line 771 "mn-mailbox.gob"
va_list args;
char *message;
@@ -1135,27 +1502,27 @@ mn_mailbox_notice (MNMailbox * self, const char * format, ...)
message = g_strdup_vprintf(format, args);
va_end(args);
- mn_info("%s: %s", self->uri->text, message);
+ mn_info("%s: %s", self->runtime_name, message);
g_free(message);
}}
-#line 1142 "mn-mailbox.c"
+#line 1509 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
void
mn_mailbox_warning (MNMailbox * self, const char * format, ...)
-#line 1148 "mn-mailbox.c"
+#line 1515 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::warning"
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
g_return_if_fail (format != NULL);
-#line 1157 "mn-mailbox.c"
+#line 1524 "mn-mailbox.c"
{
-#line 528 "mn-mailbox.gob"
+#line 785 "mn-mailbox.gob"
va_list args;
char *message;
@@ -1164,8 +1531,116 @@ mn_mailbox_warning (MNMailbox * self, const char * format, ...)
message = g_strdup_vprintf(format, args);
va_end(args);
- g_warning("%s: %s", self->uri->text, message);
+ g_warning("%s: %s", self->runtime_name, message);
g_free(message);
}}
-#line 1171 "mn-mailbox.c"
+#line 1538 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 797 "mn-mailbox.gob"
+static gboolean
+mn_mailbox_import_string (GValue * value, const char * str)
+#line 1544 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::import_string"
+#line 797 "mn-mailbox.gob"
+ g_return_val_if_fail (value != NULL, (gboolean )0);
+#line 797 "mn-mailbox.gob"
+ g_return_val_if_fail (str != NULL, (gboolean )0);
+#line 1551 "mn-mailbox.c"
+{
+#line 799 "mn-mailbox.gob"
+
+ g_return_val_if_fail(G_IS_VALUE(value), FALSE);
+
+ if (G_VALUE_HOLDS_BOOLEAN(value))
+ {
+ if (! strcmp(str, "false"))
+ g_value_set_boolean(value, FALSE);
+ else if (! strcmp(str, "true"))
+ g_value_set_boolean(value, TRUE);
+ else
+ return FALSE;
+ }
+ else if (G_VALUE_HOLDS_INT(value))
+ {
+ int n;
+ char *endptr;
+
+ n = strtol(str, &endptr, 10);
+ if (*endptr == '\0') /* successful conversion */
+ g_value_set_int(value, n);
+ else
+ return FALSE;
+ }
+ else if (G_VALUE_HOLDS_STRING(value))
+ g_value_set_string(value, str);
+ else if (G_VALUE_HOLDS_ENUM(value))
+ {
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+ gboolean found;
+
+ enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+ enum_value = g_enum_get_value_by_nick(enum_class, str);
+
+ if (enum_value)
+ {
+ g_value_set_enum(value, enum_value->value);
+ found = TRUE;
+ }
+ else
+ found = FALSE;
+
+ g_type_class_unref(enum_class);
+
+ if (! found)
+ return FALSE;
+ }
+ else
+ g_return_val_if_reached(FALSE);
+
+ return TRUE;
+ }}
+#line 1606 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 852 "mn-mailbox.gob"
+static char *
+mn_mailbox_export_string (const GValue * value)
+#line 1612 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::export_string"
+#line 852 "mn-mailbox.gob"
+ g_return_val_if_fail (value != NULL, (char * )0);
+#line 1617 "mn-mailbox.c"
+{
+#line 854 "mn-mailbox.gob"
+
+ char *str;
+
+ if (G_VALUE_HOLDS_BOOLEAN(value))
+ str = g_strdup(g_value_get_boolean(value) ? "true" : "false");
+ else if (G_VALUE_HOLDS_INT(value))
+ str = g_strdup_printf("%i", g_value_get_int(value));
+ else if (G_VALUE_HOLDS_STRING(value))
+ str = g_value_dup_string(value);
+ else if (G_VALUE_HOLDS_ENUM(value))
+ {
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+
+ enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+ enum_value = g_enum_get_value(enum_class, g_value_get_enum(value));
+ g_return_val_if_fail(enum_value != NULL, NULL);
+
+ str = g_strdup(enum_value->value_nick);
+ g_type_class_unref(enum_class);
+ }
+ else
+ g_return_val_if_reached(NULL);
+
+ return str;
+ }}
+#line 1646 "mn-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox.gob b/src/mn-mailbox.gob
@@ -16,50 +16,43 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include "config.h"
#include <stdarg.h>
-#include "mn-message.h"
-#include "mn-uri.h"
+#include <libxml/tree.h>
%}
-%privateheader{
-#include <libgnomevfs/gnome-vfs.h>
+%h{
+#define MN_MAILBOX_MAX_TYPES 6
+extern GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
- typedef enum
- {
- MN_MAILBOX_MONITOR_EVENT_CHANGED = 1 << GNOME_VFS_MONITOR_EVENT_CHANGED,
- MN_MAILBOX_MONITOR_EVENT_DELETED = 1 << GNOME_VFS_MONITOR_EVENT_DELETED,
- MN_MAILBOX_MONITOR_EVENT_STARTEXECUTING = 1 << GNOME_VFS_MONITOR_EVENT_STARTEXECUTING,
- MN_MAILBOX_MONITOR_EVENT_STOPEXECUTING = 1 << GNOME_VFS_MONITOR_EVENT_STOPEXECUTING,
- MN_MAILBOX_MONITOR_EVENT_CREATED = 1 << GNOME_VFS_MONITOR_EVENT_CREATED,
- MN_MAILBOX_MONITOR_EVENT_METADATA_CHANGED = 1 << GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED
- } MNMailboxMonitorEventType;
+typedef struct _MNMailboxConfiguration MNMailboxConfiguration;
%}
-%h{
-#define MN_MAILBOX_N_TYPES 7
- extern GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+%privateheader{
+typedef enum
+{
+ /* save to mailboxes.xml */
+ MN_MAILBOX_PARAM_PERMANENT = 1 << (G_PARAM_USER_SHIFT + 0),
+
+ /* require a string property to be non-empty */
+ MN_MAILBOX_PARAM_REQUIRED = 1 << (G_PARAM_USER_SHIFT + 1),
-#define MN_MAILBOX_CAN_CHECK(self) \
- (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
-#define MN_MAILBOX_MUST_POLL(self) \
- (MN_MAILBOX_CAN_CHECK((self)) && mn_mailbox_get_must_poll((self)))
+ /* ignore the case of a string property when checking if it has the default value */
+ MN_MAILBOX_PARAM_IGNORE_CASE = 1 << (G_PARAM_USER_SHIFT + 2)
+} MNMailboxParamFlags;
%}
-
+
%{
#include "config.h"
#include <glib/gi18n.h>
-#ifdef WITH_MBOX
-#include "mn-mbox-mailbox.h"
-#endif
-#ifdef WITH_MH
-#include "mn-mh-mailbox.h"
-#endif
-#ifdef WITH_MAILDIR
-#include "mn-maildir-mailbox.h"
+#include <eel/eel.h>
+#include <libgnomevfs/gnome-vfs.h>
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox.h"
+#include "mn-custom-vfs-mailbox.h"
#endif
#ifdef WITH_POP3
#include "mn-pop3-mailbox.h"
@@ -67,55 +60,28 @@ requires 2.0.10
#ifdef WITH_IMAP
#include "mn-imap-mailbox.h"
#endif
-#ifdef WITH_SYLPHEED
-#include "mn-sylpheed-mailbox.h"
-#endif
#ifdef WITH_GMAIL
#include "mn-gmail-mailbox.h"
#endif
-#include "mn-vfs.h"
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox.h"
+#endif
#include "mn-util.h"
-#include "mn-unsupported-mailbox.h"
-#include "mn-conf.h"
+#include "mn-message.h"
-typedef struct
+struct _MNMailboxConfiguration
{
- MNURI *uri;
- void (*callback) (MNMailbox *self,
- gpointer user_data);
- gpointer user_data;
-} NewInfo;
+ GType type;
+ unsigned int n_parameters;
+ GParameter *parameters;
+};
- GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
%}
-/******************************************************************************
- *** IMPORTANT REMARKS ABOUT GDK LOCKING AND MULTI-THREADING ******************
- ******************************************************************************
- *
- * MNMailbox API functions must be called with the GDK lock
- * held. Exceptions are:
- *
- * mn_mailbox_init_types()
- * mn_mailbox_set_init_error()
- * mn_mailbox_notice()
- * mn_mailbox_warning()
- *
- * (No code can be hooked to these functions through signals or other
- * means, therefore we are sure GDK will never be used from these
- * functions.)
- *
- * Mailboxes are constructed with the GDK lock not held. Use
- * GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() where appropriate in
- * the construction phase.
- *
- * Virtual methods are called with the GDK lock not held.
- */
-
class MN:Mailbox from G:Object
{
- classwide const char *stock_id;
- classwide const char *format;
+ classwide const char *type;
/**
* removed:
@@ -127,30 +93,22 @@ class MN:Mailbox from G:Object
signal NONE (NONE)
void removed (self);
- public MNURI *uri = NULL unrefwith g_object_unref;
- property OBJECT uri (blurb = _("The mailbox URI"),
- object_type = MN:URI,
- flags = CONSTRUCT_ONLY)
- set
- {
- g_return_if_fail(self->uri == NULL);
- self->uri = MN_URI(g_value_dup_object(VAL));
- selfp->name = g_strdup(self->uri->human_readable);
- };
-
- private char *name destroywith g_free;
- property STRING name (blurb = _("The mailbox human-readable name"), link);
- public const char *get_name (self) { return selfp->name; }
+ public char *runtime_name destroywith g_free;
- private gboolean must_poll = TRUE;
- property BOOLEAN must_poll (blurb = _("Whether the mailbox has to be polled or not"),
- default_value = TRUE,
- link,
- export);
-
- private GSList *messages destroywith mn_g_object_slist_free;
- property POINTER messages (blurb = _("The list of new and unread MNMessage objects"),
- export)
+ public char *name destroywith g_free;
+ property STRING name (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+ public char *stock_id;
+ property STRING stock_id (link, export);
+
+ public char *format;
+ property STRING format (link, export);
+
+ public gboolean must_poll;
+ property BOOLEAN must_poll (default_value = TRUE, link, export, flags = CONSTRUCT);
+
+ public GSList *messages destroywith mn_g_object_slist_free;
+ property POINTER messages (export, type = const GSList *)
set
{
GSList *messages;
@@ -160,7 +118,7 @@ class MN:Mailbox from G:Object
messages = g_value_get_pointer(VAL);
- MN_LIST_FOREACH(l, selfp->messages)
+ MN_LIST_FOREACH(l, self->messages)
if (! mn_message_slist_find_by_id(messages, l->data))
{
changed = TRUE;
@@ -168,22 +126,22 @@ class MN:Mailbox from G:Object
}
MN_LIST_FOREACH(l, messages)
- if (! mn_message_slist_find_by_id(selfp->messages, l->data))
+ if (! mn_message_slist_find_by_id(self->messages, l->data))
{
changed = TRUE;
has_new = TRUE;
break;
}
- mn_g_object_slist_free(selfp->messages);
- selfp->messages = mn_g_object_slist_copy(messages);
+ mn_g_object_slist_free(self->messages);
+ self->messages = mn_g_object_slist_copy(messages);
if (changed)
self_messages_changed(self, has_new);
}
get
{
- g_value_set_pointer(VAL, selfp->messages);
+ g_value_set_pointer(VAL, self->messages);
};
/**
@@ -202,8 +160,22 @@ class MN:Mailbox from G:Object
signal private NONE (BOOLEAN)
void messages_changed (self, gboolean has_new);
- private char *error destroywith g_free;
- property STRING error (blurb = _("The mailbox error, if any"), link);
+ public char *error destroywith g_free;
+ property STRING error
+ set
+ {
+ g_free(self->error);
+ self->error = g_value_dup_string(VAL);
+
+ /* if an error is set, we unset messages */
+ if (self->error)
+ self_set_messages(self, NULL);
+ }
+ get
+ {
+ g_value_set_string(VAL, self->error);
+ };
+
protected void
set_error (self, const char *format, ...)
{
@@ -220,38 +192,20 @@ class MN:Mailbox from G:Object
g_object_set(G_OBJECT(self), MN_MAILBOX_PROP_ERROR(error), NULL);
g_free(error);
}
- public const char *get_error (self) { return selfp->error; }
-
- private GnomeVFSMonitorHandle *monitor_handle;
- private char *monitor_uri destroywith g_free;
- private MNMailboxMonitorEventType monitor_events;
-
- private gboolean checking;
-
- override (G:Object) void
- finalize (G:Object *object (check null type))
- {
- Self *self = SELF(object);
-
- if (selfp->monitor_handle)
- gnome_vfs_monitor_cancel(selfp->monitor_handle);
-
- PARENT_HANDLER(object);
- }
public void
init_types (void)
{
int i = 0;
-#ifdef WITH_MBOX
- mn_mailbox_types[i++] = MN_TYPE_MBOX_MAILBOX;
-#endif
-#ifdef WITH_MH
- mn_mailbox_types[i++] = MN_TYPE_MH_MAILBOX;
-#endif
-#ifdef WITH_MAILDIR
- mn_mailbox_types[i++] = MN_TYPE_MAILDIR_MAILBOX;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ /*
+ * MNSystemVFSMailbox must be registered before
+ * MNCustomVFSMailbox, because the latter's parse_uri() method
+ * will accept any URI.
+ */
+ mn_mailbox_types[i++] = MN_TYPE_SYSTEM_VFS_MAILBOX;
+ mn_mailbox_types[i++] = MN_TYPE_CUSTOM_VFS_MAILBOX;
#endif
#ifdef WITH_POP3
mn_mailbox_types[i++] = MN_TYPE_POP3_MAILBOX;
@@ -259,255 +213,558 @@ class MN:Mailbox from G:Object
#ifdef WITH_IMAP
mn_mailbox_types[i++] = MN_TYPE_IMAP_MAILBOX;
#endif
-#ifdef WITH_SYLPHEED
- mn_mailbox_types[i++] = MN_TYPE_SYLPHEED_MAILBOX;
-#endif
#ifdef WITH_GMAIL
mn_mailbox_types[i++] = MN_TYPE_GMAIL_MAILBOX;
#endif
+#ifdef WITH_EVOLUTION
+ mn_mailbox_types[i++] = MN_TYPE_EVOLUTION_MAILBOX;
+#endif
mn_mailbox_types[i] = 0;
}
- /**
- * new_async:
- * @uri: location of the mailbox
- * @callback: a function like
- * "void (callback) (#MNMailbox *self, gpointer user_data)"
- * @user_data: data to pass to @callback
- *
- * Creates a new #MNMailbox asynchronously. The newly created
- * #MNMailbox will be passed to @callback.
- **/
- public void
- new_async (MN:URI *uri (check null type),
- gpointer callback (check null),
- gpointer user_data)
+ private GType
+ get_type_from_name (const char *type)
{
- NewInfo *info;
+ int i;
+
+ for (i = 0; mn_mailbox_types[i]; i++)
+ {
+ SelfClass *class;
+
+ class = g_type_class_peek(mn_mailbox_types[i]);
+ g_return_val_if_fail(class != NULL, 0);
- info = g_new(NewInfo, 1);
- info->uri = g_object_ref(uri);
- info->callback = callback;
- info->user_data = user_data;
+ if (! strcmp(class->type, type))
+ return mn_mailbox_types[i];
+ }
- mn_thread_create(self_new_async_thread, info);
+ return 0;
}
- private gpointer
- new_async_thread (gpointer data)
+ public MNMailbox *
+ new (const char *type, const char *first, ...)
{
- NewInfo *info = data;
- Self *mailbox = NULL;
+ va_list args;
+ GType type_id;
+ GObject *object;
+
+ g_return_val_if_fail(type != NULL, NULL);
+
+ type_id = self_get_type_from_name(type);
+ if (! type_id)
+ return NULL;
+
+ va_start(args, first);
+ object = g_object_new_valist(type_id, first, args);
+ va_end(args);
- if (info->uri->vfs)
+ return SELF(object);
+ }
+
+ public MNMailbox *
+ new_from_xml_node (xmlNode *node, GError **err)
+ {
+ char *type;
+ Self *self = NULL;
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
+
+ g_return_val_if_fail(node != NULL, NULL);
+
+ type = xmlGetProp(node, "type");
+ if (! type)
{
- if (! mn_vfs_test(info->uri->vfs, G_FILE_TEST_EXISTS))
- mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
+ g_set_error(err, 0, 0, _("\"type\" attribute missing"));
+ return NULL;
}
- if (! mailbox)
+ self = self_new(type, NULL);
+ if (! self)
{
- int i;
-
- for (i = 0; mn_mailbox_types[i]; i++)
- {
- SelfClass *class;
-
- class = g_type_class_peek(mn_mailbox_types[i]);
- g_return_val_if_fail(class != NULL, NULL);
-
- if (class->impl_is(NULL, info->uri))
- {
- mailbox = g_object_new(mn_mailbox_types[i], MN_MAILBOX_PROP_URI(G_OBJECT(info->uri)), NULL);
- if (mailbox->_priv->init_error)
- {
- MNMailbox *old_mailbox;
-
- old_mailbox = mailbox;
- mailbox = mn_unsupported_mailbox_new(info->uri, old_mailbox->_priv->init_error);
- g_object_unref(old_mailbox);
- }
-
- break;
- }
- }
+ g_set_error(err, 0, 0, _("unknown mailbox type \"%s\""), type);
+ goto end;
}
- if (! mailbox)
- mailbox = mn_unsupported_mailbox_new(info->uri, _("unknown format"));
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+ {
+ char *content;
+
+ content = xmlGetProp(node, g_param_spec_get_name(properties[i]));
+ if (content)
+ {
+ GValue value = { 0, };
+
+ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+
+ if (self_import_string(&value, content))
+ g_object_set_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+ else
+ g_warning(_("property \"%s\": unable to transform string \"%s\" into a value of type \"%s\""),
+ g_param_spec_get_name(properties[i]), content, G_VALUE_TYPE_NAME(&value));
+
+ g_value_unset(&value);
+ xmlFree(content);
+ }
+ }
+ g_free(properties);
+
+ if (! self_validate(self, err))
+ {
+ g_object_unref(self);
+ self = NULL;
+ }
+
+ end:
+ g_free(type);
+ return self;
+ }
+
+ public xmlNode *
+ xml_node_new (self)
+ {
+ xmlNode *node;
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
- GDK_THREADS_ENTER();
+ node = xmlNewNode(NULL, "mailbox");
+ xmlSetProp(node, "type", SELF_GET_CLASS(self)->type);
+
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+ {
+ GValue value = { 0, };
+ gboolean is_default;
+
+ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+ g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_IGNORE_CASE) != 0)
+ {
+ GValue default_value = { 0, };
+ const char *str;
+ const char *default_str;
+
+ g_assert(G_IS_PARAM_SPEC_STRING(properties[i]));
+
+ g_value_init(&default_value, G_TYPE_STRING);
+ g_param_value_set_default(properties[i], &default_value);
+
+ str = g_value_get_string(&value);
+ default_str = g_value_get_string(&default_value);
+
+ is_default = str && default_str && ! mn_utf8_strcasecmp(str, default_str);
+
+ g_value_unset(&default_value);
+ }
+ else
+ is_default = g_param_value_defaults(properties[i], &value);
+
+ if (! is_default)
+ {
+ char *str;
+
+ str = self_export_string(&value);
+ xmlSetProp(node, g_param_spec_get_name(properties[i]), str);
+ g_free(str);
+ }
+
+ g_value_unset(&value);
+ }
+ g_free(properties);
+
+ return node;
+ }
+
+ public MNMailbox *
+ new_from_uri (const char *uri (check null))
+ {
+ int i;
- info->callback(mailbox, info->user_data);
+ for (i = 0; mn_mailbox_types[i]; i++)
+ {
+ MNMailboxClass *class;
- /*
- * A note on gdk_flush(): as adviced in the GDK threads
- * documentation, we only call gdk_flush() from a thread other
- * than our main thread (so we do not call it in idle and timeout
- * callbacks).
- */
- gdk_flush();
- GDK_THREADS_LEAVE();
+ class = g_type_class_peek(mn_mailbox_types[i]);
+ g_return_val_if_fail(class != NULL, NULL);
- /* mailbox is now owned by the callback, do not unref it */
-
- g_object_unref(info->uri);
- g_free(info);
+ if (class->parse_uri)
+ {
+ MNMailbox *mailbox;
+ mailbox = class->parse_uri(NULL, uri);
+ if (mailbox)
+ return mailbox;
+ }
+ }
+
return NULL;
}
- private char *init_error destroywith g_free;
- protected void
- set_init_error (self, const char *format (check null), ...)
+ public MNMailbox *
+ new_from_configuration (MNMailboxConfiguration *config (check null))
{
- va_list args;
+ return g_object_newv(config->type, config->n_parameters, config->parameters);
+ }
+
+ public MNMailboxConfiguration *
+ get_configuration (self)
+ {
+ GObject *object = G_OBJECT(self);
+ GArray *parameters;
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
+ MNMailboxConfiguration *config;
+
+ parameters = g_array_new(FALSE, FALSE, sizeof(GParameter));
+
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+ {
+ GParameter parameter = { NULL, { 0, } };
+
+ parameter.name = g_param_spec_get_name(properties[i]);
+
+ g_value_init(¶meter.value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+ g_object_get_property(object, parameter.name, ¶meter.value);
+
+ g_array_append_val(parameters, parameter);
+ }
+ g_free(properties);
+
+ config = g_new0(MNMailboxConfiguration, 1);
+ config->type = G_OBJECT_TYPE(self);
+ config->n_parameters = parameters->len;
+ config->parameters = (GParameter *) g_array_free(parameters, FALSE);
+
+ return config;
+ }
+
+ public void
+ configuration_free (MNMailboxConfiguration *config (check null))
+ {
+ int i;
- g_return_if_fail(selfp->init_error == NULL);
+ for (i = 0; i < config->n_parameters; i++)
+ g_value_unset(&config->parameters[i].value);
- va_start(args, format);
- selfp->init_error = g_strdup_vprintf(format, args);
- va_end(args);
+ g_free(config->parameters);
+ g_free(config);
}
- protected void
- monitor (self,
- const char *uri (check null),
- GnomeVFSMonitorType monitor_type,
- MNMailboxMonitorEventType events)
+ public MNMailbox *
+ new_from_obsolete_uri (const char *uri (check null))
{
- GnomeVFSResult result;
+ char *real_uri;
+ char *scheme;
+ gboolean obsolete = FALSE;
+ Self *self = NULL;
- g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
- g_return_if_fail(selfp->monitor_handle == NULL);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
+ real_uri = g_str_has_prefix(uri, "pop3:") /* also handle very old pop3 locators */
+ ? g_strconcat("pop://", uri + 5, NULL)
+ : g_strdup(uri);
+
+ scheme = gnome_vfs_get_uri_scheme(real_uri);
+ if (scheme)
+ {
+ if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops")
+ || ! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps")
+ || ! strcmp(scheme, "gmail"))
+ obsolete = TRUE;
+ g_free(scheme);
+ }
- result = gnome_vfs_monitor_add(&selfp->monitor_handle,
- uri,
- monitor_type,
- self_monitor_cb,
- self);
+ self = obsolete ? self_parse_obsolete_uri(real_uri) : self_new_from_uri(real_uri);
+ g_free(real_uri);
- GDK_THREADS_ENTER();
+ if (self && ! self_validate(self, NULL))
+ {
+ g_object_unref(self);
+ self = NULL;
+ }
- if (result == GNOME_VFS_OK)
+ return self;
+ }
+
+ private MNMailbox *
+ parse_obsolete_uri (const char *uri (check null))
+ {
+ int len;
+ int buflen;
+ char *scheme;
+ char *username;
+ char *password;
+ char *authmech;
+ char *hostname;
+ int port;
+ char *path;
+ char **queries;
+ Self *self = NULL;
+
+ len = strlen(uri);
+ buflen = len + 1;
+
+ {
+ char *pat;
+ char scheme_buf[buflen];
+ char auth_buf[buflen];
+ char location_buf[buflen];
+ char username_buf[buflen];
+ char password_buf[buflen];
+ char authmech_buf[buflen];
+ char hostname_buf[buflen];
+ int _port;
+ char path_buf[buflen];
+ char queries_buf[buflen];
+ gboolean has_location = FALSE;
+ gboolean has_password = FALSE;
+ gboolean has_authmech = FALSE;
+ gboolean has_port = FALSE;
+ gboolean has_path = FALSE;
+ gboolean has_queries = FALSE;
+ int n;
+
+ /* split URI in 3 parts: scheme, auth and location */
+
+ pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
+ n = sscanf(uri, pat, scheme_buf, auth_buf, location_buf);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ if (n == 3)
+ has_location = TRUE;
+ }
+ else
+ return NULL; /* unparsable */
+
+ /* split auth part in 3 subparts: username, password and authmech */
+
+ /*
+ * For backward compatibility with previous versions of Mail
+ * Notification, we also support ;auth= (in lowercase).
+ */
+
+ pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
+ n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ has_password = TRUE;
+ if (n == 3)
+ has_authmech = TRUE;
+ }
+ else
+ {
+ pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
+ n = sscanf(auth_buf, pat, username_buf, authmech_buf);
+ g_free(pat);
+
+ if (n >= 1)
+ {
+ if (n == 2)
+ has_authmech = TRUE;
+ }
+ else
+ return NULL; /* unparsable */
+ }
+
+ if (has_location)
+ {
+ char hostport_buf[buflen];
+
+ /* split location part in 3 subparts: hostport, path and queries */
+
+ pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
+ n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ has_path = TRUE;
+ if (n == 3)
+ has_queries = TRUE;
+ }
+ else
+ {
+ pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
+ n = sscanf(location_buf, pat, hostport_buf, queries_buf);
+ g_free(pat);
+
+ if (n == 2)
+ has_queries = TRUE;
+ }
+
+ /* split hostport in 2 subparts: host and port */
+
+ pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
+ n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+ g_free(pat);
+
+ if (n < 1)
+ {
+ pat = g_strdup_printf("%%%i[^:]:%%u", len);
+ n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+ g_free(pat);
+ }
+
+ if (n == 2)
+ has_port = TRUE;
+ }
+
+ scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
+ username = gnome_vfs_unescape_string(username_buf, NULL);
+ password = has_password ? gnome_vfs_unescape_string(password_buf, NULL) : NULL;
+ authmech = has_authmech ? gnome_vfs_unescape_string(authmech_buf, NULL) : NULL;
+ hostname = has_location ? gnome_vfs_unescape_string(hostname_buf, NULL) : NULL;
+ port = has_port ? _port : 0;
+ path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : NULL;
+ if (has_queries)
+ {
+ int i;
+
+ queries = g_strsplit(queries_buf, "&", 0);
+ for (i = 0; queries[i]; i++)
+ {
+ char *unescaped;
+
+ unescaped = gnome_vfs_unescape_string(queries[i], NULL);
+
+ g_free(queries[i]);
+ queries[i] = unescaped;
+ }
+ }
+ else
+ queries = NULL;
+ }
+
+ if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops"))
{
- selfp->monitor_uri = g_strdup(uri);
- selfp->monitor_events = events;
- self_set_must_poll(self, FALSE);
+#ifdef WITH_POP3
+ MNPIMailboxConnectionType connection_type;
+
+ if (queries && eel_g_strv_find(queries, "STLS") != -1)
+ connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+ else
+ connection_type = ! strcmp(scheme, "pops")
+ ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+ : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+ self = self_new("pop3",
+ "connection-type", connection_type,
+ "username", username,
+ "password", password,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ NULL);
+#endif
}
- else
+ else if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
{
- self_warning(self, _("unable to enable immediate notification: %s"), gnome_vfs_result_to_string(result));
-
- if (! eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
- {
- static gboolean first_time = TRUE;
-
- if (first_time)
- {
- int minutes;
- int seconds;
- char *str;
-
- first_time = FALSE;
-
- minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
- seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
-
- if (minutes == 0)
- str = g_strdup_printf(ngettext("As a fallback, they will be "
- "checked every %i second (this "
- "delay is configurable from the "
- "Properties Dialog).",
- "As a fallback, they will be "
- "checked every %i seconds (this "
- "delay is configurable from the "
- "Properties Dialog).",
- seconds),
- seconds);
- else if (seconds == 0)
- str = g_strdup_printf(ngettext("As a fallback, they will be "
- "checked every %i minute (this "
- "delay is configurable from the "
- "Properties Dialog).",
- "As a fallback, they will be "
- "checked every %i minutes (this "
- "delay is configurable from the "
- "Properties Dialog).",
- minutes),
- minutes);
- else
- str = g_strdup_printf(ngettext("As a fallback, they will be "
- "checked approximately every %i "
- "minute (this delay is "
- "configurable from the "
- "Properties Dialog).",
- "As a fallback, they will be "
- "checked approximately every %i "
- "minutes (this delay is "
- "configurable from the "
- "Properties Dialog).",
- minutes),
- minutes);
-
- mn_error_dialog(NULL,
- MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
- "immediate-notification",
- _("A monitoring error has occurred"),
- _("Mail Notification was unable to enable immediate "
- "notification for one or more mailboxes. %s"), str);
- g_free(str);
- }
- }
+#ifdef WITH_IMAP
+ MNPIMailboxConnectionType connection_type;
+
+ if (queries && eel_g_strv_find(queries, "STARTTLS") != -1)
+ connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+ else
+ connection_type = ! strcmp(scheme, "imaps")
+ ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+ : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+ self = self_new("imap",
+ "connection-type", connection_type,
+ "username", username,
+ "password", password,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ "mailbox", path,
+ NULL);
+
+ if (queries && eel_g_strv_find(queries, "noidle") != -1)
+ g_object_set(G_OBJECT(self), "use-idle-extension", MN_IMAP_MAILBOX_USE_IDLE_NEVER, NULL);
+#endif
+ }
+ else if (! strcmp(scheme, "gmail"))
+ {
+#ifdef WITH_GMAIL
+ self = self_new("gmail",
+ "username", username,
+ "password", password,
+ NULL);
+#endif
}
- }
- private void
- monitor_cb (GnomeVFSMonitorHandle *handle,
- const char *monitor_uri,
- const char *info_uri,
- GnomeVFSMonitorEventType event_type,
- gpointer user_data (check null))
- {
- Self *self = user_data;
+ g_free(scheme);
+ g_free(username);
+ g_free(password);
+ g_free(authmech);
+ g_free(hostname);
+ g_free(path);
+ g_strfreev(queries);
- GDK_THREADS_ENTER();
- if (selfp->monitor_events & (1 << event_type))
- self_check(self);
- GDK_THREADS_LEAVE();
+ return self;
}
-
- virtual private gboolean
- impl_is (self, MNURI *uri);
- virtual private void
- impl_check (self);
- public void
- check (self)
+ private gboolean
+ validate (self, GError **err)
{
- g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
-
- if (! selfp->checking)
- {
- g_object_ref(self);
- selfp->checking = TRUE;
- self_set_error(self, NULL);
-
- mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_check, self);
- }
+ GParamSpec **properties;
+ unsigned int n_properties;
+ int i;
+
+ properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+ for (i = 0; i < n_properties; i++)
+ if ((properties[i]->flags & MN_MAILBOX_PARAM_REQUIRED) != 0)
+ {
+ GValue value = { 0, };
+ const char *str;
+ gboolean is_empty;
+
+ g_return_val_if_fail(G_IS_PARAM_SPEC_STRING(properties[i]), FALSE);
+
+ g_value_init(&value, G_TYPE_STRING);
+ g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+
+ str = g_value_get_string(&value);
+ is_empty = ! str || ! *str;
+
+ g_value_unset(&value);
+
+ if (is_empty)
+ {
+ g_set_error(err, 0, 0, _("property \"%s\" has no value"), g_param_spec_get_name(properties[i]));
+ return FALSE;
+ }
+ }
+ g_free(properties);
+
+ return TRUE;
}
- protected void
- end_check (self)
+ virtual public void
+ seal (self)
{
- g_return_if_fail(selfp->checking == TRUE);
-
- selfp->checking = FALSE;
- g_object_unref(self);
+ if (self->name)
+ {
+ g_free(self->runtime_name);
+ self->runtime_name = g_strdup(self->name);
+ }
}
+
+ virtual private MNMailbox *
+ parse_uri (self, const char *uri);
+
+ virtual public void
+ check (self);
protected void
notice (self, const char *format (check null), ...)
@@ -519,7 +776,7 @@ class MN:Mailbox from G:Object
message = g_strdup_vprintf(format, args);
va_end(args);
- mn_info("%s: %s", self->uri->text, message);
+ mn_info("%s: %s", self->runtime_name, message);
g_free(message);
}
@@ -533,7 +790,91 @@ class MN:Mailbox from G:Object
message = g_strdup_vprintf(format, args);
va_end(args);
- g_warning("%s: %s", self->uri->text, message);
+ g_warning("%s: %s", self->runtime_name, message);
g_free(message);
}
+
+ private gboolean
+ import_string (GValue *value (check null), const char *str (check null))
+ {
+ g_return_val_if_fail(G_IS_VALUE(value), FALSE);
+
+ if (G_VALUE_HOLDS_BOOLEAN(value))
+ {
+ if (! strcmp(str, "false"))
+ g_value_set_boolean(value, FALSE);
+ else if (! strcmp(str, "true"))
+ g_value_set_boolean(value, TRUE);
+ else
+ return FALSE;
+ }
+ else if (G_VALUE_HOLDS_INT(value))
+ {
+ int n;
+ char *endptr;
+
+ n = strtol(str, &endptr, 10);
+ if (*endptr == '\0') /* successful conversion */
+ g_value_set_int(value, n);
+ else
+ return FALSE;
+ }
+ else if (G_VALUE_HOLDS_STRING(value))
+ g_value_set_string(value, str);
+ else if (G_VALUE_HOLDS_ENUM(value))
+ {
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+ gboolean found;
+
+ enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+ enum_value = g_enum_get_value_by_nick(enum_class, str);
+
+ if (enum_value)
+ {
+ g_value_set_enum(value, enum_value->value);
+ found = TRUE;
+ }
+ else
+ found = FALSE;
+
+ g_type_class_unref(enum_class);
+
+ if (! found)
+ return FALSE;
+ }
+ else
+ g_return_val_if_reached(FALSE);
+
+ return TRUE;
+ }
+
+ private char *
+ export_string (const GValue *value (check null))
+ {
+ char *str;
+
+ if (G_VALUE_HOLDS_BOOLEAN(value))
+ str = g_strdup(g_value_get_boolean(value) ? "true" : "false");
+ else if (G_VALUE_HOLDS_INT(value))
+ str = g_strdup_printf("%i", g_value_get_int(value));
+ else if (G_VALUE_HOLDS_STRING(value))
+ str = g_value_dup_string(value);
+ else if (G_VALUE_HOLDS_ENUM(value))
+ {
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+
+ enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+ enum_value = g_enum_get_value(enum_class, g_value_get_enum(value));
+ g_return_val_if_fail(enum_value != NULL, NULL);
+
+ str = g_strdup(enum_value->value_nick);
+ g_type_class_unref(enum_class);
+ }
+ else
+ g_return_val_if_reached(NULL);
+
+ return str;
+ }
}
diff --git a/src/mn-mailbox.h b/src/mn-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -6,8 +6,7 @@
#include "config.h"
#include <stdarg.h>
-#include "mn-message.h"
-#include "mn-uri.h"
+#include <libxml/tree.h>
#ifndef __MN_MAILBOX_H__
#define __MN_MAILBOX_H__
@@ -18,13 +17,10 @@ extern "C" {
-#define MN_MAILBOX_N_TYPES 7
- extern GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+#define MN_MAILBOX_MAX_TYPES 6
+extern GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
-#define MN_MAILBOX_CAN_CHECK(self) \
- (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
-#define MN_MAILBOX_MUST_POLL(self) \
- (MN_MAILBOX_CAN_CHECK((self)) && mn_mailbox_get_must_poll((self)))
+typedef struct _MNMailboxConfiguration MNMailboxConfiguration;
/*
@@ -38,9 +34,6 @@ extern "C" {
#define MN_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mailbox_get_type(), MNMailboxClass)
-/* Private structure type */
-typedef struct _MNMailboxPrivate MNMailboxPrivate;
-
/*
* Main object structure
*/
@@ -51,9 +44,13 @@ typedef struct _MNMailbox MNMailbox;
struct _MNMailbox {
GObject __parent__;
/*< public >*/
- MNURI * uri;
- /*< private >*/
- MNMailboxPrivate *_priv;
+ char * runtime_name;
+ char * name;
+ char * stock_id;
+ char * format;
+ gboolean must_poll;
+ GSList * messages;
+ char * error;
};
/*
@@ -64,10 +61,10 @@ struct _MNMailboxClass {
GObjectClass __parent__;
/*signal*/void (* removed) (MNMailbox * self);
/*signal*/void (* messages_changed) (MNMailbox * self, gboolean has_new);
- gboolean (* impl_is) (MNMailbox * self, MNURI * uri);
- void (* impl_check) (MNMailbox * self);
- const char * stock_id;
- const char * format;
+ void (* seal) (MNMailbox * self);
+ MNMailbox * (* parse_uri) (MNMailbox * self, const char * uri);
+ void (* check) (MNMailbox * self);
+ const char * type;
};
@@ -76,18 +73,31 @@ struct _MNMailboxClass {
*/
GType mn_mailbox_get_type (void);
void mn_mailbox_removed (MNMailbox * self);
-const char * mn_mailbox_get_name (MNMailbox * self);
+gchar * mn_mailbox_get_stock_id (MNMailbox * self);
+void mn_mailbox_set_stock_id (MNMailbox * self,
+ gchar * val);
+gchar * mn_mailbox_get_format (MNMailbox * self);
+void mn_mailbox_set_format (MNMailbox * self,
+ gchar * val);
gboolean mn_mailbox_get_must_poll (MNMailbox * self);
void mn_mailbox_set_must_poll (MNMailbox * self,
gboolean val);
-gpointer mn_mailbox_get_messages (MNMailbox * self);
+const GSList * mn_mailbox_get_messages (MNMailbox * self);
void mn_mailbox_set_messages (MNMailbox * self,
- gpointer val);
-const char * mn_mailbox_get_error (MNMailbox * self);
+ const GSList * val);
void mn_mailbox_init_types (void);
-void mn_mailbox_new_async (MNURI * uri,
- gpointer callback,
- gpointer user_data);
+MNMailbox * mn_mailbox_new (const char * type,
+ const char * first,
+ ...);
+MNMailbox * mn_mailbox_new_from_xml_node (xmlNode * node,
+ GError ** err);
+xmlNode * mn_mailbox_xml_node_new (MNMailbox * self);
+MNMailbox * mn_mailbox_new_from_uri (const char * uri);
+MNMailbox * mn_mailbox_new_from_configuration (MNMailboxConfiguration * config);
+MNMailboxConfiguration * mn_mailbox_get_configuration (MNMailbox * self);
+void mn_mailbox_configuration_free (MNMailboxConfiguration * config);
+MNMailbox * mn_mailbox_new_from_obsolete_uri (const char * uri);
+void mn_mailbox_seal (MNMailbox * self);
void mn_mailbox_check (MNMailbox * self);
/*
@@ -114,23 +124,29 @@ void mn_mailbox_check (MNMailbox * self);
* Argument wrapping macros
*/
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_MAILBOX_PROP_URI(arg) "uri", __extension__ ({GObject *z = (arg); z;})
#define MN_MAILBOX_PROP_NAME(arg) "name", __extension__ ({gchar *z = (arg); z;})
#define MN_MAILBOX_GET_PROP_NAME(arg) "name", __extension__ ({gchar **z = (arg); z;})
+#define MN_MAILBOX_PROP_STOCK_ID(arg) "stock_id", __extension__ ({gchar *z = (arg); z;})
+#define MN_MAILBOX_GET_PROP_STOCK_ID(arg) "stock_id", __extension__ ({gchar **z = (arg); z;})
+#define MN_MAILBOX_PROP_FORMAT(arg) "format", __extension__ ({gchar *z = (arg); z;})
+#define MN_MAILBOX_GET_PROP_FORMAT(arg) "format", __extension__ ({gchar **z = (arg); z;})
#define MN_MAILBOX_PROP_MUST_POLL(arg) "must_poll", __extension__ ({gboolean z = (arg); z;})
#define MN_MAILBOX_GET_PROP_MUST_POLL(arg) "must_poll", __extension__ ({gboolean *z = (arg); z;})
-#define MN_MAILBOX_PROP_MESSAGES(arg) "messages", __extension__ ({gpointer z = (arg); z;})
-#define MN_MAILBOX_GET_PROP_MESSAGES(arg) "messages", __extension__ ({gpointer *z = (arg); z;})
+#define MN_MAILBOX_PROP_MESSAGES(arg) "messages", __extension__ ({const GSList * z = (arg); z;})
+#define MN_MAILBOX_GET_PROP_MESSAGES(arg) "messages", __extension__ ({const GSList * *z = (arg); z;})
#define MN_MAILBOX_PROP_ERROR(arg) "error", __extension__ ({gchar *z = (arg); z;})
#define MN_MAILBOX_GET_PROP_ERROR(arg) "error", __extension__ ({gchar **z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_MAILBOX_PROP_URI(arg) "uri",(GObject *)(arg)
#define MN_MAILBOX_PROP_NAME(arg) "name",(gchar *)(arg)
#define MN_MAILBOX_GET_PROP_NAME(arg) "name",(gchar **)(arg)
+#define MN_MAILBOX_PROP_STOCK_ID(arg) "stock_id",(gchar *)(arg)
+#define MN_MAILBOX_GET_PROP_STOCK_ID(arg) "stock_id",(gchar **)(arg)
+#define MN_MAILBOX_PROP_FORMAT(arg) "format",(gchar *)(arg)
+#define MN_MAILBOX_GET_PROP_FORMAT(arg) "format",(gchar **)(arg)
#define MN_MAILBOX_PROP_MUST_POLL(arg) "must_poll",(gboolean )(arg)
#define MN_MAILBOX_GET_PROP_MUST_POLL(arg) "must_poll",(gboolean *)(arg)
-#define MN_MAILBOX_PROP_MESSAGES(arg) "messages",(gpointer )(arg)
-#define MN_MAILBOX_GET_PROP_MESSAGES(arg) "messages",(gpointer *)(arg)
+#define MN_MAILBOX_PROP_MESSAGES(arg) "messages",(const GSList * )(arg)
+#define MN_MAILBOX_GET_PROP_MESSAGES(arg) "messages",(const GSList * *)(arg)
#define MN_MAILBOX_PROP_ERROR(arg) "error",(gchar *)(arg)
#define MN_MAILBOX_GET_PROP_ERROR(arg) "error",(gchar **)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */
diff --git a/src/mn-mailboxes-private.h b/src/mn-mailboxes-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_MAILBOXES_PRIVATE_H__
#define __MN_MAILBOXES_PRIVATE_H__
@@ -10,11 +10,15 @@ extern "C" {
#endif /* __cplusplus */
struct _MNMailboxesPrivate {
-#line 36 "mn-mailboxes.gob"
- GSList * list;
-#line 37 "mn-mailboxes.gob"
+#line 43 "mn-mailboxes.gob"
unsigned int timeout_id;
-#line 18 "mn-mailboxes-private.h"
+#line 45 "mn-mailboxes.gob"
+ GSList * add_queue;
+#line 46 "mn-mailboxes.gob"
+ GSList * remove_queue;
+#line 47 "mn-mailboxes.gob"
+ unsigned int queue_idle_id;
+#line 22 "mn-mailboxes-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-mailboxes.c b/src/mn-mailboxes.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,17 +23,21 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-mailboxes.gob"
+#line 25 "mn-mailboxes.gob"
#include "config.h"
+#include <unistd.h>
+#include <stdarg.h>
#include <glib/gi18n.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
#include <eel/eel.h>
#include "mn-conf.h"
#include "mn-util.h"
-#include "mn-pending-mailbox.h"
-#include "mn-unsupported-mailbox.h"
+#include "mn-message.h"
+#include "mn-mailbox-private.h"
-#line 37 "mn-mailboxes.c"
+#line 41 "mn-mailboxes.c"
/* self casting macros */
#define SELF(x) MN_MAILBOXES(x)
#define SELF_CONST(x) MN_MAILBOXES_CONST(x)
@@ -50,10 +54,11 @@ typedef MNMailboxesClass SelfClass;
/* here are local prototypes */
static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
static void mn_mailboxes_class_init (MNMailboxesClass * c) G_GNUC_UNUSED;
+static void ___real_mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox);
static void mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
-static void mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
static void ___real_mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox);
static void mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify (MNMailboxes * self, MNMailbox * mailbox, GParamSpec * pspec) G_GNUC_UNUSED;
static void ___real_mn_mailboxes_list_changed (MNMailboxes * self);
static void mn_mailboxes_list_changed (MNMailboxes * self) G_GNUC_UNUSED;
static void mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new) G_GNUC_UNUSED;
@@ -61,16 +66,18 @@ static void mn_mailboxes_error_changed (MNMailboxes * self) G_GNUC_UNUSED;
static void mn_mailboxes_init (MNMailboxes * self) G_GNUC_UNUSED;
static void ___9_mn_mailboxes_finalize (GObject * object) G_GNUC_UNUSED;
static void mn_mailboxes_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_notify_mailboxes_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_update_from_conf (MNMailboxes * self) G_GNUC_UNUSED;
-static void mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_add_error (GString ** errors, int * n_errors, const char * format, ...) G_GNUC_UNUSED;
+static gboolean mn_mailboxes_load_real (MNMailboxes * self, GError ** err) G_GNUC_UNUSED;
+static gboolean mn_mailboxes_save_real (MNMailboxes * self, GError ** err) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailboxes_install_timeout (MNMailboxes * self) G_GNUC_UNUSED;
static gboolean mn_mailboxes_timeout_cb (gpointer data) G_GNUC_UNUSED;
-static int mn_mailboxes_find_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
-static int mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
+static void mn_mailboxes_add_real (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_mailboxes_remove_real (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
+static gboolean mn_mailboxes_queue_idle_cb (gpointer data) G_GNUC_UNUSED;
/*
* Signal connection wrapper macro shortcuts
@@ -78,12 +85,12 @@ static int mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b
#define self_connect__mailbox_added(object,func,data) mn_mailboxes_connect__mailbox_added((object),(func),(data))
#define self_connect_after__mailbox_added(object,func,data) mn_mailboxes_connect_after__mailbox_added((object),(func),(data))
#define self_connect_data__mailbox_added(object,func,data,destroy_data,flags) mn_mailboxes_connect_data__mailbox_added((object),(func),(data),(destroy_data),(flags))
-#define self_connect__mailbox_changed(object,func,data) mn_mailboxes_connect__mailbox_changed((object),(func),(data))
-#define self_connect_after__mailbox_changed(object,func,data) mn_mailboxes_connect_after__mailbox_changed((object),(func),(data))
-#define self_connect_data__mailbox_changed(object,func,data,destroy_data,flags) mn_mailboxes_connect_data__mailbox_changed((object),(func),(data),(destroy_data),(flags))
#define self_connect__mailbox_removed(object,func,data) mn_mailboxes_connect__mailbox_removed((object),(func),(data))
#define self_connect_after__mailbox_removed(object,func,data) mn_mailboxes_connect_after__mailbox_removed((object),(func),(data))
#define self_connect_data__mailbox_removed(object,func,data,destroy_data,flags) mn_mailboxes_connect_data__mailbox_removed((object),(func),(data),(destroy_data),(flags))
+#define self_connect__mailbox_notify(object,func,data) mn_mailboxes_connect__mailbox_notify((object),(func),(data))
+#define self_connect_after__mailbox_notify(object,func,data) mn_mailboxes_connect_after__mailbox_notify((object),(func),(data))
+#define self_connect_data__mailbox_notify(object,func,data,destroy_data,flags) mn_mailboxes_connect_data__mailbox_notify((object),(func),(data),(destroy_data),(flags))
#define self_connect__list_changed(object,func,data) mn_mailboxes_connect__list_changed((object),(func),(data))
#define self_connect_after__list_changed(object,func,data) mn_mailboxes_connect_after__list_changed((object),(func),(data))
#define self_connect_data__list_changed(object,func,data,destroy_data,flags) mn_mailboxes_connect_data__list_changed((object),(func),(data),(destroy_data),(flags))
@@ -126,7 +133,7 @@ ___marshal_Sig1 (GClosure *closure,
}
-typedef void (*___Sig2) (MNMailboxes *, gboolean , gpointer);
+typedef void (*___Sig2) (MNMailboxes *, GObject *, gpointer , gpointer);
static void
___marshal_Sig2 (GClosure *closure,
@@ -140,7 +147,7 @@ ___marshal_Sig2 (GClosure *closure,
register GCClosure *cc = (GCClosure*) closure;
register gpointer data1, data2;
- g_return_if_fail (n_param_values == 2);
+ g_return_if_fail (n_param_values == 3);
if (G_CCLOSURE_SWAP_DATA (closure)) {
data1 = closure->data;
@@ -153,6 +160,39 @@ ___marshal_Sig2 (GClosure *closure,
callback = (___Sig2) (marshal_data != NULL ? marshal_data : cc->callback);
callback ((MNMailboxes *)data1,
+ (GObject *) g_value_get_object (param_values + 1),
+ (gpointer ) g_value_get_pointer (param_values + 2),
+ data2);
+}
+
+
+typedef void (*___Sig3) (MNMailboxes *, gboolean , gpointer);
+
+static void
+___marshal_Sig3 (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ register ___Sig3 callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ } else {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+
+ callback = (___Sig3) (marshal_data != NULL ? marshal_data : cc->callback);
+
+ callback ((MNMailboxes *)data1,
(gboolean ) g_value_get_boolean (param_values + 1),
data2);
}
@@ -160,8 +200,8 @@ ___marshal_Sig2 (GClosure *closure,
enum {
MAILBOX_ADDED_SIGNAL,
- MAILBOX_CHANGED_SIGNAL,
MAILBOX_REMOVED_SIGNAL,
+ MAILBOX_NOTIFY_SIGNAL,
LIST_CHANGED_SIGNAL,
MESSAGES_CHANGED_SIGNAL,
ERROR_CHANGED_SIGNAL,
@@ -180,29 +220,34 @@ static GObjectClass *parent_class = NULL;
/* Short form macros */
#define self_mailbox_added mn_mailboxes_mailbox_added
-#define self_mailbox_changed mn_mailboxes_mailbox_changed
#define self_mailbox_removed mn_mailboxes_mailbox_removed
+#define self_mailbox_notify mn_mailboxes_mailbox_notify
#define self_list_changed mn_mailboxes_list_changed
#define self_messages_changed mn_mailboxes_messages_changed
#define self_error_changed mn_mailboxes_error_changed
#define self_get_must_poll mn_mailboxes_get_must_poll
#define self_notify_delay_cb mn_mailboxes_notify_delay_cb
-#define self_notify_mailboxes_cb mn_mailboxes_notify_mailboxes_cb
-#define self_update_from_conf mn_mailboxes_update_from_conf
-#define self_new_cb mn_mailboxes_new_cb
-#define self_messages_changed_h mn_mailboxes_messages_changed_h
-#define self_notify_error_h mn_mailboxes_notify_error_h
-#define self_notify_must_poll_h mn_mailboxes_notify_must_poll_h
+#define self_load mn_mailboxes_load
+#define self_add_error mn_mailboxes_add_error
+#define self_load_real mn_mailboxes_load_real
+#define self_save mn_mailboxes_save
+#define self_save_real mn_mailboxes_save_real
+#define self_mailbox_messages_changed_h mn_mailboxes_mailbox_messages_changed_h
+#define self_mailbox_notify_h mn_mailboxes_mailbox_notify_h
+#define self_mailbox_notify_error_h mn_mailboxes_mailbox_notify_error_h
+#define self_mailbox_notify_must_poll_h mn_mailboxes_mailbox_notify_must_poll_h
#define self_install_timeout mn_mailboxes_install_timeout
#define self_timeout_cb mn_mailboxes_timeout_cb
#define self_check mn_mailboxes_check
-#define self_get mn_mailboxes_get
#define self_get_messages mn_mailboxes_get_messages
-#define self_find mn_mailboxes_find
-#define self_find_uri mn_mailboxes_find_uri
-#define self_find_compare_func mn_mailboxes_find_compare_func
-#define self_conf_find_uri mn_mailboxes_conf_find_uri
-#define self_conf_find_compare_func mn_mailboxes_conf_find_compare_func
+#define self_add_real mn_mailboxes_add_real
+#define self_add mn_mailboxes_add
+#define self_queue_add mn_mailboxes_queue_add
+#define self_remove_real mn_mailboxes_remove_real
+#define self_remove mn_mailboxes_remove
+#define self_queue_remove mn_mailboxes_queue_remove
+#define self_queue_idle_cb mn_mailboxes_queue_idle_cb
+#define self_compare_by_name_func mn_mailboxes_compare_by_name_func
#define self_new mn_mailboxes_new
GType
mn_mailboxes_get_type (void)
@@ -253,12 +298,18 @@ ___finalize(GObject *obj_self)
#define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
MNMailboxes *self G_GNUC_UNUSED = MN_MAILBOXES (obj_self);
gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 156 "mn-mailboxes.gob"
+#line 215 "mn-mailboxes.gob"
___9_mn_mailboxes_finalize(obj_self);
-#line 259 "mn-mailboxes.c"
-#line 36 "mn-mailboxes.gob"
- if(self->_priv->list) { mn_g_object_slist_free ((gpointer) self->_priv->list); self->_priv->list = NULL; }
-#line 262 "mn-mailboxes.c"
+#line 304 "mn-mailboxes.c"
+#line 41 "mn-mailboxes.gob"
+ if(self->list) { eel_g_object_list_free ((gpointer) self->list); self->list = NULL; }
+#line 307 "mn-mailboxes.c"
+#line 45 "mn-mailboxes.gob"
+ if(self->_priv->add_queue) { mn_g_object_slist_free ((gpointer) self->_priv->add_queue); self->_priv->add_queue = NULL; }
+#line 310 "mn-mailboxes.c"
+#line 46 "mn-mailboxes.gob"
+ if(self->_priv->remove_queue) { mn_g_object_slist_free ((gpointer) self->_priv->remove_queue); self->_priv->remove_queue = NULL; }
+#line 313 "mn-mailboxes.c"
}
#undef __GOB_FUNCTION__
@@ -275,26 +326,14 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
object_signals[MAILBOX_ADDED_SIGNAL] =
g_signal_new ("mailbox_added",
G_TYPE_FROM_CLASS (g_object_class),
- (GSignalFlags)(G_SIGNAL_RUN_LAST),
+ (GSignalFlags)(G_SIGNAL_RUN_FIRST),
G_STRUCT_OFFSET (MNMailboxesClass, mailbox_added),
NULL, NULL,
___marshal_Sig1,
G_TYPE_NONE, 1,
G_TYPE_OBJECT);
if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 46: Type mismatch of \"mailbox_added\" signal signature");
- }
- object_signals[MAILBOX_CHANGED_SIGNAL] =
- g_signal_new ("mailbox_changed",
- G_TYPE_FROM_CLASS (g_object_class),
- (GSignalFlags)(G_SIGNAL_RUN_LAST),
- G_STRUCT_OFFSET (MNMailboxesClass, mailbox_changed),
- NULL, NULL,
- ___marshal_Sig1,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
- if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 56: Type mismatch of \"mailbox_changed\" signal signature");
+ g_error("mn-mailboxes.gob line 56: Type mismatch of \"mailbox_added\" signal signature");
}
object_signals[MAILBOX_REMOVED_SIGNAL] =
g_signal_new ("mailbox_removed",
@@ -306,7 +345,20 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
G_TYPE_NONE, 1,
G_TYPE_OBJECT);
if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 67: Type mismatch of \"mailbox_removed\" signal signature");
+ g_error("mn-mailboxes.gob line 78: Type mismatch of \"mailbox_removed\" signal signature");
+ }
+ object_signals[MAILBOX_NOTIFY_SIGNAL] =
+ g_signal_new ("mailbox_notify",
+ G_TYPE_FROM_CLASS (g_object_class),
+ (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED),
+ G_STRUCT_OFFSET (MNMailboxesClass, mailbox_notify),
+ NULL, NULL,
+ ___marshal_Sig2,
+ G_TYPE_NONE, 2,
+ G_TYPE_OBJECT,
+ G_TYPE_POINTER);
+ if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || sizeof(GParamSpec * ) != sizeof(gpointer ) || parent_class == NULL /* avoid warning */) {
+ g_error("mn-mailboxes.gob line 97: Type mismatch of \"mailbox_notify\" signal signature");
}
object_signals[LIST_CHANGED_SIGNAL] =
g_signal_new ("list_changed",
@@ -322,11 +374,11 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
(GSignalFlags)(G_SIGNAL_RUN_LAST),
G_STRUCT_OFFSET (MNMailboxesClass, messages_changed),
NULL, NULL,
- ___marshal_Sig2,
+ ___marshal_Sig3,
G_TYPE_NONE, 1,
G_TYPE_BOOLEAN);
if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 115: Type mismatch of \"messages_changed\" signal signature");
+ g_error("mn-mailboxes.gob line 132: Type mismatch of \"messages_changed\" signal signature");
}
object_signals[ERROR_CHANGED_SIGNAL] =
g_signal_new ("error_changed",
@@ -337,18 +389,20 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
- c->mailbox_added = NULL;
- c->mailbox_changed = NULL;
-#line 67 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
+ c->mailbox_added = ___real_mn_mailboxes_mailbox_added;
+#line 78 "mn-mailboxes.gob"
c->mailbox_removed = ___real_mn_mailboxes_mailbox_removed;
-#line 93 "mn-mailboxes.gob"
+#line 397 "mn-mailboxes.c"
+ c->mailbox_notify = NULL;
+#line 110 "mn-mailboxes.gob"
c->list_changed = ___real_mn_mailboxes_list_changed;
-#line 347 "mn-mailboxes.c"
+#line 401 "mn-mailboxes.c"
c->messages_changed = NULL;
c->error_changed = NULL;
-#line 156 "mn-mailboxes.gob"
+#line 215 "mn-mailboxes.gob"
g_object_class->finalize = ___finalize;
-#line 352 "mn-mailboxes.c"
+#line 406 "mn-mailboxes.c"
g_object_class->get_property = ___object_get_property;
{
GParamSpec *param_spec;
@@ -356,7 +410,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
param_spec = g_param_spec_boolean
("must_poll" /* name */,
NULL /* nick */,
- _("Whether one or more of the mailboxes has to be polled") /* blurb */,
+ NULL /* blurb */,
FALSE /* default_value */,
(GParamFlags)(G_PARAM_READABLE));
g_object_class_install_property (g_object_class,
@@ -365,23 +419,62 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
}
}
#undef __GOB_FUNCTION__
-#line 147 "mn-mailboxes.gob"
+#line 167 "mn-mailboxes.gob"
static void
mn_mailboxes_init (MNMailboxes * self G_GNUC_UNUSED)
-#line 372 "mn-mailboxes.c"
+#line 426 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::init"
- self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailboxesPrivate);
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAILBOXES,MNMailboxesPrivate);
{
-#line 148 "mn-mailboxes.gob"
+#line 168 "mn-mailboxes.gob"
+
+ char *filename;
+ gboolean exists;
+
+ filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+ exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+ g_free(filename);
+
+ if (exists)
+ self_load(self);
+ else if (mn_conf_is_set(MN_CONF_OBSOLETE_MAILBOXES))
+ {
+ GSList *gconf_mailboxes;
+ GSList *l;
+ GSList *invalid_uri_list = NULL;
+
+ gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_OBSOLETE_MAILBOXES);
+ MN_LIST_FOREACH(l, gconf_mailboxes)
+ {
+ const char *uri = l->data;
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_obsolete_uri(uri);
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ self_queue_add(self, mailbox);
+ g_object_unref(mailbox);
+ }
+ else
+ invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+ }
+
+ if (invalid_uri_list)
+ {
+ mn_invalid_uri_list_dialog(NULL, _("An error has occurred while importing old mailboxes"), invalid_uri_list);
+ g_slist_free(invalid_uri_list);
+ }
+
+ eel_g_slist_free_deep(gconf_mailboxes);
+ }
- self_update_from_conf(self);
self_install_timeout(self);
mn_conf_notification_add(self, MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
- mn_conf_notification_add(self, MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
-#line 385 "mn-mailboxes.c"
+#line 478 "mn-mailboxes.c"
}
}
#undef __GOB_FUNCTION__
@@ -400,21 +493,25 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_MUST_POLL:
{
-#line 133 "mn-mailboxes.gob"
+#line 149 "mn-mailboxes.gob"
gboolean must_poll = FALSE;
- GSList *l;
+ GList *l;
- MN_LIST_FOREACH(l, selfp->list)
- if (MN_MAILBOX_MUST_POLL(l->data))
- {
- must_poll = TRUE;
- break;
- }
+ MN_LIST_FOREACH(l, self->list)
+ {
+ MNMailbox *mailbox = l->data;
+
+ if (mailbox->must_poll)
+ {
+ must_poll = TRUE;
+ break;
+ }
+ }
g_value_set_boolean(VAL, must_poll);
-#line 418 "mn-mailboxes.c"
+#line 515 "mn-mailboxes.c"
}
break;
default:
@@ -430,10 +527,10 @@ ___object_get_property (GObject *object,
#undef __GOB_FUNCTION__
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
static void
mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox)
-#line 437 "mn-mailboxes.c"
+#line 534 "mn-mailboxes.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -441,15 +538,15 @@ mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 453 "mn-mailboxes.c"
+#line 550 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -467,11 +564,32 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
g_value_unset (&___param_values[1]);
}
-
#line 56 "mn-mailboxes.gob"
static void
-mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox)
-#line 475 "mn-mailboxes.c"
+___real_mn_mailboxes_mailbox_added (MNMailboxes * self G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 571 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_added"
+{
+#line 58 "mn-mailboxes.gob"
+
+ /* connect signals */
+ g_object_connect(mailbox,
+ "signal::messages-changed", self_mailbox_messages_changed_h, self,
+ "signal::notify", self_mailbox_notify_h, self,
+ "signal::notify::error", self_mailbox_notify_error_h, self,
+ "signal::notify::must-poll", self_mailbox_notify_must_poll_h, self,
+ NULL);
+
+ mn_mailbox_check(mailbox);
+ }}
+#line 587 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 78 "mn-mailboxes.gob"
+static void
+mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox)
+#line 593 "mn-mailboxes.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -479,15 +597,15 @@ mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 491 "mn-mailboxes.c"
+#line 609 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -498,34 +616,62 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_set_object (&___param_values[1], (GObject *) mailbox);
g_signal_emitv (___param_values,
- object_signals[MAILBOX_CHANGED_SIGNAL],
+ object_signals[MAILBOX_REMOVED_SIGNAL],
0 /* detail */,
&___return_val);
g_value_unset (&___param_values[0]);
g_value_unset (&___param_values[1]);
}
+#line 78 "mn-mailboxes.gob"
+static void
+___real_mn_mailboxes_mailbox_removed (MNMailboxes * self G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 630 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_removed"
+{
+#line 80 "mn-mailboxes.gob"
+
+ /* disconnect signals */
+ g_object_disconnect(mailbox,
+ "any-signal", self_mailbox_messages_changed_h, self,
+ "any-signal", self_mailbox_notify_h, self,
+ "any-signal", self_mailbox_notify_error_h, self,
+ "any-signal", self_mailbox_notify_must_poll_h, self,
+ NULL);
+
+ /* emit the "removed" signal on the mailbox */
+ mn_mailbox_removed(mailbox);
+
+ /* messages and error have possibly changed */
+ self_messages_changed(self, FALSE);
+ self_error_changed(self);
+ }}
+#line 651 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
static void
-mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox)
-#line 513 "mn-mailboxes.c"
+mn_mailboxes_mailbox_notify (MNMailboxes * self, MNMailbox * mailbox, GParamSpec * pspec)
+#line 657 "mn-mailboxes.c"
{
- GValue ___param_values[2];
+ GValue ___param_values[3];
GValue ___return_val;
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 529 "mn-mailboxes.c"
+#line 97 "mn-mailboxes.gob"
+ g_return_if_fail (pspec != NULL);
+#line 675 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -535,44 +681,24 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_init (&___param_values[1], G_TYPE_OBJECT);
g_value_set_object (&___param_values[1], (GObject *) mailbox);
+ ___param_values[2].g_type = 0;
+ g_value_init (&___param_values[2], G_TYPE_POINTER);
+ g_value_set_pointer (&___param_values[2], (gpointer ) pspec);
+
g_signal_emitv (___param_values,
- object_signals[MAILBOX_REMOVED_SIGNAL],
+ object_signals[MAILBOX_NOTIFY_SIGNAL],
0 /* detail */,
&___return_val);
g_value_unset (&___param_values[0]);
g_value_unset (&___param_values[1]);
+ g_value_unset (&___param_values[2]);
}
-#line 67 "mn-mailboxes.gob"
-static void
-___real_mn_mailboxes_mailbox_removed (MNMailboxes * self G_GNUC_UNUSED, MNMailbox * mailbox)
-#line 550 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_removed"
-{
-#line 69 "mn-mailboxes.gob"
-
- /* disconnect signals */
- g_object_disconnect(mailbox,
- "any-signal", self_messages_changed_h, self,
- "any-signal", self_notify_error_h, self,
- "any-signal", self_notify_must_poll_h, self,
- NULL);
-
- /* emit the "removed" signal on the mailbox */
- mn_mailbox_removed(mailbox);
-
- /* messages and error have possibly changed */
- self_messages_changed(self, FALSE);
- self_error_changed(self);
- }}
-#line 570 "mn-mailboxes.c"
-#undef __GOB_FUNCTION__
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
static void
mn_mailboxes_list_changed (MNMailboxes * self)
-#line 576 "mn-mailboxes.c"
+#line 702 "mn-mailboxes.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -580,11 +706,11 @@ mn_mailboxes_list_changed (MNMailboxes * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 588 "mn-mailboxes.c"
+#line 714 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -597,25 +723,25 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
static void
___real_mn_mailboxes_list_changed (MNMailboxes * self G_GNUC_UNUSED)
-#line 604 "mn-mailboxes.c"
+#line 730 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::list_changed"
{
-#line 95 "mn-mailboxes.gob"
+#line 112 "mn-mailboxes.gob"
/* must-poll has possibly changed */
g_object_notify(G_OBJECT(self), "must-poll");
}}
-#line 613 "mn-mailboxes.c"
+#line 739 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 115 "mn-mailboxes.gob"
+#line 132 "mn-mailboxes.gob"
static void
mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
-#line 619 "mn-mailboxes.c"
+#line 745 "mn-mailboxes.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -623,11 +749,11 @@ mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 115 "mn-mailboxes.gob"
+#line 132 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 115 "mn-mailboxes.gob"
+#line 132 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 631 "mn-mailboxes.c"
+#line 757 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -646,10 +772,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[1]);
}
-#line 127 "mn-mailboxes.gob"
+#line 144 "mn-mailboxes.gob"
static void
mn_mailboxes_error_changed (MNMailboxes * self)
-#line 653 "mn-mailboxes.c"
+#line 779 "mn-mailboxes.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -657,11 +783,11 @@ mn_mailboxes_error_changed (MNMailboxes * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 127 "mn-mailboxes.gob"
+#line 144 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 127 "mn-mailboxes.gob"
+#line 144 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 665 "mn-mailboxes.c"
+#line 791 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -675,59 +801,53 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 133 "mn-mailboxes.gob"
+#line 149 "mn-mailboxes.gob"
gboolean
mn_mailboxes_get_must_poll (MNMailboxes * self)
-#line 682 "mn-mailboxes.c"
+#line 808 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::get_must_poll"
{
-#line 130 "mn-mailboxes.gob"
+#line 147 "mn-mailboxes.gob"
gboolean val; g_object_get (G_OBJECT (self), "must_poll", &val, NULL); return val;
}}
-#line 689 "mn-mailboxes.c"
+#line 815 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 156 "mn-mailboxes.gob"
+#line 215 "mn-mailboxes.gob"
static void
___9_mn_mailboxes_finalize (GObject * object G_GNUC_UNUSED)
-#line 696 "mn-mailboxes.c"
+#line 822 "mn-mailboxes.c"
#define PARENT_HANDLER(___object) \
{ if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
-#line 156 "mn-mailboxes.gob"
- g_return_if_fail (object != NULL);
-#line 156 "mn-mailboxes.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 706 "mn-mailboxes.c"
{
-#line 158 "mn-mailboxes.gob"
+#line 217 "mn-mailboxes.gob"
Self *self = SELF(object);
if (selfp->timeout_id)
g_source_remove(selfp->timeout_id);
+ if (selfp->queue_idle_id)
+ g_source_remove(selfp->queue_idle_id);
PARENT_HANDLER(object);
}}
-#line 717 "mn-mailboxes.c"
+#line 840 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 167 "mn-mailboxes.gob"
+#line 228 "mn-mailboxes.gob"
static void
mn_mailboxes_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 724 "mn-mailboxes.c"
+#line 847 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::notify_delay_cb"
-#line 167 "mn-mailboxes.gob"
- g_return_if_fail (user_data != NULL);
-#line 729 "mn-mailboxes.c"
{
-#line 172 "mn-mailboxes.gob"
+#line 233 "mn-mailboxes.gob"
Self *self = user_data;
@@ -735,264 +855,387 @@ mn_mailboxes_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfE
self_install_timeout(self);
GDK_THREADS_LEAVE();
}}
-#line 739 "mn-mailboxes.c"
+#line 859 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 180 "mn-mailboxes.gob"
-static void
-mn_mailboxes_notify_mailboxes_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 745 "mn-mailboxes.c"
+#line 241 "mn-mailboxes.gob"
+void
+mn_mailboxes_load (MNMailboxes * self)
+#line 865 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::notify_mailboxes_cb"
-#line 180 "mn-mailboxes.gob"
- g_return_if_fail (user_data != NULL);
-#line 750 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::load"
+#line 241 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 241 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 872 "mn-mailboxes.c"
{
-#line 185 "mn-mailboxes.gob"
+#line 243 "mn-mailboxes.gob"
- Self *self = user_data;
+ GError *err = NULL;
- GDK_THREADS_ENTER();
- self_update_from_conf(self);
- GDK_THREADS_LEAVE();
+ if (! self_load_real(self, &err))
+ {
+ mn_error_dialog(NULL, NULL, NULL, _("Unable to load the mailboxes configuration"), "%s", err->message);
+ g_error_free(err);
+ }
}}
-#line 760 "mn-mailboxes.c"
+#line 884 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 193 "mn-mailboxes.gob"
+#line 253 "mn-mailboxes.gob"
static void
-mn_mailboxes_update_from_conf (MNMailboxes * self)
-#line 766 "mn-mailboxes.c"
+mn_mailboxes_add_error (GString ** errors, int * n_errors, const char * format, ...)
+#line 890 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::update_from_conf"
-#line 193 "mn-mailboxes.gob"
- g_return_if_fail (self != NULL);
-#line 193 "mn-mailboxes.gob"
- g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 773 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::add_error"
+#line 253 "mn-mailboxes.gob"
+ g_return_if_fail (errors != NULL);
+#line 253 "mn-mailboxes.gob"
+ g_return_if_fail (n_errors != NULL);
+#line 897 "mn-mailboxes.c"
{
-#line 195 "mn-mailboxes.gob"
+#line 257 "mn-mailboxes.gob"
- GSList *gconf_mailboxes;
- GSList *l;
- gboolean changed = FALSE;
+ va_list args;
+ char *message;
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
+ if (*errors)
+ g_string_append_c(*errors, '\n');
+ else
+ *errors = g_string_new(NULL);
- /* first step: remove old mailboxes */
+ va_start(args, format);
+ message = g_strdup_vprintf(format, args);
+ va_end(args);
- loop:
- MN_LIST_FOREACH(l, selfp->list)
- {
- MNMailbox *mailbox = l->data;
+ g_string_append(*errors, message);
+ g_free(message);
- if (! self_conf_find_uri(gconf_mailboxes, mailbox->uri))
- {
- selfp->list = g_slist_delete_link(selfp->list, l);
+ (*n_errors)++;
+ }}
+#line 918 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
- self_mailbox_removed(self, mailbox);
- g_object_unref(mailbox);
+#line 276 "mn-mailboxes.gob"
+static gboolean
+mn_mailboxes_load_real (MNMailboxes * self, GError ** err)
+#line 924 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::load_real"
+#line 276 "mn-mailboxes.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 276 "mn-mailboxes.gob"
+ g_return_val_if_fail (MN_IS_MAILBOXES (self), (gboolean )0);
+#line 931 "mn-mailboxes.c"
+{
+#line 278 "mn-mailboxes.gob"
+
+ char *filename;
+ xmlDoc *doc;
+ xmlNode *root;
+ xmlNode *node;
+ gboolean list_changed = FALSE;
+ gboolean status = TRUE;
+ GString *errors = NULL;
+ int n_errors = 0;
+
+ filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+ doc = xmlParseFile(filename);
+ g_free(filename);
+
+ if (! doc)
+ {
+ g_set_error(err, 0, 0, _("Unable to parse the XML document."));
+ goto error;
+ }
+
+ root = xmlDocGetRootElement(doc);
+ if (! root)
+ {
+ g_set_error(err, 0, 0, _("The root element is missing."));
+ goto error;
+ }
- changed = TRUE;
- goto loop;
- }
+ if (strcmp(root->name, "mailboxes"))
+ {
+ g_set_error(err, 0, 0, _("The root element \"%s\" is invalid."), root->name);
+ goto error;
}
- /* second step: add new mailboxes */
+ for (node = root->children; node; node = node->next)
+ if (node->type == XML_ELEMENT_NODE)
+ {
+ if (! strcmp(node->name, "mailbox"))
+ {
+ MNMailbox *mailbox;
+ GError *tmp_err = NULL;
+
+ mailbox = mn_mailbox_new_from_xml_node(node, &tmp_err);
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ self_add_real(self, mailbox);
+ g_object_unref(mailbox);
+
+ list_changed = TRUE;
+ }
+ else
+ {
+ self_add_error(&errors, &n_errors, _("On line %i: %s."), node->line, tmp_err->message);
+ g_error_free(tmp_err);
+ }
+ }
+ else
+ self_add_error(&errors, &n_errors, _("On line %i: unknown element \"%s\"."), node->line, node->name);
+ }
+
+ if (list_changed)
+ self_list_changed(self);
- MN_LIST_FOREACH(l, gconf_mailboxes)
+ if (errors)
{
- const char *text_uri = l->data;
- MNURI *uri;
-
- uri = mn_uri_new(text_uri);
- if (! self_find_uri(self, uri))
- {
- MNMailbox *mailbox;
+ mn_error_dialog(NULL,
+ NULL,
+ NULL,
+ ngettext("An error has occurred while loading the mailboxes configuration",
+ "Errors have occurred while loading the mailboxes configuration",
+ n_errors),
+ "%s", errors->str);
+ g_string_free(errors, TRUE);
+ }
+
+ goto end;
- mailbox = mn_pending_mailbox_new(uri);
- selfp->list = g_slist_append(selfp->list, mailbox);
+ error:
+ status = FALSE;
- self_mailbox_added(self, mailbox);
- changed = TRUE;
-
- mn_mailbox_new_async(uri, self_new_cb, self);
- }
- g_object_unref(uri);
- }
+ end:
+ xmlFreeDoc(doc);
- eel_g_slist_free_deep(gconf_mailboxes);
- if (changed)
- self_list_changed(self);
+ return status;
}}
-#line 829 "mn-mailboxes.c"
+#line 1019 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 249 "mn-mailboxes.gob"
-static void
-mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data)
-#line 835 "mn-mailboxes.c"
+#line 364 "mn-mailboxes.gob"
+void
+mn_mailboxes_save (MNMailboxes * self)
+#line 1025 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::new_cb"
-#line 249 "mn-mailboxes.gob"
- g_return_if_fail (mailbox != NULL);
-#line 249 "mn-mailboxes.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 249 "mn-mailboxes.gob"
- g_return_if_fail (user_data != NULL);
-#line 844 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::save"
+#line 364 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 364 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 1032 "mn-mailboxes.c"
{
-#line 252 "mn-mailboxes.gob"
+#line 366 "mn-mailboxes.gob"
- Self *self = user_data;
- GSList *elem;
+ GError *err = NULL;
- elem = self_find_uri(self, mailbox->uri);
- if (elem)
+ if (! self_save_real(self, &err))
{
- if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
- mn_info(_("%s is unsupported: %s"), mn_mailbox_get_name(mailbox), mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
+ mn_error_dialog(NULL, NULL, NULL, _("Unable to save the mailboxes configuration"), "%s", err->message);
+ g_error_free(err);
+ }
+ }}
+#line 1044 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 376 "mn-mailboxes.gob"
+static gboolean
+mn_mailboxes_save_real (MNMailboxes * self, GError ** err)
+#line 1050 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::save_real"
+#line 376 "mn-mailboxes.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 376 "mn-mailboxes.gob"
+ g_return_val_if_fail (MN_IS_MAILBOXES (self), (gboolean )0);
+#line 1057 "mn-mailboxes.c"
+{
+#line 378 "mn-mailboxes.gob"
- g_object_connect(mailbox,
- "signal::messages-changed", self_messages_changed_h, self,
- "signal::notify::error", self_notify_error_h, self,
- "signal::notify::must-poll", self_notify_must_poll_h, self,
- NULL);
+ xmlDoc *doc;
+ xmlNode *root;
+ int indent;
+ GList *l;
+ char *filename;
+ char *tmp_filename;
+ char *old_filename;
+ int result;
+ gboolean old_exists;
+ gboolean status = TRUE;
+
+ indent = xmlIndentTreeOutput;
+ xmlIndentTreeOutput = 1;
+
+ doc = xmlNewDoc("1.0");
+ root = xmlNewNode(NULL, "mailboxes");
+ xmlDocSetRootElement(doc, root);
+
+ MN_LIST_FOREACH(l, self->list)
+ {
+ MNMailbox *mailbox = l->data;
+ xmlNode *node;
- if (MN_MAILBOX_CAN_CHECK(mailbox))
- mn_mailbox_check(mailbox);
+ node = mn_mailbox_xml_node_new(mailbox);
+ xmlAddChild(root, node); /* owns node */
+ }
+
+ filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+ tmp_filename = g_strconcat(filename, ".tmp", NULL);
+ old_filename = g_strconcat(filename, ".old", NULL);
+
+ result = xmlSaveFormatFile(tmp_filename, doc, 1);
+ xmlFreeDoc(doc);
- g_object_unref(elem->data);
- elem->data = mailbox;
+ xmlIndentTreeOutput = indent;
- self_mailbox_changed(self, mailbox);
- self_list_changed(self);
+ if (result < 0)
+ {
+ g_set_error(err, 0, 0, _("Unable to write the XML document."));
+ goto error;
}
- else
- g_object_unref(mailbox);
+
+ old_exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+ if (old_exists)
+ {
+ if (! mn_rename(filename, old_filename, err))
+ goto error;
+ }
+
+ if (! mn_rename(tmp_filename, filename, err))
+ goto error;
+
+ if (old_exists)
+ if (unlink(old_filename) < 0) /* non fatal */
+ g_warning(_("unable to delete %s: %s"), old_filename, g_strerror(errno));
+
+ goto end; /* success */
+
+ error:
+ status = FALSE;
+
+ end:
+ g_free(filename);
+ g_free(tmp_filename);
+ g_free(old_filename);
+
+ return status;
}}
-#line 875 "mn-mailboxes.c"
+#line 1129 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 281 "mn-mailboxes.gob"
+#line 448 "mn-mailboxes.gob"
static void
-mn_mailboxes_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data)
-#line 881 "mn-mailboxes.c"
+mn_mailboxes_mailbox_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data)
+#line 1135 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::messages_changed_h"
-#line 281 "mn-mailboxes.gob"
- g_return_if_fail (mailbox != NULL);
-#line 281 "mn-mailboxes.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 281 "mn-mailboxes.gob"
- g_return_if_fail (user_data != NULL);
-#line 890 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_messages_changed_h"
{
-#line 285 "mn-mailboxes.gob"
+#line 452 "mn-mailboxes.gob"
Self *self = user_data;
int n_messages;
- n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+ n_messages = g_slist_length(mailbox->messages);
mn_info(ngettext("%s has %i new message", "%s has %i new messages", n_messages),
- mn_mailbox_get_name(mailbox), n_messages);
+ mailbox->runtime_name, n_messages);
self_messages_changed(self, has_new);
}}
-#line 903 "mn-mailboxes.c"
+#line 1150 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 296 "mn-mailboxes.gob"
+#line 463 "mn-mailboxes.gob"
static void
-mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 909 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::notify_error_h"
-#line 296 "mn-mailboxes.gob"
- g_return_if_fail (object != NULL);
-#line 296 "mn-mailboxes.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 296 "mn-mailboxes.gob"
- g_return_if_fail (pspec != NULL);
-#line 296 "mn-mailboxes.gob"
- g_return_if_fail (user_data != NULL);
-#line 920 "mn-mailboxes.c"
+mn_mailboxes_mailbox_notify_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 1156 "mn-mailboxes.c"
{
-#line 300 "mn-mailboxes.gob"
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_notify_h"
+{
+#line 465 "mn-mailboxes.gob"
+
+ Self *self = user_data;
+ char *detailed_signal;
+
+ detailed_signal = g_strconcat("mailbox-notify::", g_param_spec_get_name(pspec), NULL);
+ g_signal_emit_by_name(self, detailed_signal, object, pspec);
+ g_free(detailed_signal);
+ }}
+#line 1169 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 474 "mn-mailboxes.gob"
+static void
+mn_mailboxes_mailbox_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 1175 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_notify_error_h"
+{
+#line 478 "mn-mailboxes.gob"
Self *self = user_data;
MNMailbox *mailbox = MN_MAILBOX(object);
- const char *error;
- error = mn_mailbox_get_error(mailbox);
- if (error)
- mn_info(_("%s reported an error: %s"), mn_mailbox_get_name(mailbox), error);
+ if (mailbox->error)
+ mn_info(_("%s reported an error: %s"), mailbox->runtime_name, mailbox->error);
self_error_changed(self);
}}
-#line 934 "mn-mailboxes.c"
+#line 1189 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 312 "mn-mailboxes.gob"
+#line 488 "mn-mailboxes.gob"
static void
-mn_mailboxes_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 940 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::notify_must_poll_h"
-#line 312 "mn-mailboxes.gob"
- g_return_if_fail (object != NULL);
-#line 312 "mn-mailboxes.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 312 "mn-mailboxes.gob"
- g_return_if_fail (pspec != NULL);
-#line 312 "mn-mailboxes.gob"
- g_return_if_fail (user_data != NULL);
-#line 951 "mn-mailboxes.c"
+mn_mailboxes_mailbox_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 1195 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_notify_must_poll_h"
{
-#line 316 "mn-mailboxes.gob"
+#line 492 "mn-mailboxes.gob"
Self *self = user_data;
/* must-poll has possibly changed */
g_object_notify(G_OBJECT(self), "must-poll");
}}
-#line 960 "mn-mailboxes.c"
+#line 1206 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 323 "mn-mailboxes.gob"
+#line 499 "mn-mailboxes.gob"
static void
mn_mailboxes_install_timeout (MNMailboxes * self)
-#line 966 "mn-mailboxes.c"
+#line 1212 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::install_timeout"
-#line 323 "mn-mailboxes.gob"
+#line 499 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 323 "mn-mailboxes.gob"
+#line 499 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 973 "mn-mailboxes.c"
+#line 1219 "mn-mailboxes.c"
{
-#line 325 "mn-mailboxes.gob"
+#line 501 "mn-mailboxes.gob"
- mn_source_remove(&selfp->timeout_id);
+ mn_source_clear(&selfp->timeout_id);
selfp->timeout_id = mn_timeout_add(MN_CONF_DELAY_MINUTES,
MN_CONF_DELAY_SECONDS,
self_timeout_cb,
self);
}}
-#line 983 "mn-mailboxes.c"
+#line 1229 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 333 "mn-mailboxes.gob"
+#line 509 "mn-mailboxes.gob"
static gboolean
mn_mailboxes_timeout_cb (gpointer data)
-#line 989 "mn-mailboxes.c"
+#line 1235 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::timeout_cb"
-#line 333 "mn-mailboxes.gob"
- g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 994 "mn-mailboxes.c"
{
-#line 335 "mn-mailboxes.gob"
+#line 511 "mn-mailboxes.gob"
Self *self = data;
@@ -1002,76 +1245,57 @@ mn_mailboxes_timeout_cb (gpointer data)
return TRUE; /* continue */
}}
-#line 1006 "mn-mailboxes.c"
+#line 1249 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 345 "mn-mailboxes.gob"
+#line 521 "mn-mailboxes.gob"
void
mn_mailboxes_check (MNMailboxes * self)
-#line 1012 "mn-mailboxes.c"
+#line 1255 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::check"
-#line 345 "mn-mailboxes.gob"
+#line 521 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 345 "mn-mailboxes.gob"
+#line 521 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 1019 "mn-mailboxes.c"
+#line 1262 "mn-mailboxes.c"
{
-#line 347 "mn-mailboxes.gob"
+#line 523 "mn-mailboxes.gob"
- GSList *l;
+ GList *l;
- MN_LIST_FOREACH(l, selfp->list)
+ MN_LIST_FOREACH(l, self->list)
{
MNMailbox *mailbox = l->data;
- if (MN_MAILBOX_MUST_POLL(mailbox))
+ if (mailbox->must_poll)
mn_mailbox_check(mailbox);
}
}}
-#line 1033 "mn-mailboxes.c"
-#undef __GOB_FUNCTION__
-
-#line 359 "mn-mailboxes.gob"
-GSList *
-mn_mailboxes_get (MNMailboxes * self)
-#line 1039 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::get"
-#line 359 "mn-mailboxes.gob"
- g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 359 "mn-mailboxes.gob"
- g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1046 "mn-mailboxes.c"
-{
-#line 361 "mn-mailboxes.gob"
-
- return selfp->list;
- }}
-#line 1052 "mn-mailboxes.c"
+#line 1276 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 365 "mn-mailboxes.gob"
+#line 535 "mn-mailboxes.gob"
GSList *
mn_mailboxes_get_messages (MNMailboxes * self)
-#line 1058 "mn-mailboxes.c"
+#line 1282 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::get_messages"
-#line 365 "mn-mailboxes.gob"
+#line 535 "mn-mailboxes.gob"
g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 365 "mn-mailboxes.gob"
+#line 535 "mn-mailboxes.gob"
g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1065 "mn-mailboxes.c"
+#line 1289 "mn-mailboxes.c"
{
-#line 367 "mn-mailboxes.gob"
+#line 537 "mn-mailboxes.gob"
GSList *messages = NULL;
- GSList *l;
+ GList *l;
- MN_LIST_FOREACH(l, selfp->list)
+ MN_LIST_FOREACH(l, self->list)
{
MNMailbox *mailbox = l->data;
- messages = g_slist_concat(messages, mn_g_object_slist_copy(mn_mailbox_get_messages(mailbox)));
+ messages = g_slist_concat(messages, mn_g_object_slist_copy(mailbox->messages));
}
messages = mn_message_slist_sort_by_sent_time(messages);
@@ -1079,128 +1303,228 @@ mn_mailboxes_get_messages (MNMailboxes * self)
return messages;
}}
-#line 1083 "mn-mailboxes.c"
+#line 1307 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 383 "mn-mailboxes.gob"
-GSList *
-mn_mailboxes_find (MNMailboxes * self, const char * text_uri)
-#line 1089 "mn-mailboxes.c"
+#line 553 "mn-mailboxes.gob"
+static void
+mn_mailboxes_add_real (MNMailboxes * self, MNMailbox * mailbox)
+#line 1313 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::find"
-#line 383 "mn-mailboxes.gob"
- g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 383 "mn-mailboxes.gob"
- g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 383 "mn-mailboxes.gob"
- g_return_val_if_fail (text_uri != NULL, (GSList * )0);
-#line 1098 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::add_real"
+#line 553 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 553 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 553 "mn-mailboxes.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 553 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1324 "mn-mailboxes.c"
{
-#line 385 "mn-mailboxes.gob"
+#line 555 "mn-mailboxes.gob"
- MNURI *uri;
- GSList *elem;
-
- uri = mn_uri_new(text_uri);
- elem = self_find_uri(self, uri);
- g_object_unref(uri);
+ g_object_ref(mailbox);
+ self->list = g_list_insert_sorted(self->list, mailbox, self_compare_by_name_func);
+ self_mailbox_added(self, mailbox);
+ }}
+#line 1332 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
- return elem;
+#line 561 "mn-mailboxes.gob"
+void
+mn_mailboxes_add (MNMailboxes * self, MNMailbox * mailbox)
+#line 1338 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::add"
+#line 561 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 561 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 561 "mn-mailboxes.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 561 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1349 "mn-mailboxes.c"
+{
+#line 563 "mn-mailboxes.gob"
+
+ self_add_real(self, mailbox);
+ self_list_changed(self);
+ self_save(self);
}}
-#line 1111 "mn-mailboxes.c"
+#line 1357 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 396 "mn-mailboxes.gob"
-GSList *
-mn_mailboxes_find_uri (MNMailboxes * self, MNURI * uri)
-#line 1117 "mn-mailboxes.c"
+#line 569 "mn-mailboxes.gob"
+void
+mn_mailboxes_queue_add (MNMailboxes * self, MNMailbox * mailbox)
+#line 1363 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::find_uri"
-#line 396 "mn-mailboxes.gob"
- g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 396 "mn-mailboxes.gob"
- g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 396 "mn-mailboxes.gob"
- g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 396 "mn-mailboxes.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1128 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::queue_add"
+#line 569 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 569 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 569 "mn-mailboxes.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 569 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1374 "mn-mailboxes.c"
{
-#line 398 "mn-mailboxes.gob"
+#line 571 "mn-mailboxes.gob"
- return g_slist_find_custom(selfp->list, uri, self_find_compare_func);
+ g_object_ref(mailbox);
+ selfp->add_queue = g_slist_append(selfp->add_queue, mailbox);
+
+ if (! selfp->queue_idle_id)
+ selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
}}
-#line 1134 "mn-mailboxes.c"
+#line 1384 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 402 "mn-mailboxes.gob"
-static int
-mn_mailboxes_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1140 "mn-mailboxes.c"
+#line 579 "mn-mailboxes.gob"
+static void
+mn_mailboxes_remove_real (MNMailboxes * self, MNMailbox * mailbox)
+#line 1390 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::find_compare_func"
+#define __GOB_FUNCTION__ "MN:Mailboxes::remove_real"
+#line 579 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 579 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 579 "mn-mailboxes.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 579 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1401 "mn-mailboxes.c"
{
-#line 404 "mn-mailboxes.gob"
+#line 581 "mn-mailboxes.gob"
- MNMailbox *mailbox = (MNMailbox *) a;
- MNURI *uri = (MNURI *) b;
+ self->list = g_list_remove(self->list, mailbox);
+ self_mailbox_removed(self, mailbox);
+ g_object_unref(mailbox);
+ }}
+#line 1409 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
- return strcmp(mailbox->uri->text, uri->text);
+#line 587 "mn-mailboxes.gob"
+void
+mn_mailboxes_remove (MNMailboxes * self, MNMailbox * mailbox)
+#line 1415 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::remove"
+#line 587 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 587 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 587 "mn-mailboxes.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 587 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1426 "mn-mailboxes.c"
+{
+#line 589 "mn-mailboxes.gob"
+
+ self_remove_real(self, mailbox);
+ self_list_changed(self);
+ self_save(self);
}}
-#line 1151 "mn-mailboxes.c"
+#line 1434 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 411 "mn-mailboxes.gob"
-GSList *
-mn_mailboxes_conf_find_uri (GSList * gconf_mailboxes, MNURI * uri)
-#line 1157 "mn-mailboxes.c"
+#line 595 "mn-mailboxes.gob"
+void
+mn_mailboxes_queue_remove (MNMailboxes * self, MNMailbox * mailbox)
+#line 1440 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_uri"
-#line 411 "mn-mailboxes.gob"
- g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 411 "mn-mailboxes.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1164 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::queue_remove"
+#line 595 "mn-mailboxes.gob"
+ g_return_if_fail (self != NULL);
+#line 595 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 595 "mn-mailboxes.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 595 "mn-mailboxes.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1451 "mn-mailboxes.c"
{
-#line 413 "mn-mailboxes.gob"
+#line 597 "mn-mailboxes.gob"
- return g_slist_find_custom(gconf_mailboxes, uri, self_conf_find_compare_func);
+ g_object_ref(mailbox);
+ selfp->remove_queue = g_slist_append(selfp->remove_queue, mailbox);
+
+ if (! selfp->queue_idle_id)
+ selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
}}
-#line 1170 "mn-mailboxes.c"
+#line 1461 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 417 "mn-mailboxes.gob"
-static int
-mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1176 "mn-mailboxes.c"
+#line 605 "mn-mailboxes.gob"
+static gboolean
+mn_mailboxes_queue_idle_cb (gpointer data)
+#line 1467 "mn-mailboxes.c"
{
-#define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_compare_func"
+#define __GOB_FUNCTION__ "MN:Mailboxes::queue_idle_cb"
{
-#line 419 "mn-mailboxes.gob"
+#line 607 "mn-mailboxes.gob"
- MNURI *uri_a;
- MNURI *uri_b = (MNURI *) b;
- int cmp;
+ Self *self = data;
+ GSList *l;
+
+ GDK_THREADS_ENTER();
+
+ MN_LIST_FOREACH(l, selfp->add_queue)
+ self_add_real(self, l->data);
- uri_a = mn_uri_new(a);
- cmp = strcmp(uri_a->text, uri_b->text);
- g_object_unref(uri_a);
+ mn_g_object_slist_free(selfp->add_queue);
+ selfp->add_queue = NULL;
- return cmp;
+ MN_LIST_FOREACH(l, selfp->remove_queue)
+ self_remove_real(self, l->data);
+
+ mn_g_object_slist_free(selfp->remove_queue);
+ selfp->remove_queue = NULL;
+
+ self_list_changed(self);
+ self_save(self);
+
+ selfp->queue_idle_id = 0;
+
+ GDK_THREADS_LEAVE();
+
+ return FALSE; /* remove */
}}
-#line 1192 "mn-mailboxes.c"
+#line 1499 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 431 "mn-mailboxes.gob"
+#line 635 "mn-mailboxes.gob"
+int
+mn_mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b)
+#line 1505 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::compare_by_name_func"
+{
+#line 637 "mn-mailboxes.gob"
+
+ MNMailbox *mailbox_a = (MNMailbox *) a;
+ MNMailbox *mailbox_b = (MNMailbox *) b;
+
+ return mn_utf8_strcasecoll(mailbox_a->runtime_name, mailbox_b->runtime_name);
+ }}
+#line 1516 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 644 "mn-mailboxes.gob"
MNMailboxes *
mn_mailboxes_new (void)
-#line 1198 "mn-mailboxes.c"
+#line 1522 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::new"
{
-#line 433 "mn-mailboxes.gob"
+#line 646 "mn-mailboxes.gob"
return GET_NEW;
}}
-#line 1206 "mn-mailboxes.c"
+#line 1530 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-mailboxes.gob b/src/mn-mailboxes.gob
@@ -16,50 +16,61 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include "mn-mailbox.h"
%}
+
%{
#include "config.h"
+#include <unistd.h>
+#include <stdarg.h>
#include <glib/gi18n.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
#include <eel/eel.h>
#include "mn-conf.h"
#include "mn-util.h"
-#include "mn-pending-mailbox.h"
-#include "mn-unsupported-mailbox.h"
+#include "mn-message.h"
+#include "mn-mailbox-private.h"
%}
class MN:Mailboxes from G:Object
{
- private GSList *list destroywith mn_g_object_slist_free;
+ public GList *list destroywith eel_g_object_list_free;
+
private unsigned int timeout_id;
+
+ private GSList *add_queue destroywith mn_g_object_slist_free;
+ private GSList *remove_queue destroywith mn_g_object_slist_free;
+ private unsigned int queue_idle_id;
/**
* mailbox-added:
* @self: the object which received the signal
- * @mailbox: the mailbox which is about to be added
+ * @mailbox: the mailbox which was added
*
* This signal gets emitted after a mailbox is added to the list.
**/
- signal private NONE (OBJECT)
- void mailbox_added (self, MN:Mailbox *mailbox (check null type));
-
- /**
- * mailbox-changed:
- * @self: the object which received the signal
- * @mailbox: the mailbox which has changed
- *
- * This signal gets emitted after a mailbox changes type.
- **/
- signal private NONE (OBJECT)
- void mailbox_changed (self, MN:Mailbox *mailbox (check null type));
-
+ signal first private NONE (OBJECT)
+ void mailbox_added (self, MN:Mailbox *mailbox (check null type))
+ {
+ /* connect signals */
+ g_object_connect(mailbox,
+ "signal::messages-changed", self_mailbox_messages_changed_h, self,
+ "signal::notify", self_mailbox_notify_h, self,
+ "signal::notify::error", self_mailbox_notify_error_h, self,
+ "signal::notify::must-poll", self_mailbox_notify_must_poll_h, self,
+ NULL);
+
+ mn_mailbox_check(mailbox);
+ }
+
/**
* mailbox-removed:
* @self: the object which received the signal
- * @mailbox: the mailbox which is about to be removed
+ * @mailbox: the mailbox which was removed
*
* This signal gets emitted after a mailbox is removed from the
* list.
@@ -69,9 +80,10 @@ class MN:Mailboxes from G:Object
{
/* disconnect signals */
g_object_disconnect(mailbox,
- "any-signal", self_messages_changed_h, self,
- "any-signal", self_notify_error_h, self,
- "any-signal", self_notify_must_poll_h, self,
+ "any-signal", self_mailbox_messages_changed_h, self,
+ "any-signal", self_mailbox_notify_h, self,
+ "any-signal", self_mailbox_notify_error_h, self,
+ "any-signal", self_mailbox_notify_must_poll_h, self,
NULL);
/* emit the "removed" signal on the mailbox */
@@ -82,6 +94,11 @@ class MN:Mailboxes from G:Object
self_error_changed(self);
}
+ signal (DETAILED) private NONE (OBJECT, POINTER)
+ void mailbox_notify (self,
+ MN:Mailbox *mailbox (check null type),
+ GParamSpec *pspec (check null));
+
/**
* list-changed:
* @self: the object which received the signal
@@ -127,39 +144,83 @@ class MN:Mailboxes from G:Object
signal private NONE (NONE)
void error_changed (self);
- property BOOLEAN must_poll (blurb = _("Whether one or more of the mailboxes has to be polled"),
- export)
+ property BOOLEAN must_poll (export)
get
{
gboolean must_poll = FALSE;
- GSList *l;
+ GList *l;
- MN_LIST_FOREACH(l, selfp->list)
- if (MN_MAILBOX_MUST_POLL(l->data))
- {
- must_poll = TRUE;
- break;
- }
+ MN_LIST_FOREACH(l, self->list)
+ {
+ MNMailbox *mailbox = l->data;
+
+ if (mailbox->must_poll)
+ {
+ must_poll = TRUE;
+ break;
+ }
+ }
g_value_set_boolean(VAL, must_poll);
};
init (self)
{
- self_update_from_conf(self);
+ char *filename;
+ gboolean exists;
+
+ filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+ exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+ g_free(filename);
+
+ if (exists)
+ self_load(self);
+ else if (mn_conf_is_set(MN_CONF_OBSOLETE_MAILBOXES))
+ {
+ GSList *gconf_mailboxes;
+ GSList *l;
+ GSList *invalid_uri_list = NULL;
+
+ gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_OBSOLETE_MAILBOXES);
+ MN_LIST_FOREACH(l, gconf_mailboxes)
+ {
+ const char *uri = l->data;
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_obsolete_uri(uri);
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ self_queue_add(self, mailbox);
+ g_object_unref(mailbox);
+ }
+ else
+ invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+ }
+
+ if (invalid_uri_list)
+ {
+ mn_invalid_uri_list_dialog(NULL, _("An error has occurred while importing old mailboxes"), invalid_uri_list);
+ g_slist_free(invalid_uri_list);
+ }
+
+ eel_g_slist_free_deep(gconf_mailboxes);
+ }
+
self_install_timeout(self);
mn_conf_notification_add(self, MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
- mn_conf_notification_add(self, MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
}
override (G:Object) void
- finalize (G:Object *object (check null type))
+ finalize (GObject *object)
{
Self *self = SELF(object);
if (selfp->timeout_id)
g_source_remove(selfp->timeout_id);
+ if (selfp->queue_idle_id)
+ g_source_remove(selfp->queue_idle_id);
PARENT_HANDLER(object);
}
@@ -168,7 +229,7 @@ class MN:Mailboxes from G:Object
notify_delay_cb (GConfClient *client,
unsigned int cnxn_id,
GConfEntry *entry,
- gpointer user_data (check null))
+ gpointer user_data)
{
Self *self = user_data;
@@ -177,142 +238,257 @@ class MN:Mailboxes from G:Object
GDK_THREADS_LEAVE();
}
- private void
- notify_mailboxes_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data (check null))
+ public void
+ load (self)
{
- Self *self = user_data;
+ GError *err = NULL;
- GDK_THREADS_ENTER();
- self_update_from_conf(self);
- GDK_THREADS_LEAVE();
+ if (! self_load_real(self, &err))
+ {
+ mn_error_dialog(NULL, NULL, NULL, _("Unable to load the mailboxes configuration"), "%s", err->message);
+ g_error_free(err);
+ }
}
private void
- update_from_conf (self)
+ add_error (GString **errors (check null),
+ int *n_errors (check null),
+ const char *format, ...)
{
- GSList *gconf_mailboxes;
- GSList *l;
- gboolean changed = FALSE;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
+ va_list args;
+ char *message;
- /* first step: remove old mailboxes */
+ if (*errors)
+ g_string_append_c(*errors, '\n');
+ else
+ *errors = g_string_new(NULL);
- loop:
- MN_LIST_FOREACH(l, selfp->list)
- {
- MNMailbox *mailbox = l->data;
+ va_start(args, format);
+ message = g_strdup_vprintf(format, args);
+ va_end(args);
- if (! self_conf_find_uri(gconf_mailboxes, mailbox->uri))
- {
- selfp->list = g_slist_delete_link(selfp->list, l);
+ g_string_append(*errors, message);
+ g_free(message);
- self_mailbox_removed(self, mailbox);
- g_object_unref(mailbox);
+ (*n_errors)++;
+ }
+
+ private gboolean
+ load_real (self, GError **err)
+ {
+ char *filename;
+ xmlDoc *doc;
+ xmlNode *root;
+ xmlNode *node;
+ gboolean list_changed = FALSE;
+ gboolean status = TRUE;
+ GString *errors = NULL;
+ int n_errors = 0;
+
+ filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+ doc = xmlParseFile(filename);
+ g_free(filename);
+
+ if (! doc)
+ {
+ g_set_error(err, 0, 0, _("Unable to parse the XML document."));
+ goto error;
+ }
+
+ root = xmlDocGetRootElement(doc);
+ if (! root)
+ {
+ g_set_error(err, 0, 0, _("The root element is missing."));
+ goto error;
+ }
- changed = TRUE;
- goto loop;
- }
+ if (strcmp(root->name, "mailboxes"))
+ {
+ g_set_error(err, 0, 0, _("The root element \"%s\" is invalid."), root->name);
+ goto error;
}
- /* second step: add new mailboxes */
+ for (node = root->children; node; node = node->next)
+ if (node->type == XML_ELEMENT_NODE)
+ {
+ if (! strcmp(node->name, "mailbox"))
+ {
+ MNMailbox *mailbox;
+ GError *tmp_err = NULL;
+
+ mailbox = mn_mailbox_new_from_xml_node(node, &tmp_err);
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ self_add_real(self, mailbox);
+ g_object_unref(mailbox);
+
+ list_changed = TRUE;
+ }
+ else
+ {
+ self_add_error(&errors, &n_errors, _("On line %i: %s."), node->line, tmp_err->message);
+ g_error_free(tmp_err);
+ }
+ }
+ else
+ self_add_error(&errors, &n_errors, _("On line %i: unknown element \"%s\"."), node->line, node->name);
+ }
+
+ if (list_changed)
+ self_list_changed(self);
- MN_LIST_FOREACH(l, gconf_mailboxes)
+ if (errors)
{
- const char *text_uri = l->data;
- MNURI *uri;
-
- uri = mn_uri_new(text_uri);
- if (! self_find_uri(self, uri))
- {
- MNMailbox *mailbox;
+ mn_error_dialog(NULL,
+ NULL,
+ NULL,
+ ngettext("An error has occurred while loading the mailboxes configuration",
+ "Errors have occurred while loading the mailboxes configuration",
+ n_errors),
+ "%s", errors->str);
+ g_string_free(errors, TRUE);
+ }
+
+ goto end;
- mailbox = mn_pending_mailbox_new(uri);
- selfp->list = g_slist_append(selfp->list, mailbox);
+ error:
+ status = FALSE;
- self_mailbox_added(self, mailbox);
- changed = TRUE;
-
- mn_mailbox_new_async(uri, self_new_cb, self);
- }
- g_object_unref(uri);
- }
+ end:
+ xmlFreeDoc(doc);
- eel_g_slist_free_deep(gconf_mailboxes);
- if (changed)
- self_list_changed(self);
+ return status;
}
- private void
- new_cb (MN:Mailbox *mailbox (check null type),
- gpointer user_data (check null))
+ public void
+ save (self)
{
- Self *self = user_data;
- GSList *elem;
+ GError *err = NULL;
- elem = self_find_uri(self, mailbox->uri);
- if (elem)
+ if (! self_save_real(self, &err))
{
- if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
- mn_info(_("%s is unsupported: %s"), mn_mailbox_get_name(mailbox), mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
-
- g_object_connect(mailbox,
- "signal::messages-changed", self_messages_changed_h, self,
- "signal::notify::error", self_notify_error_h, self,
- "signal::notify::must-poll", self_notify_must_poll_h, self,
- NULL);
+ mn_error_dialog(NULL, NULL, NULL, _("Unable to save the mailboxes configuration"), "%s", err->message);
+ g_error_free(err);
+ }
+ }
+
+ private gboolean
+ save_real (self, GError **err)
+ {
+ xmlDoc *doc;
+ xmlNode *root;
+ int indent;
+ GList *l;
+ char *filename;
+ char *tmp_filename;
+ char *old_filename;
+ int result;
+ gboolean old_exists;
+ gboolean status = TRUE;
+
+ indent = xmlIndentTreeOutput;
+ xmlIndentTreeOutput = 1;
+
+ doc = xmlNewDoc("1.0");
+ root = xmlNewNode(NULL, "mailboxes");
+ xmlDocSetRootElement(doc, root);
+
+ MN_LIST_FOREACH(l, self->list)
+ {
+ MNMailbox *mailbox = l->data;
+ xmlNode *node;
- if (MN_MAILBOX_CAN_CHECK(mailbox))
- mn_mailbox_check(mailbox);
+ node = mn_mailbox_xml_node_new(mailbox);
+ xmlAddChild(root, node); /* owns node */
+ }
+
+ filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+ tmp_filename = g_strconcat(filename, ".tmp", NULL);
+ old_filename = g_strconcat(filename, ".old", NULL);
+
+ result = xmlSaveFormatFile(tmp_filename, doc, 1);
+ xmlFreeDoc(doc);
- g_object_unref(elem->data);
- elem->data = mailbox;
+ xmlIndentTreeOutput = indent;
- self_mailbox_changed(self, mailbox);
- self_list_changed(self);
+ if (result < 0)
+ {
+ g_set_error(err, 0, 0, _("Unable to write the XML document."));
+ goto error;
}
- else
- g_object_unref(mailbox);
+
+ old_exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+ if (old_exists)
+ {
+ if (! mn_rename(filename, old_filename, err))
+ goto error;
+ }
+
+ if (! mn_rename(tmp_filename, filename, err))
+ goto error;
+
+ if (old_exists)
+ if (unlink(old_filename) < 0) /* non fatal */
+ g_warning(_("unable to delete %s: %s"), old_filename, g_strerror(errno));
+
+ goto end; /* success */
+
+ error:
+ status = FALSE;
+
+ end:
+ g_free(filename);
+ g_free(tmp_filename);
+ g_free(old_filename);
+
+ return status;
}
private void
- messages_changed_h (MN:Mailbox *mailbox (check null type),
- gboolean has_new,
- gpointer user_data (check null))
+ mailbox_messages_changed_h (MNMailbox *mailbox,
+ gboolean has_new,
+ gpointer user_data)
{
Self *self = user_data;
int n_messages;
- n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+ n_messages = g_slist_length(mailbox->messages);
mn_info(ngettext("%s has %i new message", "%s has %i new messages", n_messages),
- mn_mailbox_get_name(mailbox), n_messages);
+ mailbox->runtime_name, n_messages);
self_messages_changed(self, has_new);
}
private void
- notify_error_h (G:Object *object (check null type),
- GParamSpec *pspec (check null),
- gpointer user_data (check null))
+ mailbox_notify_h (GObject *object, GParamSpec *pspec, gpointer user_data)
+ {
+ Self *self = user_data;
+ char *detailed_signal;
+
+ detailed_signal = g_strconcat("mailbox-notify::", g_param_spec_get_name(pspec), NULL);
+ g_signal_emit_by_name(self, detailed_signal, object, pspec);
+ g_free(detailed_signal);
+ }
+
+ private void
+ mailbox_notify_error_h (GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data)
{
Self *self = user_data;
MNMailbox *mailbox = MN_MAILBOX(object);
- const char *error;
- error = mn_mailbox_get_error(mailbox);
- if (error)
- mn_info(_("%s reported an error: %s"), mn_mailbox_get_name(mailbox), error);
+ if (mailbox->error)
+ mn_info(_("%s reported an error: %s"), mailbox->runtime_name, mailbox->error);
self_error_changed(self);
}
private void
- notify_must_poll_h (G:Object *object (check null type),
- GParamSpec *pspec (check null),
- gpointer user_data (check null))
+ mailbox_notify_must_poll_h (GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data)
{
Self *self = user_data;
@@ -323,7 +499,7 @@ class MN:Mailboxes from G:Object
private void
install_timeout (self)
{
- mn_source_remove(&selfp->timeout_id);
+ mn_source_clear(&selfp->timeout_id);
selfp->timeout_id = mn_timeout_add(MN_CONF_DELAY_MINUTES,
MN_CONF_DELAY_SECONDS,
self_timeout_cb,
@@ -331,7 +507,7 @@ class MN:Mailboxes from G:Object
}
private gboolean
- timeout_cb (gpointer data (check null))
+ timeout_cb (gpointer data)
{
Self *self = data;
@@ -345,33 +521,27 @@ class MN:Mailboxes from G:Object
public void
check (self)
{
- GSList *l;
+ GList *l;
- MN_LIST_FOREACH(l, selfp->list)
+ MN_LIST_FOREACH(l, self->list)
{
MNMailbox *mailbox = l->data;
- if (MN_MAILBOX_MUST_POLL(mailbox))
+ if (mailbox->must_poll)
mn_mailbox_check(mailbox);
}
}
public GSList *
- get (self)
- {
- return selfp->list;
- }
-
- public GSList *
get_messages (self)
{
GSList *messages = NULL;
- GSList *l;
+ GList *l;
- MN_LIST_FOREACH(l, selfp->list)
+ MN_LIST_FOREACH(l, self->list)
{
MNMailbox *mailbox = l->data;
- messages = g_slist_concat(messages, mn_g_object_slist_copy(mn_mailbox_get_messages(mailbox)));
+ messages = g_slist_concat(messages, mn_g_object_slist_copy(mailbox->messages));
}
messages = mn_message_slist_sort_by_sent_time(messages);
@@ -379,53 +549,96 @@ class MN:Mailboxes from G:Object
return messages;
}
+
+ private void
+ add_real (self, MN:Mailbox *mailbox (check null type))
+ {
+ g_object_ref(mailbox);
+ self->list = g_list_insert_sorted(self->list, mailbox, self_compare_by_name_func);
+ self_mailbox_added(self, mailbox);
+ }
- public GSList *
- find (self, const char *text_uri (check null))
+ public void
+ add (self, MN:Mailbox *mailbox (check null type))
{
- MNURI *uri;
- GSList *elem;
+ self_add_real(self, mailbox);
+ self_list_changed(self);
+ self_save(self);
+ }
- uri = mn_uri_new(text_uri);
- elem = self_find_uri(self, uri);
- g_object_unref(uri);
+ public void
+ queue_add (self, MN:Mailbox *mailbox (check null type))
+ {
+ g_object_ref(mailbox);
+ selfp->add_queue = g_slist_append(selfp->add_queue, mailbox);
- return elem;
+ if (! selfp->queue_idle_id)
+ selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
}
-
- public GSList *
- find_uri (self, MN:URI *uri (check null type))
+
+ private void
+ remove_real (self, MN:Mailbox *mailbox (check null type))
+ {
+ self->list = g_list_remove(self->list, mailbox);
+ self_mailbox_removed(self, mailbox);
+ g_object_unref(mailbox);
+ }
+
+ public void
+ remove (self, MN:Mailbox *mailbox (check null type))
{
- return g_slist_find_custom(selfp->list, uri, self_find_compare_func);
+ self_remove_real(self, mailbox);
+ self_list_changed(self);
+ self_save(self);
}
- private int
- find_compare_func (gconstpointer a, gconstpointer b)
+ public void
+ queue_remove (self, MN:Mailbox *mailbox (check null type))
{
- MNMailbox *mailbox = (MNMailbox *) a;
- MNURI *uri = (MNURI *) b;
+ g_object_ref(mailbox);
+ selfp->remove_queue = g_slist_append(selfp->remove_queue, mailbox);
- return strcmp(mailbox->uri->text, uri->text);
+ if (! selfp->queue_idle_id)
+ selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
}
-
- public GSList *
- conf_find_uri (GSList *gconf_mailboxes, MN:URI *uri (check null type))
+
+ private gboolean
+ queue_idle_cb (gpointer data)
{
- return g_slist_find_custom(gconf_mailboxes, uri, self_conf_find_compare_func);
+ Self *self = data;
+ GSList *l;
+
+ GDK_THREADS_ENTER();
+
+ MN_LIST_FOREACH(l, selfp->add_queue)
+ self_add_real(self, l->data);
+
+ mn_g_object_slist_free(selfp->add_queue);
+ selfp->add_queue = NULL;
+
+ MN_LIST_FOREACH(l, selfp->remove_queue)
+ self_remove_real(self, l->data);
+
+ mn_g_object_slist_free(selfp->remove_queue);
+ selfp->remove_queue = NULL;
+
+ self_list_changed(self);
+ self_save(self);
+
+ selfp->queue_idle_id = 0;
+
+ GDK_THREADS_LEAVE();
+
+ return FALSE; /* remove */
}
- private int
- conf_find_compare_func (gconstpointer a, gconstpointer b)
+ public int
+ compare_by_name_func (gconstpointer a, gconstpointer b)
{
- MNURI *uri_a;
- MNURI *uri_b = (MNURI *) b;
- int cmp;
-
- uri_a = mn_uri_new(a);
- cmp = strcmp(uri_a->text, uri_b->text);
- g_object_unref(uri_a);
+ MNMailbox *mailbox_a = (MNMailbox *) a;
+ MNMailbox *mailbox_b = (MNMailbox *) b;
- return cmp;
+ return mn_utf8_strcasecoll(mailbox_a->runtime_name, mailbox_b->runtime_name);
}
public MNMailboxes *
diff --git a/src/mn-mailboxes.h b/src/mn-mailboxes.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -37,6 +37,8 @@ typedef struct _MNMailboxes MNMailboxes;
#endif
struct _MNMailboxes {
GObject __parent__;
+ /*< public >*/
+ GList * list;
/*< private >*/
MNMailboxesPrivate *_priv;
};
@@ -48,8 +50,8 @@ typedef struct _MNMailboxesClass MNMailboxesClass;
struct _MNMailboxesClass {
GObjectClass __parent__;
/*signal*/void (* mailbox_added) (MNMailboxes * self, MNMailbox * mailbox);
- /*signal*/void (* mailbox_changed) (MNMailboxes * self, MNMailbox * mailbox);
/*signal*/void (* mailbox_removed) (MNMailboxes * self, MNMailbox * mailbox);
+ /*signal*/void (* mailbox_notify) (MNMailboxes * self, MNMailbox * mailbox, GParamSpec * pspec);
/*signal*/void (* list_changed) (MNMailboxes * self);
/*signal*/void (* messages_changed) (MNMailboxes * self, gboolean has_new);
/*signal*/void (* error_changed) (MNMailboxes * self);
@@ -61,15 +63,20 @@ struct _MNMailboxesClass {
*/
GType mn_mailboxes_get_type (void);
gboolean mn_mailboxes_get_must_poll (MNMailboxes * self);
+void mn_mailboxes_load (MNMailboxes * self);
+void mn_mailboxes_save (MNMailboxes * self);
void mn_mailboxes_check (MNMailboxes * self);
-GSList * mn_mailboxes_get (MNMailboxes * self);
GSList * mn_mailboxes_get_messages (MNMailboxes * self);
-GSList * mn_mailboxes_find (MNMailboxes * self,
- const char * text_uri);
-GSList * mn_mailboxes_find_uri (MNMailboxes * self,
- MNURI * uri);
-GSList * mn_mailboxes_conf_find_uri (GSList * gconf_mailboxes,
- MNURI * uri);
+void mn_mailboxes_add (MNMailboxes * self,
+ MNMailbox * mailbox);
+void mn_mailboxes_queue_add (MNMailboxes * self,
+ MNMailbox * mailbox);
+void mn_mailboxes_remove (MNMailboxes * self,
+ MNMailbox * mailbox);
+void mn_mailboxes_queue_remove (MNMailboxes * self,
+ MNMailbox * mailbox);
+int mn_mailboxes_compare_by_name_func (gconstpointer a,
+ gconstpointer b);
MNMailboxes * mn_mailboxes_new (void);
/*
@@ -79,12 +86,12 @@ MNMailboxes * mn_mailboxes_new (void);
#define mn_mailboxes_connect__mailbox_added(object,func,data) g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_added",(GCallback) __extension__ ({void (* ___mailbox_added) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_added; }), (data))
#define mn_mailboxes_connect_after__mailbox_added(object,func,data) g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_added",(GCallback) __extension__ ({void (* ___mailbox_added) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_added; }), (data))
#define mn_mailboxes_connect_data__mailbox_added(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_added",(GCallback) __extension__ ({void (* ___mailbox_added) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_added; }), (data), (destroy_data), (GConnectFlags)(flags))
-#define mn_mailboxes_connect__mailbox_changed(object,func,data) g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_changed",(GCallback) __extension__ ({void (* ___mailbox_changed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_changed; }), (data))
-#define mn_mailboxes_connect_after__mailbox_changed(object,func,data) g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_changed",(GCallback) __extension__ ({void (* ___mailbox_changed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_changed; }), (data))
-#define mn_mailboxes_connect_data__mailbox_changed(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_changed",(GCallback) __extension__ ({void (* ___mailbox_changed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
#define mn_mailboxes_connect__mailbox_removed(object,func,data) g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_removed",(GCallback) __extension__ ({void (* ___mailbox_removed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_removed; }), (data))
#define mn_mailboxes_connect_after__mailbox_removed(object,func,data) g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_removed",(GCallback) __extension__ ({void (* ___mailbox_removed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_removed; }), (data))
#define mn_mailboxes_connect_data__mailbox_removed(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_removed",(GCallback) __extension__ ({void (* ___mailbox_removed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_removed; }), (data), (destroy_data), (GConnectFlags)(flags))
+#define mn_mailboxes_connect__mailbox_notify(object,func,data) g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_notify",(GCallback) __extension__ ({void (* ___mailbox_notify) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, GParamSpec * ___fake___pspec, gpointer ___data ) = (func); ___mailbox_notify; }), (data))
+#define mn_mailboxes_connect_after__mailbox_notify(object,func,data) g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_notify",(GCallback) __extension__ ({void (* ___mailbox_notify) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, GParamSpec * ___fake___pspec, gpointer ___data ) = (func); ___mailbox_notify; }), (data))
+#define mn_mailboxes_connect_data__mailbox_notify(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_notify",(GCallback) __extension__ ({void (* ___mailbox_notify) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, GParamSpec * ___fake___pspec, gpointer ___data ) = (func); ___mailbox_notify; }), (data), (destroy_data), (GConnectFlags)(flags))
#define mn_mailboxes_connect__list_changed(object,func,data) g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"list_changed",(GCallback) __extension__ ({void (* ___list_changed) (MNMailboxes * ___fake___self, gpointer ___data ) = (func); ___list_changed; }), (data))
#define mn_mailboxes_connect_after__list_changed(object,func,data) g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"list_changed",(GCallback) __extension__ ({void (* ___list_changed) (MNMailboxes * ___fake___self, gpointer ___data ) = (func); ___list_changed; }), (data))
#define mn_mailboxes_connect_data__list_changed(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"list_changed",(GCallback) __extension__ ({void (* ___list_changed) (MNMailboxes * ___fake___self, gpointer ___data ) = (func); ___list_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
@@ -98,12 +105,12 @@ MNMailboxes * mn_mailboxes_new (void);
#define mn_mailboxes_connect__mailbox_added(object,func,data) g_signal_connect(MN_MAILBOXES(object),"mailbox_added",(GCallback)(func),(data))
#define mn_mailboxes_connect_after__mailbox_added(object,func,data) g_signal_connect_after(MN_MAILBOXES(object),"mailbox_added",(GCallback)(func),(data))
#define mn_mailboxes_connect_data__mailbox_added(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(object),"mailbox_added",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
-#define mn_mailboxes_connect__mailbox_changed(object,func,data) g_signal_connect(MN_MAILBOXES(object),"mailbox_changed",(GCallback)(func),(data))
-#define mn_mailboxes_connect_after__mailbox_changed(object,func,data) g_signal_connect_after(MN_MAILBOXES(object),"mailbox_changed",(GCallback)(func),(data))
-#define mn_mailboxes_connect_data__mailbox_changed(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(object),"mailbox_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
#define mn_mailboxes_connect__mailbox_removed(object,func,data) g_signal_connect(MN_MAILBOXES(object),"mailbox_removed",(GCallback)(func),(data))
#define mn_mailboxes_connect_after__mailbox_removed(object,func,data) g_signal_connect_after(MN_MAILBOXES(object),"mailbox_removed",(GCallback)(func),(data))
#define mn_mailboxes_connect_data__mailbox_removed(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(object),"mailbox_removed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
+#define mn_mailboxes_connect__mailbox_notify(object,func,data) g_signal_connect(MN_MAILBOXES(object),"mailbox_notify",(GCallback)(func),(data))
+#define mn_mailboxes_connect_after__mailbox_notify(object,func,data) g_signal_connect_after(MN_MAILBOXES(object),"mailbox_notify",(GCallback)(func),(data))
+#define mn_mailboxes_connect_data__mailbox_notify(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(object),"mailbox_notify",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
#define mn_mailboxes_connect__list_changed(object,func,data) g_signal_connect(MN_MAILBOXES(object),"list_changed",(GCallback)(func),(data))
#define mn_mailboxes_connect_after__list_changed(object,func,data) g_signal_connect_after(MN_MAILBOXES(object),"list_changed",(GCallback)(func),(data))
#define mn_mailboxes_connect_data__list_changed(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAILBOXES(object),"list_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
diff --git a/src/mn-maildir-mailbox-backend-private.h b/src/mn-maildir-mailbox-backend-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_MAILDIR_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_MAILDIR_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-maildir-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-maildir-mailbox-backend.c b/src/mn-maildir-mailbox-backend.c
@@ -0,0 +1,287 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:55 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-maildir-mailbox-backend.h"
+
+#include "mn-maildir-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-maildir-mailbox-backend.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+#line 39 "mn-maildir-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_MAILDIR_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_MAILDIR_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_MAILDIR_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_MAILDIR_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_MAILDIR_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAILDIR_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMaildirMailboxBackend Self;
+typedef MNMaildirMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_maildir_mailbox_backend_init (MNMaildirMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_maildir_mailbox_backend_class_init (MNMaildirMailboxBackendClass * class) G_GNUC_UNUSED;
+static void ___2_mn_maildir_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+static gboolean ___3_mn_maildir_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_maildir_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+GType
+mn_maildir_mailbox_backend_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNMaildirMailboxBackendClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_maildir_mailbox_backend_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNMaildirMailboxBackend),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_maildir_mailbox_backend_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNMaildirMailboxBackend", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMaildirMailboxBackend *)g_object_new(mn_maildir_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMaildirMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMaildirMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNMaildirMailboxBackend *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNMaildirMailboxBackend *)g_object_new_valist (mn_maildir_mailbox_backend_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+static void
+mn_maildir_mailbox_backend_init (MNMaildirMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::init"
+}
+#undef __GOB_FUNCTION__
+#line 39 "mn-maildir-mailbox-backend.gob"
+static void
+mn_maildir_mailbox_backend_class_init (MNMaildirMailboxBackendClass * class G_GNUC_UNUSED)
+#line 114 "mn-maildir-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::class_init"
+ MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+ parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 44 "mn-maildir-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->monitor_cb = ___2_mn_maildir_mailbox_backend_monitor_cb;
+#line 66 "mn-maildir-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->is = ___3_mn_maildir_mailbox_backend_is;
+#line 88 "mn-maildir-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->check = ___4_mn_maildir_mailbox_backend_check;
+#line 127 "mn-maildir-mailbox-backend.c"
+ {
+#line 40 "mn-maildir-mailbox-backend.gob"
+
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Maildir";
+
+#line 133 "mn-maildir-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 44 "mn-maildir-mailbox-backend.gob"
+static void
+___2_mn_maildir_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 143 "mn-maildir-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___info_uri,___event_type) \
+ { if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb) \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb)(___backend,___info_uri,___event_type); }
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::monitor_cb"
+{
+#line 48 "mn-maildir-mailbox-backend.gob"
+
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ char *filename;
+
+ filename = eel_uri_get_basename(info_uri);
+ if (filename)
+ {
+ if (filename[0] != '.')
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+ g_free(filename);
+ }
+ }
+ }}
+#line 168 "mn-maildir-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 66 "mn-maildir-mailbox-backend.gob"
+static gboolean
+___3_mn_maildir_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 175 "mn-maildir-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+ ((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+ ((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::is"
+{
+#line 68 "mn-maildir-mailbox-backend.gob"
+
+ int i;
+ const char *constitutive_dirs[] = { "cur", "new", "tmp" };
+ gboolean is = FALSE;
+
+ for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
+ {
+ GnomeVFSURI *dir_uri;
+
+ dir_uri = gnome_vfs_uri_append_path(mailbox->vfs_uri, constitutive_dirs[i]);
+ is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
+ gnome_vfs_uri_unref(dir_uri);
+
+ if (! is)
+ break;
+ }
+
+ return is;
+ }}
+#line 203 "mn-maildir-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 88 "mn-maildir-mailbox-backend.gob"
+static void
+___4_mn_maildir_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 210 "mn-maildir-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+ { if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::check"
+{
+#line 90 "mn-maildir-mailbox-backend.gob"
+
+ GnomeVFSURI *new_uri;
+ char *new_text_uri;
+ GnomeVFSResult result;
+ GnomeVFSResult close_result;
+ GnomeVFSDirectoryHandle *handle;
+ GnomeVFSFileInfo *file_info;
+ GSList *messages = NULL;
+
+ new_uri = gnome_vfs_uri_append_path(backend->mailbox->vfs_uri, "new");
+
+ new_text_uri = gnome_vfs_uri_to_string(new_uri, GNOME_VFS_URI_HIDE_NONE);
+ mn_vfs_mailbox_backend_monitor(backend, check_id, new_text_uri, GNOME_VFS_MONITOR_DIRECTORY);
+ g_free(new_text_uri);
+
+ result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+ if (result != GNOME_VFS_OK)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ goto end;
+ }
+
+ file_info = gnome_vfs_file_info_new();
+ while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+ if (file_info->name[0] != '.')
+ {
+ GnomeVFSURI *message_uri;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ break;
+
+ message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
+ messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+ gnome_vfs_uri_unref(message_uri);
+ }
+ gnome_vfs_file_info_unref(file_info);
+ close_result = gnome_vfs_directory_close(handle);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
+ }
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ end:
+ gnome_vfs_uri_unref(new_uri);
+ }}
+#line 286 "mn-maildir-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-maildir-mailbox-backend.gob b/src/mn-maildir-mailbox-backend.gob
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+%}
+
+class MN:Maildir:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+ class_init (class)
+ {
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Maildir";
+ }
+
+ override (MN:VFS:Mailbox:Backend) void
+ monitor_cb (MNVFSMailboxBackend *backend,
+ const char *info_uri,
+ GnomeVFSMonitorEventType event_type)
+ {
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ char *filename;
+
+ filename = eel_uri_get_basename(info_uri);
+ if (filename)
+ {
+ if (filename[0] != '.')
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+ g_free(filename);
+ }
+ }
+ }
+
+ override (MN:VFS:Mailbox:Backend) gboolean
+ is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+ {
+ int i;
+ const char *constitutive_dirs[] = { "cur", "new", "tmp" };
+ gboolean is = FALSE;
+
+ for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
+ {
+ GnomeVFSURI *dir_uri;
+
+ dir_uri = gnome_vfs_uri_append_path(mailbox->vfs_uri, constitutive_dirs[i]);
+ is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
+ gnome_vfs_uri_unref(dir_uri);
+
+ if (! is)
+ break;
+ }
+
+ return is;
+ }
+
+ override (MN:VFS:Mailbox:Backend) void
+ check (MNVFSMailboxBackend *backend, unsigned long check_id)
+ {
+ GnomeVFSURI *new_uri;
+ char *new_text_uri;
+ GnomeVFSResult result;
+ GnomeVFSResult close_result;
+ GnomeVFSDirectoryHandle *handle;
+ GnomeVFSFileInfo *file_info;
+ GSList *messages = NULL;
+
+ new_uri = gnome_vfs_uri_append_path(backend->mailbox->vfs_uri, "new");
+
+ new_text_uri = gnome_vfs_uri_to_string(new_uri, GNOME_VFS_URI_HIDE_NONE);
+ mn_vfs_mailbox_backend_monitor(backend, check_id, new_text_uri, GNOME_VFS_MONITOR_DIRECTORY);
+ g_free(new_text_uri);
+
+ result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+ if (result != GNOME_VFS_OK)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ goto end;
+ }
+
+ file_info = gnome_vfs_file_info_new();
+ while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+ if (file_info->name[0] != '.')
+ {
+ GnomeVFSURI *message_uri;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ break;
+
+ message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
+ messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+ gnome_vfs_uri_unref(message_uri);
+ }
+ gnome_vfs_file_info_unref(file_info);
+ close_result = gnome_vfs_directory_close(handle);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
+ }
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ end:
+ gnome_vfs_uri_unref(new_uri);
+ }
+}
diff --git a/src/mn-maildir-mailbox-backend.h b/src/mn-maildir-mailbox-backend.h
@@ -0,0 +1,57 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_MAILDIR_MAILBOX_BACKEND_H__
+#define __MN_MAILDIR_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MAILDIR_MAILBOX_BACKEND (mn_maildir_mailbox_backend_get_type())
+#define MN_MAILDIR_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackend)
+#define MN_MAILDIR_MAILBOX_BACKEND_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackend const)
+#define MN_MAILDIR_MAILBOX_BACKEND_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackendClass)
+#define MN_IS_MAILDIR_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_maildir_mailbox_backend_get_type ())
+
+#define MN_MAILDIR_MAILBOX_BACKEND_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackendClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAILDIR_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_MAILDIR_MAILBOX_BACKEND__
+typedef struct _MNMaildirMailboxBackend MNMaildirMailboxBackend;
+#endif
+struct _MNMaildirMailboxBackend {
+ MNVFSMailboxBackend __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMaildirMailboxBackendClass MNMaildirMailboxBackendClass;
+struct _MNMaildirMailboxBackendClass {
+ MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_maildir_mailbox_backend_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-maildir-mailbox-private.h b/src/mn-maildir-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_MAILDIR_MAILBOX_PRIVATE_H__
-#define __MN_MAILDIR_MAILBOX_PRIVATE_H__
-
-#include "mn-maildir-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-maildir-mailbox.c b/src/mn-maildir-mailbox.c
@@ -1,297 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:26 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-maildir-mailbox.h"
-
-#include "mn-maildir-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-maildir-mailbox.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-#line 36 "mn-maildir-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_MAILDIR_MAILBOX(x)
-#define SELF_CONST(x) MN_MAILDIR_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_MAILDIR_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_MAILDIR_MAILBOX
-#define SELF_CLASS(x) MN_MAILDIR_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_MAILDIR_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNMaildirMailbox Self;
-typedef MNMaildirMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_maildir_mailbox_init (MNMaildirMailbox * o) G_GNUC_UNUSED;
-static void mn_maildir_mailbox_class_init (MNMaildirMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_maildir_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_maildir_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_maildir_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-GType
-mn_maildir_mailbox_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNMaildirMailboxClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_maildir_mailbox_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNMaildirMailbox),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_maildir_mailbox_init,
- NULL
- };
-
- type = g_type_register_static (MN_TYPE_MAILBOX, "MNMaildirMailbox", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNMaildirMailbox *)g_object_new(mn_maildir_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNMaildirMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNMaildirMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
- MNMaildirMailbox *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNMaildirMailbox *)g_object_new_valist (mn_maildir_mailbox_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-static void
-mn_maildir_mailbox_init (MNMaildirMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 35 "mn-maildir-mailbox.gob"
-static void
-mn_maildir_mailbox_class_init (MNMaildirMailboxClass * class G_GNUC_UNUSED)
-#line 111 "mn-maildir-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::class_init"
- GObjectClass *g_object_class = (GObjectClass *)class;
- MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
- parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 40 "mn-maildir-mailbox.gob"
- g_object_class->constructor = ___2_mn_maildir_mailbox_constructor;
-#line 69 "mn-maildir-mailbox.gob"
- mn_mailbox_class->impl_is = ___3_mn_maildir_mailbox_impl_is;
-#line 95 "mn-maildir-mailbox.gob"
- mn_mailbox_class->impl_check = ___4_mn_maildir_mailbox_impl_check;
-#line 125 "mn-maildir-mailbox.c"
- {
-#line 36 "mn-maildir-mailbox.gob"
-
- MN_MAILBOX_CLASS(class)->format = "Maildir";
-
-#line 131 "mn-maildir-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 40 "mn-maildir-mailbox.gob"
-static GObject *
-___2_mn_maildir_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 141 "mn-maildir-mailbox.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::constructor"
-{
-#line 42 "mn-maildir-mailbox.gob"
-
- GObject *object;
- MNMailbox *self;
- char *new_uri;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- new_uri = g_build_path("/", self->uri->text, "new", NULL);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- new_uri,
- GNOME_VFS_MONITOR_DIRECTORY,
- MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- g_free(new_uri);
-
- return object;
- }}
-#line 176 "mn-maildir-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 69 "mn-maildir-mailbox.gob"
-static gboolean
-___3_mn_maildir_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 183 "mn-maildir-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
- ((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
- (* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
- ((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::impl_is"
-#line 69 "mn-maildir-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 192 "mn-maildir-mailbox.c"
-{
-#line 71 "mn-maildir-mailbox.gob"
-
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- int i;
- const char *constitutive_dirs[] = { "cur", "new", "tmp" };
-
- for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
- {
- GnomeVFSURI *dir_uri;
-
- dir_uri = gnome_vfs_uri_append_path(uri->vfs, constitutive_dirs[i]);
- is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
- gnome_vfs_uri_unref(dir_uri);
-
- if (! is)
- break;
- }
- }
-
- return is;
- }}
-#line 218 "mn-maildir-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 95 "mn-maildir-mailbox.gob"
-static void
-___4_mn_maildir_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
-#line 225 "mn-maildir-mailbox.c"
-#define PARENT_HANDLER(___self) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::impl_check"
-#line 95 "mn-maildir-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 95 "mn-maildir-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (self));
-#line 235 "mn-maildir-mailbox.c"
-{
-#line 97 "mn-maildir-mailbox.gob"
-
- GnomeVFSURI *new_uri;
- GnomeVFSResult result;
- GnomeVFSResult close_result;
- GnomeVFSDirectoryHandle *handle;
- GnomeVFSFileInfo *file_info;
- GSList *messages = NULL;
-
- new_uri = gnome_vfs_uri_append_path(self->uri->vfs, "new");
- result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
-
- if (result != GNOME_VFS_OK)
- {
- GDK_THREADS_ENTER();
-
- mn_mailbox_set_error(self, _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- goto end;
- }
-
- file_info = gnome_vfs_file_info_new();
- while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
- if (file_info->name[0] != '.')
- {
- GnomeVFSURI *message_uri;
-
- message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
- messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
- gnome_vfs_uri_unref(message_uri);
- }
- gnome_vfs_file_info_unref(file_info);
- close_result = gnome_vfs_directory_close(handle);
-
- GDK_THREADS_ENTER();
-
- if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
- {
- if (close_result == GNOME_VFS_OK)
- mn_mailbox_set_messages(self, messages);
- else
- mn_mailbox_set_error(self, _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
- }
- else
- mn_mailbox_set_error(self, _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
-
- end:
- gnome_vfs_uri_unref(new_uri);
- }}
-#line 296 "mn-maildir-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
diff --git a/src/mn-maildir-mailbox.gob b/src/mn-maildir-mailbox.gob
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-%}
-
-class MN:Maildir:Mailbox from MN:Mailbox
-{
- class_init (class)
- {
- MN_MAILBOX_CLASS(class)->format = "Maildir";
- }
-
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
- {
- GObject *object;
- MNMailbox *self;
- char *new_uri;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- new_uri = g_build_path("/", self->uri->text, "new", NULL);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- new_uri,
- GNOME_VFS_MONITOR_DIRECTORY,
- MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- g_free(new_uri);
-
- return object;
- }
-
- override (MN:Mailbox) gboolean
- impl_is (MNMailbox *dummy, MN:URI *uri (check null))
- {
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- int i;
- const char *constitutive_dirs[] = { "cur", "new", "tmp" };
-
- for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
- {
- GnomeVFSURI *dir_uri;
-
- dir_uri = gnome_vfs_uri_append_path(uri->vfs, constitutive_dirs[i]);
- is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
- gnome_vfs_uri_unref(dir_uri);
-
- if (! is)
- break;
- }
- }
-
- return is;
- }
-
- override (MN:Mailbox) void
- impl_check (MN:Mailbox *self (check null type))
- {
- GnomeVFSURI *new_uri;
- GnomeVFSResult result;
- GnomeVFSResult close_result;
- GnomeVFSDirectoryHandle *handle;
- GnomeVFSFileInfo *file_info;
- GSList *messages = NULL;
-
- new_uri = gnome_vfs_uri_append_path(self->uri->vfs, "new");
- result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
-
- if (result != GNOME_VFS_OK)
- {
- GDK_THREADS_ENTER();
-
- mn_mailbox_set_error(self, _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- goto end;
- }
-
- file_info = gnome_vfs_file_info_new();
- while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
- if (file_info->name[0] != '.')
- {
- GnomeVFSURI *message_uri;
-
- message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
- messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
- gnome_vfs_uri_unref(message_uri);
- }
- gnome_vfs_file_info_unref(file_info);
- close_result = gnome_vfs_directory_close(handle);
-
- GDK_THREADS_ENTER();
-
- if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
- {
- if (close_result == GNOME_VFS_OK)
- mn_mailbox_set_messages(self, messages);
- else
- mn_mailbox_set_error(self, _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
- }
- else
- mn_mailbox_set_error(self, _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
-
- end:
- gnome_vfs_uri_unref(new_uri);
- }
-}
diff --git a/src/mn-maildir-mailbox.h b/src/mn-maildir-mailbox.h
@@ -1,57 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_MAILDIR_MAILBOX_H__
-#define __MN_MAILDIR_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_MAILDIR_MAILBOX (mn_maildir_mailbox_get_type())
-#define MN_MAILDIR_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_get_type(), MNMaildirMailbox)
-#define MN_MAILDIR_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_get_type(), MNMaildirMailbox const)
-#define MN_MAILDIR_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_maildir_mailbox_get_type(), MNMaildirMailboxClass)
-#define MN_IS_MAILDIR_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_maildir_mailbox_get_type ())
-
-#define MN_MAILDIR_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_maildir_mailbox_get_type(), MNMaildirMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_MAILDIR_MAILBOX__
-#define __TYPEDEF_MN_MAILDIR_MAILBOX__
-typedef struct _MNMaildirMailbox MNMaildirMailbox;
-#endif
-struct _MNMaildirMailbox {
- MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNMaildirMailboxClass MNMaildirMailboxClass;
-struct _MNMaildirMailboxClass {
- MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_maildir_mailbox_get_type (void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-main-window-private.h b/src/mn-main-window-private.h
@@ -0,0 +1,56 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_MAIN_WINDOW_PRIVATE_H__
+#define __MN_MAIN_WINDOW_PRIVATE_H__
+
+#include "mn-main-window.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-main-window.gob"
+
+#include "egg-toolbars-model.h"
+
+#line 18 "mn-main-window-private.h"
+struct _MNMainWindowPrivate {
+#line 54 "mn-main-window.gob"
+ GtkWidget * menubar;
+#line 55 "mn-main-window.gob"
+ GtkWidget * toolbar;
+#line 56 "mn-main-window.gob"
+ GtkWidget * message_view;
+#line 57 "mn-main-window.gob"
+ GtkWidget * statusbar;
+#line 59 "mn-main-window.gob"
+ GtkUIManager * ui_manager;
+#line 60 "mn-main-window.gob"
+ GtkActionGroup * action_group;
+#line 62 "mn-main-window.gob"
+ EggToolbarsModel * toolbars_model;
+#line 63 "mn-main-window.gob"
+ unsigned int toolbars_model_save_idle_id;
+#line 65 "mn-main-window.gob"
+ unsigned int help_cid;
+#line 66 "mn-main-window.gob"
+ unsigned int count_cid;
+#line 68 "mn-main-window.gob"
+ GtkWidget * leave_fullscreen_popup;
+#line 69 "mn-main-window.gob"
+ gboolean leave_fullscreen_popup_visible;
+#line 70 "mn-main-window.gob"
+ unsigned int leave_fullscreen_timeout_id;
+#line 72 "mn-main-window.gob"
+ GtkWidget * edit_toolbars_dialog;
+#line 73 "mn-main-window.gob"
+ GtkWidget * edit_toolbars_editor;
+#line 50 "mn-main-window-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-main-window.c b/src/mn-main-window.c
@@ -1,20 +1,29 @@
-/*
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-main-window.h"
+
+#include "mn-main-window-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 29 "mn-main-window.gob"
#include "config.h"
#include <gnome.h>
@@ -26,982 +35,1434 @@
#include "mn-shell.h"
#include "mn-conf.h"
#include "mn-properties-dialog.h"
-#include "mn-summary-popup.h"
#include "mn-message-view.h"
-/*** cpp *********************************************************************/
-
#define STATUS_PUSH(cid, str) \
- gtk_statusbar_push(GTK_STATUSBAR(self.statusbar), (cid), (str))
+ gtk_statusbar_push(GTK_STATUSBAR(selfp->statusbar), (cid), (str))
#define STATUS_POP(cid) \
- gtk_statusbar_pop(GTK_STATUSBAR(self.statusbar), (cid))
+ gtk_statusbar_pop(GTK_STATUSBAR(selfp->statusbar), (cid))
#define GET_ACTION(name) \
- gtk_action_group_get_action(self.action_group, (name))
+ gtk_action_group_get_action(selfp->action_group, (name))
#define FULLSCREEN \
- (self.leave_fullscreen_popup != NULL)
-
-/*** types *******************************************************************/
-
-typedef struct
-{
- GtkWidget *window;
-
- GtkWidget *menubar;
- GtkWidget *toolbar;
- GtkWidget *statusbar;
-
- GtkWidget *scrolled;
- GtkWidget *message_view;
-
- GtkWidget *edit_toolbars_dialog;
- GtkWidget *edit_toolbars_editor;
-
- GtkUIManager *ui_manager;
- GtkActionGroup *action_group;
-
- EggToolbarsModel *toolbars_model;
- char *toolbars_file;
- unsigned int toolbars_model_save_idle_id;
-
- GSList *transients;
- unsigned int help_cid;
- unsigned int count_cid;
-
- GtkWidget *leave_fullscreen_popup;
- gboolean leave_fullscreen_popup_visible;
- unsigned int leave_fullscreen_timeout_id;
-} MainWindow;
-
-/*** variables ***************************************************************/
-
-static MainWindow self = { NULL };
-
-/*** actions *****************************************************************/
-
-static void mn_main_window_mail_reader_activate_h (void);
-static void mn_main_window_update_activate_h (void);
-static void mn_main_window_close_activate_h (void);
-static void mn_main_window_quit_activate_h (void);
-static void mn_main_window_edit_toolbars_activate_h (void);
-static void mn_main_window_preferences_activate_h (void);
-static void mn_main_window_help_contents_activate_h (void);
-static void mn_main_window_about_activate_h (void);
-
-static GtkActionEntry menu_entries[] = {
- /* Toplevel */
- { "Mail", NULL, N_("_Mail") },
- { "Edit", NULL, N_("_Edit") },
- { "View", NULL, N_("_View") },
- { "Help", NULL, N_("_Help") },
-
- /* Mail menu */
- {
- "MailMailReader",
- MN_STOCK_MAIL_READER,
- N_("_Mail Reader"),
- "<control>M",
- N_("Launch the mail reader"),
- mn_main_window_mail_reader_activate_h
- },
- {
- "MailUpdate",
- GTK_STOCK_REFRESH,
- N_("_Update"),
- "<control>R", /* Reload */
- N_("Update the mail status"),
- mn_main_window_update_activate_h
- },
- {
- "MailClose",
- GTK_STOCK_CLOSE,
- N_("_Close"),
- "<control>W",
- N_("Close this window"),
- mn_main_window_close_activate_h
- },
- {
- "MailQuit",
- GTK_STOCK_QUIT,
- N_("_Quit"),
- "<control>Q",
- N_("Quit Mail Notification"),
- mn_main_window_quit_activate_h
- },
-
- /* Edit menu */
- {
- "EditToolbars",
- NULL,
- N_("_Toolbars"),
- NULL,
- N_("Customize the toolbars"),
- mn_main_window_edit_toolbars_activate_h
- },
- {
- "EditPreferences",
- GTK_STOCK_PREFERENCES,
- N_("_Preferences"),
- NULL,
- N_("Configure Mail Notification"),
- mn_main_window_preferences_activate_h
- },
-
- /* View menu */
- {
- "ViewToolbarsStyle",
- NULL,
- N_("Toolbars Styl_e"),
- NULL,
- N_("Customize the toolbars style"),
- NULL
- },
-
- /* Help menu */
- {
- "HelpContents",
- GTK_STOCK_HELP,
- N_("_Contents"),
- "F1",
- N_("Display help"),
- mn_main_window_help_contents_activate_h,
- },
- {
- "HelpAbout",
- GNOME_STOCK_ABOUT,
- N_("_About"),
- NULL,
- N_("Display credits"),
- mn_main_window_about_activate_h
- }
-};
-
-static GtkToggleActionEntry toggle_entries[] = {
- /* View menu */
- {
- "ViewToolbars",
- NULL,
- N_("_Toolbars"),
- NULL,
- N_("Show or hide the toolbars"),
- NULL,
- FALSE
- },
- {
- "ViewStatusbar",
- NULL,
- N_("_Statusbar"),
- NULL,
- N_("Show or hide the statusbar"),
- NULL,
- FALSE
- }
-};
-
-static GtkRadioActionEntry toolbars_style_entries[] = {
- /* View menu */
- {
- "ViewToolbarsStyleDesktopDefault",
- NULL,
- N_("_Desktop Default"),
- NULL,
- N_("Set the toolbars style to the desktop default setting"),
- MN_TOOLBAR_STYLE_DESKTOP_DEFAULT
- },
- {
- "ViewToolbarsStyleIconsOnly",
- NULL,
- N_("I_cons Only"),
- NULL,
- N_("Only display the toolbars icons"),
- MN_TOOLBAR_STYLE_ICONS
- },
- {
- "ViewToolbarsStyleTextOnly",
- NULL,
- N_("_Text Only"),
- NULL,
- N_("Only display the toolbars text"),
- MN_TOOLBAR_STYLE_TEXT
- },
- {
- "ViewToolbarsStyleTextBelowIcons",
- NULL,
- N_("Text Belo_w Icons"),
- NULL,
- N_("Display the toolbars text below the icons"),
- MN_TOOLBAR_STYLE_BOTH
- },
- {
- "ViewToolbarsStyleTextBesideIcons",
- NULL,
- N_("Text Be_side Icons"),
- NULL,
- N_("Display the toolbars text beside the icons"),
- MN_TOOLBAR_STYLE_BOTH_HORIZ
- }
-};
-
-/*** functions ***************************************************************/
-
-static void mn_main_window_transient_weak_notify_cb (gpointer data,
- GObject *former_object);
-
-static void mn_main_window_weak_notify_cb (gpointer data,
- GObject *former_object);
-
-static void mn_main_window_notify_mail_reader_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-
-static void mn_main_window_update_messages (void);
-static void mn_main_window_update_sensitivity (void);
-
-static void mn_main_window_create_toolbars_model (gboolean use_dot_file);
-
-static void mn_main_window_ui_manager_connect_proxy_h (GtkUIManager *manager,
- GtkAction *action,
- GtkWidget *proxy,
- gpointer user_data);
-static void mn_main_window_ui_manager_disconnect_proxy_h (GtkUIManager *manager,
- GtkAction *action,
- GtkWidget *proxy,
- gpointer user_data);
-
-static void mn_main_window_menu_item_select_h (GtkMenuItem *item,
- gpointer user_data);
-static void mn_main_window_menu_item_deselect_h (GtkMenuItem *item,
- gpointer user_data);
-
-static void mn_main_window_link_view_action (GtkToggleAction *action, GCallback cb);
-
-static void mn_main_window_update_toolbars_visibility (void);
-static void mn_main_window_update_statusbar_visibility (void);
-static void mn_main_window_update_toolbars_style (void);
-
-static void mn_main_window_toolbars_model_save_changes (void);
-static gboolean mn_main_window_toolbars_model_save_changes_cb (gpointer data);
-
-static void mn_main_window_toolbars_model_update_flags_and_save_changes (void);
-
-static void mn_main_window_edit_toolbars_create_editor (void);
-static void mn_main_window_edit_toolbars_weak_notify_cb (gpointer data,
- GObject *former_object);
-
-static void mn_main_window_fullscreen (void);
-static void mn_main_window_unfullscreen (void);
-
-static gboolean mn_main_window_leave_fullscreen_timeout_cb (gpointer data);
-
-static gboolean mn_main_window_leave_fullscreen_enter_notify_event_h (GtkWidget *widget,
- GdkEventCrossing *event,
- gpointer user_data);
-static gboolean mn_main_window_leave_fullscreen_leave_notify_event_h (GtkWidget *widget,
- GdkEventCrossing *event,
- gpointer user_data);
-
-static void mn_main_window_update_leave_fullscreen_popup_position (void);
-
-static gboolean mn_main_window_fullscreen_key_press_event_h (GtkWidget *widget,
- GdkEventKey *event,
- gpointer user_data);
-static void mn_main_window_fullscreen_menubar_deactivate_h (GtkMenuShell *menushell,
- gpointer user_data);
-
-/*** implementation **********************************************************/
-
-void
-mn_main_window_display (void)
-{
- GError *err = NULL;
- GtkAccelGroup *accel_group;
- GSList *l;
-
- g_return_if_fail(mn_shell != NULL);
-
- if (self.window)
- {
- gtk_window_present(GTK_WINDOW(self.window));
- return;
- }
-
- /* we don't need the popup anymore */
- mn_summary_popup_destroy();
-
- self.ui_manager = gtk_ui_manager_new();
-
- g_object_connect(self.ui_manager,
- "signal::connect-proxy", mn_main_window_ui_manager_connect_proxy_h, NULL,
- "signal::disconnect-proxy", mn_main_window_ui_manager_disconnect_proxy_h, NULL,
- NULL);
-
- self.action_group = gtk_action_group_new("MainWindowActions");
- gtk_action_group_set_translation_domain(self.action_group, NULL);
-
- gtk_action_group_add_actions(self.action_group,
- menu_entries,
- G_N_ELEMENTS(menu_entries),
- NULL);
- gtk_action_group_add_toggle_actions(self.action_group,
- toggle_entries,
- G_N_ELEMENTS(toggle_entries),
- NULL);
- gtk_action_group_add_radio_actions(self.action_group,
- toolbars_style_entries,
- G_N_ELEMENTS(toolbars_style_entries),
- -1,
- G_CALLBACK(mn_main_window_update_toolbars_style),
- NULL);
- gtk_ui_manager_insert_action_group(self.ui_manager, self.action_group, 0);
-
- g_object_set(G_OBJECT(GET_ACTION("MailMailReader")),
- "is-important", TRUE,
- NULL);
-
- if (! gtk_ui_manager_add_ui_from_file(self.ui_manager, MN_INTERFACE_FILE("menus.xml"), &err))
- {
- g_critical(_("unable to load menus.xml: %s"), err->message);
- g_error_free(err);
- }
-
- self.toolbars_file = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
- mn_main_window_create_toolbars_model(TRUE);
-
- mn_create_interface(MN_INTERFACE_FILE("main.glade"),
- "window", &self.window,
- "menubar", &self.menubar,
- "toolbar", &self.toolbar,
- "statusbar", &self.statusbar,
- "scrolled", &self.scrolled,
- NULL);
- g_object_weak_ref(G_OBJECT(self.window), mn_main_window_weak_notify_cb, NULL);
-
- /*
- * Glade forces an useless viewport into the scrolled window if we
- * use a custom widget, so we don't.
- */
- self.message_view = mn_message_view_new(FALSE, TRUE);
- gtk_widget_set_name(self.message_view, "mn-message-view");
- gtk_container_set_border_width(GTK_CONTAINER(self.message_view), 12);
- gtk_container_add(GTK_CONTAINER(self.scrolled), self.message_view);
- gtk_widget_show(self.message_view);
-
- accel_group = gtk_ui_manager_get_accel_group(self.ui_manager);
- gtk_window_add_accel_group(GTK_WINDOW(self.window), accel_group);
-
- /*
- * ~/.gnome2/accels/mail-notification is automatically loaded by the
- * libgnomeui module, we just need to save it ourselves.
- */
- g_signal_connect(accel_group, "accel-changed", G_CALLBACK(gnome_accelerators_sync), NULL);
-
- self.help_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(self.statusbar), _("Help messages"));
- self.count_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(self.statusbar), _("Count messages"));
-
- mn_conf_link(self.window, MN_CONF_MAIN_WINDOW_DIMENSIONS,
- GET_ACTION("ViewToolbars"), MN_CONF_MAIN_WINDOW_VIEW_TOOLBARS,
- GET_ACTION("ViewStatusbar"), MN_CONF_MAIN_WINDOW_VIEW_STATUSBAR,
- GET_ACTION("ViewToolbarsStyleDesktopDefault"), MN_CONF_MAIN_WINDOW_TOOLBARS_STYLE, MN_TYPE_TOOLBAR_STYLE,
- NULL);
-
- mn_main_window_link_view_action(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars")), mn_main_window_update_toolbars_visibility);
- mn_main_window_link_view_action(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar")), mn_main_window_update_statusbar_visibility);
-
- mn_main_window_update_messages();
- mn_main_window_update_sensitivity();
-
- mn_conf_notification_add(self.window,
- MN_CONF_COMMANDS_MAIL_READER_NAMESPACE,
- mn_main_window_notify_mail_reader_cb,
- NULL);
- mn_g_object_connect(self.window,
- mn_shell->mailboxes,
- "signal::notify::must-poll", mn_main_window_update_sensitivity, NULL,
- "signal::messages-changed", mn_main_window_update_messages, NULL,
- NULL);
-
- gtk_widget_grab_focus(self.message_view);
- gtk_widget_show(self.window);
-
- MN_LIST_FOREACH(l, self.transients)
- {
- GtkWindow *window = l->data;
- gtk_window_set_transient_for(window, GTK_WINDOW(self.window));
- }
-}
-
-gboolean
-mn_main_window_is_displayed (void)
+ (selfp->leave_fullscreen_popup != NULL)
+
+#line 50 "mn-main-window.c"
+/* self casting macros */
+#define SELF(x) MN_MAIN_WINDOW(x)
+#define SELF_CONST(x) MN_MAIN_WINDOW_CONST(x)
+#define IS_SELF(x) MN_IS_MAIN_WINDOW(x)
+#define TYPE_SELF MN_TYPE_MAIN_WINDOW
+#define SELF_CLASS(x) MN_MAIN_WINDOW_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAIN_WINDOW_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMainWindow Self;
+typedef MNMainWindowClass SelfClass;
+
+/* here are local prototypes */
+static void mn_main_window_class_init (MNMainWindowClass * c) G_GNUC_UNUSED;
+static void mn_main_window_init (MNMainWindow * self) G_GNUC_UNUSED;
+static void ___2_mn_main_window_dispose (GObject * object) G_GNUC_UNUSED;
+static void mn_main_window_create_ui_manager (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_create_toolbars_model (MNMainWindow * self, gboolean use_dot_file) G_GNUC_UNUSED;
+static void mn_main_window_update_toolbars_visibility (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_update_statusbar_visibility (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_main_window_update_messages (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_update_sensitivity (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_ui_manager_connect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager) G_GNUC_UNUSED;
+static void mn_main_window_ui_manager_disconnect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager) G_GNUC_UNUSED;
+static void mn_main_window_menu_item_select_h (MNMainWindow * self, GtkMenuItem * item) G_GNUC_UNUSED;
+static void mn_main_window_menu_item_deselect_h (MNMainWindow * self, GtkMenuItem * item) G_GNUC_UNUSED;
+static gboolean mn_main_window_window_state_event_h (MNMainWindow * self, GdkEventWindowState * event, gpointer user_data) G_GNUC_UNUSED;
+static void mn_main_window_update_toolbars_style_changed_h (GtkRadioAction * action, GtkRadioAction * current, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_update_toolbars_style (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_toolbars_model_save_changes (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_toolbars_model_save_changes_cb (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_toolbars_model_update_flags_and_save_changes (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_mail_reader_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_update_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_close_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_quit_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_response_h (MNMainWindow * self, int response, GtkDialog * dialog) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_create_editor (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_weak_notify_cb (MNMainWindow * self, GObject * former_object) G_GNUC_UNUSED;
+static void mn_main_window_preferences_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_help_contents_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_about_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_fullscreen (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_unfullscreen (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_leave_fullscreen_timeout_cb (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_leave_fullscreen_enter_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget) G_GNUC_UNUSED;
+static gboolean mn_main_window_leave_fullscreen_leave_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_main_window_update_leave_fullscreen_popup_position (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_fullscreen_key_press_event_h (MNMainWindow * self, GdkEventKey * event, gpointer user_data) G_GNUC_UNUSED;
+static void mn_main_window_fullscreen_menubar_deactivate_h (MNMainWindow * self, GtkMenuShell * menushell) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static GtkWindowClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_create_ui_manager mn_main_window_create_ui_manager
+#define self_create_toolbars_model mn_main_window_create_toolbars_model
+#define self_update_toolbars_visibility mn_main_window_update_toolbars_visibility
+#define self_update_statusbar_visibility mn_main_window_update_statusbar_visibility
+#define self_notify_mail_reader_cb mn_main_window_notify_mail_reader_cb
+#define self_update_messages mn_main_window_update_messages
+#define self_update_sensitivity mn_main_window_update_sensitivity
+#define self_ui_manager_connect_proxy_h mn_main_window_ui_manager_connect_proxy_h
+#define self_ui_manager_disconnect_proxy_h mn_main_window_ui_manager_disconnect_proxy_h
+#define self_menu_item_select_h mn_main_window_menu_item_select_h
+#define self_menu_item_deselect_h mn_main_window_menu_item_deselect_h
+#define self_window_state_event_h mn_main_window_window_state_event_h
+#define self_update_toolbars_style_changed_h mn_main_window_update_toolbars_style_changed_h
+#define self_update_toolbars_style mn_main_window_update_toolbars_style
+#define self_toolbars_model_save_changes mn_main_window_toolbars_model_save_changes
+#define self_toolbars_model_save_changes_cb mn_main_window_toolbars_model_save_changes_cb
+#define self_toolbars_model_update_flags_and_save_changes mn_main_window_toolbars_model_update_flags_and_save_changes
+#define self_mail_reader_activate_h mn_main_window_mail_reader_activate_h
+#define self_update_activate_h mn_main_window_update_activate_h
+#define self_close_activate_h mn_main_window_close_activate_h
+#define self_quit_activate_h mn_main_window_quit_activate_h
+#define self_edit_toolbars_activate_h mn_main_window_edit_toolbars_activate_h
+#define self_edit_toolbars_response_h mn_main_window_edit_toolbars_response_h
+#define self_edit_toolbars_create_editor mn_main_window_edit_toolbars_create_editor
+#define self_edit_toolbars_weak_notify_cb mn_main_window_edit_toolbars_weak_notify_cb
+#define self_preferences_activate_h mn_main_window_preferences_activate_h
+#define self_help_contents_activate_h mn_main_window_help_contents_activate_h
+#define self_about_activate_h mn_main_window_about_activate_h
+#define self_fullscreen mn_main_window_fullscreen
+#define self_unfullscreen mn_main_window_unfullscreen
+#define self_leave_fullscreen_timeout_cb mn_main_window_leave_fullscreen_timeout_cb
+#define self_leave_fullscreen_enter_notify_event_h mn_main_window_leave_fullscreen_enter_notify_event_h
+#define self_leave_fullscreen_leave_notify_event_h mn_main_window_leave_fullscreen_leave_notify_event_h
+#define self_update_leave_fullscreen_popup_position mn_main_window_update_leave_fullscreen_popup_position
+#define self_fullscreen_key_press_event_h mn_main_window_fullscreen_key_press_event_h
+#define self_fullscreen_menubar_deactivate_h mn_main_window_fullscreen_menubar_deactivate_h
+GType
+mn_main_window_get_type (void)
{
- return self.window != NULL;
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNMainWindowClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_main_window_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNMainWindow),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_main_window_init,
+ NULL
+ };
+
+ type = g_type_register_static (GTK_TYPE_WINDOW, "MNMainWindow", &info, (GTypeFlags)0);
+ }
+
+ return type;
}
-void
-mn_main_window_add_transient (GtkWindow *window)
-{
- self.transients = g_slist_append(self.transients, window);
- g_object_weak_ref(G_OBJECT(window), mn_main_window_transient_weak_notify_cb, NULL);
-
- if (self.window)
- gtk_window_set_transient_for(window, GTK_WINDOW(self.window));
-}
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMainWindow *)g_object_new(mn_main_window_get_type(), NULL))
-static void
-mn_main_window_transient_weak_notify_cb (gpointer data, GObject *former_object)
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMainWindow * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMainWindow *
+GET_NEW_VARG (const char *first, ...)
{
- self.transients = g_slist_remove(self.transients, former_object);
+ MNMainWindow *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNMainWindow *)g_object_new_valist (mn_main_window_get_type (), first, ap);
+ va_end (ap);
+ return ret;
}
+
static void
-mn_main_window_weak_notify_cb (gpointer data, GObject *former_object)
+___dispose (GObject *obj_self)
{
- g_object_unref(self.ui_manager);
- self.ui_manager = NULL;
-
- g_object_unref(self.action_group);
- self.action_group = NULL;
-
- g_object_unref(self.toolbars_model);
- self.toolbars_model = NULL;
-
- g_free(self.toolbars_file);
- self.toolbars_file = NULL;
-
- mn_source_remove(&self.toolbars_model_save_idle_id);
-
- self.window = NULL;
- self.toolbar = NULL;
+#define __GOB_FUNCTION__ "MN:Main:Window::dispose"
+ MNMainWindow *self G_GNUC_UNUSED = MN_MAIN_WINDOW (obj_self);
+#line 138 "mn-main-window.gob"
+ ___2_mn_main_window_dispose(obj_self);
+#line 195 "mn-main-window.c"
+#line 59 "mn-main-window.gob"
+ if(self->_priv->ui_manager) { g_object_unref ((gpointer) self->_priv->ui_manager); self->_priv->ui_manager = NULL; }
+#line 198 "mn-main-window.c"
+#line 60 "mn-main-window.gob"
+ if(self->_priv->action_group) { g_object_unref ((gpointer) self->_priv->action_group); self->_priv->action_group = NULL; }
+#line 201 "mn-main-window.c"
+#line 62 "mn-main-window.gob"
+ if(self->_priv->toolbars_model) { g_object_unref ((gpointer) self->_priv->toolbars_model); self->_priv->toolbars_model = NULL; }
+#line 204 "mn-main-window.c"
}
+#undef __GOB_FUNCTION__
-static void
-mn_main_window_notify_mail_reader_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
- mn_main_window_update_sensitivity();
- GDK_THREADS_LEAVE();
-}
static void
-mn_main_window_update_messages (void)
+___finalize(GObject *obj_self)
{
- GSList *messages;
- int count;
+#define __GOB_FUNCTION__ "MN:Main:Window::finalize"
+ MNMainWindow *self G_GNUC_UNUSED = MN_MAIN_WINDOW (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+}
+#undef __GOB_FUNCTION__
- messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
- count = g_slist_length(messages);
+static void
+mn_main_window_class_init (MNMainWindowClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
- mn_message_view_set_messages(MN_MESSAGE_VIEW(self.message_view), messages);
- mn_g_object_slist_free(messages);
+ g_type_class_add_private(c,sizeof(MNMainWindowPrivate));
- if (count > 0)
- {
- char *status;
+ parent_class = g_type_class_ref (GTK_TYPE_WINDOW);
- status = g_strdup_printf(ngettext("%i new message", "%i new messages", count), count);
- STATUS_PUSH(self.count_cid, status);
- g_free(status);
- }
- else
- STATUS_POP(self.count_cid);
+#line 138 "mn-main-window.gob"
+ g_object_class->dispose = ___dispose;
+#line 232 "mn-main-window.c"
+ g_object_class->finalize = ___finalize;
}
-
-static void
-mn_main_window_update_sensitivity (void)
-{
- g_object_set(GET_ACTION("MailMailReader"),
- "sensitive", mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE),
- NULL);
- g_object_set(GET_ACTION("MailUpdate"),
- "sensitive", mn_mailboxes_get_must_poll(mn_shell->mailboxes),
- NULL);
-}
-
-static void
-mn_main_window_create_toolbars_model (gboolean use_dot_file)
+#undef __GOB_FUNCTION__
+#line 75 "mn-main-window.gob"
+static void
+mn_main_window_init (MNMainWindow * self G_GNUC_UNUSED)
+#line 239 "mn-main-window.c"
{
- if (self.toolbars_model)
- g_object_unref(self.toolbars_model);
-
- self.toolbars_model = egg_toolbars_model_new();
-
- g_object_connect(self.toolbars_model,
- "signal-after::item-added", mn_main_window_toolbars_model_save_changes, NULL,
- "signal-after::item-removed", mn_main_window_toolbars_model_save_changes, NULL,
- "signal-after::toolbar-added", mn_main_window_toolbars_model_update_flags_and_save_changes, NULL,
- "signal-after::toolbar-removed", mn_main_window_toolbars_model_update_flags_and_save_changes, NULL,
- NULL);
+#define __GOB_FUNCTION__ "MN:Main:Window::init"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAIN_WINDOW,MNMainWindowPrivate);
+ {
+#line 76 "mn-main-window.gob"
+
+ GtkWidget *scrolled;
+ GtkWidget *vbox;
+
+ self_create_ui_manager(self);
+ self_create_toolbars_model(self, TRUE);
+
+ selfp->menubar = gtk_ui_manager_get_widget(selfp->ui_manager, "/menubar");
+ selfp->toolbar = egg_editable_toolbar_new_with_model(selfp->ui_manager, selfp->toolbars_model);
+
+ scrolled = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+
+ selfp->message_view = mn_message_view_new(FALSE, TRUE);
+ gtk_widget_set_name(selfp->message_view, "mn-message-view");
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->message_view), 12);
+ gtk_container_add(GTK_CONTAINER(scrolled), selfp->message_view);
+
+ selfp->statusbar = gtk_statusbar_new();
+
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), selfp->menubar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), selfp->toolbar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), selfp->statusbar, FALSE, FALSE, 0);
+ gtk_widget_show_all(vbox);
+ gtk_container_add(GTK_CONTAINER(self), vbox);
+
+ selfp->help_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Help messages"));
+ selfp->count_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Count messages"));
+
+ mn_conf_link(self, MN_CONF_MAIN_WINDOW_DIMENSIONS,
+ GET_ACTION("ViewToolbars"), MN_CONF_MAIN_WINDOW_VIEW_TOOLBARS,
+ GET_ACTION("ViewStatusbar"), MN_CONF_MAIN_WINDOW_VIEW_STATUSBAR,
+ GET_ACTION("ViewToolbarsStyleDesktopDefault"), MN_CONF_MAIN_WINDOW_TOOLBARS_STYLE, MN_TYPE_TOOLBAR_STYLE,
+ NULL);
+
+ self_update_toolbars_visibility(self);
+ self_update_statusbar_visibility(self);
+
+ g_signal_connect_swapped(GET_ACTION("ViewToolbars"), "toggled", G_CALLBACK(self_update_toolbars_visibility), self);
+ g_signal_connect_swapped(GET_ACTION("ViewStatusbar"), "toggled", G_CALLBACK(self_update_statusbar_visibility), self);
+
+ self_update_messages(self);
+ self_update_sensitivity(self);
+
+ mn_conf_notification_add(self,
+ MN_CONF_COMMANDS_MAIL_READER_NAMESPACE,
+ self_notify_mail_reader_cb,
+ self);
+ mn_g_object_connect(self,
+ mn_shell->mailboxes,
+ "swapped-signal::notify::must-poll", self_update_sensitivity, self,
+ "swapped-signal::messages-changed", self_update_messages, self,
+ NULL);
+ g_signal_connect(self, "window-state-event", G_CALLBACK(self_window_state_event_h), NULL);
- if (! use_dot_file || ! egg_toolbars_model_load(self.toolbars_model, self.toolbars_file))
- {
- if (! egg_toolbars_model_load(self.toolbars_model, MN_INTERFACE_FILE("toolbars.xml")))
- g_critical(_("unable to load toolbars.xml"));
- }
+ gtk_widget_grab_focus(selfp->message_view);
- if (egg_toolbars_model_n_toolbars(self.toolbars_model) < 1)
- egg_toolbars_model_add_toolbar(self.toolbars_model, 0, "DefaultToolbar");
-
- if (self.toolbar)
- egg_editable_toolbar_set_model(EGG_EDITABLE_TOOLBAR(self.toolbar), self.toolbars_model);
+#line 306 "mn-main-window.c"
+ }
}
+#undef __GOB_FUNCTION__
-static void
-mn_main_window_ui_manager_connect_proxy_h (GtkUIManager *manager,
- GtkAction *action,
- GtkWidget *proxy,
- gpointer user_data)
-{
- if (GTK_IS_MENU_ITEM(proxy))
- g_object_connect(proxy,
- "signal::select", mn_main_window_menu_item_select_h, NULL,
- "signal::deselect", mn_main_window_menu_item_deselect_h, NULL,
- NULL);
-}
-static void
-mn_main_window_ui_manager_disconnect_proxy_h (GtkUIManager *manager,
- GtkAction *action,
- GtkWidget *proxy,
- gpointer user_data)
-{
- if (GTK_IS_MENU_ITEM(proxy))
- g_object_disconnect(proxy,
- "any-signal", mn_main_window_menu_item_select_h, NULL,
- "any-signal", mn_main_window_menu_item_deselect_h, NULL,
- NULL);
-}
-static void
-mn_main_window_menu_item_select_h (GtkMenuItem *item, gpointer user_data)
+#line 138 "mn-main-window.gob"
+static void
+___2_mn_main_window_dispose (GObject * object G_GNUC_UNUSED)
+#line 316 "mn-main-window.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->dispose) \
+ (* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
{
- GtkAction *action;
- char *tooltip = NULL;
+#define __GOB_FUNCTION__ "MN:Main:Window::dispose"
+{
+#line 140 "mn-main-window.gob"
+
+ Self *self = SELF(object);
- action = g_object_get_data(G_OBJECT(item), "gtk-action");
- g_return_if_fail(action != NULL);
-
- g_object_get(G_OBJECT(action), "tooltip", &tooltip, NULL);
- if (tooltip)
- {
- STATUS_PUSH(self.help_cid, tooltip);
- g_free(tooltip);
- }
-}
+ mn_source_clear(&selfp->toolbars_model_save_idle_id);
-static void
-mn_main_window_menu_item_deselect_h (GtkMenuItem *item, gpointer user_data)
-{
- STATUS_POP(self.help_cid);
-}
+ if (FULLSCREEN)
+ self_unfullscreen(self);
-static void
-mn_main_window_update_toolbars_style (void)
-{
- MNToolbarStyle style;
- EggTbModelFlags flag;
- int n_toolbars;
- int i;
-
- style = gtk_radio_action_get_current_value(GTK_RADIO_ACTION(GET_ACTION("ViewToolbarsStyleDesktopDefault")));
- if (style == MN_TOOLBAR_STYLE_DESKTOP_DEFAULT)
- g_object_get(gtk_widget_get_settings(self.toolbar), "gtk-toolbar-style", &style, NULL);
-
- if (FULLSCREEN && style == MN_TOOLBAR_STYLE_BOTH)
- style = MN_TOOLBAR_STYLE_ICONS;
-
- flag = 1 << (style + 1);
- n_toolbars = egg_toolbars_model_n_toolbars(self.toolbars_model);
-
- for (i = 0; i < n_toolbars; i++)
- {
- EggTbModelFlags flags;
-
- flags = egg_toolbars_model_get_flags(self.toolbars_model, i);
- flags &= ~ (EGG_TB_MODEL_ICONS_ONLY
- | EGG_TB_MODEL_TEXT_ONLY
- | EGG_TB_MODEL_ICONS_TEXT
- | EGG_TB_MODEL_ICONS_TEXT_HORIZ);
- flags |= flag;
- egg_toolbars_model_set_flags(self.toolbars_model, i, flags);
- }
-}
+ PARENT_HANDLER(object);
+ }}
+#line 334 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
-static void
-mn_main_window_toolbars_model_save_changes (void)
+#line 151 "mn-main-window.gob"
+static void
+mn_main_window_create_ui_manager (MNMainWindow * self)
+#line 341 "mn-main-window.c"
{
- if (! self.toolbars_model_save_idle_id)
- self.toolbars_model_save_idle_id = g_idle_add(mn_main_window_toolbars_model_save_changes_cb, NULL);
-}
-
-static gboolean
-mn_main_window_toolbars_model_save_changes_cb (gpointer data)
+#define __GOB_FUNCTION__ "MN:Main:Window::create_ui_manager"
+#line 151 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 151 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 348 "mn-main-window.c"
{
- GDK_THREADS_ENTER();
- egg_toolbars_model_save(self.toolbars_model, self.toolbars_file, "1.0");
- self.toolbars_model_save_idle_id = 0;
- GDK_THREADS_LEAVE();
-
- return FALSE; /* remove */
-}
+#line 153 "mn-main-window.gob"
+
+ static GtkActionEntry menu_entries[] = {
+ /* Toplevel */
+ { "Mail", NULL, N_("_Mail") },
+ { "Edit", NULL, N_("_Edit") },
+ { "View", NULL, N_("_View") },
+ { "Help", NULL, N_("_Help") },
+
+ /* Mail menu */
+ {
+ "MailMailReader",
+ MN_STOCK_MAIL_READER,
+ N_("_Mail Reader"),
+ "<control>M",
+ N_("Launch the mail reader"),
+ G_CALLBACK(self_mail_reader_activate_h)
+ },
+ {
+ "MailUpdate",
+ GTK_STOCK_REFRESH,
+ N_("_Update"),
+ "<control>R", /* Reload */
+ N_("Update the mail status"),
+ G_CALLBACK(self_update_activate_h)
+ },
+ {
+ "MailClose",
+ GTK_STOCK_CLOSE,
+ N_("_Close"),
+ "<control>W",
+ N_("Close this window"),
+ G_CALLBACK(self_close_activate_h)
+ },
+ {
+ "MailQuit",
+ GTK_STOCK_QUIT,
+ N_("_Quit"),
+ "<control>Q",
+ N_("Quit Mail Notification"),
+ G_CALLBACK(self_quit_activate_h)
+ },
+
+ /* Edit menu */
+ {
+ "EditToolbars",
+ NULL,
+ N_("_Toolbars"),
+ NULL,
+ N_("Customize the toolbars"),
+ G_CALLBACK(self_edit_toolbars_activate_h)
+ },
+ {
+ "EditPreferences",
+ GTK_STOCK_PREFERENCES,
+ N_("_Preferences"),
+ NULL,
+ N_("Configure Mail Notification"),
+ G_CALLBACK(self_preferences_activate_h)
+ },
+
+ /* View menu */
+ {
+ "ViewToolbarsStyle",
+ NULL,
+ N_("Toolbars Styl_e"),
+ NULL,
+ N_("Customize the toolbars style"),
+ NULL
+ },
+
+ /* Help menu */
+ {
+ "HelpContents",
+ GTK_STOCK_HELP,
+ N_("_Contents"),
+ "F1",
+ N_("Display help"),
+ G_CALLBACK(self_help_contents_activate_h)
+ },
+ {
+ "HelpAbout",
+ GTK_STOCK_ABOUT,
+ N_("_About"),
+ NULL,
+ N_("Display credits"),
+ G_CALLBACK(self_about_activate_h)
+ }
+ };
+
+ static GtkToggleActionEntry toggle_entries[] = {
+ /* View menu */
+ {
+ "ViewToolbars",
+ NULL,
+ N_("_Toolbars"),
+ NULL,
+ N_("Show or hide the toolbars"),
+ NULL,
+ FALSE
+ },
+ {
+ "ViewStatusbar",
+ NULL,
+ N_("_Statusbar"),
+ NULL,
+ N_("Show or hide the statusbar"),
+ NULL,
+ FALSE
+ }
+ };
+
+ static GtkRadioActionEntry toolbars_style_entries[] = {
+ /* View menu */
+ {
+ "ViewToolbarsStyleDesktopDefault",
+ NULL,
+ N_("_Desktop Default"),
+ NULL,
+ N_("Set the toolbars style to the desktop default setting"),
+ MN_TOOLBAR_STYLE_DESKTOP_DEFAULT
+ },
+ {
+ "ViewToolbarsStyleIconsOnly",
+ NULL,
+ N_("I_cons Only"),
+ NULL,
+ N_("Only display the toolbars icons"),
+ MN_TOOLBAR_STYLE_ICONS
+ },
+ {
+ "ViewToolbarsStyleTextOnly",
+ NULL,
+ N_("_Text Only"),
+ NULL,
+ N_("Only display the toolbars text"),
+ MN_TOOLBAR_STYLE_TEXT
+ },
+ {
+ "ViewToolbarsStyleTextBelowIcons",
+ NULL,
+ N_("Text Belo_w Icons"),
+ NULL,
+ N_("Display the toolbars text below the icons"),
+ MN_TOOLBAR_STYLE_BOTH
+ },
+ {
+ "ViewToolbarsStyleTextBesideIcons",
+ NULL,
+ N_("Text Be_side Icons"),
+ NULL,
+ N_("Display the toolbars text beside the icons"),
+ MN_TOOLBAR_STYLE_BOTH_HORIZ
+ }
+ };
+
+ GError *err = NULL;
+ GtkAccelGroup *accel_group;
+
+ g_return_if_fail(selfp->ui_manager == NULL);
+
+ selfp->ui_manager = gtk_ui_manager_new();
+
+ g_object_connect(selfp->ui_manager,
+ "swapped-signal::connect-proxy", self_ui_manager_connect_proxy_h, self,
+ "swapped-signal::disconnect-proxy", self_ui_manager_disconnect_proxy_h, self,
+ NULL);
-static void
-mn_main_window_toolbars_model_update_flags_and_save_changes (void)
+ selfp->action_group = gtk_action_group_new("MainWindowActions");
+ gtk_action_group_set_translation_domain(selfp->action_group, NULL);
+
+ gtk_action_group_add_actions(selfp->action_group,
+ menu_entries,
+ G_N_ELEMENTS(menu_entries),
+ self);
+ gtk_action_group_add_toggle_actions(selfp->action_group,
+ toggle_entries,
+ G_N_ELEMENTS(toggle_entries),
+ self);
+ gtk_action_group_add_radio_actions(selfp->action_group,
+ toolbars_style_entries,
+ G_N_ELEMENTS(toolbars_style_entries),
+ -1,
+ G_CALLBACK(self_update_toolbars_style_changed_h),
+ self);
+ gtk_ui_manager_insert_action_group(selfp->ui_manager, selfp->action_group, 0);
+
+ g_object_set(G_OBJECT(GET_ACTION("MailMailReader")),
+ "is-important", TRUE,
+ NULL);
+
+ if (! gtk_ui_manager_add_ui_from_file(selfp->ui_manager, MN_INTERFACE_FILE("menus.xml"), &err))
+ {
+ g_critical(_("unable to load menus.xml: %s"), err->message);
+ g_error_free(err);
+ }
+
+ accel_group = gtk_ui_manager_get_accel_group(selfp->ui_manager);
+ gtk_window_add_accel_group(GTK_WINDOW(self), accel_group);
+
+ /*
+ * ~/.gnome2/accels/mail-notification is automatically loaded by
+ * the libgnomeui module, we just need to save it ourselves.
+ */
+ g_signal_connect(accel_group, "accel-changed", G_CALLBACK(gnome_accelerators_sync), NULL);
+ }}
+#line 556 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 359 "mn-main-window.gob"
+static void
+mn_main_window_create_toolbars_model (MNMainWindow * self, gboolean use_dot_file)
+#line 562 "mn-main-window.c"
{
- int i;
- int n_toolbars;
- EggTbModelFlags flag = EGG_TB_MODEL_ACCEPT_ITEMS_ONLY;
-
- n_toolbars = egg_toolbars_model_n_toolbars(self.toolbars_model);
-
- if (n_toolbars <= 1)
- flag |= EGG_TB_MODEL_NOT_REMOVABLE;
+#define __GOB_FUNCTION__ "MN:Main:Window::create_toolbars_model"
+#line 359 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 359 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 569 "mn-main-window.c"
+{
+#line 361 "mn-main-window.gob"
+
+ gboolean load_default_toolbars = TRUE;
- for (i = 0; i < n_toolbars; i++)
- {
- EggTbModelFlags flags;
+ if (selfp->toolbars_model)
+ g_object_unref(selfp->toolbars_model);
- flags = egg_toolbars_model_get_flags(self.toolbars_model, i);
- flags &= ~EGG_TB_MODEL_NOT_REMOVABLE;
- flags |= flag;
- egg_toolbars_model_set_flags(self.toolbars_model, i, flags);
- }
+ selfp->toolbars_model = egg_toolbars_model_new();
- mn_main_window_toolbars_model_save_changes();
-}
+ g_object_connect(selfp->toolbars_model,
+ "swapped-signal-after::item-added", self_toolbars_model_save_changes, self,
+ "swapped-signal-after::item-removed", self_toolbars_model_save_changes, self,
+ "swapped-signal-after::toolbar-added", self_toolbars_model_update_flags_and_save_changes, self,
+ "swapped-signal-after::toolbar-removed", self_toolbars_model_update_flags_and_save_changes, self,
+ NULL);
-static void
-mn_main_window_link_view_action (GtkToggleAction *action, GCallback cb)
-{
- g_return_if_fail(GTK_IS_TOGGLE_ACTION(action));
- g_return_if_fail(cb != NULL);
+ if (use_dot_file)
+ {
+ char *filename;
- cb();
- g_signal_connect(action, "toggled", cb, NULL);
-}
+ filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+ load_default_toolbars = ! egg_toolbars_model_load(selfp->toolbars_model, filename);
+ g_free(filename);
+ }
-static void
-mn_main_window_update_toolbars_visibility (void)
+ if (load_default_toolbars)
+ {
+ if (! egg_toolbars_model_load(selfp->toolbars_model, MN_INTERFACE_FILE("toolbars.xml")))
+ g_critical(_("unable to load toolbars.xml"));
+ }
+
+ if (egg_toolbars_model_n_toolbars(selfp->toolbars_model) < 1)
+ egg_toolbars_model_add_toolbar(selfp->toolbars_model, 0, "DefaultToolbar");
+
+ if (selfp->toolbar)
+ egg_editable_toolbar_set_model(EGG_EDITABLE_TOOLBAR(selfp->toolbar), selfp->toolbars_model);
+ }}
+#line 608 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 398 "mn-main-window.gob"
+static void
+mn_main_window_update_toolbars_visibility (MNMainWindow * self)
+#line 614 "mn-main-window.c"
{
- g_object_set(G_OBJECT(self.toolbar), "visible", gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars"))), NULL);
-}
-
-static void
-mn_main_window_update_statusbar_visibility (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_toolbars_visibility"
+#line 398 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 398 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 621 "mn-main-window.c"
{
- g_object_set(G_OBJECT(self.statusbar), "visible", ! FULLSCREEN && gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar"))), NULL);
-}
-
-static void
-mn_main_window_mail_reader_activate_h (void)
+#line 400 "mn-main-window.gob"
+
+ g_object_set(G_OBJECT(selfp->toolbar), "visible", gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars"))), NULL);
+ }}
+#line 627 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 404 "mn-main-window.gob"
+static void
+mn_main_window_update_statusbar_visibility (MNMainWindow * self)
+#line 633 "mn-main-window.c"
{
- mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
-}
-
-static void
-mn_main_window_update_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_statusbar_visibility"
+#line 404 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 404 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 640 "mn-main-window.c"
{
- mn_mailboxes_check(mn_shell->mailboxes);
-}
-
-static void
-mn_main_window_close_activate_h (void)
+#line 406 "mn-main-window.gob"
+
+ g_object_set(G_OBJECT(selfp->statusbar), "visible", ! FULLSCREEN && gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar"))), NULL);
+ }}
+#line 646 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 410 "mn-main-window.gob"
+static void
+mn_main_window_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 652 "mn-main-window.c"
{
- gtk_widget_destroy(self.window);
-}
-
-static void
-mn_main_window_quit_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::notify_mail_reader_cb"
{
- g_object_unref(mn_shell);
-}
-
-static void
-mn_main_window_edit_toolbars_activate_h (void)
+#line 415 "mn-main-window.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+ self_update_sensitivity(self);
+ GDK_THREADS_LEAVE();
+ }}
+#line 664 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 423 "mn-main-window.gob"
+static void
+mn_main_window_update_messages (MNMainWindow * self)
+#line 670 "mn-main-window.c"
{
- if (self.edit_toolbars_dialog)
- {
- gtk_window_present(GTK_WINDOW(self.edit_toolbars_dialog));
- return;
- }
-
- mn_create_interface(MN_INTERFACE_FILE("edit-toolbars.glade"),
- "dialog", &self.edit_toolbars_dialog,
- NULL);
-
- eel_add_weak_pointer(&self.edit_toolbars_dialog);
- g_object_weak_ref(G_OBJECT(self.edit_toolbars_dialog), mn_main_window_edit_toolbars_weak_notify_cb, NULL);
-
- gtk_window_set_transient_for(GTK_WINDOW(self.edit_toolbars_dialog), GTK_WINDOW(self.window));
-
- mn_main_window_edit_toolbars_create_editor();
- egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(self.toolbar), TRUE);
-
- mn_conf_link(self.edit_toolbars_dialog, MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG, NULL);
- gtk_widget_show(self.edit_toolbars_dialog);
-}
-
-static void
-mn_main_window_edit_toolbars_create_editor (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_messages"
+#line 423 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 423 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 677 "mn-main-window.c"
{
- g_return_if_fail(self.edit_toolbars_dialog != NULL);
-
- if (self.edit_toolbars_editor)
- gtk_widget_destroy(self.edit_toolbars_editor);
-
- self.edit_toolbars_editor = egg_toolbar_editor_new(self.ui_manager, self.toolbars_model);
- eel_add_weak_pointer(&self.edit_toolbars_editor);
-
- gtk_container_set_border_width(GTK_CONTAINER(self.edit_toolbars_editor), 5);
- gtk_box_set_spacing(GTK_BOX(self.edit_toolbars_editor), 6);
-
- egg_toolbar_editor_load_actions(EGG_TOOLBAR_EDITOR(self.edit_toolbars_editor), MN_INTERFACE_FILE("toolbars.xml"));
-
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(self.edit_toolbars_dialog)->vbox), self.edit_toolbars_editor);
- gtk_widget_show(self.edit_toolbars_editor);
-}
-
-static void
-mn_main_window_edit_toolbars_weak_notify_cb (gpointer data, GObject *former_object)
+#line 425 "mn-main-window.gob"
+
+ GSList *messages;
+ int count;
+
+ messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
+ count = g_slist_length(messages);
+
+ mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+ mn_g_object_slist_free(messages);
+
+ if (count > 0)
+ {
+ char *status;
+
+ status = g_strdup_printf(ngettext("%i new message", "%i new messages", count), count);
+ STATUS_PUSH(selfp->count_cid, status);
+ g_free(status);
+ }
+ else
+ STATUS_POP(selfp->count_cid);
+ }}
+#line 701 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 447 "mn-main-window.gob"
+static void
+mn_main_window_update_sensitivity (MNMainWindow * self)
+#line 707 "mn-main-window.c"
{
- egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(self.toolbar), FALSE);
-}
-
-static void
-mn_main_window_preferences_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_sensitivity"
+#line 447 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 447 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 714 "mn-main-window.c"
{
- mn_properties_dialog_display();
-}
-
-static void
-mn_main_window_help_contents_activate_h (void)
+#line 449 "mn-main-window.gob"
+
+ gtk_action_set_sensitive(GET_ACTION("MailMailReader"), mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE));
+ gtk_action_set_sensitive(GET_ACTION("MailUpdate"), mn_mailboxes_get_must_poll(mn_shell->mailboxes));
+ }}
+#line 721 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 454 "mn-main-window.gob"
+static void
+mn_main_window_ui_manager_connect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager)
+#line 727 "mn-main-window.c"
{
- mn_display_help(GTK_WINDOW(self.window), "main-window");
-}
-
-static void
-mn_main_window_about_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::ui_manager_connect_proxy_h"
+#line 454 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 454 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 734 "mn-main-window.c"
{
- mn_shell_display_about_dialog(mn_shell);
-}
-
-static void
-mn_main_window_fullscreen (void)
+#line 459 "mn-main-window.gob"
+
+ if (GTK_IS_MENU_ITEM(proxy))
+ g_object_connect(proxy,
+ "swapped-signal::select", self_menu_item_select_h, self,
+ "swapped-signal::deselect", self_menu_item_deselect_h, self,
+ NULL);
+ }}
+#line 744 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 467 "mn-main-window.gob"
+static void
+mn_main_window_ui_manager_disconnect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager)
+#line 750 "mn-main-window.c"
{
- GtkWidget *button;
-
- self.leave_fullscreen_popup = gtk_window_new(GTK_WINDOW_POPUP);
- eel_add_weak_pointer(&self.leave_fullscreen_popup);
-
- button = gtk_button_new_from_stock(MN_STOCK_LEAVE_FULLSCREEN);
- gtk_container_add(GTK_CONTAINER(self.leave_fullscreen_popup), button);
- gtk_widget_show(button);
-
- g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_window_unfullscreen), self.window);
+#define __GOB_FUNCTION__ "MN:Main:Window::ui_manager_disconnect_proxy_h"
+#line 467 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 467 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 757 "mn-main-window.c"
+{
+#line 472 "mn-main-window.gob"
+
+ if (GTK_IS_MENU_ITEM(proxy))
+ g_object_disconnect(proxy,
+ "any-signal", self_menu_item_select_h, self,
+ "any-signal", self_menu_item_deselect_h, self,
+ NULL);
+ }}
+#line 767 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 480 "mn-main-window.gob"
+static void
+mn_main_window_menu_item_select_h (MNMainWindow * self, GtkMenuItem * item)
+#line 773 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::menu_item_select_h"
+#line 480 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 480 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 780 "mn-main-window.c"
+{
+#line 482 "mn-main-window.gob"
+
+ GtkAction *action;
+ char *tooltip = NULL;
- gtk_widget_hide(self.menubar);
- mn_main_window_update_toolbars_style();
- mn_main_window_update_statusbar_visibility();
+ action = g_object_get_data(G_OBJECT(item), "gtk-action");
+ g_return_if_fail(action != NULL);
+
+ g_object_get(G_OBJECT(action), "tooltip", &tooltip, NULL);
+ if (tooltip)
+ {
+ STATUS_PUSH(selfp->help_cid, tooltip);
+ g_free(tooltip);
+ }
+ }}
+#line 797 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 497 "mn-main-window.gob"
+static void
+mn_main_window_menu_item_deselect_h (MNMainWindow * self, GtkMenuItem * item)
+#line 803 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::menu_item_deselect_h"
+#line 497 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 497 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 810 "mn-main-window.c"
+{
+#line 499 "mn-main-window.gob"
+
+ STATUS_POP(selfp->help_cid);
+ }}
+#line 816 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 503 "mn-main-window.gob"
+static gboolean
+mn_main_window_window_state_event_h (MNMainWindow * self, GdkEventWindowState * event, gpointer user_data)
+#line 822 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::window_state_event_h"
+#line 503 "mn-main-window.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 503 "mn-main-window.gob"
+ g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 829 "mn-main-window.c"
+{
+#line 505 "mn-main-window.gob"
+
+ if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
+ {
+ if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
+ self_fullscreen(self);
+ else
+ self_unfullscreen(self);
+ }
+
+ return FALSE; /* propagate event */
+ }}
+#line 843 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 517 "mn-main-window.gob"
+static void
+mn_main_window_update_toolbars_style_changed_h (GtkRadioAction * action, GtkRadioAction * current, Self * self)
+#line 849 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_toolbars_style_changed_h"
+{
+#line 521 "mn-main-window.gob"
+
+ self_update_toolbars_style(self);
+ }}
+#line 857 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 525 "mn-main-window.gob"
+static void
+mn_main_window_update_toolbars_style (MNMainWindow * self)
+#line 863 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_toolbars_style"
+#line 525 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 525 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 870 "mn-main-window.c"
+{
+#line 527 "mn-main-window.gob"
+
+ MNToolbarStyle style;
+ EggTbModelFlags flag;
+ int n_toolbars;
+ int i;
+
+ style = gtk_radio_action_get_current_value(GTK_RADIO_ACTION(GET_ACTION("ViewToolbarsStyleDesktopDefault")));
+ if (style == MN_TOOLBAR_STYLE_DESKTOP_DEFAULT)
+ g_object_get(gtk_widget_get_settings(selfp->toolbar), "gtk-toolbar-style", &style, NULL);
+
+ if (FULLSCREEN && style == MN_TOOLBAR_STYLE_BOTH)
+ style = MN_TOOLBAR_STYLE_ICONS;
+
+ switch (style)
+ {
+ case MN_TOOLBAR_STYLE_ICONS: flag = EGG_TB_MODEL_ICONS; break;
+ case MN_TOOLBAR_STYLE_TEXT: flag = EGG_TB_MODEL_TEXT; break;
+ case MN_TOOLBAR_STYLE_BOTH: flag = EGG_TB_MODEL_BOTH; break;
+ case MN_TOOLBAR_STYLE_BOTH_HORIZ: flag = EGG_TB_MODEL_BOTH_HORIZ; break;
+ default: g_assert_not_reached();
+ }
+
+ n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
+
+ for (i = 0; i < n_toolbars; i++)
+ {
+ EggTbModelFlags flags;
+
+ flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+ flags &= ~ (EGG_TB_MODEL_ICONS
+ | EGG_TB_MODEL_TEXT
+ | EGG_TB_MODEL_BOTH
+ | EGG_TB_MODEL_BOTH_HORIZ);
+ flags |= flag;
+ egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+ }
+ }}
+#line 910 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 565 "mn-main-window.gob"
+static void
+mn_main_window_toolbars_model_save_changes (MNMainWindow * self)
+#line 916 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::toolbars_model_save_changes"
+#line 565 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 565 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 923 "mn-main-window.c"
+{
+#line 567 "mn-main-window.gob"
+
+ if (! selfp->toolbars_model_save_idle_id)
+ selfp->toolbars_model_save_idle_id = g_idle_add((GSourceFunc) self_toolbars_model_save_changes_cb, self);
+ }}
+#line 930 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 572 "mn-main-window.gob"
+static gboolean
+mn_main_window_toolbars_model_save_changes_cb (MNMainWindow * self)
+#line 936 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::toolbars_model_save_changes_cb"
+#line 572 "mn-main-window.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 572 "mn-main-window.gob"
+ g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 943 "mn-main-window.c"
+{
+#line 574 "mn-main-window.gob"
+
+ char *filename;
- self.leave_fullscreen_popup_visible = TRUE;
- mn_main_window_update_leave_fullscreen_popup_position();
- gtk_widget_show(self.leave_fullscreen_popup);
+ GDK_THREADS_ENTER();
- g_signal_connect(gdk_screen_get_default(),
- "size-changed",
- G_CALLBACK(mn_main_window_update_leave_fullscreen_popup_position),
- NULL);
- g_signal_connect(self.window,
- "key-press-event",
- G_CALLBACK(mn_main_window_fullscreen_key_press_event_h),
- NULL);
+ filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+ egg_toolbars_model_save(selfp->toolbars_model, filename, "1.0");
+ g_free(filename);
- g_object_connect(self.leave_fullscreen_popup,
- "signal::enter-notify-event", mn_main_window_leave_fullscreen_enter_notify_event_h, NULL,
- "signal::leave-notify-event", mn_main_window_leave_fullscreen_leave_notify_event_h, NULL,
- NULL);
+ GDK_THREADS_LEAVE();
- self.leave_fullscreen_timeout_id = g_timeout_add(5000, mn_main_window_leave_fullscreen_timeout_cb, NULL);
-}
+ selfp->toolbars_model_save_idle_id = 0;
+ return FALSE; /* remove */
+ }}
+#line 960 "mn-main-window.c"
+#undef __GOB_FUNCTION__
-static void
-mn_main_window_unfullscreen (void)
+#line 589 "mn-main-window.gob"
+static void
+mn_main_window_toolbars_model_update_flags_and_save_changes (MNMainWindow * self)
+#line 966 "mn-main-window.c"
{
- g_signal_handlers_disconnect_by_func(gdk_screen_get_default(), mn_main_window_update_leave_fullscreen_popup_position, NULL);
- g_signal_handlers_disconnect_by_func(self.window, mn_main_window_fullscreen_key_press_event_h, NULL);
-
- mn_source_remove(&self.leave_fullscreen_timeout_id);
- gtk_widget_destroy(self.leave_fullscreen_popup);
-
- gtk_widget_show(self.menubar);
- mn_main_window_update_toolbars_style();
- mn_main_window_update_statusbar_visibility();
-}
-
-static gboolean
-mn_main_window_leave_fullscreen_timeout_cb (gpointer data)
+#define __GOB_FUNCTION__ "MN:Main:Window::toolbars_model_update_flags_and_save_changes"
+#line 589 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 589 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 973 "mn-main-window.c"
{
- GDK_THREADS_ENTER();
+#line 591 "mn-main-window.gob"
+
+ int i;
+ int n_toolbars;
+ EggTbModelFlags flag = EGG_TB_MODEL_ACCEPT_ITEMS_ONLY;
- self.leave_fullscreen_popup_visible = FALSE;
- mn_main_window_update_leave_fullscreen_popup_position();
- self.leave_fullscreen_timeout_id = 0;
-
- GDK_THREADS_LEAVE();
+ n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
- return FALSE; /* remove timeout */
-}
-
-static gboolean
-mn_main_window_leave_fullscreen_enter_notify_event_h (GtkWidget *widget,
- GdkEventCrossing *event,
- gpointer user_data)
+ if (n_toolbars <= 1)
+ flag |= EGG_TB_MODEL_NOT_REMOVABLE;
+
+ for (i = 0; i < n_toolbars; i++)
+ {
+ EggTbModelFlags flags;
+
+ flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+ flags &= ~EGG_TB_MODEL_NOT_REMOVABLE;
+ flags |= flag;
+ egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+ }
+
+ self_toolbars_model_save_changes(self);
+ }}
+#line 998 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 614 "mn-main-window.gob"
+static void
+mn_main_window_mail_reader_activate_h (GtkAction * action, Self * self)
+#line 1004 "mn-main-window.c"
{
- mn_source_remove(&self.leave_fullscreen_timeout_id);
- self.leave_fullscreen_popup_visible = TRUE;
- mn_main_window_update_leave_fullscreen_popup_position();
-
- return FALSE; /* propagate event */
-}
-
-static gboolean
-mn_main_window_leave_fullscreen_leave_notify_event_h (GtkWidget *widget,
- GdkEventCrossing *event,
- gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Main:Window::mail_reader_activate_h"
{
- mn_source_remove(&self.leave_fullscreen_timeout_id);
- self.leave_fullscreen_timeout_id = g_timeout_add(5000, mn_main_window_leave_fullscreen_timeout_cb, NULL);
-
- return FALSE; /* propagate event */
-}
-
-static void
-mn_main_window_update_leave_fullscreen_popup_position (void)
+#line 616 "mn-main-window.gob"
+
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ }}
+#line 1012 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 620 "mn-main-window.gob"
+static void
+mn_main_window_update_activate_h (GtkAction * action, Self * self)
+#line 1018 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_activate_h"
+{
+#line 622 "mn-main-window.gob"
+
+ mn_mailboxes_check(mn_shell->mailboxes);
+ }}
+#line 1026 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 626 "mn-main-window.gob"
+static void
+mn_main_window_close_activate_h (GtkAction * action, Self * self)
+#line 1032 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::close_activate_h"
+{
+#line 628 "mn-main-window.gob"
+
+ gtk_widget_destroy(GTK_WIDGET(self));
+ }}
+#line 1040 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 632 "mn-main-window.gob"
+static void
+mn_main_window_quit_activate_h (GtkAction * action, Self * self)
+#line 1046 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::quit_activate_h"
+{
+#line 634 "mn-main-window.gob"
+
+ g_object_unref(mn_shell);
+ }}
+#line 1054 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 638 "mn-main-window.gob"
+static void
+mn_main_window_edit_toolbars_activate_h (GtkAction * action, Self * self)
+#line 1060 "mn-main-window.c"
{
- GdkScreen *screen;
- int monitor_num;
- GdkRectangle screen_rect;
- int popup_width;
- int popup_height;
- int y;
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_activate_h"
+{
+#line 640 "mn-main-window.gob"
+
+ if (selfp->edit_toolbars_dialog)
+ {
+ gtk_window_present(GTK_WINDOW(selfp->edit_toolbars_dialog));
+ return;
+ }
+
+ mn_create_interface(MN_INTERFACE_FILE("edit-toolbars-dialog.glade"),
+ "dialog", &selfp->edit_toolbars_dialog,
+ NULL);
- g_return_if_fail(self.leave_fullscreen_popup != NULL);
+ eel_add_weak_pointer(&selfp->edit_toolbars_dialog);
+ g_object_weak_ref(G_OBJECT(selfp->edit_toolbars_dialog), (GWeakNotify) self_edit_toolbars_weak_notify_cb, self);
+
+ gtk_window_set_transient_for(GTK_WINDOW(selfp->edit_toolbars_dialog), GTK_WINDOW(self));
- screen = gdk_screen_get_default();
- monitor_num = gdk_screen_get_monitor_at_window(screen, GTK_WIDGET(self.window)->window);
- gdk_screen_get_monitor_geometry(screen, monitor_num, &screen_rect);
- gtk_window_get_size(GTK_WINDOW(self.leave_fullscreen_popup), &popup_width, &popup_height);
+ self_edit_toolbars_create_editor(self);
+ egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), TRUE);
- y = screen_rect.y;
- if (! self.leave_fullscreen_popup_visible)
- y -= popup_height - 2;
+ mn_conf_link(selfp->edit_toolbars_dialog, MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG, NULL);
- gtk_window_move(GTK_WINDOW(self.leave_fullscreen_popup), screen_rect.width - popup_width, y);
-}
+ g_signal_connect_swapped(selfp->edit_toolbars_dialog, "response", G_CALLBACK(self_edit_toolbars_response_h), self);
-static gboolean
-mn_main_window_fullscreen_key_press_event_h (GtkWidget *widget,
- GdkEventKey *event,
- gpointer user_data)
-{
- unsigned int modifiers = gtk_accelerator_get_default_mod_mask();
-
- if (event->keyval == GDK_Escape && (event->state & modifiers) == 0)
- {
- gtk_window_unfullscreen(GTK_WINDOW(self.window));
- return TRUE; /* do not propagate event */
- }
- else if (event->keyval == GDK_F10 && (event->state & modifiers) == 0)
- {
- g_signal_connect(self.menubar, "deactivate", G_CALLBACK(mn_main_window_fullscreen_menubar_deactivate_h), NULL);
-
- gtk_widget_show(self.menubar);
- gtk_menu_shell_select_first(GTK_MENU_SHELL(self.menubar), FALSE);
-
- return TRUE; /* do not propagate event */
- }
- else
- return FALSE; /* propagate event */
-}
+ gtk_widget_show(selfp->edit_toolbars_dialog);
+ }}
+#line 1090 "mn-main-window.c"
+#undef __GOB_FUNCTION__
-static void
-mn_main_window_fullscreen_menubar_deactivate_h (GtkMenuShell *menushell,
- gpointer user_data)
+#line 666 "mn-main-window.gob"
+static void
+mn_main_window_edit_toolbars_response_h (MNMainWindow * self, int response, GtkDialog * dialog)
+#line 1096 "mn-main-window.c"
{
- g_signal_handlers_disconnect_by_func(self.menubar, G_CALLBACK(mn_main_window_fullscreen_menubar_deactivate_h), NULL);
- gtk_menu_shell_deselect(menushell);
- gtk_widget_hide(self.menubar);
-}
-
-/* libglade callbacks */
-
-GtkWidget *
-mn_main_window_get_widget_cb (const char *widget_name,
- const char *string1,
- const char *string2,
- int int1,
- int int2)
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_response_h"
+#line 666 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 666 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1103 "mn-main-window.c"
{
- GtkWidget *widget;
+#line 668 "mn-main-window.gob"
+
+ switch (response)
+ {
+ case GTK_RESPONSE_HELP:
+ mn_display_help(GTK_WINDOW(dialog), "main-window-edit-toolbars");
+ break;
+
+ case 1: /* use default */
+ /* recreate the model, discarding the dot file */
+ self_create_toolbars_model(self, FALSE);
+ /* and recreate the editor, since the model has changed */
+ self_edit_toolbars_create_editor(self);
+ break;
+
+ case 2: /* add toolbar */
+ egg_toolbars_model_add_toolbar(selfp->toolbars_model, -1, "UserCreated");
+ break;
+
+ case GTK_RESPONSE_CLOSE:
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+ break;
+ }
+ }}
+#line 1129 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 692 "mn-main-window.gob"
+static void
+mn_main_window_edit_toolbars_create_editor (MNMainWindow * self)
+#line 1135 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_create_editor"
+#line 692 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 692 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1142 "mn-main-window.c"
+{
+#line 694 "mn-main-window.gob"
+
+ g_return_if_fail(selfp->edit_toolbars_dialog != NULL);
- widget = gtk_ui_manager_get_widget(self.ui_manager, string1);
- g_return_val_if_fail(widget != NULL, NULL);
+ if (selfp->edit_toolbars_editor)
+ gtk_widget_destroy(selfp->edit_toolbars_editor);
- return widget;
-}
+ selfp->edit_toolbars_editor = egg_toolbar_editor_new(selfp->ui_manager, selfp->toolbars_model);
+ eel_add_weak_pointer(&selfp->edit_toolbars_editor);
-GtkWidget *
-mn_main_window_toolbar_new_cb (void)
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->edit_toolbars_editor), 5);
+ gtk_box_set_spacing(GTK_BOX(selfp->edit_toolbars_editor), 6);
+
+ egg_toolbar_editor_load_actions(EGG_TOOLBAR_EDITOR(selfp->edit_toolbars_editor), MN_INTERFACE_FILE("toolbars.xml"));
+
+ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(selfp->edit_toolbars_dialog)->vbox), selfp->edit_toolbars_editor);
+ gtk_widget_show(selfp->edit_toolbars_editor);
+ }}
+#line 1162 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 712 "mn-main-window.gob"
+static void
+mn_main_window_edit_toolbars_weak_notify_cb (MNMainWindow * self, GObject * former_object)
+#line 1168 "mn-main-window.c"
{
- GtkWidget *toolbar;
-
- toolbar = egg_editable_toolbar_new_with_model(self.ui_manager, self.toolbars_model);
- gtk_widget_show(toolbar);
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_weak_notify_cb"
+#line 712 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 712 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1175 "mn-main-window.c"
+{
+#line 714 "mn-main-window.gob"
+
+ egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), FALSE);
+ }}
+#line 1181 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 718 "mn-main-window.gob"
+static void
+mn_main_window_preferences_activate_h (GtkAction * action, Self * self)
+#line 1187 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::preferences_activate_h"
+{
+#line 720 "mn-main-window.gob"
+
+ mn_shell_display_properties_dialog(mn_shell, GTK_WINDOW(self));
+ }}
+#line 1195 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 724 "mn-main-window.gob"
+static void
+mn_main_window_help_contents_activate_h (GtkAction * action, Self * self)
+#line 1201 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::help_contents_activate_h"
+{
+#line 726 "mn-main-window.gob"
+
+ mn_display_help(GTK_WINDOW(self), "main-window");
+ }}
+#line 1209 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 730 "mn-main-window.gob"
+static void
+mn_main_window_about_activate_h (GtkAction * action, Self * self)
+#line 1215 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::about_activate_h"
+{
+#line 732 "mn-main-window.gob"
+
+ mn_shell_display_about_dialog(mn_shell, GTK_WINDOW(self));
+ }}
+#line 1223 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 736 "mn-main-window.gob"
+static void
+mn_main_window_fullscreen (MNMainWindow * self)
+#line 1229 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::fullscreen"
+#line 736 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 736 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1236 "mn-main-window.c"
+{
+#line 738 "mn-main-window.gob"
+
+ GtkWidget *button;
+
+ selfp->leave_fullscreen_popup = gtk_window_new(GTK_WINDOW_POPUP);
+ eel_add_weak_pointer(&selfp->leave_fullscreen_popup);
+
+ button = gtk_button_new_from_stock(MN_STOCK_LEAVE_FULLSCREEN);
+ gtk_container_add(GTK_CONTAINER(selfp->leave_fullscreen_popup), button);
+ gtk_widget_show(button);
+
+ g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_window_unfullscreen), self);
+
+ gtk_widget_hide(selfp->menubar);
+ self_update_toolbars_style(self);
+ self_update_statusbar_visibility(self);
+
+ selfp->leave_fullscreen_popup_visible = TRUE;
+ self_update_leave_fullscreen_popup_position(self);
+ gtk_widget_show(selfp->leave_fullscreen_popup);
+
+ g_signal_connect_swapped(gdk_screen_get_default(),
+ "size-changed",
+ G_CALLBACK(self_update_leave_fullscreen_popup_position),
+ self);
+ g_signal_connect(self,
+ "key-press-event",
+ G_CALLBACK(self_fullscreen_key_press_event_h),
+ NULL);
- return toolbar;
-}
+ g_object_connect(selfp->leave_fullscreen_popup,
+ "swapped-signal::enter-notify-event", self_leave_fullscreen_enter_notify_event_h, self,
+ "swapped-signal::leave-notify-event", self_leave_fullscreen_leave_notify_event_h, self,
+ NULL);
-void
-mn_main_window_edit_toolbars_response_h (GtkDialog *dialog,
- int response,
- gpointer user_data)
-{
- switch (response)
- {
- case GTK_RESPONSE_HELP:
- mn_display_help(GTK_WINDOW(self.edit_toolbars_dialog), "main-window-edit-toolbars");
- break;
-
- case 1: /* use default */
- /* recreate the model, discarding the dot file */
- mn_main_window_create_toolbars_model(FALSE);
- /* and recreate the editor, since the model has changed */
- mn_main_window_edit_toolbars_create_editor();
- break;
-
- case 2: /* add toolbar */
- egg_toolbars_model_add_toolbar(self.toolbars_model, -1, "UserCreated");
- break;
-
- case GTK_RESPONSE_CLOSE:
- gtk_widget_destroy(self.edit_toolbars_dialog);
- break;
- }
-}
+ selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+ }}
+#line 1275 "mn-main-window.c"
+#undef __GOB_FUNCTION__
-gboolean
-mn_main_window_window_state_event_h (GtkWidget *widget,
- GdkEventWindowState *event,
- gpointer user_data)
+#line 775 "mn-main-window.gob"
+static void
+mn_main_window_unfullscreen (MNMainWindow * self)
+#line 1281 "mn-main-window.c"
{
- if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
- {
- if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
- mn_main_window_fullscreen();
- else
- mn_main_window_unfullscreen();
- }
-
- return FALSE; /* propagate event */
-}
+#define __GOB_FUNCTION__ "MN:Main:Window::unfullscreen"
+#line 775 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 775 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1288 "mn-main-window.c"
+{
+#line 777 "mn-main-window.gob"
+
+ g_signal_handlers_disconnect_by_func(gdk_screen_get_default(), self_update_leave_fullscreen_popup_position, self);
+
+ mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+ gtk_widget_destroy(selfp->leave_fullscreen_popup);
+
+ g_signal_handlers_disconnect_by_func(self, self_fullscreen_key_press_event_h, NULL);
+
+ gtk_widget_show(selfp->menubar);
+ self_update_toolbars_style(self);
+ self_update_statusbar_visibility(self);
+ }}
+#line 1303 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 790 "mn-main-window.gob"
+static gboolean
+mn_main_window_leave_fullscreen_timeout_cb (MNMainWindow * self)
+#line 1309 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::leave_fullscreen_timeout_cb"
+#line 790 "mn-main-window.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 790 "mn-main-window.gob"
+ g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1316 "mn-main-window.c"
+{
+#line 792 "mn-main-window.gob"
+
+ selfp->leave_fullscreen_popup_visible = FALSE;
+
+ GDK_THREADS_ENTER();
+ self_update_leave_fullscreen_popup_position(self);
+ GDK_THREADS_LEAVE();
+
+ selfp->leave_fullscreen_timeout_id = 0;
+ return FALSE; /* remove timeout */
+ }}
+#line 1329 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 803 "mn-main-window.gob"
+static gboolean
+mn_main_window_leave_fullscreen_enter_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget)
+#line 1335 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::leave_fullscreen_enter_notify_event_h"
+#line 803 "mn-main-window.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 803 "mn-main-window.gob"
+ g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1342 "mn-main-window.c"
+{
+#line 807 "mn-main-window.gob"
+
+ mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+ selfp->leave_fullscreen_popup_visible = TRUE;
+ self_update_leave_fullscreen_popup_position(self);
+
+ return FALSE; /* propagate event */
+ }}
+#line 1352 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 815 "mn-main-window.gob"
+static gboolean
+mn_main_window_leave_fullscreen_leave_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget)
+#line 1358 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::leave_fullscreen_leave_notify_event_h"
+#line 815 "mn-main-window.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 815 "mn-main-window.gob"
+ g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1365 "mn-main-window.c"
+{
+#line 819 "mn-main-window.gob"
+
+ mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+ selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+
+ return FALSE; /* propagate event */
+ }}
+#line 1374 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 826 "mn-main-window.gob"
+static void
+mn_main_window_update_leave_fullscreen_popup_position (MNMainWindow * self)
+#line 1380 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_leave_fullscreen_popup_position"
+#line 826 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 826 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1387 "mn-main-window.c"
+{
+#line 828 "mn-main-window.gob"
+
+ GdkScreen *screen;
+ int monitor_num;
+ GdkRectangle screen_rect;
+ int popup_width;
+ int popup_height;
+ int y;
+
+ g_return_if_fail(selfp->leave_fullscreen_popup != NULL);
+
+ screen = gdk_screen_get_default();
+ monitor_num = gdk_screen_get_monitor_at_window(screen, GTK_WIDGET(self)->window);
+ gdk_screen_get_monitor_geometry(screen, monitor_num, &screen_rect);
+ gtk_window_get_size(GTK_WINDOW(selfp->leave_fullscreen_popup), &popup_width, &popup_height);
+
+ y = screen_rect.y;
+ if (! selfp->leave_fullscreen_popup_visible)
+ y -= popup_height - 2;
+
+ gtk_window_move(GTK_WINDOW(selfp->leave_fullscreen_popup), screen_rect.width - popup_width, y);
+ }}
+#line 1411 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 850 "mn-main-window.gob"
+static gboolean
+mn_main_window_fullscreen_key_press_event_h (MNMainWindow * self, GdkEventKey * event, gpointer user_data)
+#line 1417 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::fullscreen_key_press_event_h"
+#line 850 "mn-main-window.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 850 "mn-main-window.gob"
+ g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1424 "mn-main-window.c"
+{
+#line 852 "mn-main-window.gob"
+
+ unsigned int modifiers = gtk_accelerator_get_default_mod_mask();
+
+ if (event->keyval == GDK_Escape && (event->state & modifiers) == 0)
+ {
+ gtk_window_unfullscreen(GTK_WINDOW(self));
+ return TRUE; /* do not propagate event */
+ }
+ else if (event->keyval == GDK_F10 && (event->state & modifiers) == 0)
+ {
+ g_signal_connect_swapped(selfp->menubar, "deactivate", G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+
+ gtk_widget_show(selfp->menubar);
+ gtk_menu_shell_select_first(GTK_MENU_SHELL(selfp->menubar), FALSE);
+
+ return TRUE; /* do not propagate event */
+ }
+ else
+ return FALSE; /* propagate event */
+ }}
+#line 1447 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 873 "mn-main-window.gob"
+static void
+mn_main_window_fullscreen_menubar_deactivate_h (MNMainWindow * self, GtkMenuShell * menushell)
+#line 1453 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::fullscreen_menubar_deactivate_h"
+#line 873 "mn-main-window.gob"
+ g_return_if_fail (self != NULL);
+#line 873 "mn-main-window.gob"
+ g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1460 "mn-main-window.c"
+{
+#line 875 "mn-main-window.gob"
+
+ g_signal_handlers_disconnect_by_func(selfp->menubar, G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+ gtk_menu_shell_deselect(menushell);
+ gtk_widget_hide(selfp->menubar);
+ }}
+#line 1468 "mn-main-window.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-main-window.gob b/src/mn-main-window.gob
@@ -0,0 +1,880 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+%}
+
+%privateheader{
+#include "egg-toolbars-model.h"
+%}
+
+%{
+#include "config.h"
+#include <gnome.h>
+#include <eel/eel.h>
+#include "egg-editable-toolbar.h"
+#include "egg-toolbar-editor.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+#include "mn-shell.h"
+#include "mn-conf.h"
+#include "mn-properties-dialog.h"
+#include "mn-message-view.h"
+
+#define STATUS_PUSH(cid, str) \
+ gtk_statusbar_push(GTK_STATUSBAR(selfp->statusbar), (cid), (str))
+#define STATUS_POP(cid) \
+ gtk_statusbar_pop(GTK_STATUSBAR(selfp->statusbar), (cid))
+#define GET_ACTION(name) \
+ gtk_action_group_get_action(selfp->action_group, (name))
+#define FULLSCREEN \
+ (selfp->leave_fullscreen_popup != NULL)
+%}
+
+class MN:Main:Window from Gtk:Window
+{
+ private GtkWidget *menubar;
+ private GtkWidget *toolbar;
+ private GtkWidget *message_view;
+ private GtkWidget *statusbar;
+
+ private GtkUIManager *ui_manager unrefwith g_object_unref;
+ private GtkActionGroup *action_group unrefwith g_object_unref;
+
+ private EggToolbarsModel *toolbars_model unrefwith g_object_unref;
+ private unsigned int toolbars_model_save_idle_id;
+
+ private unsigned int help_cid;
+ private unsigned int count_cid;
+
+ private GtkWidget *leave_fullscreen_popup;
+ private gboolean leave_fullscreen_popup_visible;
+ private unsigned int leave_fullscreen_timeout_id;
+
+ private GtkWidget *edit_toolbars_dialog;
+ private GtkWidget *edit_toolbars_editor;
+
+ init (self)
+ {
+ GtkWidget *scrolled;
+ GtkWidget *vbox;
+
+ self_create_ui_manager(self);
+ self_create_toolbars_model(self, TRUE);
+
+ selfp->menubar = gtk_ui_manager_get_widget(selfp->ui_manager, "/menubar");
+ selfp->toolbar = egg_editable_toolbar_new_with_model(selfp->ui_manager, selfp->toolbars_model);
+
+ scrolled = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+
+ selfp->message_view = mn_message_view_new(FALSE, TRUE);
+ gtk_widget_set_name(selfp->message_view, "mn-message-view");
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->message_view), 12);
+ gtk_container_add(GTK_CONTAINER(scrolled), selfp->message_view);
+
+ selfp->statusbar = gtk_statusbar_new();
+
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), selfp->menubar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), selfp->toolbar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), selfp->statusbar, FALSE, FALSE, 0);
+ gtk_widget_show_all(vbox);
+ gtk_container_add(GTK_CONTAINER(self), vbox);
+
+ selfp->help_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Help messages"));
+ selfp->count_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Count messages"));
+
+ mn_conf_link(self, MN_CONF_MAIN_WINDOW_DIMENSIONS,
+ GET_ACTION("ViewToolbars"), MN_CONF_MAIN_WINDOW_VIEW_TOOLBARS,
+ GET_ACTION("ViewStatusbar"), MN_CONF_MAIN_WINDOW_VIEW_STATUSBAR,
+ GET_ACTION("ViewToolbarsStyleDesktopDefault"), MN_CONF_MAIN_WINDOW_TOOLBARS_STYLE, MN_TYPE_TOOLBAR_STYLE,
+ NULL);
+
+ self_update_toolbars_visibility(self);
+ self_update_statusbar_visibility(self);
+
+ g_signal_connect_swapped(GET_ACTION("ViewToolbars"), "toggled", G_CALLBACK(self_update_toolbars_visibility), self);
+ g_signal_connect_swapped(GET_ACTION("ViewStatusbar"), "toggled", G_CALLBACK(self_update_statusbar_visibility), self);
+
+ self_update_messages(self);
+ self_update_sensitivity(self);
+
+ mn_conf_notification_add(self,
+ MN_CONF_COMMANDS_MAIL_READER_NAMESPACE,
+ self_notify_mail_reader_cb,
+ self);
+ mn_g_object_connect(self,
+ mn_shell->mailboxes,
+ "swapped-signal::notify::must-poll", self_update_sensitivity, self,
+ "swapped-signal::messages-changed", self_update_messages, self,
+ NULL);
+ g_signal_connect(self, "window-state-event", G_CALLBACK(self_window_state_event_h), NULL);
+
+ gtk_widget_grab_focus(selfp->message_view);
+ }
+
+ override (G:Object) void
+ dispose (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ mn_source_clear(&selfp->toolbars_model_save_idle_id);
+
+ if (FULLSCREEN)
+ self_unfullscreen(self);
+
+ PARENT_HANDLER(object);
+ }
+
+ private void
+ create_ui_manager (self)
+ {
+ static GtkActionEntry menu_entries[] = {
+ /* Toplevel */
+ { "Mail", NULL, N_("_Mail") },
+ { "Edit", NULL, N_("_Edit") },
+ { "View", NULL, N_("_View") },
+ { "Help", NULL, N_("_Help") },
+
+ /* Mail menu */
+ {
+ "MailMailReader",
+ MN_STOCK_MAIL_READER,
+ N_("_Mail Reader"),
+ "<control>M",
+ N_("Launch the mail reader"),
+ G_CALLBACK(self_mail_reader_activate_h)
+ },
+ {
+ "MailUpdate",
+ GTK_STOCK_REFRESH,
+ N_("_Update"),
+ "<control>R", /* Reload */
+ N_("Update the mail status"),
+ G_CALLBACK(self_update_activate_h)
+ },
+ {
+ "MailClose",
+ GTK_STOCK_CLOSE,
+ N_("_Close"),
+ "<control>W",
+ N_("Close this window"),
+ G_CALLBACK(self_close_activate_h)
+ },
+ {
+ "MailQuit",
+ GTK_STOCK_QUIT,
+ N_("_Quit"),
+ "<control>Q",
+ N_("Quit Mail Notification"),
+ G_CALLBACK(self_quit_activate_h)
+ },
+
+ /* Edit menu */
+ {
+ "EditToolbars",
+ NULL,
+ N_("_Toolbars"),
+ NULL,
+ N_("Customize the toolbars"),
+ G_CALLBACK(self_edit_toolbars_activate_h)
+ },
+ {
+ "EditPreferences",
+ GTK_STOCK_PREFERENCES,
+ N_("_Preferences"),
+ NULL,
+ N_("Configure Mail Notification"),
+ G_CALLBACK(self_preferences_activate_h)
+ },
+
+ /* View menu */
+ {
+ "ViewToolbarsStyle",
+ NULL,
+ N_("Toolbars Styl_e"),
+ NULL,
+ N_("Customize the toolbars style"),
+ NULL
+ },
+
+ /* Help menu */
+ {
+ "HelpContents",
+ GTK_STOCK_HELP,
+ N_("_Contents"),
+ "F1",
+ N_("Display help"),
+ G_CALLBACK(self_help_contents_activate_h)
+ },
+ {
+ "HelpAbout",
+ GTK_STOCK_ABOUT,
+ N_("_About"),
+ NULL,
+ N_("Display credits"),
+ G_CALLBACK(self_about_activate_h)
+ }
+ };
+
+ static GtkToggleActionEntry toggle_entries[] = {
+ /* View menu */
+ {
+ "ViewToolbars",
+ NULL,
+ N_("_Toolbars"),
+ NULL,
+ N_("Show or hide the toolbars"),
+ NULL,
+ FALSE
+ },
+ {
+ "ViewStatusbar",
+ NULL,
+ N_("_Statusbar"),
+ NULL,
+ N_("Show or hide the statusbar"),
+ NULL,
+ FALSE
+ }
+ };
+
+ static GtkRadioActionEntry toolbars_style_entries[] = {
+ /* View menu */
+ {
+ "ViewToolbarsStyleDesktopDefault",
+ NULL,
+ N_("_Desktop Default"),
+ NULL,
+ N_("Set the toolbars style to the desktop default setting"),
+ MN_TOOLBAR_STYLE_DESKTOP_DEFAULT
+ },
+ {
+ "ViewToolbarsStyleIconsOnly",
+ NULL,
+ N_("I_cons Only"),
+ NULL,
+ N_("Only display the toolbars icons"),
+ MN_TOOLBAR_STYLE_ICONS
+ },
+ {
+ "ViewToolbarsStyleTextOnly",
+ NULL,
+ N_("_Text Only"),
+ NULL,
+ N_("Only display the toolbars text"),
+ MN_TOOLBAR_STYLE_TEXT
+ },
+ {
+ "ViewToolbarsStyleTextBelowIcons",
+ NULL,
+ N_("Text Belo_w Icons"),
+ NULL,
+ N_("Display the toolbars text below the icons"),
+ MN_TOOLBAR_STYLE_BOTH
+ },
+ {
+ "ViewToolbarsStyleTextBesideIcons",
+ NULL,
+ N_("Text Be_side Icons"),
+ NULL,
+ N_("Display the toolbars text beside the icons"),
+ MN_TOOLBAR_STYLE_BOTH_HORIZ
+ }
+ };
+
+ GError *err = NULL;
+ GtkAccelGroup *accel_group;
+
+ g_return_if_fail(selfp->ui_manager == NULL);
+
+ selfp->ui_manager = gtk_ui_manager_new();
+
+ g_object_connect(selfp->ui_manager,
+ "swapped-signal::connect-proxy", self_ui_manager_connect_proxy_h, self,
+ "swapped-signal::disconnect-proxy", self_ui_manager_disconnect_proxy_h, self,
+ NULL);
+
+ selfp->action_group = gtk_action_group_new("MainWindowActions");
+ gtk_action_group_set_translation_domain(selfp->action_group, NULL);
+
+ gtk_action_group_add_actions(selfp->action_group,
+ menu_entries,
+ G_N_ELEMENTS(menu_entries),
+ self);
+ gtk_action_group_add_toggle_actions(selfp->action_group,
+ toggle_entries,
+ G_N_ELEMENTS(toggle_entries),
+ self);
+ gtk_action_group_add_radio_actions(selfp->action_group,
+ toolbars_style_entries,
+ G_N_ELEMENTS(toolbars_style_entries),
+ -1,
+ G_CALLBACK(self_update_toolbars_style_changed_h),
+ self);
+ gtk_ui_manager_insert_action_group(selfp->ui_manager, selfp->action_group, 0);
+
+ g_object_set(G_OBJECT(GET_ACTION("MailMailReader")),
+ "is-important", TRUE,
+ NULL);
+
+ if (! gtk_ui_manager_add_ui_from_file(selfp->ui_manager, MN_INTERFACE_FILE("menus.xml"), &err))
+ {
+ g_critical(_("unable to load menus.xml: %s"), err->message);
+ g_error_free(err);
+ }
+
+ accel_group = gtk_ui_manager_get_accel_group(selfp->ui_manager);
+ gtk_window_add_accel_group(GTK_WINDOW(self), accel_group);
+
+ /*
+ * ~/.gnome2/accels/mail-notification is automatically loaded by
+ * the libgnomeui module, we just need to save it ourselves.
+ */
+ g_signal_connect(accel_group, "accel-changed", G_CALLBACK(gnome_accelerators_sync), NULL);
+ }
+
+ private void
+ create_toolbars_model (self, gboolean use_dot_file)
+ {
+ gboolean load_default_toolbars = TRUE;
+
+ if (selfp->toolbars_model)
+ g_object_unref(selfp->toolbars_model);
+
+ selfp->toolbars_model = egg_toolbars_model_new();
+
+ g_object_connect(selfp->toolbars_model,
+ "swapped-signal-after::item-added", self_toolbars_model_save_changes, self,
+ "swapped-signal-after::item-removed", self_toolbars_model_save_changes, self,
+ "swapped-signal-after::toolbar-added", self_toolbars_model_update_flags_and_save_changes, self,
+ "swapped-signal-after::toolbar-removed", self_toolbars_model_update_flags_and_save_changes, self,
+ NULL);
+
+ if (use_dot_file)
+ {
+ char *filename;
+
+ filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+ load_default_toolbars = ! egg_toolbars_model_load(selfp->toolbars_model, filename);
+ g_free(filename);
+ }
+
+ if (load_default_toolbars)
+ {
+ if (! egg_toolbars_model_load(selfp->toolbars_model, MN_INTERFACE_FILE("toolbars.xml")))
+ g_critical(_("unable to load toolbars.xml"));
+ }
+
+ if (egg_toolbars_model_n_toolbars(selfp->toolbars_model) < 1)
+ egg_toolbars_model_add_toolbar(selfp->toolbars_model, 0, "DefaultToolbar");
+
+ if (selfp->toolbar)
+ egg_editable_toolbar_set_model(EGG_EDITABLE_TOOLBAR(selfp->toolbar), selfp->toolbars_model);
+ }
+
+ private void
+ update_toolbars_visibility (self)
+ {
+ g_object_set(G_OBJECT(selfp->toolbar), "visible", gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars"))), NULL);
+ }
+
+ private void
+ update_statusbar_visibility (self)
+ {
+ g_object_set(G_OBJECT(selfp->statusbar), "visible", ! FULLSCREEN && gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar"))), NULL);
+ }
+
+ private void
+ notify_mail_reader_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+ self_update_sensitivity(self);
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ update_messages (self)
+ {
+ GSList *messages;
+ int count;
+
+ messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
+ count = g_slist_length(messages);
+
+ mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+ mn_g_object_slist_free(messages);
+
+ if (count > 0)
+ {
+ char *status;
+
+ status = g_strdup_printf(ngettext("%i new message", "%i new messages", count), count);
+ STATUS_PUSH(selfp->count_cid, status);
+ g_free(status);
+ }
+ else
+ STATUS_POP(selfp->count_cid);
+ }
+
+ private void
+ update_sensitivity (self)
+ {
+ gtk_action_set_sensitive(GET_ACTION("MailMailReader"), mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE));
+ gtk_action_set_sensitive(GET_ACTION("MailUpdate"), mn_mailboxes_get_must_poll(mn_shell->mailboxes));
+ }
+
+ private void
+ ui_manager_connect_proxy_h (self,
+ GtkAction *action,
+ GtkWidget *proxy,
+ GtkUIManager *manager)
+ {
+ if (GTK_IS_MENU_ITEM(proxy))
+ g_object_connect(proxy,
+ "swapped-signal::select", self_menu_item_select_h, self,
+ "swapped-signal::deselect", self_menu_item_deselect_h, self,
+ NULL);
+ }
+
+ private void
+ ui_manager_disconnect_proxy_h (self,
+ GtkAction *action,
+ GtkWidget *proxy,
+ GtkUIManager *manager)
+ {
+ if (GTK_IS_MENU_ITEM(proxy))
+ g_object_disconnect(proxy,
+ "any-signal", self_menu_item_select_h, self,
+ "any-signal", self_menu_item_deselect_h, self,
+ NULL);
+ }
+
+ private void
+ menu_item_select_h (self, GtkMenuItem *item)
+ {
+ GtkAction *action;
+ char *tooltip = NULL;
+
+ action = g_object_get_data(G_OBJECT(item), "gtk-action");
+ g_return_if_fail(action != NULL);
+
+ g_object_get(G_OBJECT(action), "tooltip", &tooltip, NULL);
+ if (tooltip)
+ {
+ STATUS_PUSH(selfp->help_cid, tooltip);
+ g_free(tooltip);
+ }
+ }
+
+ private void
+ menu_item_deselect_h (self, GtkMenuItem *item)
+ {
+ STATUS_POP(selfp->help_cid);
+ }
+
+ private gboolean
+ window_state_event_h (self, GdkEventWindowState *event, gpointer user_data)
+ {
+ if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
+ {
+ if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
+ self_fullscreen(self);
+ else
+ self_unfullscreen(self);
+ }
+
+ return FALSE; /* propagate event */
+ }
+
+ private void
+ update_toolbars_style_changed_h (GtkRadioAction *action,
+ GtkRadioAction *current,
+ Self *self)
+ {
+ self_update_toolbars_style(self);
+ }
+
+ private void
+ update_toolbars_style (self)
+ {
+ MNToolbarStyle style;
+ EggTbModelFlags flag;
+ int n_toolbars;
+ int i;
+
+ style = gtk_radio_action_get_current_value(GTK_RADIO_ACTION(GET_ACTION("ViewToolbarsStyleDesktopDefault")));
+ if (style == MN_TOOLBAR_STYLE_DESKTOP_DEFAULT)
+ g_object_get(gtk_widget_get_settings(selfp->toolbar), "gtk-toolbar-style", &style, NULL);
+
+ if (FULLSCREEN && style == MN_TOOLBAR_STYLE_BOTH)
+ style = MN_TOOLBAR_STYLE_ICONS;
+
+ switch (style)
+ {
+ case MN_TOOLBAR_STYLE_ICONS: flag = EGG_TB_MODEL_ICONS; break;
+ case MN_TOOLBAR_STYLE_TEXT: flag = EGG_TB_MODEL_TEXT; break;
+ case MN_TOOLBAR_STYLE_BOTH: flag = EGG_TB_MODEL_BOTH; break;
+ case MN_TOOLBAR_STYLE_BOTH_HORIZ: flag = EGG_TB_MODEL_BOTH_HORIZ; break;
+ default: g_assert_not_reached();
+ }
+
+ n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
+
+ for (i = 0; i < n_toolbars; i++)
+ {
+ EggTbModelFlags flags;
+
+ flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+ flags &= ~ (EGG_TB_MODEL_ICONS
+ | EGG_TB_MODEL_TEXT
+ | EGG_TB_MODEL_BOTH
+ | EGG_TB_MODEL_BOTH_HORIZ);
+ flags |= flag;
+ egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+ }
+ }
+
+ private void
+ toolbars_model_save_changes (self)
+ {
+ if (! selfp->toolbars_model_save_idle_id)
+ selfp->toolbars_model_save_idle_id = g_idle_add((GSourceFunc) self_toolbars_model_save_changes_cb, self);
+ }
+
+ private gboolean
+ toolbars_model_save_changes_cb (self)
+ {
+ char *filename;
+
+ GDK_THREADS_ENTER();
+
+ filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+ egg_toolbars_model_save(selfp->toolbars_model, filename, "1.0");
+ g_free(filename);
+
+ GDK_THREADS_LEAVE();
+
+ selfp->toolbars_model_save_idle_id = 0;
+ return FALSE; /* remove */
+ }
+
+ private void
+ toolbars_model_update_flags_and_save_changes (self)
+ {
+ int i;
+ int n_toolbars;
+ EggTbModelFlags flag = EGG_TB_MODEL_ACCEPT_ITEMS_ONLY;
+
+ n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
+
+ if (n_toolbars <= 1)
+ flag |= EGG_TB_MODEL_NOT_REMOVABLE;
+
+ for (i = 0; i < n_toolbars; i++)
+ {
+ EggTbModelFlags flags;
+
+ flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+ flags &= ~EGG_TB_MODEL_NOT_REMOVABLE;
+ flags |= flag;
+ egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+ }
+
+ self_toolbars_model_save_changes(self);
+ }
+
+ private void
+ mail_reader_activate_h (GtkAction *action, Self *self)
+ {
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ }
+
+ private void
+ update_activate_h (GtkAction *action, Self *self)
+ {
+ mn_mailboxes_check(mn_shell->mailboxes);
+ }
+
+ private void
+ close_activate_h (GtkAction *action, Self *self)
+ {
+ gtk_widget_destroy(GTK_WIDGET(self));
+ }
+
+ private void
+ quit_activate_h (GtkAction *action, Self *self)
+ {
+ g_object_unref(mn_shell);
+ }
+
+ private void
+ edit_toolbars_activate_h (GtkAction *action, Self *self)
+ {
+ if (selfp->edit_toolbars_dialog)
+ {
+ gtk_window_present(GTK_WINDOW(selfp->edit_toolbars_dialog));
+ return;
+ }
+
+ mn_create_interface(MN_INTERFACE_FILE("edit-toolbars-dialog.glade"),
+ "dialog", &selfp->edit_toolbars_dialog,
+ NULL);
+
+ eel_add_weak_pointer(&selfp->edit_toolbars_dialog);
+ g_object_weak_ref(G_OBJECT(selfp->edit_toolbars_dialog), (GWeakNotify) self_edit_toolbars_weak_notify_cb, self);
+
+ gtk_window_set_transient_for(GTK_WINDOW(selfp->edit_toolbars_dialog), GTK_WINDOW(self));
+
+ self_edit_toolbars_create_editor(self);
+ egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), TRUE);
+
+ mn_conf_link(selfp->edit_toolbars_dialog, MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG, NULL);
+
+ g_signal_connect_swapped(selfp->edit_toolbars_dialog, "response", G_CALLBACK(self_edit_toolbars_response_h), self);
+
+ gtk_widget_show(selfp->edit_toolbars_dialog);
+ }
+
+ private void
+ edit_toolbars_response_h (self, int response, GtkDialog *dialog)
+ {
+ switch (response)
+ {
+ case GTK_RESPONSE_HELP:
+ mn_display_help(GTK_WINDOW(dialog), "main-window-edit-toolbars");
+ break;
+
+ case 1: /* use default */
+ /* recreate the model, discarding the dot file */
+ self_create_toolbars_model(self, FALSE);
+ /* and recreate the editor, since the model has changed */
+ self_edit_toolbars_create_editor(self);
+ break;
+
+ case 2: /* add toolbar */
+ egg_toolbars_model_add_toolbar(selfp->toolbars_model, -1, "UserCreated");
+ break;
+
+ case GTK_RESPONSE_CLOSE:
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+ break;
+ }
+ }
+
+ private void
+ edit_toolbars_create_editor (self)
+ {
+ g_return_if_fail(selfp->edit_toolbars_dialog != NULL);
+
+ if (selfp->edit_toolbars_editor)
+ gtk_widget_destroy(selfp->edit_toolbars_editor);
+
+ selfp->edit_toolbars_editor = egg_toolbar_editor_new(selfp->ui_manager, selfp->toolbars_model);
+ eel_add_weak_pointer(&selfp->edit_toolbars_editor);
+
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->edit_toolbars_editor), 5);
+ gtk_box_set_spacing(GTK_BOX(selfp->edit_toolbars_editor), 6);
+
+ egg_toolbar_editor_load_actions(EGG_TOOLBAR_EDITOR(selfp->edit_toolbars_editor), MN_INTERFACE_FILE("toolbars.xml"));
+
+ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(selfp->edit_toolbars_dialog)->vbox), selfp->edit_toolbars_editor);
+ gtk_widget_show(selfp->edit_toolbars_editor);
+ }
+
+ private void
+ edit_toolbars_weak_notify_cb (self, GObject *former_object)
+ {
+ egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), FALSE);
+ }
+
+ private void
+ preferences_activate_h (GtkAction *action, Self *self)
+ {
+ mn_shell_display_properties_dialog(mn_shell, GTK_WINDOW(self));
+ }
+
+ private void
+ help_contents_activate_h (GtkAction *action, Self *self)
+ {
+ mn_display_help(GTK_WINDOW(self), "main-window");
+ }
+
+ private void
+ about_activate_h (GtkAction *action, Self *self)
+ {
+ mn_shell_display_about_dialog(mn_shell, GTK_WINDOW(self));
+ }
+
+ private void
+ fullscreen (self)
+ {
+ GtkWidget *button;
+
+ selfp->leave_fullscreen_popup = gtk_window_new(GTK_WINDOW_POPUP);
+ eel_add_weak_pointer(&selfp->leave_fullscreen_popup);
+
+ button = gtk_button_new_from_stock(MN_STOCK_LEAVE_FULLSCREEN);
+ gtk_container_add(GTK_CONTAINER(selfp->leave_fullscreen_popup), button);
+ gtk_widget_show(button);
+
+ g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_window_unfullscreen), self);
+
+ gtk_widget_hide(selfp->menubar);
+ self_update_toolbars_style(self);
+ self_update_statusbar_visibility(self);
+
+ selfp->leave_fullscreen_popup_visible = TRUE;
+ self_update_leave_fullscreen_popup_position(self);
+ gtk_widget_show(selfp->leave_fullscreen_popup);
+
+ g_signal_connect_swapped(gdk_screen_get_default(),
+ "size-changed",
+ G_CALLBACK(self_update_leave_fullscreen_popup_position),
+ self);
+ g_signal_connect(self,
+ "key-press-event",
+ G_CALLBACK(self_fullscreen_key_press_event_h),
+ NULL);
+
+ g_object_connect(selfp->leave_fullscreen_popup,
+ "swapped-signal::enter-notify-event", self_leave_fullscreen_enter_notify_event_h, self,
+ "swapped-signal::leave-notify-event", self_leave_fullscreen_leave_notify_event_h, self,
+ NULL);
+
+ selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+ }
+
+ private void
+ unfullscreen (self)
+ {
+ g_signal_handlers_disconnect_by_func(gdk_screen_get_default(), self_update_leave_fullscreen_popup_position, self);
+
+ mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+ gtk_widget_destroy(selfp->leave_fullscreen_popup);
+
+ g_signal_handlers_disconnect_by_func(self, self_fullscreen_key_press_event_h, NULL);
+
+ gtk_widget_show(selfp->menubar);
+ self_update_toolbars_style(self);
+ self_update_statusbar_visibility(self);
+ }
+
+ private gboolean
+ leave_fullscreen_timeout_cb (self)
+ {
+ selfp->leave_fullscreen_popup_visible = FALSE;
+
+ GDK_THREADS_ENTER();
+ self_update_leave_fullscreen_popup_position(self);
+ GDK_THREADS_LEAVE();
+
+ selfp->leave_fullscreen_timeout_id = 0;
+ return FALSE; /* remove timeout */
+ }
+
+ private gboolean
+ leave_fullscreen_enter_notify_event_h (self,
+ GdkEventCrossing *event,
+ GtkWidget *widget)
+ {
+ mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+ selfp->leave_fullscreen_popup_visible = TRUE;
+ self_update_leave_fullscreen_popup_position(self);
+
+ return FALSE; /* propagate event */
+ }
+
+ private gboolean
+ leave_fullscreen_leave_notify_event_h (self,
+ GdkEventCrossing *event,
+ GtkWidget *widget)
+ {
+ mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+ selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+
+ return FALSE; /* propagate event */
+ }
+
+ private void
+ update_leave_fullscreen_popup_position (self)
+ {
+ GdkScreen *screen;
+ int monitor_num;
+ GdkRectangle screen_rect;
+ int popup_width;
+ int popup_height;
+ int y;
+
+ g_return_if_fail(selfp->leave_fullscreen_popup != NULL);
+
+ screen = gdk_screen_get_default();
+ monitor_num = gdk_screen_get_monitor_at_window(screen, GTK_WIDGET(self)->window);
+ gdk_screen_get_monitor_geometry(screen, monitor_num, &screen_rect);
+ gtk_window_get_size(GTK_WINDOW(selfp->leave_fullscreen_popup), &popup_width, &popup_height);
+
+ y = screen_rect.y;
+ if (! selfp->leave_fullscreen_popup_visible)
+ y -= popup_height - 2;
+
+ gtk_window_move(GTK_WINDOW(selfp->leave_fullscreen_popup), screen_rect.width - popup_width, y);
+ }
+
+ private gboolean
+ fullscreen_key_press_event_h (self, GdkEventKey *event, gpointer user_data)
+ {
+ unsigned int modifiers = gtk_accelerator_get_default_mod_mask();
+
+ if (event->keyval == GDK_Escape && (event->state & modifiers) == 0)
+ {
+ gtk_window_unfullscreen(GTK_WINDOW(self));
+ return TRUE; /* do not propagate event */
+ }
+ else if (event->keyval == GDK_F10 && (event->state & modifiers) == 0)
+ {
+ g_signal_connect_swapped(selfp->menubar, "deactivate", G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+
+ gtk_widget_show(selfp->menubar);
+ gtk_menu_shell_select_first(GTK_MENU_SHELL(selfp->menubar), FALSE);
+
+ return TRUE; /* do not propagate event */
+ }
+ else
+ return FALSE; /* propagate event */
+ }
+
+ private void
+ fullscreen_menubar_deactivate_h (self, GtkMenuShell *menushell)
+ {
+ g_signal_handlers_disconnect_by_func(selfp->menubar, G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+ gtk_menu_shell_deselect(menushell);
+ gtk_widget_hide(selfp->menubar);
+ }
+}
diff --git a/src/mn-main-window.h b/src/mn-main-window.h
@@ -1,29 +1,62 @@
-/*
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
-#ifndef _MN_MAIN_WINDOW_H
-#define _MN_MAIN_WINDOW_H
#include <gtk/gtk.h>
-void mn_main_window_display (void);
-gboolean mn_main_window_is_displayed (void);
+#ifndef __MN_MAIN_WINDOW_H__
+#define __MN_MAIN_WINDOW_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MAIN_WINDOW (mn_main_window_get_type())
+#define MN_MAIN_WINDOW(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_main_window_get_type(), MNMainWindow)
+#define MN_MAIN_WINDOW_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_main_window_get_type(), MNMainWindow const)
+#define MN_MAIN_WINDOW_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_main_window_get_type(), MNMainWindowClass)
+#define MN_IS_MAIN_WINDOW(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_main_window_get_type ())
+
+#define MN_MAIN_WINDOW_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_main_window_get_type(), MNMainWindowClass)
+
+/* Private structure type */
+typedef struct _MNMainWindowPrivate MNMainWindowPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAIN_WINDOW__
+#define __TYPEDEF_MN_MAIN_WINDOW__
+typedef struct _MNMainWindow MNMainWindow;
+#endif
+struct _MNMainWindow {
+ GtkWindow __parent__;
+ /*< private >*/
+ MNMainWindowPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMainWindowClass MNMainWindowClass;
+struct _MNMainWindowClass {
+ GtkWindowClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_main_window_get_type (void);
-void mn_main_window_add_transient (GtkWindow *window);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
-#endif /* _MN_MAIN_WINDOW_H */
+#endif
diff --git a/src/mn-main.c b/src/mn-main.c
@@ -21,20 +21,22 @@
#include <signal.h>
#include <gnome.h>
#include <libgnomevfs/gnome-vfs.h>
-#ifdef WITH_GMAIL
-#include <libsoup/soup.h>
-#endif
#ifdef WITH_MIME
#include <gmime/gmime.h>
#include "mn-gmime-stream-vfs.h"
#endif
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-vfs-mailbox.h"
+#endif
+#ifdef WITH_EVOLUTION
+#include "mn-corba-object.h"
+#endif
#include "mn-conf.h"
#include "mn-util.h"
#include "mn-stock.h"
#include "mn-automation.h"
#include "mn-shell.h"
-#include "mn-pending-mailbox.h"
-#include "mn-unsupported-mailbox.h"
+#include "mn-message.h"
/*** cpp *********************************************************************/
@@ -74,47 +76,65 @@ mn_main_automation_factory_cb (BonoboGenericFactory *factory,
static void
mn_main_list_features (void)
{
- GString *backends;
- GString *features;
- int i;
-
-#define ADD_FEATURE(string, feature) \
- { \
- if (*(string)->str) \
- g_string_append((string), ", "); \
- g_string_append((string), (feature)); \
+ gboolean first;
+
+#define PRINT_COMPONENT(feature) \
+ { \
+ if (first) \
+ first = FALSE; \
+ else \
+ g_print(", "); \
+ \
+ g_print("%s", (feature)); \
}
- backends = g_string_new(NULL);
+ /*
+ * Here and everywhere else, we order the backends by descending
+ * order of (believed) popularity.
+ */
- for (i = 0; mn_mailbox_types[i]; i++)
- {
- MNMailboxClass *class;
-
- class = g_type_class_ref(mn_mailbox_types[i]);
- ADD_FEATURE(backends, class->format);
- g_type_class_unref(class);
- }
-
- g_print(_("Compiled-in mailbox backends: %s\n"), backends->str);
- g_string_free(backends, TRUE);
-
- features = g_string_new(NULL);
+ first = TRUE; g_print(_("Compiled-in mailbox backends: "));
+#ifdef WITH_MBOX
+ PRINT_COMPONENT("mbox");
+#endif
+#ifdef WITH_MH
+ PRINT_COMPONENT("MH");
+#endif
+#ifdef WITH_MAILDIR
+ PRINT_COMPONENT("Maildir");
+#endif
+#ifdef WITH_POP3
+ PRINT_COMPONENT("POP3");
+#endif
+#ifdef WITH_IMAP
+ PRINT_COMPONENT("IMAP");
+#endif
+#ifdef WITH_GMAIL
+ PRINT_COMPONENT("Gmail");
+#endif
+#ifdef WITH_EVOLUTION
+ PRINT_COMPONENT("Evolution");
+#endif
+#ifdef WITH_SYLPHEED
+ PRINT_COMPONENT("Sylpheed");
+#endif
+ g_print("\n");
+
+#if defined(WITH_POP3) || defined(WITH_IMAP)
+ first = TRUE; g_print(_("Compiled-in POP3 and IMAP features: "));
#ifdef WITH_SSL
- ADD_FEATURE(features, "SSL/TLS");
+ PRINT_COMPONENT("SSL/TLS");
#endif
#ifdef WITH_SASL
- ADD_FEATURE(features, "SASL");
+ PRINT_COMPONENT("SASL");
#endif
#ifdef WITH_IPV6
- ADD_FEATURE(features, "IPv6");
-#endif
-#ifdef WITH_GMAIL_TIMESTAMPS
- ADD_FEATURE(features, _("Gmail timestamps"));
+ PRINT_COMPONENT("IPv6");
#endif
+ g_print("\n");
+#endif /* WITH_POP3 || WITH_IMAP */
- g_print(_("Compiled-in features: %s\n"), features->str);
- g_string_free(features, TRUE);
+#undef PRINT_COMPONENT
}
static void
@@ -139,19 +159,18 @@ mn_main_init_classes (void)
g_type_class_ref(GMIME_TYPE_STREAM_MEM);
g_type_class_ref(GMIME_TYPE_MESSAGE);
#endif /* WITH_MIME */
- g_type_class_ref(MN_TYPE_MAILBOX);
for (i = 0; mn_mailbox_types[i]; i++)
g_type_class_ref(mn_mailbox_types[i]);
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ for (i = 0; mn_vfs_mailbox_backend_types[i]; i++)
+ g_type_class_ref(mn_vfs_mailbox_backend_types[i]);
+#endif
+#ifdef WITH_EVOLUTION
+ g_type_class_ref(MN_TYPE_CORBA_OBJECT);
+#endif
g_type_class_ref(MN_TYPE_MAILBOXES);
g_type_class_ref(MN_TYPE_MESSAGE);
- g_type_class_ref(MN_TYPE_PENDING_MAILBOX);
g_type_class_ref(MN_TYPE_SHELL);
- g_type_class_ref(MN_TYPE_UNSUPPORTED_MAILBOX);
- g_type_class_ref(MN_TYPE_URI);
-#ifdef WITH_GMAIL
- g_type_class_ref(SOUP_TYPE_SESSION_SYNC);
- g_type_class_ref(SOUP_TYPE_MESSAGE);
-#endif /* WITH_GMAIL */
}
int
@@ -163,7 +182,6 @@ main (int argc, char **argv)
gboolean arg_display_about = FALSE;
gboolean arg_close_popup = FALSE;
gboolean arg_update = FALSE;
- gboolean arg_report = FALSE;
gboolean arg_unset_obsolete_configuration = FALSE;
gboolean arg_quit = FALSE;
const struct poptOption popt_options[] = {
@@ -231,15 +249,6 @@ main (int argc, char **argv)
NULL
},
{
- "report",
- 'r',
- POPT_ARG_NONE,
- &arg_report,
- 0,
- N_("Report the mail status"),
- NULL
- },
- {
"unset-obsolete-configuration",
'\0',
POPT_ARG_NONE,
@@ -262,8 +271,6 @@ main (int argc, char **argv)
GdkPixbuf *icon;
BonoboGenericFactory *automation_factory;
GClosure *automation_factory_closure;
- CORBA_Environment ev;
- GNOME_MNAutomation automation;
Bonobo_RegistrationResult result;
g_log_set_fatal_mask(G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL);
@@ -275,6 +282,8 @@ main (int argc, char **argv)
textdomain(GETTEXT_PACKAGE);
#endif
+ g_set_application_name(_("Mail Notification"));
+
g_thread_init(NULL);
if (! g_thread_supported())
/*
@@ -295,6 +304,9 @@ main (int argc, char **argv)
NULL);
mn_mailbox_init_types();
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+ mn_vfs_mailbox_init_types();
+#endif
if (arg_list_features)
{
@@ -327,104 +339,98 @@ main (int argc, char **argv)
automation_factory_closure = g_cclosure_new(G_CALLBACK(mn_main_automation_factory_cb), NULL, NULL);
bonobo_generic_factory_construct_noreg(automation_factory, AUTOMATION_FACTORY_IID, automation_factory_closure);
- CORBA_exception_init(&ev);
result = bonobo_activation_register_active_server(AUTOMATION_FACTORY_IID, BONOBO_OBJREF(automation_factory), NULL);
switch (result)
{
case Bonobo_ACTIVATION_REG_ALREADY_ACTIVE:
case Bonobo_ACTIVATION_REG_SUCCESS:
- automation = bonobo_activation_activate_from_id(AUTOMATION_IID, 0, NULL, &ev);
- if (CORBA_Object_is_nil(automation, &ev))
- mn_fatal_error_dialog(NULL, _("Bonobo could not locate the automation object. Please check your Mail Notification installation."));
-
- if (arg_quit)
- {
- if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
- {
- g_message(_("quitting Mail Notification"));
- GNOME_MNAutomation_quit(automation, &ev);
- }
- else
- g_message(_("Mail Notification is not running"));
- }
- else
- {
- if (result != Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
- {
- if (! gnome_vfs_init())
- mn_fatal_error_dialog(NULL, _("Unable to initialize the GnomeVFS library."));
+ {
+ CORBA_Environment env;
+ GNOME_MailNotification_Automation automation;
+
+ CORBA_exception_init(&env);
+
+ automation = bonobo_activation_activate_from_id(AUTOMATION_IID, 0, NULL, &env);
+ if (automation == CORBA_OBJECT_NIL)
+ mn_fatal_error_dialog(NULL, _("Bonobo could not locate the automation object. Please check your Mail Notification installation."));
+
+ if (arg_quit)
+ {
+ if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
+ {
+ g_message(_("quitting Mail Notification"));
+ GNOME_MailNotification_Automation_quit(automation, &env);
+ }
+ else
+ g_message(_("Mail Notification is not running"));
+ }
+ else
+ {
+ if (result != Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
+ {
+ if (! gnome_vfs_init())
+ mn_fatal_error_dialog(NULL, _("Unable to initialize the GnomeVFS library."));
+
+ gnome_authentication_manager_init();
+
#ifdef WITH_MIME
- g_mime_init(0);
+ g_mime_init(0);
#endif
- mn_conf_init();
- /*
- * Work around
- * http://bugzilla.gnome.org/show_bug.cgi?id=64764:
- * initialize our non GTK-based classes before any
- * thread is created.
- */
- mn_main_init_classes();
- mn_shell_new();
-
- if (! eel_gconf_get_boolean(MN_CONF_ALREADY_RUN))
- {
- if (! arg_display_properties)
- mn_shell_display_welcome_dialog(mn_shell);
- eel_gconf_set_boolean(MN_CONF_ALREADY_RUN, TRUE);
- }
- }
+ mn_conf_init();
+ /*
+ * Work around
+ * http://bugzilla.gnome.org/show_bug.cgi?id=64764:
+ * initialize our non GTK-based classes before any
+ * thread is created.
+ */
+ mn_main_init_classes();
+ mn_shell_new();
+ }
- if (arg_display_main_window)
- GNOME_MNAutomation_displayMainWindow(automation, &ev);
- if (arg_display_properties)
- GNOME_MNAutomation_displayProperties(automation, &ev);
- if (arg_display_about)
- GNOME_MNAutomation_displayAbout(automation, &ev);
- if (arg_close_popup)
- GNOME_MNAutomation_closePopup(automation, &ev);
-
- if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
- {
- if (arg_update)
- {
- g_message(_("updating the mail status"));
- GNOME_MNAutomation_update(automation, &ev);
- }
- if (arg_report)
- {
- CORBA_char *report;
-
- GNOME_MNAutomation_report(automation, &report, &ev);
- g_print("%s", report);
- CORBA_free(report);
- }
-
- if (! (arg_display_main_window
- || arg_display_properties
- || arg_display_about
- || arg_close_popup
- || arg_update
- || arg_report))
- g_message(_("Mail Notification is already running"));
- }
- }
+ if (arg_display_main_window)
+ GNOME_MailNotification_Automation_displayMainWindow(automation, &env);
+ if (arg_display_properties)
+ GNOME_MailNotification_Automation_displayProperties(automation, &env);
+ if (arg_display_about)
+ GNOME_MailNotification_Automation_displayAbout(automation, &env);
+ if (arg_close_popup)
+ GNOME_MailNotification_Automation_closePopup(automation, &env);
+
+ if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
+ {
+ if (arg_update)
+ {
+ g_message(_("updating the mail status"));
+ GNOME_MailNotification_Automation_update(automation, &env);
+ }
+
+ if (! (arg_display_main_window
+ || arg_display_properties
+ || arg_display_about
+ || arg_close_popup
+ || arg_update))
+ g_message(_("Mail Notification is already running"));
+ }
+ }
- bonobo_object_release_unref(automation, &ev);
+ bonobo_object_release_unref(automation, &env);
+ CORBA_exception_free(&env);
+ }
break;
case Bonobo_ACTIVATION_REG_NOT_LISTED:
- mn_fatal_error_dialog(NULL, _("Bonobo could not locate the GNOME_MailNotification_Automation.server file. Please check your Mail Notification installation."));
+ mn_fatal_error_dialog(NULL, _("Bonobo could not locate the %s file. Please check your Mail Notification installation."), "GNOME_MailNotification.server");
break;
case Bonobo_ACTIVATION_REG_ERROR:
- mn_fatal_error_dialog(NULL, _("Bonobo was unable to register the automation server. Please check your Mail Notification installation."));
+ mn_fatal_error_dialog(NULL, _("Bonobo was unable to register the %s server. Please check your Mail Notification installation."), AUTOMATION_FACTORY_IID);
break;
default:
g_return_val_if_reached(1);
}
- CORBA_exception_free(&ev);
+
gdk_notify_startup_complete();
if (result != Bonobo_ACTIVATION_REG_ALREADY_ACTIVE && ! arg_quit)
diff --git a/src/mn-mbox-mailbox-backend-private.h b/src/mn-mbox-mailbox-backend-private.h
@@ -0,0 +1,26 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_MBOX_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_MBOX_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-mbox-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNmboxMailboxBackendPrivate {
+#line 39 "mn-mbox-mailbox-backend.gob"
+ GnomeVFSFileSize last_size;
+#line 40 "mn-mbox-mailbox-backend.gob"
+ time_t last_mtime;
+#line 41 "mn-mbox-mailbox-backend.gob"
+ time_t last_ctime;
+#line 20 "mn-mbox-mailbox-backend-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mbox-mailbox-backend.c b/src/mn-mbox-mailbox-backend.c
@@ -0,0 +1,346 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:55 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mbox-mailbox-backend.h"
+
+#include "mn-mbox-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+/* self casting macros */
+#define SELF(x) MN_MBOX_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_MBOX_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_MBOX_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_MBOX_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_MBOX_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MBOX_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNmboxMailboxBackend Self;
+typedef MNmboxMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_mbox_mailbox_backend_init (MNmboxMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_mbox_mailbox_backend_class_init (MNmboxMailboxBackendClass * class) G_GNUC_UNUSED;
+static gboolean ___2_mn_mbox_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___3_mn_mbox_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+GType
+mn_mbox_mailbox_backend_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNmboxMailboxBackendClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_mbox_mailbox_backend_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNmboxMailboxBackend),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_mbox_mailbox_backend_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNmboxMailboxBackend", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNmboxMailboxBackend *)g_object_new(mn_mbox_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNmboxMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNmboxMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNmboxMailboxBackend *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNmboxMailboxBackend *)g_object_new_valist (mn_mbox_mailbox_backend_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::finalize"
+ MNmboxMailboxBackend *self G_GNUC_UNUSED = MN_MBOX_MAILBOX_BACKEND (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_mbox_mailbox_backend_init (MNmboxMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_MBOX_MAILBOX_BACKEND,MNmboxMailboxBackendPrivate);
+}
+#undef __GOB_FUNCTION__
+#line 43 "mn-mbox-mailbox-backend.gob"
+static void
+mn_mbox_mailbox_backend_class_init (MNmboxMailboxBackendClass * class G_GNUC_UNUSED)
+#line 112 "mn-mbox-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+ g_type_class_add_private(class,sizeof(MNmboxMailboxBackendPrivate));
+
+ parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 48 "mn-mbox-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->is = ___2_mn_mbox_mailbox_backend_is;
+#line 82 "mn-mbox-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->check = ___3_mn_mbox_mailbox_backend_check;
+#line 126 "mn-mbox-mailbox-backend.c"
+ g_object_class->finalize = ___finalize;
+ {
+#line 44 "mn-mbox-mailbox-backend.gob"
+
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "mbox";
+
+#line 133 "mn-mbox-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 48 "mn-mbox-mailbox-backend.gob"
+static gboolean
+___2_mn_mbox_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 143 "mn-mbox-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+ ((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+ ((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::is"
+{
+#line 50 "mn-mbox-mailbox-backend.gob"
+
+ gboolean is = FALSE;
+ GnomeVFSFileInfo *file_info;
+
+ file_info = gnome_vfs_file_info_new();
+ if (gnome_vfs_get_file_info_uri(mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
+ && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) != 0
+ && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
+ {
+ GnomeVFSHandle *handle;
+
+ if (gnome_vfs_open_uri(&handle, mailbox->vfs_uri, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
+ {
+ char buf[5];
+ GnomeVFSResult result;
+ GnomeVFSFileSize bytes_read;
+
+ result = gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read);
+ if ((result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
+ && (bytes_read == 0
+ || (bytes_read == sizeof(buf)
+ && ! strncmp(buf, "From ", sizeof(buf)))))
+ is = TRUE;
+
+ gnome_vfs_close(handle);
+ }
+ }
+ gnome_vfs_file_info_unref(file_info);
+
+ return is;
+ }}
+#line 183 "mn-mbox-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 82 "mn-mbox-mailbox-backend.gob"
+static void
+___3_mn_mbox_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 190 "mn-mbox-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+ { if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::check"
+{
+#line 84 "mn-mbox-mailbox-backend.gob"
+
+ Self *self = SELF(backend);
+ gboolean aborted;
+ gboolean must_poll;
+ GnomeVFSResult result;
+ GnomeVFSHandle *handle;
+
+ mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_FILE);
+
+ GDK_THREADS_ENTER();
+
+ if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ aborted = TRUE;
+ else
+ {
+ aborted = FALSE;
+ must_poll = MN_MAILBOX(backend->mailbox)->must_poll;
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ if (aborted)
+ return;
+
+ if (must_poll)
+ {
+ GnomeVFSFileInfo *file_info;
+ GnomeVFSResult result;
+ gboolean check;
+
+ /*
+ * We are here because the mailbox has to be polled; only
+ * check it if necessary.
+ */
+
+ file_info = gnome_vfs_file_info_new();
+ result = gnome_vfs_get_file_info_uri(backend->mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+
+ mn_vfs_mailbox_backend_lock(backend);
+
+ if (result == GNOME_VFS_OK
+ && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) != 0
+ && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MTIME) != 0
+ && file_info->size == selfp->last_size
+ && file_info->mtime == selfp->last_mtime)
+ {
+ if ((file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_CTIME) != 0)
+ check = file_info->ctime != selfp->last_ctime;
+ else
+ /*
+ * The ctime is often missing for remote mailboxes;
+ * since anyway the size and mtime do not have changed,
+ * we do not check the mailbox.
+ */
+ check = FALSE;
+ }
+ else
+ check = TRUE;
+
+ if (check)
+ {
+ selfp->last_size = file_info->size;
+ selfp->last_mtime = file_info->mtime;
+ selfp->last_ctime = file_info->ctime;
+
+ if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ check = FALSE;
+ }
+
+ mn_vfs_mailbox_backend_unlock(backend);
+
+ gnome_vfs_file_info_unref(file_info);
+
+ if (! check)
+ return;
+ }
+
+ result = gnome_vfs_open_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_OPEN_READ);
+ if (result == GNOME_VFS_OK)
+ {
+ GMimeStream *stream;
+
+ stream = mn_gmime_stream_vfs_new(handle, backend->mailbox->vfs_uri, &result);
+ if (stream)
+ {
+ GMimeParser *parser;
+ GSList *messages = NULL;
+ GnomeVFSResult close_result;
+
+ parser = g_mime_parser_new_with_stream(stream);
+ g_object_unref(stream);
+
+ g_mime_parser_set_scan_from(parser, TRUE);
+
+ while (! g_mime_parser_eos(parser))
+ {
+ GMimeMessage *mime_message;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ break;
+
+ mime_message = g_mime_parser_construct_message(parser);
+ if (mime_message)
+ {
+ const char *status;
+
+ status = g_mime_message_get_header(mime_message, "Status");
+ if (! (status && strpbrk(status, "OR")))
+ messages = g_slist_append(messages, mn_message_new_from_mime_message(MN_MAILBOX(backend->mailbox), mime_message));
+
+ g_object_unref(mime_message);
+ }
+ }
+
+ g_object_unref(parser);
+ close_result = gnome_vfs_close(handle);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close file: %s"), gnome_vfs_result_to_string(close_result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return;
+ }
+ else
+ gnome_vfs_close(handle);
+ }
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }}
+#line 345 "mn-mbox-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-mbox-mailbox-backend.gob b/src/mn-mbox-mailbox-backend.gob
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%h{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-message-mime.h"
+#include "mn-gmime-stream-vfs.h"
+#include "mn-util.h"
+%}
+
+class MN:mbox:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+ private GnomeVFSFileSize last_size;
+ private time_t last_mtime;
+ private time_t last_ctime;
+
+ class_init (class)
+ {
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "mbox";
+ }
+
+ override (MN:VFS:Mailbox:Backend) gboolean
+ is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+ {
+ gboolean is = FALSE;
+ GnomeVFSFileInfo *file_info;
+
+ file_info = gnome_vfs_file_info_new();
+ if (gnome_vfs_get_file_info_uri(mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
+ && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) != 0
+ && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
+ {
+ GnomeVFSHandle *handle;
+
+ if (gnome_vfs_open_uri(&handle, mailbox->vfs_uri, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
+ {
+ char buf[5];
+ GnomeVFSResult result;
+ GnomeVFSFileSize bytes_read;
+
+ result = gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read);
+ if ((result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
+ && (bytes_read == 0
+ || (bytes_read == sizeof(buf)
+ && ! strncmp(buf, "From ", sizeof(buf)))))
+ is = TRUE;
+
+ gnome_vfs_close(handle);
+ }
+ }
+ gnome_vfs_file_info_unref(file_info);
+
+ return is;
+ }
+
+ override (MN:VFS:Mailbox:Backend) void
+ check (MNVFSMailboxBackend *backend, unsigned long check_id)
+ {
+ Self *self = SELF(backend);
+ gboolean aborted;
+ gboolean must_poll;
+ GnomeVFSResult result;
+ GnomeVFSHandle *handle;
+
+ mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_FILE);
+
+ GDK_THREADS_ENTER();
+
+ if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ aborted = TRUE;
+ else
+ {
+ aborted = FALSE;
+ must_poll = MN_MAILBOX(backend->mailbox)->must_poll;
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ if (aborted)
+ return;
+
+ if (must_poll)
+ {
+ GnomeVFSFileInfo *file_info;
+ GnomeVFSResult result;
+ gboolean check;
+
+ /*
+ * We are here because the mailbox has to be polled; only
+ * check it if necessary.
+ */
+
+ file_info = gnome_vfs_file_info_new();
+ result = gnome_vfs_get_file_info_uri(backend->mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+
+ mn_vfs_mailbox_backend_lock(backend);
+
+ if (result == GNOME_VFS_OK
+ && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) != 0
+ && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MTIME) != 0
+ && file_info->size == selfp->last_size
+ && file_info->mtime == selfp->last_mtime)
+ {
+ if ((file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_CTIME) != 0)
+ check = file_info->ctime != selfp->last_ctime;
+ else
+ /*
+ * The ctime is often missing for remote mailboxes;
+ * since anyway the size and mtime do not have changed,
+ * we do not check the mailbox.
+ */
+ check = FALSE;
+ }
+ else
+ check = TRUE;
+
+ if (check)
+ {
+ selfp->last_size = file_info->size;
+ selfp->last_mtime = file_info->mtime;
+ selfp->last_ctime = file_info->ctime;
+
+ if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ check = FALSE;
+ }
+
+ mn_vfs_mailbox_backend_unlock(backend);
+
+ gnome_vfs_file_info_unref(file_info);
+
+ if (! check)
+ return;
+ }
+
+ result = gnome_vfs_open_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_OPEN_READ);
+ if (result == GNOME_VFS_OK)
+ {
+ GMimeStream *stream;
+
+ stream = mn_gmime_stream_vfs_new(handle, backend->mailbox->vfs_uri, &result);
+ if (stream)
+ {
+ GMimeParser *parser;
+ GSList *messages = NULL;
+ GnomeVFSResult close_result;
+
+ parser = g_mime_parser_new_with_stream(stream);
+ g_object_unref(stream);
+
+ g_mime_parser_set_scan_from(parser, TRUE);
+
+ while (! g_mime_parser_eos(parser))
+ {
+ GMimeMessage *mime_message;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ break;
+
+ mime_message = g_mime_parser_construct_message(parser);
+ if (mime_message)
+ {
+ const char *status;
+
+ status = g_mime_message_get_header(mime_message, "Status");
+ if (! (status && strpbrk(status, "OR")))
+ messages = g_slist_append(messages, mn_message_new_from_mime_message(MN_MAILBOX(backend->mailbox), mime_message));
+
+ g_object_unref(mime_message);
+ }
+ }
+
+ g_object_unref(parser);
+ close_result = gnome_vfs_close(handle);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close file: %s"), gnome_vfs_result_to_string(close_result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return;
+ }
+ else
+ gnome_vfs_close(handle);
+ }
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+}
diff --git a/src/mn-mbox-mailbox-backend.h b/src/mn-mbox-mailbox-backend.h
@@ -0,0 +1,74 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_MBOX_MAILBOX_BACKEND_H__
+#define __MN_MBOX_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-message-mime.h"
+#include "mn-gmime-stream-vfs.h"
+#include "mn-util.h"
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MBOX_MAILBOX_BACKEND (mn_mbox_mailbox_backend_get_type())
+#define MN_MBOX_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackend)
+#define MN_MBOX_MAILBOX_BACKEND_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackend const)
+#define MN_MBOX_MAILBOX_BACKEND_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackendClass)
+#define MN_IS_MBOX_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mbox_mailbox_backend_get_type ())
+
+#define MN_MBOX_MAILBOX_BACKEND_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackendClass)
+
+/* Private structure type */
+typedef struct _MNmboxMailboxBackendPrivate MNmboxMailboxBackendPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MBOX_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_MBOX_MAILBOX_BACKEND__
+typedef struct _MNmboxMailboxBackend MNmboxMailboxBackend;
+#endif
+struct _MNmboxMailboxBackend {
+ MNVFSMailboxBackend __parent__;
+ /*< private >*/
+ MNmboxMailboxBackendPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNmboxMailboxBackendClass MNmboxMailboxBackendClass;
+struct _MNmboxMailboxBackendClass {
+ MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_mbox_mailbox_backend_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mbox-mailbox-private.h b/src/mn-mbox-mailbox-private.h
@@ -1,28 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_MBOX_MAILBOX_PRIVATE_H__
-#define __MN_MBOX_MAILBOX_PRIVATE_H__
-
-#include "mn-mbox-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#line 24 "mn-mbox-mailbox.gob"
-
-#include <libgnomevfs/gnome-vfs.h>
-
-#line 18 "mn-mbox-mailbox-private.h"
-struct _MNmboxMailboxPrivate {
-#line 41 "mn-mbox-mailbox.gob"
- time_t last_mtime;
-#line 22 "mn-mbox-mailbox-private.h"
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-mbox-mailbox.c b/src/mn-mbox-mailbox.c
@@ -1,348 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:26 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include "mn-mbox-mailbox.h"
-
-#include "mn-mbox-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 27 "mn-mbox-mailbox.gob"
-
-#include "config.h"
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-message-mime.h"
-#include "mn-gmime-stream-vfs.h"
-#include "mn-util.h"
-
-#line 37 "mn-mbox-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_MBOX_MAILBOX(x)
-#define SELF_CONST(x) MN_MBOX_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_MBOX_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_MBOX_MAILBOX
-#define SELF_CLASS(x) MN_MBOX_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_MBOX_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNmboxMailbox Self;
-typedef MNmboxMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_mbox_mailbox_init (MNmboxMailbox * o) G_GNUC_UNUSED;
-static void mn_mbox_mailbox_class_init (MNmboxMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_mbox_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_mbox_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-GType
-mn_mbox_mailbox_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNmboxMailboxClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_mbox_mailbox_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNmboxMailbox),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_mbox_mailbox_init,
- NULL
- };
-
- type = g_type_register_static (MN_TYPE_MAILBOX, "MNmboxMailbox", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNmboxMailbox *)g_object_new(mn_mbox_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNmboxMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNmboxMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
- MNmboxMailbox *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNmboxMailbox *)g_object_new_valist (mn_mbox_mailbox_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::finalize"
- MNmboxMailbox *self G_GNUC_UNUSED = MN_MBOX_MAILBOX (obj_self);
- gpointer priv G_GNUC_UNUSED = self->_priv;
- if(G_OBJECT_CLASS(parent_class)->finalize) \
- (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-}
-#undef __GOB_FUNCTION__
-
-static void
-mn_mbox_mailbox_init (MNmboxMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNmboxMailboxPrivate);
-}
-#undef __GOB_FUNCTION__
-#line 43 "mn-mbox-mailbox.gob"
-static void
-mn_mbox_mailbox_class_init (MNmboxMailboxClass * class G_GNUC_UNUSED)
-#line 125 "mn-mbox-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
- MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
- g_type_class_add_private(class,sizeof(MNmboxMailboxPrivate));
-
- parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 48 "mn-mbox-mailbox.gob"
- g_object_class->constructor = ___2_mn_mbox_mailbox_constructor;
-#line 72 "mn-mbox-mailbox.gob"
- mn_mailbox_class->impl_is = ___3_mn_mbox_mailbox_impl_is;
-#line 113 "mn-mbox-mailbox.gob"
- mn_mailbox_class->impl_check = ___4_mn_mbox_mailbox_impl_check;
-#line 141 "mn-mbox-mailbox.c"
- g_object_class->finalize = ___finalize;
- {
-#line 44 "mn-mbox-mailbox.gob"
-
- MN_MAILBOX_CLASS(class)->format = "mbox";
-
-#line 148 "mn-mbox-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 48 "mn-mbox-mailbox.gob"
-static GObject *
-___2_mn_mbox_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 158 "mn-mbox-mailbox.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::constructor"
-{
-#line 50 "mn-mbox-mailbox.gob"
-
- GObject *object;
- MNMailbox *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- self->uri->text,
- GNOME_VFS_MONITOR_FILE,
- MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return object;
- }}
-#line 188 "mn-mbox-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 72 "mn-mbox-mailbox.gob"
-static gboolean
-___3_mn_mbox_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 195 "mn-mbox-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
- ((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
- (* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
- ((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::impl_is"
-#line 72 "mn-mbox-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 72 "mn-mbox-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 206 "mn-mbox-mailbox.c"
-{
-#line 74 "mn-mbox-mailbox.gob"
-
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- GnomeVFSFileInfo *file_info;
-
- file_info = gnome_vfs_file_info_new();
- if (gnome_vfs_get_file_info_uri(uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
- && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE
- && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE
- && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
- {
- if (file_info->size == 0) /* can be an empty mbox */
- is = TRUE;
- else
- {
- GnomeVFSHandle *handle;
-
- if (gnome_vfs_open_uri(&handle, uri->vfs, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
- {
- char buf[5];
- GnomeVFSFileSize bytes_read;
-
- if (gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read) == GNOME_VFS_OK
- && bytes_read == sizeof(buf)
- && ! strncmp(buf, "From ", sizeof(buf)))
- is = TRUE;
-
- gnome_vfs_close(handle);
- }
- }
- }
- gnome_vfs_file_info_unref(file_info);
- }
-
- return is;
- }}
-#line 247 "mn-mbox-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 113 "mn-mbox-mailbox.gob"
-static void
-___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 254 "mn-mbox-mailbox.c"
-#define PARENT_HANDLER(___mailbox) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::impl_check"
-#line 113 "mn-mbox-mailbox.gob"
- g_return_if_fail (mailbox != NULL);
-#line 113 "mn-mbox-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 264 "mn-mbox-mailbox.c"
-{
-#line 115 "mn-mbox-mailbox.gob"
-
- Self *self = SELF(mailbox);
- gboolean check = TRUE;
-
- if (mn_mailbox_get_must_poll(mailbox))
- {
- GnomeVFSFileInfo *file_info;
-
- /* we're polling, so check only if the mailbox has changed since our last check */
-
- file_info = gnome_vfs_file_info_new();
- if (gnome_vfs_get_file_info_uri(mailbox->uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK)
- {
- if (file_info->mtime == selfp->last_mtime)
- check = FALSE;
- else
- selfp->last_mtime = file_info->mtime;
- }
- gnome_vfs_file_info_unref(file_info);
- }
-
- if (check)
- {
- GnomeVFSResult result;
- GnomeVFSHandle *handle;
-
- result = gnome_vfs_open_uri(&handle, mailbox->uri->vfs, GNOME_VFS_OPEN_READ);
- if (result == GNOME_VFS_OK)
- {
- GMimeStream *stream;
- GMimeParser *parser;
- GSList *messages = NULL;
-
- stream = mn_gmime_stream_vfs_new(handle, mailbox->uri->text);
- parser = g_mime_parser_new_with_stream(stream);
- g_object_unref(stream);
-
- g_mime_parser_set_scan_from(parser, TRUE);
-
- while (! g_mime_parser_eos(parser))
- {
- GMimeMessage *mime_message;
-
- mime_message = g_mime_parser_construct_message(parser);
- if (mime_message)
- {
- const char *status;
-
- status = g_mime_message_get_header(mime_message, "Status");
- if (! (status && (strchr(status, 'O') || strchr(status, 'R'))))
- messages = g_slist_append(messages, mn_message_new_from_mime_message(mailbox->uri, mime_message));
-
- g_object_unref(mime_message);
- }
- }
-
- g_object_unref(parser);
- gnome_vfs_close(handle);
-
- GDK_THREADS_ENTER();
- mn_mailbox_set_messages(mailbox, messages);
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
- }
- else
- {
- GDK_THREADS_ENTER();
- mn_mailbox_set_error(mailbox, _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
- gdk_flush();
- GDK_THREADS_LEAVE();
- }
- }
-
- GDK_THREADS_ENTER();
- mn_mailbox_end_check(mailbox);
- gdk_flush();
- GDK_THREADS_LEAVE();
- }}
-#line 347 "mn-mbox-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
diff --git a/src/mn-mbox-mailbox.gob b/src/mn-mbox-mailbox.gob
@@ -1,195 +0,0 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%privateheader{
-#include <libgnomevfs/gnome-vfs.h>
-%}
-%{
-#include "config.h"
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-message-mime.h"
-#include "mn-gmime-stream-vfs.h"
-#include "mn-util.h"
-%}
-
-class MN:mbox:Mailbox from MN:Mailbox
-{
- private time_t last_mtime;
-
- class_init (class)
- {
- MN_MAILBOX_CLASS(class)->format = "mbox";
- }
-
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
- {
- GObject *object;
- MNMailbox *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- self->uri->text,
- GNOME_VFS_MONITOR_FILE,
- MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return object;
- }
-
- override (MN:Mailbox) gboolean
- impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
- {
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- GnomeVFSFileInfo *file_info;
-
- file_info = gnome_vfs_file_info_new();
- if (gnome_vfs_get_file_info_uri(uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
- && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE
- && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE
- && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
- {
- if (file_info->size == 0) /* can be an empty mbox */
- is = TRUE;
- else
- {
- GnomeVFSHandle *handle;
-
- if (gnome_vfs_open_uri(&handle, uri->vfs, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
- {
- char buf[5];
- GnomeVFSFileSize bytes_read;
-
- if (gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read) == GNOME_VFS_OK
- && bytes_read == sizeof(buf)
- && ! strncmp(buf, "From ", sizeof(buf)))
- is = TRUE;
-
- gnome_vfs_close(handle);
- }
- }
- }
- gnome_vfs_file_info_unref(file_info);
- }
-
- return is;
- }
-
- override (MN:Mailbox) void
- impl_check (MN:Mailbox *mailbox (check null type))
- {
- Self *self = SELF(mailbox);
- gboolean check = TRUE;
-
- if (mn_mailbox_get_must_poll(mailbox))
- {
- GnomeVFSFileInfo *file_info;
-
- /* we're polling, so check only if the mailbox has changed since our last check */
-
- file_info = gnome_vfs_file_info_new();
- if (gnome_vfs_get_file_info_uri(mailbox->uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK)
- {
- if (file_info->mtime == selfp->last_mtime)
- check = FALSE;
- else
- selfp->last_mtime = file_info->mtime;
- }
- gnome_vfs_file_info_unref(file_info);
- }
-
- if (check)
- {
- GnomeVFSResult result;
- GnomeVFSHandle *handle;
-
- result = gnome_vfs_open_uri(&handle, mailbox->uri->vfs, GNOME_VFS_OPEN_READ);
- if (result == GNOME_VFS_OK)
- {
- GMimeStream *stream;
- GMimeParser *parser;
- GSList *messages = NULL;
-
- stream = mn_gmime_stream_vfs_new(handle, mailbox->uri->text);
- parser = g_mime_parser_new_with_stream(stream);
- g_object_unref(stream);
-
- g_mime_parser_set_scan_from(parser, TRUE);
-
- while (! g_mime_parser_eos(parser))
- {
- GMimeMessage *mime_message;
-
- mime_message = g_mime_parser_construct_message(parser);
- if (mime_message)
- {
- const char *status;
-
- status = g_mime_message_get_header(mime_message, "Status");
- if (! (status && (strchr(status, 'O') || strchr(status, 'R'))))
- messages = g_slist_append(messages, mn_message_new_from_mime_message(mailbox->uri, mime_message));
-
- g_object_unref(mime_message);
- }
- }
-
- g_object_unref(parser);
- gnome_vfs_close(handle);
-
- GDK_THREADS_ENTER();
- mn_mailbox_set_messages(mailbox, messages);
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
- }
- else
- {
- GDK_THREADS_ENTER();
- mn_mailbox_set_error(mailbox, _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
- gdk_flush();
- GDK_THREADS_LEAVE();
- }
- }
-
- GDK_THREADS_ENTER();
- mn_mailbox_end_check(mailbox);
- gdk_flush();
- GDK_THREADS_LEAVE();
- }
-}
diff --git a/src/mn-mbox-mailbox.h b/src/mn-mbox-mailbox.h
@@ -1,62 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_MBOX_MAILBOX_H__
-#define __MN_MBOX_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_MBOX_MAILBOX (mn_mbox_mailbox_get_type())
-#define MN_MBOX_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_get_type(), MNmboxMailbox)
-#define MN_MBOX_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_get_type(), MNmboxMailbox const)
-#define MN_MBOX_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_mbox_mailbox_get_type(), MNmboxMailboxClass)
-#define MN_IS_MBOX_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mbox_mailbox_get_type ())
-
-#define MN_MBOX_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mbox_mailbox_get_type(), MNmboxMailboxClass)
-
-/* Private structure type */
-typedef struct _MNmboxMailboxPrivate MNmboxMailboxPrivate;
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_MBOX_MAILBOX__
-#define __TYPEDEF_MN_MBOX_MAILBOX__
-typedef struct _MNmboxMailbox MNmboxMailbox;
-#endif
-struct _MNmboxMailbox {
- MNMailbox __parent__;
- /*< private >*/
- MNmboxMailboxPrivate *_priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNmboxMailboxClass MNmboxMailboxClass;
-struct _MNmboxMailboxClass {
- MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_mbox_mailbox_get_type (void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-message-mime.c b/src/mn-message-mime.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -51,7 +51,7 @@ mn_message_mime_header_decode_text (const char *str)
}
MNMessage *
-mn_message_new_from_mime_message (MNURI *mailbox_uri,
+mn_message_new_from_mime_message (MNMailbox *mailbox,
GMimeMessage *mime_message)
{
MNMessage *message;
@@ -62,7 +62,7 @@ mn_message_new_from_mime_message (MNURI *mailbox_uri,
char *decoded_from;
char *decoded_subject;
- g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), NULL);
message_id = g_mime_message_get_message_id(mime_message);
@@ -73,7 +73,7 @@ mn_message_new_from_mime_message (MNURI *mailbox_uri,
decoded_from = from ? mn_message_mime_header_decode_text(from) : NULL;
decoded_subject = subject ? mn_message_mime_header_decode_text(subject) : NULL;
- message = mn_message_new(mailbox_uri, NULL, sent_time, message_id, decoded_from, decoded_subject);
+ message = mn_message_new(mailbox, NULL, sent_time, message_id, decoded_from, decoded_subject);
g_free(decoded_from);
g_free(decoded_subject);
@@ -82,14 +82,13 @@ mn_message_new_from_mime_message (MNURI *mailbox_uri,
}
MNMessage *
-mn_message_new_from_mime_stream (MNURI *mailbox_uri,
- GMimeStream *mime_stream)
+mn_message_new_from_mime_stream (MNMailbox *mailbox, GMimeStream *mime_stream)
{
GMimeParser *parser;
GMimeMessage *mime_message;
MNMessage *message;
- g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
g_return_val_if_fail(GMIME_IS_STREAM(mime_stream), NULL);
parser = g_mime_parser_new_with_stream(mime_stream);
@@ -98,60 +97,63 @@ mn_message_new_from_mime_stream (MNURI *mailbox_uri,
if (mime_message)
{
- message = mn_message_new_from_mime_message(mailbox_uri, mime_message);
+ message = mn_message_new_from_mime_message(mailbox, mime_message);
g_object_unref(mime_message);
}
else
- message = mn_message_new_from_error(mailbox_uri, _("unable to parse MIME message"));
+ message = mn_message_new_from_error(mailbox, _("unable to parse MIME message"));
return message;
}
MNMessage *
-mn_message_new_from_uri (MNURI *mailbox_uri,
- GnomeVFSURI *uri)
+mn_message_new_from_uri (MNMailbox *mailbox, GnomeVFSURI *uri)
{
GnomeVFSResult result;
GnomeVFSHandle *handle;
- MNMessage *message;
- g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
g_return_val_if_fail(uri != NULL, NULL);
result = gnome_vfs_open_uri(&handle, uri, GNOME_VFS_OPEN_READ | GNOME_VFS_OPEN_RANDOM);
if (result == GNOME_VFS_OK)
{
GMimeStream *stream;
- char *text_uri;
-
- text_uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
- stream = mn_gmime_stream_vfs_new(handle, text_uri);
- g_free(text_uri);
- message = mn_message_new_from_mime_stream(mailbox_uri, stream);
- g_object_unref(stream);
-
- gnome_vfs_close(handle);
+ stream = mn_gmime_stream_vfs_new(handle, uri, &result);
+ if (stream)
+ {
+ MNMessage *message;
+
+ message = mn_message_new_from_mime_stream(mailbox, stream);
+ g_object_unref(stream);
+
+ result = gnome_vfs_close(handle);
+ if (result == GNOME_VFS_OK)
+ return message;
+ else
+ g_object_unref(message);
+ }
+ else
+ gnome_vfs_close(handle);
}
- else
- message = mn_message_new_from_error(mailbox_uri, gnome_vfs_result_to_string(result));
-
- return message;
+
+ return mn_message_new_from_error(mailbox, gnome_vfs_result_to_string(result));
}
MNMessage *
-mn_message_new_from_buffer (MNURI *mailbox_uri,
+mn_message_new_from_buffer (MNMailbox *mailbox,
const char *buffer,
unsigned int len)
{
GMimeStream *stream;
MNMessage *message;
- g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
g_return_val_if_fail(buffer != NULL, NULL);
stream = g_mime_stream_mem_new_with_buffer(buffer, len);
- message = mn_message_new_from_mime_stream(mailbox_uri, stream);
+ message = mn_message_new_from_mime_stream(mailbox, stream);
g_object_unref(stream);
return message;
diff --git a/src/mn-message-mime.h b/src/mn-message-mime.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -22,13 +22,13 @@
#include <gmime/gmime.h>
#include "mn-message.h"
-MNMessage *mn_message_new_from_mime_message (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_mime_message (MNMailbox *mailbox,
GMimeMessage *mime_message);
-MNMessage *mn_message_new_from_mime_stream (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_mime_stream (MNMailbox *mailbox,
GMimeStream *mime_stream);
-MNMessage *mn_message_new_from_uri (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_uri (MNMailbox *mailbox,
GnomeVFSURI *uri);
-MNMessage *mn_message_new_from_buffer (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_buffer (MNMailbox *mailbox,
const char *buffer,
unsigned int len);
diff --git a/src/mn-message-private.h b/src/mn-message-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_MESSAGE_PRIVATE_H__
#define __MN_MESSAGE_PRIVATE_H__
diff --git a/src/mn-message-view-private.h b/src/mn-message-view-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_MESSAGE_VIEW_PRIVATE_H__
#define __MN_MESSAGE_VIEW_PRIVATE_H__
@@ -10,19 +10,19 @@ extern "C" {
#endif /* __cplusplus */
struct _MNMessageViewPrivate {
-#line 43 "mn-message-view.gob"
- GtkTextBuffer * buffer;
#line 44 "mn-message-view.gob"
- GtkTextTag * header_tag;
+ GtkTextBuffer * buffer;
#line 45 "mn-message-view.gob"
- unsigned int update_tabs_idle_id;
+ GtkTextTag * header_tag;
#line 46 "mn-message-view.gob"
+ unsigned int update_tabs_idle_id;
+#line 47 "mn-message-view.gob"
unsigned int update_sent_timeout_id;
-#line 48 "mn-message-view.gob"
+#line 49 "mn-message-view.gob"
gboolean transparent;
-#line 51 "mn-message-view.gob"
+#line 52 "mn-message-view.gob"
gboolean text_pointer;
-#line 54 "mn-message-view.gob"
+#line 55 "mn-message-view.gob"
GSList * messages;
#line 28 "mn-message-view-private.h"
};
diff --git a/src/mn-message-view.c b/src/mn-message-view.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,7 +23,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-message-view.gob"
+#line 25 "mn-message-view.gob"
#include "config.h"
#include <glib/gi18n.h>
@@ -31,14 +31,14 @@
#include "mn-message.h"
#include "mn-util.h"
- typedef struct
- {
- MNMessage *message;
- GSList *header_marks;
- char *last_sent;
- GtkTextMark *sent_start;
- GtkTextMark *sent_end;
- } MessageInfo;
+typedef struct
+{
+ MNMessage *message;
+ GSList *header_marks;
+ char *last_sent;
+ GtkTextMark *sent_start;
+ GtkTextMark *sent_end;
+} MessageInfo;
#line 44 "mn-message-view.c"
/* self casting macros */
@@ -144,7 +144,7 @@ ___finalize(GObject *obj_self)
#define __GOB_FUNCTION__ "MN:Message:View::finalize"
MNMessageView *self G_GNUC_UNUSED = MN_MESSAGE_VIEW (obj_self);
gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 232 "mn-message-view.gob"
+#line 233 "mn-message-view.gob"
___8_mn_message_view_finalize(obj_self);
#line 150 "mn-message-view.c"
}
@@ -154,7 +154,7 @@ static void
mn_message_view_init (MNMessageView * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:Message:View::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNMessageViewPrivate);
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_MESSAGE_VIEW,MNMessageViewPrivate);
}
#undef __GOB_FUNCTION__
static void
@@ -167,9 +167,9 @@ mn_message_view_class_init (MNMessageViewClass * c G_GNUC_UNUSED)
parent_class = g_type_class_ref (GTK_TYPE_TEXT_VIEW);
-#line 94 "mn-message-view.gob"
+#line 95 "mn-message-view.gob"
g_object_class->constructor = ___2_mn_message_view_constructor;
-#line 232 "mn-message-view.gob"
+#line 233 "mn-message-view.gob"
g_object_class->finalize = ___finalize;
#line 175 "mn-message-view.c"
g_object_class->get_property = ___object_get_property;
@@ -221,21 +221,21 @@ ___object_set_property (GObject *object,
switch (property_id) {
case PROP_TRANSPARENT:
{
-#line 49 "mn-message-view.gob"
+#line 50 "mn-message-view.gob"
self->_priv->transparent = g_value_get_boolean (VAL);
#line 227 "mn-message-view.c"
}
break;
case PROP_TEXT_POINTER:
{
-#line 52 "mn-message-view.gob"
+#line 53 "mn-message-view.gob"
self->_priv->text_pointer = g_value_get_boolean (VAL);
#line 234 "mn-message-view.c"
}
break;
case PROP_MESSAGES:
{
-#line 57 "mn-message-view.gob"
+#line 58 "mn-message-view.gob"
GSList *messages;
MessageInfo *info;
@@ -270,7 +270,7 @@ self->_priv->text_pointer = g_value_get_boolean (VAL);
selfp->update_sent_timeout_id = g_timeout_add(500, self_update_sent_cb, self);
}
else
- mn_source_remove(&selfp->update_sent_timeout_id);
+ mn_source_clear(&selfp->update_sent_timeout_id);
#line 276 "mn-message-view.c"
}
@@ -301,14 +301,14 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_TRANSPARENT:
{
-#line 49 "mn-message-view.gob"
+#line 50 "mn-message-view.gob"
g_value_set_boolean (VAL, self->_priv->transparent);
#line 307 "mn-message-view.c"
}
break;
case PROP_TEXT_POINTER:
{
-#line 52 "mn-message-view.gob"
+#line 53 "mn-message-view.gob"
g_value_set_boolean (VAL, self->_priv->text_pointer);
#line 314 "mn-message-view.c"
}
@@ -327,20 +327,20 @@ g_value_set_boolean (VAL, self->_priv->text_pointer);
-#line 57 "mn-message-view.gob"
+#line 58 "mn-message-view.gob"
void
mn_message_view_set_messages (MNMessageView * self, gpointer val)
#line 334 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::set_messages"
{
-#line 55 "mn-message-view.gob"
+#line 56 "mn-message-view.gob"
g_object_set (G_OBJECT (self), "messages", val, NULL);
}}
#line 341 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 94 "mn-message-view.gob"
+#line 95 "mn-message-view.gob"
static GObject *
___2_mn_message_view_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
#line 347 "mn-message-view.c"
@@ -351,7 +351,7 @@ ___2_mn_message_view_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
{
#define __GOB_FUNCTION__ "MN:Message:View::constructor"
{
-#line 96 "mn-message-view.gob"
+#line 97 "mn-message-view.gob"
GObject *object;
Self *self;
@@ -380,19 +380,19 @@ ___2_mn_message_view_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 121 "mn-message-view.gob"
+#line 122 "mn-message-view.gob"
static void
mn_message_view_update_tabs (MNMessageView * self)
#line 387 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::update_tabs"
-#line 121 "mn-message-view.gob"
+#line 122 "mn-message-view.gob"
g_return_if_fail (self != NULL);
-#line 121 "mn-message-view.gob"
+#line 122 "mn-message-view.gob"
g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
#line 394 "mn-message-view.c"
{
-#line 123 "mn-message-view.gob"
+#line 124 "mn-message-view.gob"
GSList *l;
int longest_header_len = 0;
@@ -424,19 +424,14 @@ mn_message_view_update_tabs (MNMessageView * self)
#line 425 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 152 "mn-message-view.gob"
+#line 153 "mn-message-view.gob"
static void
mn_message_view_style_set_h (GtkWidget * widget, GtkStyle * previous_style, gpointer user_data)
#line 431 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::style_set_h"
-#line 152 "mn-message-view.gob"
- g_return_if_fail (widget != NULL);
-#line 152 "mn-message-view.gob"
- g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 438 "mn-message-view.c"
{
-#line 156 "mn-message-view.gob"
+#line 157 "mn-message-view.gob"
Self *self = SELF(widget);
@@ -445,20 +440,17 @@ mn_message_view_style_set_h (GtkWidget * widget, GtkStyle * previous_style, gpoi
selfp->update_tabs_idle_id = g_idle_add(self_update_tabs_cb, self);
}}
-#line 449 "mn-message-view.c"
+#line 444 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 165 "mn-message-view.gob"
+#line 166 "mn-message-view.gob"
static gboolean
mn_message_view_update_tabs_cb (gpointer data)
-#line 455 "mn-message-view.c"
+#line 450 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::update_tabs_cb"
-#line 165 "mn-message-view.gob"
- g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 460 "mn-message-view.c"
{
-#line 167 "mn-message-view.gob"
+#line 168 "mn-message-view.gob"
Self *self = data;
@@ -469,22 +461,17 @@ mn_message_view_update_tabs_cb (gpointer data)
return FALSE; /* remove */
}}
-#line 473 "mn-message-view.c"
+#line 465 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 178 "mn-message-view.gob"
+#line 179 "mn-message-view.gob"
static void
mn_message_view_realize_h (GtkWidget * widget, gpointer user_data)
-#line 479 "mn-message-view.c"
+#line 471 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::realize_h"
-#line 178 "mn-message-view.gob"
- g_return_if_fail (widget != NULL);
-#line 178 "mn-message-view.gob"
- g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 486 "mn-message-view.c"
{
-#line 180 "mn-message-view.gob"
+#line 181 "mn-message-view.gob"
Self *self = SELF(widget);
GtkStateType state;
@@ -515,20 +502,20 @@ mn_message_view_realize_h (GtkWidget * widget, gpointer user_data)
for (state = GTK_STATE_NORMAL; state <= GTK_STATE_INSENSITIVE; state++)
gtk_widget_modify_bg(widget, state, &widget->style->base[state]);
}}
-#line 519 "mn-message-view.c"
+#line 506 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 211 "mn-message-view.gob"
+#line 212 "mn-message-view.gob"
static void
mn_message_view_message_info_free (MessageInfo * info)
-#line 525 "mn-message-view.c"
+#line 512 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::message_info_free"
-#line 211 "mn-message-view.gob"
+#line 212 "mn-message-view.gob"
g_return_if_fail (info != NULL);
-#line 530 "mn-message-view.c"
+#line 517 "mn-message-view.c"
{
-#line 213 "mn-message-view.gob"
+#line 214 "mn-message-view.gob"
GSList *l;
@@ -547,25 +534,20 @@ mn_message_view_message_info_free (MessageInfo * info)
g_free(info->last_sent);
g_free(info);
}}
-#line 551 "mn-message-view.c"
+#line 538 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 232 "mn-message-view.gob"
+#line 233 "mn-message-view.gob"
static void
___8_mn_message_view_finalize (GObject * object G_GNUC_UNUSED)
-#line 557 "mn-message-view.c"
+#line 544 "mn-message-view.c"
#define PARENT_HANDLER(___object) \
{ if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Message:View::finalize"
-#line 232 "mn-message-view.gob"
- g_return_if_fail (object != NULL);
-#line 232 "mn-message-view.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 567 "mn-message-view.c"
{
-#line 234 "mn-message-view.gob"
+#line 235 "mn-message-view.gob"
Self *self = SELF(object);
@@ -579,21 +561,18 @@ ___8_mn_message_view_finalize (GObject * object G_GNUC_UNUSED)
PARENT_HANDLER(object);
}}
-#line 583 "mn-message-view.c"
+#line 565 "mn-message-view.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 248 "mn-message-view.gob"
+#line 249 "mn-message-view.gob"
static gboolean
mn_message_view_update_sent_cb (gpointer data)
-#line 590 "mn-message-view.c"
+#line 572 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::update_sent_cb"
-#line 248 "mn-message-view.gob"
- g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 595 "mn-message-view.c"
{
-#line 250 "mn-message-view.gob"
+#line 251 "mn-message-view.gob"
Self *self = data;
GSList *l;
@@ -635,22 +614,22 @@ mn_message_view_update_sent_cb (gpointer data)
return TRUE; /* continue */
}}
-#line 639 "mn-message-view.c"
+#line 618 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 292 "mn-message-view.gob"
+#line 293 "mn-message-view.gob"
static void
mn_message_view_clear (MNMessageView * self)
-#line 645 "mn-message-view.c"
+#line 624 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::clear"
-#line 292 "mn-message-view.gob"
+#line 293 "mn-message-view.gob"
g_return_if_fail (self != NULL);
-#line 292 "mn-message-view.gob"
+#line 293 "mn-message-view.gob"
g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
-#line 652 "mn-message-view.c"
+#line 631 "mn-message-view.c"
{
-#line 294 "mn-message-view.gob"
+#line 295 "mn-message-view.gob"
GtkTextIter start;
GtkTextIter end;
@@ -659,26 +638,26 @@ mn_message_view_clear (MNMessageView * self)
gtk_text_buffer_get_end_iter(selfp->buffer, &end);
gtk_text_buffer_delete(selfp->buffer, &start, &end);
}}
-#line 663 "mn-message-view.c"
+#line 642 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
static MessageInfo *
mn_message_view_append_message (MNMessageView * self, MNMessage * message)
-#line 669 "mn-message-view.c"
+#line 648 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::append_message"
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
g_return_val_if_fail (self != NULL, (MessageInfo * )0);
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
g_return_val_if_fail (MN_IS_MESSAGE_VIEW (self), (MessageInfo * )0);
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
g_return_val_if_fail (message != NULL, (MessageInfo * )0);
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
g_return_val_if_fail (MN_IS_MESSAGE (message), (MessageInfo * )0);
-#line 680 "mn-message-view.c"
+#line 659 "mn-message-view.c"
{
-#line 305 "mn-message-view.gob"
+#line 306 "mn-message-view.gob"
MessageInfo *info;
@@ -687,7 +666,7 @@ mn_message_view_append_message (MNMessageView * self, MNMessage * message)
self_append_row(self,
_("Mailbox"),
- message->mailbox_uri->human_readable,
+ message->mailbox_name,
&info->header_marks,
NULL,
NULL);
@@ -734,52 +713,52 @@ mn_message_view_append_message (MNMessageView * self, MNMessage * message)
return info;
}}
-#line 738 "mn-message-view.c"
+#line 717 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
static void
mn_message_view_append (MNMessageView * self, const char * text)
-#line 744 "mn-message-view.c"
+#line 723 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::append"
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
g_return_if_fail (self != NULL);
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
g_return_if_fail (text != NULL);
-#line 753 "mn-message-view.c"
+#line 732 "mn-message-view.c"
{
-#line 363 "mn-message-view.gob"
+#line 364 "mn-message-view.gob"
GtkTextIter end;
gtk_text_buffer_get_end_iter(selfp->buffer, &end);
gtk_text_buffer_insert(selfp->buffer, &end, text, -1);
}}
-#line 762 "mn-message-view.c"
+#line 741 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
static void
mn_message_view_append_row (MNMessageView * self, const char * name, const char * value, GSList ** header_marks, GtkTextMark ** value_start_mark, GtkTextMark ** value_end_mark)
-#line 768 "mn-message-view.c"
+#line 747 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::append_row"
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
g_return_if_fail (self != NULL);
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
g_return_if_fail (name != NULL);
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
g_return_if_fail (value != NULL);
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
g_return_if_fail (header_marks != NULL);
-#line 781 "mn-message-view.c"
+#line 760 "mn-message-view.c"
{
-#line 377 "mn-message-view.gob"
+#line 378 "mn-message-view.gob"
GtkTextIter end;
@@ -799,21 +778,21 @@ mn_message_view_append_row (MNMessageView * self, const char * name, const char
if (value_end_mark)
*value_end_mark = gtk_text_buffer_create_mark(selfp->buffer, NULL, &end, TRUE);
}}
-#line 803 "mn-message-view.c"
+#line 782 "mn-message-view.c"
#undef __GOB_FUNCTION__
-#line 397 "mn-message-view.gob"
+#line 398 "mn-message-view.gob"
GtkWidget *
mn_message_view_new (gboolean transparent, gboolean text_pointer)
-#line 809 "mn-message-view.c"
+#line 788 "mn-message-view.c"
{
#define __GOB_FUNCTION__ "MN:Message:View::new"
{
-#line 399 "mn-message-view.gob"
+#line 400 "mn-message-view.gob"
return GTK_WIDGET(GET_NEW_VARG(MN_MESSAGE_VIEW_PROP_TRANSPARENT(transparent),
MN_MESSAGE_VIEW_PROP_TEXT_POINTER(text_pointer),
NULL));
}}
-#line 819 "mn-message-view.c"
+#line 798 "mn-message-view.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-message-view.gob b/src/mn-message-view.gob
@@ -16,11 +16,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
@@ -28,14 +29,14 @@ requires 2.0.10
#include "mn-message.h"
#include "mn-util.h"
- typedef struct
- {
- MNMessage *message;
- GSList *header_marks;
- char *last_sent;
- GtkTextMark *sent_start;
- GtkTextMark *sent_end;
- } MessageInfo;
+typedef struct
+{
+ MNMessage *message;
+ GSList *header_marks;
+ char *last_sent;
+ GtkTextMark *sent_start;
+ GtkTextMark *sent_end;
+} MessageInfo;
%}
class MN:Message:View from Gtk:Text:View
@@ -88,7 +89,7 @@ class MN:Message:View from Gtk:Text:View
selfp->update_sent_timeout_id = g_timeout_add(500, self_update_sent_cb, self);
}
else
- mn_source_remove(&selfp->update_sent_timeout_id);
+ mn_source_clear(&selfp->update_sent_timeout_id);
};
override (G:Object) GObject *
@@ -150,7 +151,7 @@ class MN:Message:View from Gtk:Text:View
}
private void
- style_set_h (Gtk:Widget *widget (check null type),
+ style_set_h (GtkWidget *widget,
GtkStyle *previous_style,
gpointer user_data)
{
@@ -163,7 +164,7 @@ class MN:Message:View from Gtk:Text:View
}
private gboolean
- update_tabs_cb (gpointer data (check null))
+ update_tabs_cb (gpointer data)
{
Self *self = data;
@@ -176,7 +177,7 @@ class MN:Message:View from Gtk:Text:View
}
private void
- realize_h (Gtk:Widget *widget (check null type), gpointer user_data)
+ realize_h (GtkWidget *widget, gpointer user_data)
{
Self *self = SELF(widget);
GtkStateType state;
@@ -230,7 +231,7 @@ class MN:Message:View from Gtk:Text:View
}
override (G:Object) void
- finalize (G:Object *object (check null type))
+ finalize (GObject *object)
{
Self *self = SELF(object);
@@ -246,7 +247,7 @@ class MN:Message:View from Gtk:Text:View
}
private gboolean
- update_sent_cb (gpointer data (check null))
+ update_sent_cb (gpointer data)
{
Self *self = data;
GSList *l;
@@ -310,7 +311,7 @@ class MN:Message:View from Gtk:Text:View
self_append_row(self,
_("Mailbox"),
- message->mailbox_uri->human_readable,
+ message->mailbox_name,
&info->header_marks,
NULL,
NULL);
diff --git a/src/mn-message-view.h b/src/mn-message-view.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-message.c b/src/mn-message.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -54,7 +54,7 @@ static int mn_message_slist_sort_by_sent_time_compare_func (gconstpointer a, gco
enum {
PROP_0,
- PROP_MAILBOX_URI,
+ PROP_MAILBOX_NAME,
PROP_ERROR,
PROP_SENT_TIME,
PROP_ID,
@@ -117,38 +117,27 @@ GET_NEW_VARG (const char *first, ...)
static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Message::dispose"
- MNMessage *self G_GNUC_UNUSED = MN_MESSAGE (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 35 "mn-message.gob"
- if(self->mailbox_uri) { g_object_unref ((gpointer) self->mailbox_uri); self->mailbox_uri = NULL; }
-#line 129 "mn-message.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
___finalize(GObject *obj_self)
{
#define __GOB_FUNCTION__ "MN:Message::finalize"
MNMessage *self G_GNUC_UNUSED = MN_MESSAGE (obj_self);
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 41 "mn-message.gob"
+#line 35 "mn-message.gob"
+ if(self->mailbox_name) { g_free ((gpointer) self->mailbox_name); self->mailbox_name = NULL; }
+#line 129 "mn-message.c"
+#line 39 "mn-message.gob"
if(self->error) { g_free ((gpointer) self->error); self->error = NULL; }
-#line 143 "mn-message.c"
-#line 49 "mn-message.gob"
+#line 132 "mn-message.c"
+#line 47 "mn-message.gob"
if(self->id) { g_free ((gpointer) self->id); self->id = NULL; }
-#line 146 "mn-message.c"
-#line 53 "mn-message.gob"
+#line 135 "mn-message.c"
+#line 51 "mn-message.gob"
if(self->from) { g_free ((gpointer) self->from); self->from = NULL; }
-#line 149 "mn-message.c"
-#line 57 "mn-message.gob"
+#line 138 "mn-message.c"
+#line 55 "mn-message.gob"
if(self->subject) { g_free ((gpointer) self->subject); self->subject = NULL; }
-#line 152 "mn-message.c"
+#line 141 "mn-message.c"
}
#undef __GOB_FUNCTION__
@@ -166,24 +155,23 @@ mn_message_class_init (MNMessageClass * c G_GNUC_UNUSED)
parent_class = g_type_class_ref (G_TYPE_OBJECT);
-#line 60 "mn-message.gob"
+#line 58 "mn-message.gob"
g_object_class->constructor = ___1_mn_message_constructor;
-#line 172 "mn-message.c"
- g_object_class->dispose = ___dispose;
+#line 161 "mn-message.c"
g_object_class->finalize = ___finalize;
g_object_class->get_property = ___object_get_property;
g_object_class->set_property = ___object_set_property;
{
GParamSpec *param_spec;
- param_spec = g_param_spec_object
- ("mailbox_uri" /* name */,
+ param_spec = g_param_spec_string
+ ("mailbox_name" /* name */,
NULL /* nick */,
NULL /* blurb */,
- MN_TYPE_URI /* object_type */,
+ NULL /* default_value */,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (g_object_class,
- PROP_MAILBOX_URI,
+ PROP_MAILBOX_NAME,
param_spec);
param_spec = g_param_spec_string
("error" /* name */,
@@ -248,46 +236,46 @@ ___object_set_property (GObject *object,
self = MN_MESSAGE (object);
switch (property_id) {
- case PROP_MAILBOX_URI:
+ case PROP_MAILBOX_NAME:
{
#line 36 "mn-message.gob"
-{ GObject *___old = (GObject *)self->mailbox_uri; self->mailbox_uri = (MNURI *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 256 "mn-message.c"
+{ char *old = self->mailbox_name; self->mailbox_name = g_value_dup_string (VAL); g_free (old); }
+#line 244 "mn-message.c"
}
break;
case PROP_ERROR:
{
-#line 42 "mn-message.gob"
+#line 40 "mn-message.gob"
{ char *old = self->error; self->error = g_value_dup_string (VAL); g_free (old); }
-#line 263 "mn-message.c"
+#line 251 "mn-message.c"
}
break;
case PROP_SENT_TIME:
{
-#line 46 "mn-message.gob"
+#line 44 "mn-message.gob"
self->sent_time = g_value_get_ulong (VAL);
-#line 270 "mn-message.c"
+#line 258 "mn-message.c"
}
break;
case PROP_ID:
{
-#line 50 "mn-message.gob"
+#line 48 "mn-message.gob"
{ char *old = self->id; self->id = g_value_dup_string (VAL); g_free (old); }
-#line 277 "mn-message.c"
+#line 265 "mn-message.c"
}
break;
case PROP_FROM:
{
-#line 54 "mn-message.gob"
+#line 52 "mn-message.gob"
{ char *old = self->from; self->from = g_value_dup_string (VAL); g_free (old); }
-#line 284 "mn-message.c"
+#line 272 "mn-message.c"
}
break;
case PROP_SUBJECT:
{
-#line 58 "mn-message.gob"
+#line 56 "mn-message.gob"
{ char *old = self->subject; self->subject = g_value_dup_string (VAL); g_free (old); }
-#line 291 "mn-message.c"
+#line 279 "mn-message.c"
}
break;
default:
@@ -314,46 +302,46 @@ ___object_get_property (GObject *object,
self = MN_MESSAGE (object);
switch (property_id) {
- case PROP_MAILBOX_URI:
+ case PROP_MAILBOX_NAME:
{
#line 36 "mn-message.gob"
-g_value_set_object (VAL, (gpointer)self->mailbox_uri);
-#line 322 "mn-message.c"
+g_value_set_string (VAL, self->mailbox_name);
+#line 310 "mn-message.c"
}
break;
case PROP_ERROR:
{
-#line 42 "mn-message.gob"
+#line 40 "mn-message.gob"
g_value_set_string (VAL, self->error);
-#line 329 "mn-message.c"
+#line 317 "mn-message.c"
}
break;
case PROP_SENT_TIME:
{
-#line 46 "mn-message.gob"
+#line 44 "mn-message.gob"
g_value_set_ulong (VAL, self->sent_time);
-#line 336 "mn-message.c"
+#line 324 "mn-message.c"
}
break;
case PROP_ID:
{
-#line 50 "mn-message.gob"
+#line 48 "mn-message.gob"
g_value_set_string (VAL, self->id);
-#line 343 "mn-message.c"
+#line 331 "mn-message.c"
}
break;
case PROP_FROM:
{
-#line 54 "mn-message.gob"
+#line 52 "mn-message.gob"
g_value_set_string (VAL, self->from);
-#line 350 "mn-message.c"
+#line 338 "mn-message.c"
}
break;
case PROP_SUBJECT:
{
-#line 58 "mn-message.gob"
+#line 56 "mn-message.gob"
g_value_set_string (VAL, self->subject);
-#line 357 "mn-message.c"
+#line 345 "mn-message.c"
}
break;
default:
@@ -370,10 +358,10 @@ g_value_set_string (VAL, self->subject);
-#line 60 "mn-message.gob"
+#line 58 "mn-message.gob"
static GObject *
___1_mn_message_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 377 "mn-message.c"
+#line 365 "mn-message.c"
#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
((G_OBJECT_CLASS(parent_class)->constructor)? \
(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -381,7 +369,7 @@ ___1_mn_message_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_
{
#define __GOB_FUNCTION__ "MN:Message::constructor"
{
-#line 62 "mn-message.gob"
+#line 60 "mn-message.gob"
GObject *object;
Self *self;
@@ -427,23 +415,23 @@ ___1_mn_message_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_
return object;
}}
-#line 431 "mn-message.c"
+#line 419 "mn-message.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 108 "mn-message.gob"
+#line 106 "mn-message.gob"
char *
mn_message_format_sent_time (MNMessage * self)
-#line 438 "mn-message.c"
+#line 426 "mn-message.c"
{
#define __GOB_FUNCTION__ "MN:Message::format_sent_time"
-#line 108 "mn-message.gob"
+#line 106 "mn-message.gob"
g_return_val_if_fail (self != NULL, (char * )0);
-#line 108 "mn-message.gob"
+#line 106 "mn-message.gob"
g_return_val_if_fail (MN_IS_MESSAGE (self), (char * )0);
-#line 445 "mn-message.c"
+#line 433 "mn-message.c"
{
-#line 110 "mn-message.gob"
+#line 108 "mn-message.gob"
char *formatted = NULL;
@@ -487,24 +475,22 @@ mn_message_format_sent_time (MNMessage * self)
return formatted;
}}
-#line 491 "mn-message.c"
+#line 479 "mn-message.c"
#undef __GOB_FUNCTION__
-#line 154 "mn-message.gob"
+#line 152 "mn-message.gob"
MNMessage *
-mn_message_new (MNURI * mailbox_uri, const char * error, time_t sent_time, const char * id, const char * from, const char * subject)
-#line 497 "mn-message.c"
+mn_message_new (MNMailbox * mailbox, const char * error, time_t sent_time, const char * id, const char * from, const char * subject)
+#line 485 "mn-message.c"
{
#define __GOB_FUNCTION__ "MN:Message::new"
-#line 154 "mn-message.gob"
- g_return_val_if_fail (mailbox_uri != NULL, (MNMessage * )0);
-#line 154 "mn-message.gob"
- g_return_val_if_fail (MN_IS_URI (mailbox_uri), (MNMessage * )0);
-#line 504 "mn-message.c"
{
-#line 161 "mn-message.gob"
+#line 159 "mn-message.gob"
- return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_URI(G_OBJECT(mailbox_uri)),
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+ /* translators: "none" is used like "Mailbox: none" */
+ return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_NAME(mailbox ? mailbox->runtime_name : _("none")),
MN_MESSAGE_PROP_ERROR((char *) error),
MN_MESSAGE_PROP_SENT_TIME(sent_time),
MN_MESSAGE_PROP_ID((char *) id),
@@ -512,93 +498,91 @@ mn_message_new (MNURI * mailbox_uri, const char * error, time_t sent_time, const
MN_MESSAGE_PROP_SUBJECT((char *) subject),
NULL);
}}
-#line 516 "mn-message.c"
+#line 502 "mn-message.c"
#undef __GOB_FUNCTION__
-#line 171 "mn-message.gob"
+#line 172 "mn-message.gob"
MNMessage *
-mn_message_new_from_error (MNURI * mailbox_uri, const char * error)
-#line 522 "mn-message.c"
+mn_message_new_from_error (MNMailbox * mailbox, const char * error)
+#line 508 "mn-message.c"
{
#define __GOB_FUNCTION__ "MN:Message::new_from_error"
-#line 171 "mn-message.gob"
- g_return_val_if_fail (mailbox_uri != NULL, (MNMessage * )0);
-#line 171 "mn-message.gob"
- g_return_val_if_fail (MN_IS_URI (mailbox_uri), (MNMessage * )0);
-#line 171 "mn-message.gob"
+#line 172 "mn-message.gob"
g_return_val_if_fail (error != NULL, (MNMessage * )0);
-#line 531 "mn-message.c"
+#line 513 "mn-message.c"
{
#line 174 "mn-message.gob"
- return self_new(mailbox_uri, error, 0, NULL, NULL, NULL);
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+ return self_new(mailbox, error, 0, NULL, NULL, NULL);
}}
-#line 537 "mn-message.c"
+#line 521 "mn-message.c"
#undef __GOB_FUNCTION__
-#line 178 "mn-message.gob"
+#line 180 "mn-message.gob"
GSList *
mn_message_slist_find_by_id (GSList * list, MNMessage * self)
-#line 543 "mn-message.c"
+#line 527 "mn-message.c"
{
#define __GOB_FUNCTION__ "MN:Message::slist_find_by_id"
-#line 178 "mn-message.gob"
+#line 180 "mn-message.gob"
g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 178 "mn-message.gob"
+#line 180 "mn-message.gob"
g_return_val_if_fail (MN_IS_MESSAGE (self), (GSList * )0);
-#line 550 "mn-message.c"
+#line 534 "mn-message.c"
{
-#line 180 "mn-message.gob"
+#line 182 "mn-message.gob"
return g_slist_find_custom(list, self, self_slist_find_by_id_compare_func);
}}
-#line 556 "mn-message.c"
+#line 540 "mn-message.c"
#undef __GOB_FUNCTION__
-#line 184 "mn-message.gob"
+#line 186 "mn-message.gob"
static int
mn_message_slist_find_by_id_compare_func (gconstpointer a, gconstpointer b)
-#line 562 "mn-message.c"
+#line 546 "mn-message.c"
{
#define __GOB_FUNCTION__ "MN:Message::slist_find_by_id_compare_func"
{
-#line 186 "mn-message.gob"
+#line 188 "mn-message.gob"
Self *message_a = (Self *) a;
Self *message_b = (Self *) b;
return strcmp(message_a->id, message_b->id);
}}
-#line 573 "mn-message.c"
+#line 557 "mn-message.c"
#undef __GOB_FUNCTION__
-#line 193 "mn-message.gob"
+#line 195 "mn-message.gob"
GSList *
mn_message_slist_sort_by_sent_time (GSList * list)
-#line 579 "mn-message.c"
+#line 563 "mn-message.c"
{
#define __GOB_FUNCTION__ "MN:Message::slist_sort_by_sent_time"
{
-#line 195 "mn-message.gob"
+#line 197 "mn-message.gob"
return g_slist_sort(list, self_slist_sort_by_sent_time_compare_func);
}}
-#line 587 "mn-message.c"
+#line 571 "mn-message.c"
#undef __GOB_FUNCTION__
-#line 199 "mn-message.gob"
+#line 201 "mn-message.gob"
static int
mn_message_slist_sort_by_sent_time_compare_func (gconstpointer a, gconstpointer b)
-#line 593 "mn-message.c"
+#line 577 "mn-message.c"
{
#define __GOB_FUNCTION__ "MN:Message::slist_sort_by_sent_time_compare_func"
{
-#line 201 "mn-message.gob"
+#line 203 "mn-message.gob"
Self *message_a = (Self *) a;
Self *message_b = (Self *) b;
return message_a->sent_time - message_b->sent_time;
}}
-#line 604 "mn-message.c"
+#line 588 "mn-message.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-message.gob b/src/mn-message.gob
@@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <time.h>
-#include "mn-uri.h"
+#include "mn-mailbox.h"
%}
%{
@@ -32,10 +32,8 @@ requires 2.0.10
class MN:Message from G:Object
{
/* always set */
- public MNURI *mailbox_uri unrefwith g_object_unref;
- property OBJECT mailbox_uri (flags = CONSTRUCT_ONLY,
- object_type = MN:URI,
- link);
+ public char *mailbox_name destroywith g_free;
+ property STRING mailbox_name (flags = CONSTRUCT_ONLY, link);
/* may be NULL */
public char *error destroywith g_free;
@@ -43,7 +41,7 @@ class MN:Message from G:Object
/* sent time, may be 0 */
public time_t sent_time;
- property ULONG sent_time (flags = CONSTRUCT_ONLY, link);
+ property ULONG sent_time (flags = CONSTRUCT_ONLY, link, type = time_t);
/* always set */
public char *id destroywith g_free;
@@ -152,14 +150,17 @@ class MN:Message from G:Object
}
public MNMessage *
- new (MN:URI *mailbox_uri (check null type),
+ new (MNMailbox *mailbox,
const char *error,
time_t sent_time,
const char *id,
const char *from,
const char *subject)
{
- return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_URI(G_OBJECT(mailbox_uri)),
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+ /* translators: "none" is used like "Mailbox: none" */
+ return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_NAME(mailbox ? mailbox->runtime_name : _("none")),
MN_MESSAGE_PROP_ERROR((char *) error),
MN_MESSAGE_PROP_SENT_TIME(sent_time),
MN_MESSAGE_PROP_ID((char *) id),
@@ -169,10 +170,11 @@ class MN:Message from G:Object
}
public MNMessage *
- new_from_error (MN:URI *mailbox_uri (check null type),
- const char *error (check null))
+ new_from_error (MNMailbox *mailbox, const char *error (check null))
{
- return self_new(mailbox_uri, error, 0, NULL, NULL, NULL);
+ g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+ return self_new(mailbox, error, 0, NULL, NULL, NULL);
}
public GSList *
diff --git a/src/mn-message.h b/src/mn-message.h
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
#include <time.h>
-#include "mn-uri.h"
+#include "mn-mailbox.h"
#ifndef __MN_MESSAGE_H__
#define __MN_MESSAGE_H__
@@ -36,7 +36,7 @@ typedef struct _MNMessage MNMessage;
struct _MNMessage {
GObject __parent__;
/*< public >*/
- MNURI * mailbox_uri;
+ char * mailbox_name;
char * error;
time_t sent_time;
char * id;
@@ -58,13 +58,13 @@ struct _MNMessageClass {
*/
GType mn_message_get_type (void);
char * mn_message_format_sent_time (MNMessage * self);
-MNMessage * mn_message_new (MNURI * mailbox_uri,
+MNMessage * mn_message_new (MNMailbox * mailbox,
const char * error,
time_t sent_time,
const char * id,
const char * from,
const char * subject);
-MNMessage * mn_message_new_from_error (MNURI * mailbox_uri,
+MNMessage * mn_message_new_from_error (MNMailbox * mailbox,
const char * error);
GSList * mn_message_slist_find_by_id (GSList * list,
MNMessage * self);
@@ -74,12 +74,12 @@ GSList * mn_message_slist_sort_by_sent_time (GSList * list);
* Argument wrapping macros
*/
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_MESSAGE_PROP_MAILBOX_URI(arg) "mailbox_uri", __extension__ ({GObject *z = (arg); z;})
-#define MN_MESSAGE_GET_PROP_MAILBOX_URI(arg) "mailbox_uri", __extension__ ({GObject **z = (arg); z;})
+#define MN_MESSAGE_PROP_MAILBOX_NAME(arg) "mailbox_name", __extension__ ({gchar *z = (arg); z;})
+#define MN_MESSAGE_GET_PROP_MAILBOX_NAME(arg) "mailbox_name", __extension__ ({gchar **z = (arg); z;})
#define MN_MESSAGE_PROP_ERROR(arg) "error", __extension__ ({gchar *z = (arg); z;})
#define MN_MESSAGE_GET_PROP_ERROR(arg) "error", __extension__ ({gchar **z = (arg); z;})
-#define MN_MESSAGE_PROP_SENT_TIME(arg) "sent_time", __extension__ ({gulong z = (arg); z;})
-#define MN_MESSAGE_GET_PROP_SENT_TIME(arg) "sent_time", __extension__ ({gulong *z = (arg); z;})
+#define MN_MESSAGE_PROP_SENT_TIME(arg) "sent_time", __extension__ ({time_t z = (arg); z;})
+#define MN_MESSAGE_GET_PROP_SENT_TIME(arg) "sent_time", __extension__ ({time_t *z = (arg); z;})
#define MN_MESSAGE_PROP_ID(arg) "id", __extension__ ({gchar *z = (arg); z;})
#define MN_MESSAGE_GET_PROP_ID(arg) "id", __extension__ ({gchar **z = (arg); z;})
#define MN_MESSAGE_PROP_FROM(arg) "from", __extension__ ({gchar *z = (arg); z;})
@@ -87,12 +87,12 @@ GSList * mn_message_slist_sort_by_sent_time (GSList * list);
#define MN_MESSAGE_PROP_SUBJECT(arg) "subject", __extension__ ({gchar *z = (arg); z;})
#define MN_MESSAGE_GET_PROP_SUBJECT(arg) "subject", __extension__ ({gchar **z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_MESSAGE_PROP_MAILBOX_URI(arg) "mailbox_uri",(GObject *)(arg)
-#define MN_MESSAGE_GET_PROP_MAILBOX_URI(arg) "mailbox_uri",(GObject **)(arg)
+#define MN_MESSAGE_PROP_MAILBOX_NAME(arg) "mailbox_name",(gchar *)(arg)
+#define MN_MESSAGE_GET_PROP_MAILBOX_NAME(arg) "mailbox_name",(gchar **)(arg)
#define MN_MESSAGE_PROP_ERROR(arg) "error",(gchar *)(arg)
#define MN_MESSAGE_GET_PROP_ERROR(arg) "error",(gchar **)(arg)
-#define MN_MESSAGE_PROP_SENT_TIME(arg) "sent_time",(gulong )(arg)
-#define MN_MESSAGE_GET_PROP_SENT_TIME(arg) "sent_time",(gulong *)(arg)
+#define MN_MESSAGE_PROP_SENT_TIME(arg) "sent_time",(time_t )(arg)
+#define MN_MESSAGE_GET_PROP_SENT_TIME(arg) "sent_time",(time_t *)(arg)
#define MN_MESSAGE_PROP_ID(arg) "id",(gchar *)(arg)
#define MN_MESSAGE_GET_PROP_ID(arg) "id",(gchar **)(arg)
#define MN_MESSAGE_PROP_FROM(arg) "from",(gchar *)(arg)
diff --git a/src/mn-mh-mailbox-backend-private.h b/src/mn-mh-mailbox-backend-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_MH_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_MH_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-mh-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mh-mailbox-backend.c b/src/mn-mh-mailbox-backend.c
@@ -0,0 +1,309 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:55 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mh-mailbox-backend.h"
+
+#include "mn-mh-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-mh-mailbox-backend.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+#define SEQUENCES_FILE ".mh_sequences"
+
+#line 41 "mn-mh-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_MH_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_MH_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_MH_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_MH_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_MH_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MH_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMHMailboxBackend Self;
+typedef MNMHMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_mh_mailbox_backend_init (MNMHMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_mh_mailbox_backend_class_init (MNMHMailboxBackendClass * class) G_GNUC_UNUSED;
+static void ___2_mn_mh_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+static gboolean ___3_mn_mh_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_mh_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+GType
+mn_mh_mailbox_backend_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNMHMailboxBackendClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_mh_mailbox_backend_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNMHMailboxBackend),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_mh_mailbox_backend_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNMHMailboxBackend", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMHMailboxBackend *)g_object_new(mn_mh_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMHMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMHMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNMHMailboxBackend *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNMHMailboxBackend *)g_object_new_valist (mn_mh_mailbox_backend_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+static void
+mn_mh_mailbox_backend_init (MNMHMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::init"
+}
+#undef __GOB_FUNCTION__
+#line 41 "mn-mh-mailbox-backend.gob"
+static void
+mn_mh_mailbox_backend_class_init (MNMHMailboxBackendClass * class G_GNUC_UNUSED)
+#line 116 "mn-mh-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::class_init"
+ MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+ parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 46 "mn-mh-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->monitor_cb = ___2_mn_mh_mailbox_backend_monitor_cb;
+#line 68 "mn-mh-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->is = ___3_mn_mh_mailbox_backend_is;
+#line 81 "mn-mh-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->check = ___4_mn_mh_mailbox_backend_check;
+#line 129 "mn-mh-mailbox-backend.c"
+ {
+#line 42 "mn-mh-mailbox-backend.gob"
+
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "MH";
+
+#line 135 "mn-mh-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 46 "mn-mh-mailbox-backend.gob"
+static void
+___2_mn_mh_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 145 "mn-mh-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___info_uri,___event_type) \
+ { if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb) \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb)(___backend,___info_uri,___event_type); }
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::monitor_cb"
+{
+#line 50 "mn-mh-mailbox-backend.gob"
+
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ char *filename;
+
+ filename = eel_uri_get_basename(info_uri);
+ if (filename)
+ {
+ if (! strcmp(filename, SEQUENCES_FILE) || mn_str_isnumeric(filename))
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+ g_free(filename);
+ }
+ }
+ }}
+#line 170 "mn-mh-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 68 "mn-mh-mailbox-backend.gob"
+static gboolean
+___3_mn_mh_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 177 "mn-mh-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+ ((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+ ((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::is"
+{
+#line 70 "mn-mh-mailbox-backend.gob"
+
+ GnomeVFSURI *sequences_uri;
+ gboolean is;
+
+ sequences_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SEQUENCES_FILE);
+ is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
+ gnome_vfs_uri_unref(sequences_uri);
+
+ return is;
+ }}
+#line 196 "mn-mh-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 81 "mn-mh-mailbox-backend.gob"
+static void
+___4_mn_mh_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 203 "mn-mh-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+ { if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::check"
+{
+#line 83 "mn-mh-mailbox-backend.gob"
+
+ GnomeVFSURI *sequences_uri;
+ GnomeVFSResult result;
+ GnomeVFSHandle *handle;
+
+ mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+ sequences_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, SEQUENCES_FILE);
+ result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
+ gnome_vfs_uri_unref(sequences_uri);
+
+ if (result == GNOME_VFS_OK)
+ {
+ MNVFSReadLineContext *context = NULL;
+ const char *line;
+ GSList *messages = NULL;
+ GnomeVFSResult close_result;
+
+ while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
+ if (g_str_has_prefix(line, "unseen: "))
+ {
+ int first;
+ char **elements;
+ int i;
+
+ elements = g_strsplit(line + 8, " ", 0);
+ for (i = 0; elements[i]; i++)
+ {
+ int last;
+ int n;
+
+ n = sscanf(elements[i], "%d-%d", &first, &last);
+ if (n >= 1)
+ {
+ int j;
+
+ if (n == 1)
+ last = first;
+
+ for (j = first; j <= last; j++)
+ {
+ char *filename;
+ GnomeVFSURI *message_uri;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ g_strfreev(elements);
+ goto loop_end;
+ }
+
+ filename = g_strdup_printf("%i", j);
+ message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, filename);
+ g_free(filename);
+
+ messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+ gnome_vfs_uri_unref(message_uri);
+ }
+ }
+ }
+ g_strfreev(elements);
+ }
+
+ loop_end:
+ mn_vfs_read_line_context_free(context);
+ close_result = gnome_vfs_close(handle);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(close_result));
+ }
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ else
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }}
+#line 308 "mn-mh-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-mh-mailbox-backend.gob b/src/mn-mh-mailbox-backend.gob
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+#define SEQUENCES_FILE ".mh_sequences"
+%}
+
+class MN:MH:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+ class_init (class)
+ {
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "MH";
+ }
+
+ override (MN:VFS:Mailbox:Backend) void
+ monitor_cb (MNVFSMailbox:Backend *backend,
+ const char *info_uri,
+ GnomeVFSMonitorEventType event_type)
+ {
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ char *filename;
+
+ filename = eel_uri_get_basename(info_uri);
+ if (filename)
+ {
+ if (! strcmp(filename, SEQUENCES_FILE) || mn_str_isnumeric(filename))
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+ g_free(filename);
+ }
+ }
+ }
+
+ override (MN:VFS:Mailbox:Backend) gboolean
+ is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+ {
+ GnomeVFSURI *sequences_uri;
+ gboolean is;
+
+ sequences_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SEQUENCES_FILE);
+ is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
+ gnome_vfs_uri_unref(sequences_uri);
+
+ return is;
+ }
+
+ override (MN:VFS:Mailbox:Backend) void
+ check (MNVFSMailboxBackend *backend, unsigned long check_id)
+ {
+ GnomeVFSURI *sequences_uri;
+ GnomeVFSResult result;
+ GnomeVFSHandle *handle;
+
+ mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+ sequences_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, SEQUENCES_FILE);
+ result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
+ gnome_vfs_uri_unref(sequences_uri);
+
+ if (result == GNOME_VFS_OK)
+ {
+ MNVFSReadLineContext *context = NULL;
+ const char *line;
+ GSList *messages = NULL;
+ GnomeVFSResult close_result;
+
+ while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
+ if (g_str_has_prefix(line, "unseen: "))
+ {
+ int first;
+ char **elements;
+ int i;
+
+ elements = g_strsplit(line + 8, " ", 0);
+ for (i = 0; elements[i]; i++)
+ {
+ int last;
+ int n;
+
+ n = sscanf(elements[i], "%d-%d", &first, &last);
+ if (n >= 1)
+ {
+ int j;
+
+ if (n == 1)
+ last = first;
+
+ for (j = first; j <= last; j++)
+ {
+ char *filename;
+ GnomeVFSURI *message_uri;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ g_strfreev(elements);
+ goto loop_end;
+ }
+
+ filename = g_strdup_printf("%i", j);
+ message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, filename);
+ g_free(filename);
+
+ messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+ gnome_vfs_uri_unref(message_uri);
+ }
+ }
+ }
+ g_strfreev(elements);
+ }
+
+ loop_end:
+ mn_vfs_read_line_context_free(context);
+ close_result = gnome_vfs_close(handle);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(close_result));
+ }
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ else
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }
+}
diff --git a/src/mn-mh-mailbox-backend.h b/src/mn-mh-mailbox-backend.h
@@ -0,0 +1,57 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_MH_MAILBOX_BACKEND_H__
+#define __MN_MH_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MH_MAILBOX_BACKEND (mn_mh_mailbox_backend_get_type())
+#define MN_MH_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackend)
+#define MN_MH_MAILBOX_BACKEND_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackend const)
+#define MN_MH_MAILBOX_BACKEND_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackendClass)
+#define MN_IS_MH_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mh_mailbox_backend_get_type ())
+
+#define MN_MH_MAILBOX_BACKEND_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackendClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MH_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_MH_MAILBOX_BACKEND__
+typedef struct _MNMHMailboxBackend MNMHMailboxBackend;
+#endif
+struct _MNMHMailboxBackend {
+ MNVFSMailboxBackend __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMHMailboxBackendClass MNMHMailboxBackendClass;
+struct _MNMHMailboxBackendClass {
+ MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_mh_mailbox_backend_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mh-mailbox-private.h b/src/mn-mh-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_MH_MAILBOX_PRIVATE_H__
-#define __MN_MH_MAILBOX_PRIVATE_H__
-
-#include "mn-mh-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-mh-mailbox.c b/src/mn-mh-mailbox.c
@@ -1,309 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:26 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include "mn-mh-mailbox.h"
-
-#include "mn-mh-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-mh-mailbox.gob"
-
-#include "config.h"
-#include <stdio.h>
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-#line 37 "mn-mh-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_MH_MAILBOX(x)
-#define SELF_CONST(x) MN_MH_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_MH_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_MH_MAILBOX
-#define SELF_CLASS(x) MN_MH_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_MH_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNMHMailbox Self;
-typedef MNMHMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_mh_mailbox_init (MNMHMailbox * o) G_GNUC_UNUSED;
-static void mn_mh_mailbox_class_init (MNMHMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_mh_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_mh_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_mh_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-GType
-mn_mh_mailbox_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNMHMailboxClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_mh_mailbox_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNMHMailbox),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_mh_mailbox_init,
- NULL
- };
-
- type = g_type_register_static (MN_TYPE_MAILBOX, "MNMHMailbox", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNMHMailbox *)g_object_new(mn_mh_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNMHMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNMHMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
- MNMHMailbox *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNMHMailbox *)g_object_new_valist (mn_mh_mailbox_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-static void
-mn_mh_mailbox_init (MNMHMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 38 "mn-mh-mailbox.gob"
-static void
-mn_mh_mailbox_class_init (MNMHMailboxClass * class G_GNUC_UNUSED)
-#line 112 "mn-mh-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::class_init"
- GObjectClass *g_object_class = (GObjectClass *)class;
- MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
- parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 43 "mn-mh-mailbox.gob"
- g_object_class->constructor = ___2_mn_mh_mailbox_constructor;
-#line 67 "mn-mh-mailbox.gob"
- mn_mailbox_class->impl_is = ___3_mn_mh_mailbox_impl_is;
-#line 84 "mn-mh-mailbox.gob"
- mn_mailbox_class->impl_check = ___4_mn_mh_mailbox_impl_check;
-#line 126 "mn-mh-mailbox.c"
- {
-#line 39 "mn-mh-mailbox.gob"
-
- MN_MAILBOX_CLASS(class)->format = "MH";
-
-#line 132 "mn-mh-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 43 "mn-mh-mailbox.gob"
-static GObject *
-___2_mn_mh_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 142 "mn-mh-mailbox.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::constructor"
-{
-#line 45 "mn-mh-mailbox.gob"
-
- GObject *object;
- MNMailbox *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- self->uri->text,
- GNOME_VFS_MONITOR_DIRECTORY,
- MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return object;
- }}
-#line 172 "mn-mh-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 67 "mn-mh-mailbox.gob"
-static gboolean
-___3_mn_mh_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 179 "mn-mh-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
- ((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
- (* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
- ((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::impl_is"
-#line 67 "mn-mh-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 67 "mn-mh-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 190 "mn-mh-mailbox.c"
-{
-#line 69 "mn-mh-mailbox.gob"
-
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- GnomeVFSURI *sequences_uri;
-
- sequences_uri = gnome_vfs_uri_append_file_name(uri->vfs, ".mh_sequences");
- is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
- gnome_vfs_uri_unref(sequences_uri);
- }
-
- return is;
- }}
-#line 207 "mn-mh-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 84 "mn-mh-mailbox.gob"
-static void
-___4_mn_mh_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
-#line 214 "mn-mh-mailbox.c"
-#define PARENT_HANDLER(___self) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::impl_check"
-#line 84 "mn-mh-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 84 "mn-mh-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (self));
-#line 224 "mn-mh-mailbox.c"
-{
-#line 86 "mn-mh-mailbox.gob"
-
- GnomeVFSURI *sequences_uri;
- GnomeVFSResult result;
- GnomeVFSHandle *handle;
-
- sequences_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, ".mh_sequences");
- result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
- gnome_vfs_uri_unref(sequences_uri);
-
- if (result == GNOME_VFS_OK)
- {
- MNVFSReadLineContext *context = NULL;
- const char *line;
- GSList *messages = NULL;
-
- while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
- if (g_str_has_prefix(line, "unseen: "))
- {
- int first;
- char **elements;
- int i;
-
- elements = g_strsplit(line + 8, " ", 0);
- for (i = 0; elements[i]; i++)
- {
- int last;
- int n;
-
- n = sscanf(elements[i], "%d-%d", &first, &last);
- if (n >= 1)
- {
- int j;
-
- if (n == 1)
- last = first;
-
- for (j = first; j <= last; j++)
- {
- char *filename;
- GnomeVFSURI *message_uri;
-
- filename = g_strdup_printf("%i", j);
- message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, filename);
- g_free(filename);
-
- messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
- gnome_vfs_uri_unref(message_uri);
- }
- }
- }
- g_strfreev(elements);
- }
-
- mn_vfs_read_line_context_free(context);
- gnome_vfs_close(handle);
-
- GDK_THREADS_ENTER();
-
- if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
- mn_mailbox_set_messages(self, messages);
- else
- mn_mailbox_set_error(self, _("error while reading .mh_sequences: %s"), gnome_vfs_result_to_string(result));
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
- }
- else
- {
- GDK_THREADS_ENTER();
- mn_mailbox_set_error(self, _("unable to open .mh_sequences: %s"), gnome_vfs_result_to_string(result));
- gdk_flush();
- GDK_THREADS_LEAVE();
- }
-
- GDK_THREADS_ENTER();
- mn_mailbox_end_check(self);
- gdk_flush();
- GDK_THREADS_LEAVE();
- }}
-#line 308 "mn-mh-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
diff --git a/src/mn-mh-mailbox.gob b/src/mn-mh-mailbox.gob
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <stdio.h>
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-%}
-
-class MN:MH:Mailbox from MN:Mailbox
-{
- class_init (class)
- {
- MN_MAILBOX_CLASS(class)->format = "MH";
- }
-
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
- {
- GObject *object;
- MNMailbox *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- self->uri->text,
- GNOME_VFS_MONITOR_DIRECTORY,
- MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return object;
- }
-
- override (MN:Mailbox) gboolean
- impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
- {
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- GnomeVFSURI *sequences_uri;
-
- sequences_uri = gnome_vfs_uri_append_file_name(uri->vfs, ".mh_sequences");
- is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
- gnome_vfs_uri_unref(sequences_uri);
- }
-
- return is;
- }
-
- override (MN:Mailbox) void
- impl_check (MN:Mailbox *self (check null type))
- {
- GnomeVFSURI *sequences_uri;
- GnomeVFSResult result;
- GnomeVFSHandle *handle;
-
- sequences_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, ".mh_sequences");
- result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
- gnome_vfs_uri_unref(sequences_uri);
-
- if (result == GNOME_VFS_OK)
- {
- MNVFSReadLineContext *context = NULL;
- const char *line;
- GSList *messages = NULL;
-
- while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
- if (g_str_has_prefix(line, "unseen: "))
- {
- int first;
- char **elements;
- int i;
-
- elements = g_strsplit(line + 8, " ", 0);
- for (i = 0; elements[i]; i++)
- {
- int last;
- int n;
-
- n = sscanf(elements[i], "%d-%d", &first, &last);
- if (n >= 1)
- {
- int j;
-
- if (n == 1)
- last = first;
-
- for (j = first; j <= last; j++)
- {
- char *filename;
- GnomeVFSURI *message_uri;
-
- filename = g_strdup_printf("%i", j);
- message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, filename);
- g_free(filename);
-
- messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
- gnome_vfs_uri_unref(message_uri);
- }
- }
- }
- g_strfreev(elements);
- }
-
- mn_vfs_read_line_context_free(context);
- gnome_vfs_close(handle);
-
- GDK_THREADS_ENTER();
-
- if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
- mn_mailbox_set_messages(self, messages);
- else
- mn_mailbox_set_error(self, _("error while reading .mh_sequences: %s"), gnome_vfs_result_to_string(result));
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- mn_g_object_slist_free(messages);
- }
- else
- {
- GDK_THREADS_ENTER();
- mn_mailbox_set_error(self, _("unable to open .mh_sequences: %s"), gnome_vfs_result_to_string(result));
- gdk_flush();
- GDK_THREADS_LEAVE();
- }
-
- GDK_THREADS_ENTER();
- mn_mailbox_end_check(self);
- gdk_flush();
- GDK_THREADS_LEAVE();
- }
-}
diff --git a/src/mn-mh-mailbox.h b/src/mn-mh-mailbox.h
@@ -1,57 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_MH_MAILBOX_H__
-#define __MN_MH_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_MH_MAILBOX (mn_mh_mailbox_get_type())
-#define MN_MH_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_get_type(), MNMHMailbox)
-#define MN_MH_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_get_type(), MNMHMailbox const)
-#define MN_MH_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_mh_mailbox_get_type(), MNMHMailboxClass)
-#define MN_IS_MH_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mh_mailbox_get_type ())
-
-#define MN_MH_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_mh_mailbox_get_type(), MNMHMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_MH_MAILBOX__
-#define __TYPEDEF_MN_MH_MAILBOX__
-typedef struct _MNMHMailbox MNMHMailbox;
-#endif
-struct _MNMHMailbox {
- MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNMHMailboxClass MNMHMailboxClass;
-struct _MNMHMailboxClass {
- MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_mh_mailbox_get_type (void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-pending-mailbox-private.h b/src/mn-pending-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_PENDING_MAILBOX_PRIVATE_H__
-#define __MN_PENDING_MAILBOX_PRIVATE_H__
-
-#include "mn-pending-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-pending-mailbox.c b/src/mn-pending-mailbox.c
@@ -1,142 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-pending-mailbox.h"
-
-#include "mn-pending-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-pending-mailbox.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-
-#line 33 "mn-pending-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_PENDING_MAILBOX(x)
-#define SELF_CONST(x) MN_PENDING_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_PENDING_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_PENDING_MAILBOX
-#define SELF_CLASS(x) MN_PENDING_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_PENDING_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNPendingMailbox Self;
-typedef MNPendingMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_pending_mailbox_init (MNPendingMailbox * o) G_GNUC_UNUSED;
-static void mn_pending_mailbox_class_init (MNPendingMailboxClass * class) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_new mn_pending_mailbox_new
-GType
-mn_pending_mailbox_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNPendingMailboxClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_pending_mailbox_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNPendingMailbox),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_pending_mailbox_init,
- NULL
- };
-
- type = g_type_register_static (MN_TYPE_MAILBOX, "MNPendingMailbox", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNPendingMailbox *)g_object_new(mn_pending_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNPendingMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNPendingMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
- MNPendingMailbox *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNPendingMailbox *)g_object_new_valist (mn_pending_mailbox_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-static void
-mn_pending_mailbox_init (MNPendingMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Pending:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 32 "mn-pending-mailbox.gob"
-static void
-mn_pending_mailbox_class_init (MNPendingMailboxClass * class G_GNUC_UNUSED)
-#line 107 "mn-pending-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Pending:Mailbox::class_init"
-
- parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
- {
-#line 33 "mn-pending-mailbox.gob"
-
- MN_MAILBOX_CLASS(class)->stock_id = GTK_STOCK_EXECUTE;
- MN_MAILBOX_CLASS(class)->format = _("detecting");
-
-#line 119 "mn-pending-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 38 "mn-pending-mailbox.gob"
-MNMailbox *
-mn_pending_mailbox_new (MNURI * uri)
-#line 129 "mn-pending-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Pending:Mailbox::new"
-#line 38 "mn-pending-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
-#line 38 "mn-pending-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (MNMailbox * )0);
-#line 136 "mn-pending-mailbox.c"
-{
-#line 40 "mn-pending-mailbox.gob"
-
- return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)), NULL));
- }}
-#line 142 "mn-pending-mailbox.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-pending-mailbox.gob b/src/mn-pending-mailbox.gob
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-%}
-
-class MN:Pending:Mailbox from MN:Mailbox
-{
- class_init (class)
- {
- MN_MAILBOX_CLASS(class)->stock_id = GTK_STOCK_EXECUTE;
- MN_MAILBOX_CLASS(class)->format = _("detecting");
- }
-
- public MNMailbox *
- new (MN:URI *uri (check null type))
- {
- return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)), NULL));
- }
-}
diff --git a/src/mn-pending-mailbox.h b/src/mn-pending-mailbox.h
@@ -1,58 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_PENDING_MAILBOX_H__
-#define __MN_PENDING_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_PENDING_MAILBOX (mn_pending_mailbox_get_type())
-#define MN_PENDING_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pending_mailbox_get_type(), MNPendingMailbox)
-#define MN_PENDING_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pending_mailbox_get_type(), MNPendingMailbox const)
-#define MN_PENDING_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_pending_mailbox_get_type(), MNPendingMailboxClass)
-#define MN_IS_PENDING_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_pending_mailbox_get_type ())
-
-#define MN_PENDING_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_pending_mailbox_get_type(), MNPendingMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_PENDING_MAILBOX__
-#define __TYPEDEF_MN_PENDING_MAILBOX__
-typedef struct _MNPendingMailbox MNPendingMailbox;
-#endif
-struct _MNPendingMailbox {
- MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNPendingMailboxClass MNPendingMailboxClass;
-struct _MNPendingMailboxClass {
- MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_pending_mailbox_get_type (void);
-MNMailbox * mn_pending_mailbox_new (MNURI * uri);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-pi-mailbox-private.h b/src/mn-pi-mailbox-private.h
@@ -0,0 +1,20 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_PI_MAILBOX_PRIVATE_H__
+#define __MN_PI_MAILBOX_PRIVATE_H__
+
+#include "mn-pi-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+gboolean mn_pi_mailbox_split_uri (const char * uri, int maxlen, char * scheme, char * auth, char * location, gboolean * has_auth);
+gboolean mn_pi_mailbox_split_uri_auth (const char * auth, int maxlen, char * username, char * authmech, gboolean * has_username, gboolean * has_authmech);
+void mn_pi_mailbox_split_uri_hostport (const char * hostport, int maxlen, char * hostname, int * port);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-pi-mailbox-properties-private.h b/src/mn-pi-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_PI_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_PI_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -9,9 +9,7 @@
extern "C" {
#endif /* __cplusplus */
-void mn_pi_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data);
-void mn_pi_mailbox_properties_set_contents (MNPIMailboxProperties * self, gboolean ssl, gboolean inband_ssl, const char * username, const char * password, const char * authmech, const char * hostname, int port);
-void mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, gboolean * ssl, gboolean * inband_ssl, const char ** username, const char ** password, char ** authmech, const char ** hostname, int * port);
+void mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, MNPIMailboxConnectionType * connection_type, char ** authmech, const char ** hostname, int * port);
#ifdef __cplusplus
}
diff --git a/src/mn-pi-mailbox-properties.c b/src/mn-pi-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,16 +23,17 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-pi-mailbox-properties.gob"
+#line 27 "mn-pi-mailbox-properties.gob"
#include "config.h"
#include <glib/gi18n.h>
-#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
+#include "mn-stock.h"
-#line 36 "mn-pi-mailbox-properties.c"
+#line 37 "mn-pi-mailbox-properties.c"
/* self casting macros */
#define SELF(x) MN_PI_MAILBOX_PROPERTIES(x)
#define SELF_CONST(x) MN_PI_MAILBOX_PROPERTIES_CONST(x)
@@ -47,37 +48,24 @@ typedef MNPIMailboxProperties Self;
typedef MNPIMailboxPropertiesClass SelfClass;
/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
-static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_pi_mailbox_properties_init (MNPIMailboxProperties * o) G_GNUC_UNUSED;
-static void mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static GObject * ___1_mn_pi_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_init (MNPIMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_add_connection_type (MNPIMailboxProperties * self, MNPIMailboxConnectionType type, const char * mnemonic) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_add_authentication (MNPIMailboxProperties * self) G_GNUC_UNUSED;
static void mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
static void mn_pi_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data) G_GNUC_UNUSED;
-
-enum {
- PROP_0,
- PROP_COMPLETE,
- PROP_LABEL,
- PROP_SIZE_GROUP
-};
+static void ___7_mn_pi_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___8_mn_pi_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
/* pointer to the class of our parent */
-static GtkVBoxClass *parent_class = NULL;
+static MNAuthenticatedMailboxPropertiesClass *parent_class = NULL;
/* Short form macros */
+#define self_add_connection_type mn_pi_mailbox_properties_add_connection_type
+#define self_add_authentication mn_pi_mailbox_properties_add_authentication
#define self_notify_expanded_h mn_pi_mailbox_properties_notify_expanded_h
-#define self_entry_changed_h mn_pi_mailbox_properties_entry_changed_h
#define self_radio_toggled_h mn_pi_mailbox_properties_radio_toggled_h
-#define self_set_contents mn_pi_mailbox_properties_set_contents
#define self_get_contents mn_pi_mailbox_properties_get_contents
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-}
-
GType
mn_pi_mailbox_properties_get_type (void)
{
@@ -97,16 +85,7 @@ mn_pi_mailbox_properties_get_type (void)
NULL
};
- static const GInterfaceInfo MN_Mailbox_Properties_info = {
- (GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
- NULL,
- NULL
- };
-
- type = g_type_register_static (GTK_TYPE_VBOX, "MNPIMailboxProperties", &info, (GTypeFlags)0);
- g_type_add_interface_static (type,
- MN_TYPE_MAILBOX_PROPERTIES,
- &MN_Mailbox_Properties_info);
+ type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES, "MNPIMailboxProperties", &info, (GTypeFlags)0);
}
return type;
@@ -129,178 +108,78 @@ GET_NEW_VARG (const char *first, ...)
return ret;
}
-
-static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::dispose"
- MNPIMailboxProperties *self G_GNUC_UNUSED = MN_PI_MAILBOX_PROPERTIES (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 44 "mn-pi-mailbox-properties.gob"
- if(self->size_group) { g_object_unref ((gpointer) self->size_group); self->size_group = NULL; }
-#line 143 "mn-pi-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
+#line 46 "mn-pi-mailbox-properties.gob"
static void
-mn_pi_mailbox_properties_init (MNPIMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::init"
-}
-#undef __GOB_FUNCTION__
-static void
-mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * c G_GNUC_UNUSED)
+mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 115 "mn-pi-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
- parent_class = g_type_class_ref (GTK_TYPE_VBOX);
+ parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES);
-#line 56 "mn-pi-mailbox-properties.gob"
- g_object_class->constructor = ___1_mn_pi_mailbox_properties_constructor;
-#line 163 "mn-pi-mailbox-properties.c"
- g_object_class->dispose = ___dispose;
- g_object_class->get_property = ___object_get_property;
- g_object_class->set_property = ___object_set_property;
- {
- g_object_class_override_property (g_object_class,
- PROP_COMPLETE,
- "complete");
- g_object_class_override_property (g_object_class,
- PROP_LABEL,
- "label");
- g_object_class_override_property (g_object_class,
- PROP_SIZE_GROUP,
- "size_group");
- }
-}
-#undef __GOB_FUNCTION__
+#line 216 "mn-pi-mailbox-properties.gob"
+ mn_mailbox_properties_class->set_mailbox = ___7_mn_pi_mailbox_properties_set_mailbox;
+#line 231 "mn-pi-mailbox-properties.gob"
+ mn_mailbox_properties_class->get_mailbox = ___8_mn_pi_mailbox_properties_get_mailbox;
+#line 126 "mn-pi-mailbox-properties.c"
+ {
+#line 47 "mn-pi-mailbox-properties.gob"
-static void
-___object_set_property (GObject *object,
- guint property_id,
- const GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::set_property"
-{
- MNPIMailboxProperties *self G_GNUC_UNUSED;
-
- self = MN_PI_MAILBOX_PROPERTIES (object);
-
- switch (property_id) {
- case PROP_SIZE_GROUP:
- {
-#line 45 "mn-pi-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->size_group; self->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 197 "mn-pi-mailbox-properties.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-#undef __GOB_FUNCTION__
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
-static void
-___object_get_property (GObject *object,
- guint property_id,
- GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::get_property"
-{
- MNPIMailboxProperties *self G_GNUC_UNUSED;
-
- self = MN_PI_MAILBOX_PROPERTIES (object);
-
- switch (property_id) {
- case PROP_COMPLETE:
- {
-#line 39 "mn-pi-mailbox-properties.gob"
-
-#line 228 "mn-pi-mailbox-properties.c"
- }
- break;
- case PROP_LABEL:
- {
-#line 42 "mn-pi-mailbox-properties.gob"
- g_value_set_string(VAL, SELF_GET_CLASS(self)->label);
-#line 235 "mn-pi-mailbox-properties.c"
- }
- break;
- case PROP_SIZE_GROUP:
- {
-#line 45 "mn-pi-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->size_group);
-#line 242 "mn-pi-mailbox-properties.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
+ p_class->stock_id = MN_STOCK_REMOTE;
+
+#line 134 "mn-pi-mailbox-properties.c"
+ }
}
#undef __GOB_FUNCTION__
-
-
-
-#line 56 "mn-pi-mailbox-properties.gob"
-static GObject *
-___1_mn_pi_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 262 "mn-pi-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::constructor"
+#line 53 "mn-pi-mailbox-properties.gob"
+static void
+mn_pi_mailbox_properties_init (MNPIMailboxProperties * self G_GNUC_UNUSED)
+#line 141 "mn-pi-mailbox-properties.c"
{
-#line 58 "mn-pi-mailbox-properties.gob"
-
- GObject *object;
- Self *self;
- GtkWidget *label1;
- GtkWidget *label2;
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::init"
+ {
+#line 54 "mn-pi-mailbox-properties.gob"
+
+ MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+ MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
+ GtkWidget *hbox;
+ GtkWidget *label;
GtkWidget *expander;
GtkSizeGroup *radio_size_group;
int i;
+ const struct
+ {
+ MNPIMailboxConnectionType type;
+ const char *mnemonic;
+ } connection_types[] = {
+ { MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL, N_("sta_ndard") },
+ { MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL, N_("_in-band SSL/TLS") },
+ { MN_PI_MAILBOX_CONNECTION_TYPE_SSL, N_("SSL/TLS on sepa_rate port") }
+ };
+
+ hbox = mn_authenticated_mailbox_properties_field_new(auth,
+ _("_Hostname:"),
+ &label,
+ &self->hostname_entry);
+
+ gtk_box_pack_start(GTK_BOX(self), hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
-
- gtk_box_set_spacing(GTK_BOX(self), 6);
-
self->details_size_group = gtk_size_group_new(GTK_SIZE_GROUP_NONE);
- mn_mailbox_properties_field_new(GTK_VBOX(self),
- _("_Hostname:"),
- &label1,
- &self->hostname_entry);
-
- gtk_size_group_add_widget(self->size_group, label1);
- gtk_size_group_add_widget(self->details_size_group, label1);
+ gtk_size_group_add_widget(self->details_size_group, auth->username_label);
+ gtk_size_group_add_widget(self->details_size_group, auth->password_label);
+ gtk_size_group_add_widget(self->details_size_group, label);
- mn_mailbox_properties_credentials_new(GTK_VBOX(self),
- &label1,
- &self->username_entry,
- &label2,
- &self->password_entry);
-
- gtk_size_group_add_widget(self->size_group, label1);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(self->size_group, label2);
- gtk_size_group_add_widget(self->details_size_group, label2);
+ mn_mailbox_properties_add_entries(properties,
+ GTK_ENTRY(self->hostname_entry),
+ GTK_ENTRY(auth->username_entry),
+ GTK_ENTRY(auth->password_entry),
+ NULL);
expander = gtk_expander_new_with_mnemonic(_("_Details"));
gtk_expander_set_spacing(GTK_EXPANDER(expander), 6);
@@ -313,219 +192,289 @@ ___1_mn_pi_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned in
radio_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
- _("sta_ndard"),
- SELF_GET_CLASS(self)->default_port[0],
- NULL,
- &label1,
- &self->conn_radio[0],
- &self->port_spin[0]);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(radio_size_group, self->conn_radio[0]);
-
- mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
- _("_in-band SSL/TLS"),
- SELF_GET_CLASS(self)->default_port[0],
- GTK_RADIO_BUTTON(self->conn_radio[0]),
- &label1,
- &self->conn_radio[1],
- &self->port_spin[1]);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(radio_size_group, self->conn_radio[1]);
-
- mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
- _("SSL/TLS on sepa_rate port"),
- SELF_GET_CLASS(self)->default_port[1],
- GTK_RADIO_BUTTON(self->conn_radio[0]),
- &label1,
- &self->conn_radio[2],
- &self->port_spin[2]);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(radio_size_group, self->conn_radio[2]);
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ {
+ self_add_connection_type(self,
+ connection_types[i].type,
+ _(connection_types[i].mnemonic));
+
+ gtk_size_group_add_widget(radio_size_group, self->conn_radio[i]);
- g_object_unref(radio_size_group);
+ mn_mailbox_properties_add_entry(properties, GTK_ENTRY(self->port_spin[i]));
+ g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
+ }
+ g_object_unref(radio_size_group);
+
#ifndef WITH_SSL
- gtk_widget_set_sensitive(self->conn_radio[1], FALSE);
- gtk_widget_set_sensitive(self->conn_radio[2], FALSE);
+ gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+ gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
#endif
/* by default, standard is enabled */
- gtk_widget_set_sensitive(self->port_spin[1], FALSE);
- gtk_widget_set_sensitive(self->port_spin[2], FALSE);
+ gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+ gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
- mn_mailbox_properties_authentication_new(GTK_VBOX(self->details_vbox),
- &label1,
- &self->auth_combo);
- gtk_size_group_add_widget(self->details_size_group, label1);
+ self_add_authentication(self);
- mn_mailbox_properties_link_entries(GTK_ENTRY(self->hostname_entry),
- GTK_ENTRY(self->username_entry),
- GTK_ENTRY(self->password_entry),
- NULL);
+ g_object_connect(self->hostname_entry,
+ "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+ "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+ NULL);
+
+ g_signal_connect_swapped(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
g_signal_connect(expander, "notify::expanded", G_CALLBACK(self_notify_expanded_h), self);
+
+#line 230 "mn-pi-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
- for (i = 0; i < 3; i++)
- g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
-
- g_signal_connect(self->hostname_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
- g_signal_connect(self->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
- return object;
+
+#line 139 "mn-pi-mailbox-properties.gob"
+static void
+mn_pi_mailbox_properties_add_connection_type (MNPIMailboxProperties * self, MNPIMailboxConnectionType type, const char * mnemonic)
+#line 240 "mn-pi-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::add_connection_type"
+#line 139 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 139 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
+#line 139 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (mnemonic != NULL);
+#line 249 "mn-pi-mailbox-properties.c"
+{
+#line 143 "mn-pi-mailbox-properties.gob"
+
+ GtkWidget *label;
+ GtkWidget *hbox;
+ GtkWidget *port_label;
+
+ label = gtk_label_new(type == 0 ? _("Connection type:") : NULL);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ self->conn_radio[type] = type == 0
+ ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+ : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(self->conn_radio[0]), mnemonic);
+
+ port_label = gtk_label_new(_("Port:"));
+
+ self->port_spin[type] = gtk_spin_button_new_with_range(0, 0xFFFF, 1);
+ gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(self->port_spin[type]), TRUE);
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), self->conn_radio[type], TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), port_label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), self->port_spin[type], FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+
+ gtk_size_group_add_widget(self->details_size_group, label);
}}
-#line 378 "mn-pi-mailbox-properties.c"
+#line 279 "mn-pi-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-#line 166 "mn-pi-mailbox-properties.gob"
+#line 171 "mn-pi-mailbox-properties.gob"
static void
-mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 385 "mn-pi-mailbox-properties.c"
+mn_pi_mailbox_properties_add_authentication (MNPIMailboxProperties * self)
+#line 285 "mn-pi-mailbox-properties.c"
{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::notify_expanded_h"
-#line 166 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (object != NULL);
-#line 166 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 166 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (pspec != NULL);
-#line 166 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (user_data != NULL);
-#line 396 "mn-pi-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::add_authentication"
+#line 171 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (self != NULL);
+#line 171 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
+#line 292 "mn-pi-mailbox-properties.c"
{
-#line 170 "mn-pi-mailbox-properties.gob"
+#line 173 "mn-pi-mailbox-properties.gob"
- Self *self = user_data;
+ GtkWidget *hbox;
+ GtkWidget *label;
- gtk_size_group_set_mode(self->details_size_group,
- gtk_expander_get_expanded(GTK_EXPANDER(object))
- ? GTK_SIZE_GROUP_HORIZONTAL
- : GTK_SIZE_GROUP_NONE);
+ hbox = gtk_hbox_new(FALSE, 12);
+ label = gtk_label_new_with_mnemonic(_("_Authentication mechanism:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ self->auth_combo = mn_auth_combo_box_new();
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), self->auth_combo);
+
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), self->auth_combo, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+
+ gtk_size_group_add_widget(self->details_size_group, label);
}}
-#line 407 "mn-pi-mailbox-properties.c"
+#line 313 "mn-pi-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 179 "mn-pi-mailbox-properties.gob"
-void
-mn_pi_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 413 "mn-pi-mailbox-properties.c"
+#line 192 "mn-pi-mailbox-properties.gob"
+static void
+mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 319 "mn-pi-mailbox-properties.c"
{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::entry_changed_h"
-#line 179 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (editable != NULL);
-#line 179 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 179 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (user_data != NULL);
-#line 422 "mn-pi-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::notify_expanded_h"
{
-#line 182 "mn-pi-mailbox-properties.gob"
+#line 194 "mn-pi-mailbox-properties.gob"
Self *self = user_data;
- g_object_notify(G_OBJECT(self), "complete");
+
+ gtk_size_group_set_mode(self->details_size_group,
+ gtk_expander_get_expanded(GTK_EXPANDER(object))
+ ? GTK_SIZE_GROUP_HORIZONTAL
+ : GTK_SIZE_GROUP_NONE);
}}
-#line 429 "mn-pi-mailbox-properties.c"
+#line 332 "mn-pi-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
static void
mn_pi_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data)
-#line 435 "mn-pi-mailbox-properties.c"
+#line 338 "mn-pi-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::radio_toggled_h"
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
g_return_if_fail (togglebutton != NULL);
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
g_return_if_fail (GTK_IS_TOGGLE_BUTTON (togglebutton));
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
g_return_if_fail (user_data != NULL);
-#line 444 "mn-pi-mailbox-properties.c"
+#line 347 "mn-pi-mailbox-properties.c"
{
-#line 190 "mn-pi-mailbox-properties.gob"
+#line 206 "mn-pi-mailbox-properties.gob"
Self *self = user_data;
int i;
- for (i = 0; i < 3; i++)
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
gtk_widget_set_sensitive(self->port_spin[i], GTK_WIDGET_SENSITIVE(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
g_object_notify(G_OBJECT(self), "complete");
}}
-#line 456 "mn-pi-mailbox-properties.c"
+#line 359 "mn-pi-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 200 "mn-pi-mailbox-properties.gob"
-void
-mn_pi_mailbox_properties_set_contents (MNPIMailboxProperties * self, gboolean ssl, gboolean inband_ssl, const char * username, const char * password, const char * authmech, const char * hostname, int port)
-#line 462 "mn-pi-mailbox-properties.c"
+#line 216 "mn-pi-mailbox-properties.gob"
+static void
+___7_mn_pi_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 365 "mn-pi-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+ { if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::set_contents"
-#line 200 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (self != NULL);
-#line 200 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
-#line 200 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (username != NULL);
-#line 200 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (hostname != NULL);
-#line 200 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (port >= 0);
-#line 200 "mn-pi-mailbox-properties.gob"
- g_return_if_fail (port <= 0xFFFF);
-#line 477 "mn-pi-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::set_mailbox"
+#line 216 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (properties != NULL);
+#line 216 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (properties));
+#line 216 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 216 "mn-pi-mailbox-properties.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 379 "mn-pi-mailbox-properties.c"
{
-#line 209 "mn-pi-mailbox-properties.gob"
+#line 219 "mn-pi-mailbox-properties.gob"
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[ssl ? 2 : (inband_ssl ? 1 : 0)]), TRUE);
- gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
- gtk_entry_set_text(GTK_ENTRY(self->password_entry), password ? password : "");
- mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), (char *) authmech);
- gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), hostname);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[ssl ? 2 : (inband_ssl ? 1 : 0)]), port);
+ Self *self = SELF(properties);
+ MNPIMailbox *pi_mailbox = MN_PI_MAILBOX(mailbox);
+
+ PARENT_HANDLER(properties, mailbox);
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[pi_mailbox->connection_type]), TRUE);
+ mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), pi_mailbox->authmech);
+ gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), pi_mailbox->hostname);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[pi_mailbox->connection_type]), pi_mailbox->runtime_port);
}}
-#line 488 "mn-pi-mailbox-properties.c"
+#line 393 "mn-pi-mailbox-properties.c"
#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
-#line 218 "mn-pi-mailbox-properties.gob"
+#line 231 "mn-pi-mailbox-properties.gob"
+static MNMailbox *
+___8_mn_pi_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 400 "mn-pi-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+ ((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+ (* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+ ((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::get_mailbox"
+{
+#line 233 "mn-pi-mailbox-properties.gob"
+
+ MNMailbox *mailbox;
+ MNPIMailboxConnectionType connection_type;
+ char *authmech;
+ const char *hostname;
+ int port;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ self_get_contents(SELF(properties),
+ &connection_type,
+ &authmech,
+ &hostname,
+ &port);
+
+ g_object_set(mailbox,
+ "connection-type", connection_type,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ NULL);
+
+ g_free(authmech);
+
+ return mailbox;
+ }}
+#line 435 "mn-pi-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 260 "mn-pi-mailbox-properties.gob"
void
-mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, gboolean * ssl, gboolean * inband_ssl, const char ** username, const char ** password, char ** authmech, const char ** hostname, int * port)
-#line 494 "mn-pi-mailbox-properties.c"
+mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, MNPIMailboxConnectionType * connection_type, char ** authmech, const char ** hostname, int * port)
+#line 442 "mn-pi-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::get_contents"
-#line 218 "mn-pi-mailbox-properties.gob"
+#line 260 "mn-pi-mailbox-properties.gob"
g_return_if_fail (self != NULL);
-#line 218 "mn-pi-mailbox-properties.gob"
+#line 260 "mn-pi-mailbox-properties.gob"
g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
-#line 501 "mn-pi-mailbox-properties.c"
+#line 449 "mn-pi-mailbox-properties.c"
{
-#line 227 "mn-pi-mailbox-properties.gob"
+#line 266 "mn-pi-mailbox-properties.gob"
- gboolean _ssl;
- gboolean _inband_ssl;
-
- _ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[2]));
- _inband_ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[1]));
-
- if (ssl)
- *ssl = _ssl;
- if (inband_ssl)
- *inband_ssl = _inband_ssl;
- if (username)
- *username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
- if (password)
+ MNPIMailboxConnectionType _connection_type;
+
+ if (connection_type || port)
{
- const char *_password;
+ int i;
+
+ _connection_type = -1;
+
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])))
+ {
+ _connection_type = i;
+ break;
+ }
- _password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
- *password = *_password ? _password : NULL;
+ g_return_if_fail(_connection_type != -1);
}
+
+ if (connection_type)
+ *connection_type = _connection_type;
if (authmech)
*authmech = mn_auth_combo_box_get_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo));
if (hostname)
*hostname = gtk_entry_get_text(GTK_ENTRY(self->hostname_entry));
if (port)
- *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_ssl ? 2 : (_inband_ssl ? 1 : 0)]));
+ *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_connection_type]));
}}
-#line 531 "mn-pi-mailbox-properties.c"
+#line 480 "mn-pi-mailbox-properties.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-pi-mailbox-properties.gob b/src/mn-pi-mailbox-properties.gob
@@ -16,79 +16,79 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
+#include "mn-pi-mailbox.h"
%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
-#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
+#include "mn-stock.h"
%}
-class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
+class MN:PI:Mailbox:Properties from MN:Authenticated:Mailbox:Properties
{
- classwide const char *label;
- classwide int default_port[2]; /* 0: standard, 1: SSL/TLS */
-
- property BOOLEAN complete (override)
- get {}; /* dummy, implemented by subclasses */
-
- property STRING label (override)
- get { g_value_set_string(VAL, SELF_GET_CLASS(self)->label); };
-
- protected GtkSizeGroup *size_group unrefwith g_object_unref;
- property OBJECT size_group (override, link);
-
protected GtkWidget *hostname_entry;
- protected GtkWidget *username_entry;
- protected GtkWidget *password_entry;
protected GtkWidget *details_vbox;
protected GtkSizeGroup *details_size_group;
- protected GtkWidget *conn_radio[3];
- protected GtkWidget *port_spin[3];
+ protected GtkWidget *conn_radio[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+ protected GtkWidget *port_spin[MN_PI_MAILBOX_N_CONNECTION_TYPES];
protected GtkWidget *auth_combo;
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ class_init (class)
+ {
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+ p_class->stock_id = MN_STOCK_REMOTE;
+ }
+
+ init (self)
{
- GObject *object;
- Self *self;
- GtkWidget *label1;
- GtkWidget *label2;
+ MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+ MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
+ GtkWidget *hbox;
+ GtkWidget *label;
GtkWidget *expander;
GtkSizeGroup *radio_size_group;
int i;
+ const struct
+ {
+ MNPIMailboxConnectionType type;
+ const char *mnemonic;
+ } connection_types[] = {
+ { MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL, N_("sta_ndard") },
+ { MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL, N_("_in-band SSL/TLS") },
+ { MN_PI_MAILBOX_CONNECTION_TYPE_SSL, N_("SSL/TLS on sepa_rate port") }
+ };
+
+ hbox = mn_authenticated_mailbox_properties_field_new(auth,
+ _("_Hostname:"),
+ &label,
+ &self->hostname_entry);
+
+ gtk_box_pack_start(GTK_BOX(self), hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
-
- gtk_box_set_spacing(GTK_BOX(self), 6);
-
self->details_size_group = gtk_size_group_new(GTK_SIZE_GROUP_NONE);
- mn_mailbox_properties_field_new(GTK_VBOX(self),
- _("_Hostname:"),
- &label1,
- &self->hostname_entry);
+ gtk_size_group_add_widget(self->details_size_group, auth->username_label);
+ gtk_size_group_add_widget(self->details_size_group, auth->password_label);
+ gtk_size_group_add_widget(self->details_size_group, label);
- gtk_size_group_add_widget(self->size_group, label1);
- gtk_size_group_add_widget(self->details_size_group, label1);
-
- mn_mailbox_properties_credentials_new(GTK_VBOX(self),
- &label1,
- &self->username_entry,
- &label2,
- &self->password_entry);
-
- gtk_size_group_add_widget(self->size_group, label1);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(self->size_group, label2);
- gtk_size_group_add_widget(self->details_size_group, label2);
+ mn_mailbox_properties_add_entries(properties,
+ GTK_ENTRY(self->hostname_entry),
+ GTK_ENTRY(auth->username_entry),
+ GTK_ENTRY(auth->password_entry),
+ NULL);
expander = gtk_expander_new_with_mnemonic(_("_Details"));
gtk_expander_set_spacing(GTK_EXPANDER(expander), 6);
@@ -101,72 +101,96 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
radio_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
- _("sta_ndard"),
- SELF_GET_CLASS(self)->default_port[0],
- NULL,
- &label1,
- &self->conn_radio[0],
- &self->port_spin[0]);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(radio_size_group, self->conn_radio[0]);
-
- mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
- _("_in-band SSL/TLS"),
- SELF_GET_CLASS(self)->default_port[0],
- GTK_RADIO_BUTTON(self->conn_radio[0]),
- &label1,
- &self->conn_radio[1],
- &self->port_spin[1]);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(radio_size_group, self->conn_radio[1]);
-
- mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
- _("SSL/TLS on sepa_rate port"),
- SELF_GET_CLASS(self)->default_port[1],
- GTK_RADIO_BUTTON(self->conn_radio[0]),
- &label1,
- &self->conn_radio[2],
- &self->port_spin[2]);
- gtk_size_group_add_widget(self->details_size_group, label1);
- gtk_size_group_add_widget(radio_size_group, self->conn_radio[2]);
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ {
+ self_add_connection_type(self,
+ connection_types[i].type,
+ _(connection_types[i].mnemonic));
- g_object_unref(radio_size_group);
+ gtk_size_group_add_widget(radio_size_group, self->conn_radio[i]);
+
+ mn_mailbox_properties_add_entry(properties, GTK_ENTRY(self->port_spin[i]));
+ g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
+ }
+ g_object_unref(radio_size_group);
+
#ifndef WITH_SSL
- gtk_widget_set_sensitive(self->conn_radio[1], FALSE);
- gtk_widget_set_sensitive(self->conn_radio[2], FALSE);
+ gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+ gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
#endif
/* by default, standard is enabled */
- gtk_widget_set_sensitive(self->port_spin[1], FALSE);
- gtk_widget_set_sensitive(self->port_spin[2], FALSE);
+ gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+ gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
+
+ self_add_authentication(self);
- mn_mailbox_properties_authentication_new(GTK_VBOX(self->details_vbox),
- &label1,
- &self->auth_combo);
- gtk_size_group_add_widget(self->details_size_group, label1);
+ g_object_connect(self->hostname_entry,
+ "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+ "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+ NULL);
- mn_mailbox_properties_link_entries(GTK_ENTRY(self->hostname_entry),
- GTK_ENTRY(self->username_entry),
- GTK_ENTRY(self->password_entry),
- NULL);
+ g_signal_connect_swapped(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
g_signal_connect(expander, "notify::expanded", G_CALLBACK(self_notify_expanded_h), self);
+ }
- for (i = 0; i < 3; i++)
- g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
-
- g_signal_connect(self->hostname_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
- g_signal_connect(self->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
+ private void
+ add_connection_type (self,
+ MNPIMailboxConnectionType type,
+ const char *mnemonic (check null))
+ {
+ GtkWidget *label;
+ GtkWidget *hbox;
+ GtkWidget *port_label;
+
+ label = gtk_label_new(type == 0 ? _("Connection type:") : NULL);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ self->conn_radio[type] = type == 0
+ ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+ : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(self->conn_radio[0]), mnemonic);
+
+ port_label = gtk_label_new(_("Port:"));
- return object;
+ self->port_spin[type] = gtk_spin_button_new_with_range(0, 0xFFFF, 1);
+ gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(self->port_spin[type]), TRUE);
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), self->conn_radio[type], TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), port_label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), self->port_spin[type], FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+
+ gtk_size_group_add_widget(self->details_size_group, label);
}
+
+ private void
+ add_authentication (self)
+ {
+ GtkWidget *hbox;
+ GtkWidget *label;
+
+ hbox = gtk_hbox_new(FALSE, 12);
+ label = gtk_label_new_with_mnemonic(_("_Authentication mechanism:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ self->auth_combo = mn_auth_combo_box_new();
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), self->auth_combo);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), self->auth_combo, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+
+ gtk_size_group_add_widget(self->details_size_group, label);
+ }
+
private void
- notify_expanded_h (G:Object *object (check null type),
- GParamSpec *pspec (check null),
- gpointer user_data (check null))
+ notify_expanded_h (GObject *object, GParamSpec *pspec, gpointer user_data)
{
Self *self = user_data;
@@ -176,14 +200,6 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
: GTK_SIZE_GROUP_NONE);
}
- protected void
- entry_changed_h (Gtk:Editable *editable (check null type),
- gpointer user_data (check null))
- {
- Self *self = user_data;
- g_object_notify(G_OBJECT(self), "complete");
- }
-
private void
radio_toggled_h (Gtk:Toggle:Button *togglebutton (check null type),
gpointer user_data (check null))
@@ -191,64 +207,88 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
Self *self = user_data;
int i;
- for (i = 0; i < 3; i++)
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
gtk_widget_set_sensitive(self->port_spin[i], GTK_WIDGET_SENSITIVE(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
g_object_notify(G_OBJECT(self), "complete");
}
- protected void
- set_contents (self,
- gboolean ssl,
- gboolean inband_ssl,
- const char *username (check null),
- const char *password,
- const char *authmech,
- const char *hostname (check null),
- int port (check >= 0 <= 0xFFFF))
+ override (MN:Mailbox:Properties) void
+ set_mailbox (MN:Mailbox:Properties *properties (check null type),
+ MN:Mailbox *mailbox (check null type))
{
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[ssl ? 2 : (inband_ssl ? 1 : 0)]), TRUE);
- gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
- gtk_entry_set_text(GTK_ENTRY(self->password_entry), password ? password : "");
- mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), (char *) authmech);
- gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), hostname);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[ssl ? 2 : (inband_ssl ? 1 : 0)]), port);
+ Self *self = SELF(properties);
+ MNPIMailbox *pi_mailbox = MN_PI_MAILBOX(mailbox);
+
+ PARENT_HANDLER(properties, mailbox);
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[pi_mailbox->connection_type]), TRUE);
+ mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), pi_mailbox->authmech);
+ gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), pi_mailbox->hostname);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[pi_mailbox->connection_type]), pi_mailbox->runtime_port);
}
+ override (MN:Mailbox:Properties) MNMailbox *
+ get_mailbox (MNMailboxProperties *properties)
+ {
+ MNMailbox *mailbox;
+ MNPIMailboxConnectionType connection_type;
+ char *authmech;
+ const char *hostname;
+ int port;
+
+ mailbox = PARENT_HANDLER(properties);
+
+ self_get_contents(SELF(properties),
+ &connection_type,
+ &authmech,
+ &hostname,
+ &port);
+
+ g_object_set(mailbox,
+ "connection-type", connection_type,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ NULL);
+
+ g_free(authmech);
+
+ return mailbox;
+ }
+
protected void
get_contents (self,
- gboolean *ssl,
- gboolean *inband_ssl,
- const char **username,
- const char **password,
+ MNPIMailboxConnectionType *connection_type,
char **authmech,
const char **hostname,
int *port)
{
- gboolean _ssl;
- gboolean _inband_ssl;
-
- _ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[2]));
- _inband_ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[1]));
-
- if (ssl)
- *ssl = _ssl;
- if (inband_ssl)
- *inband_ssl = _inband_ssl;
- if (username)
- *username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
- if (password)
- {
- const char *_password;
+ MNPIMailboxConnectionType _connection_type;
- _password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
- *password = *_password ? _password : NULL;
+ if (connection_type || port)
+ {
+ int i;
+
+ _connection_type = -1;
+
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])))
+ {
+ _connection_type = i;
+ break;
+ }
+
+ g_return_if_fail(_connection_type != -1);
}
+
+ if (connection_type)
+ *connection_type = _connection_type;
if (authmech)
*authmech = mn_auth_combo_box_get_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo));
if (hostname)
*hostname = gtk_entry_get_text(GTK_ENTRY(self->hostname_entry));
if (port)
- *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_ssl ? 2 : (_inband_ssl ? 1 : 0)]));
+ *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_connection_type]));
}
}
diff --git a/src/mn-pi-mailbox-properties.h b/src/mn-pi-mailbox-properties.h
@@ -1,10 +1,12 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
+#include "mn-pi-mailbox.h"
#ifndef __MN_PI_MAILBOX_PROPERTIES_H__
#define __MN_PI_MAILBOX_PROPERTIES_H__
@@ -33,16 +35,13 @@ extern "C" {
typedef struct _MNPIMailboxProperties MNPIMailboxProperties;
#endif
struct _MNPIMailboxProperties {
- GtkVBox __parent__;
+ MNAuthenticatedMailboxProperties __parent__;
/*< private >*/
- GtkSizeGroup * size_group; /* protected */
GtkWidget * hostname_entry; /* protected */
- GtkWidget * username_entry; /* protected */
- GtkWidget * password_entry; /* protected */
GtkWidget * details_vbox; /* protected */
GtkSizeGroup * details_size_group; /* protected */
- GtkWidget * conn_radio[3]; /* protected */
- GtkWidget * port_spin[3]; /* protected */
+ GtkWidget * conn_radio[MN_PI_MAILBOX_N_CONNECTION_TYPES]; /* protected */
+ GtkWidget * port_spin[MN_PI_MAILBOX_N_CONNECTION_TYPES]; /* protected */
GtkWidget * auth_combo; /* protected */
};
@@ -51,9 +50,7 @@ struct _MNPIMailboxProperties {
*/
typedef struct _MNPIMailboxPropertiesClass MNPIMailboxPropertiesClass;
struct _MNPIMailboxPropertiesClass {
- GtkVBoxClass __parent__;
- const char * label;
- int default_port[2];
+ MNAuthenticatedMailboxPropertiesClass __parent__;
};
@@ -62,22 +59,6 @@ struct _MNPIMailboxPropertiesClass {
*/
GType mn_pi_mailbox_properties_get_type (void);
-/*
- * Argument wrapping macros
- */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label", __extension__ ({gchar **z = (arg); z;})
-#define MN_PI_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject **z = (arg); z;})
-#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label",(gchar **)(arg)
-#define MN_PI_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group",(GObject *)(arg)
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group",(GObject **)(arg)
-#endif /* __GNUC__ && !__STRICT_ANSI__ */
-
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/src/mn-pi-mailbox.c b/src/mn-pi-mailbox.c
@@ -0,0 +1,550 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-pi-mailbox.h"
+
+#include "mn-pi-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 29 "mn-pi-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+
+#line 35 "mn-pi-mailbox.c"
+static const GEnumValue _mn_pi_mailbox_connection_type_values[] = {
+ { MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL, (char *)"MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL", (char *)"normal" },
+ { MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL, (char *)"MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL", (char *)"inband-ssl" },
+ { MN_PI_MAILBOX_CONNECTION_TYPE_SSL, (char *)"MN_PI_MAILBOX_CONNECTION_TYPE_SSL", (char *)"ssl" },
+ { 0, NULL, NULL }
+};
+
+GType
+mn_pi_mailbox_connection_type_get_type (void)
+{
+ static GType type = 0;
+ if ___GOB_UNLIKELY(type == 0)
+ type = g_enum_register_static ("MNPIMailboxConnectionType", _mn_pi_mailbox_connection_type_values);
+ return type;
+}
+
+/* self casting macros */
+#define SELF(x) MN_PI_MAILBOX(x)
+#define SELF_CONST(x) MN_PI_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_PI_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_PI_MAILBOX
+#define SELF_CLASS(x) MN_PI_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_PI_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNPIMailbox Self;
+typedef MNPIMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_pi_mailbox_init (MNPIMailbox * o) G_GNUC_UNUSED;
+static void mn_pi_mailbox_class_init (MNPIMailboxClass * c) G_GNUC_UNUSED;
+static GObject * ___1_mn_pi_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___2_mn_pi_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___3_mn_pi_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_CONNECTION_TYPE,
+ PROP_AUTHMECH,
+ PROP_HOSTNAME,
+ PROP_PORT
+};
+
+/* pointer to the class of our parent */
+static MNAuthenticatedMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_split_uri mn_pi_mailbox_split_uri
+#define self_split_uri_auth mn_pi_mailbox_split_uri_auth
+#define self_split_uri_hostport mn_pi_mailbox_split_uri_hostport
+GType
+mn_pi_mailbox_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNPIMailboxClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_pi_mailbox_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNPIMailbox),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_pi_mailbox_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNPIMailbox", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNPIMailbox *)g_object_new(mn_pi_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNPIMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNPIMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNPIMailbox *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNPIMailbox *)g_object_new_valist (mn_pi_mailbox_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::finalize"
+ MNPIMailbox *self G_GNUC_UNUSED = MN_PI_MAILBOX (obj_self);
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 54 "mn-pi-mailbox.gob"
+ if(self->authmech) { g_free ((gpointer) self->authmech); self->authmech = NULL; }
+#line 141 "mn-pi-mailbox.c"
+#line 57 "mn-pi-mailbox.gob"
+ if(self->hostname) { g_free ((gpointer) self->hostname); self->hostname = NULL; }
+#line 144 "mn-pi-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_pi_mailbox_init (MNPIMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::init"
+}
+#undef __GOB_FUNCTION__
+static void
+mn_pi_mailbox_class_init (MNPIMailboxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
+ MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)c;
+
+ parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
+
+#line 68 "mn-pi-mailbox.gob"
+ g_object_class->constructor = ___1_mn_pi_mailbox_constructor;
+#line 82 "mn-pi-mailbox.gob"
+ mn_mailbox_class->seal = ___2_mn_pi_mailbox_seal;
+#line 98 "mn-pi-mailbox.gob"
+ mn_authenticated_mailbox_class->impl_check = ___3_mn_pi_mailbox_impl_check;
+#line 170 "mn-pi-mailbox.c"
+ g_object_class->finalize = ___finalize;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_enum
+ ("connection_type" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ MN_TYPE_PI_MAILBOX_CONNECTION_TYPE /* enum_type */,
+ MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (g_object_class,
+ PROP_CONNECTION_TYPE,
+ param_spec);
+ param_spec = g_param_spec_string
+ ("authmech" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_AUTHMECH,
+ param_spec);
+ param_spec = g_param_spec_string
+ ("hostname" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ NULL /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_HOSTNAME,
+ param_spec);
+ param_spec = g_param_spec_int
+ ("port" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ 0 /* minimum */,
+ 65535 /* maximum */,
+ 0 /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+ g_object_class_install_property (g_object_class,
+ PROP_PORT,
+ param_spec);
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::set_property"
+{
+ MNPIMailbox *self G_GNUC_UNUSED;
+
+ self = MN_PI_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_CONNECTION_TYPE:
+ {
+#line 49 "mn-pi-mailbox.gob"
+self->connection_type = g_value_get_enum (VAL);
+#line 236 "mn-pi-mailbox.c"
+ }
+ break;
+ case PROP_AUTHMECH:
+ {
+#line 55 "mn-pi-mailbox.gob"
+{ char *old = self->authmech; self->authmech = g_value_dup_string (VAL); g_free (old); }
+#line 243 "mn-pi-mailbox.c"
+ }
+ break;
+ case PROP_HOSTNAME:
+ {
+#line 58 "mn-pi-mailbox.gob"
+{ char *old = self->hostname; self->hostname = g_value_dup_string (VAL); g_free (old); }
+#line 250 "mn-pi-mailbox.c"
+ }
+ break;
+ case PROP_PORT:
+ {
+#line 61 "mn-pi-mailbox.gob"
+self->port = g_value_get_int (VAL);
+#line 257 "mn-pi-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::get_property"
+{
+ MNPIMailbox *self G_GNUC_UNUSED;
+
+ self = MN_PI_MAILBOX (object);
+
+ switch (property_id) {
+ case PROP_CONNECTION_TYPE:
+ {
+#line 49 "mn-pi-mailbox.gob"
+g_value_set_enum (VAL, self->connection_type);
+#line 288 "mn-pi-mailbox.c"
+ }
+ break;
+ case PROP_AUTHMECH:
+ {
+#line 55 "mn-pi-mailbox.gob"
+g_value_set_string (VAL, self->authmech);
+#line 295 "mn-pi-mailbox.c"
+ }
+ break;
+ case PROP_HOSTNAME:
+ {
+#line 58 "mn-pi-mailbox.gob"
+g_value_set_string (VAL, self->hostname);
+#line 302 "mn-pi-mailbox.c"
+ }
+ break;
+ case PROP_PORT:
+ {
+#line 61 "mn-pi-mailbox.gob"
+g_value_set_int (VAL, self->port);
+#line 309 "mn-pi-mailbox.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 68 "mn-pi-mailbox.gob"
+static GObject *
+___1_mn_pi_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 329 "mn-pi-mailbox.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+ ((G_OBJECT_CLASS(parent_class)->constructor)? \
+ (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+ ((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::constructor"
+{
+#line 70 "mn-pi-mailbox.gob"
+
+ GObject *object;
+ MNMailbox *mailbox;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ mailbox = MN_MAILBOX(object);
+
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_REMOTE);
+
+ return object;
+ }}
+#line 349 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 82 "mn-pi-mailbox.gob"
+static void
+___2_mn_pi_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 356 "mn-pi-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::seal"
+{
+#line 84 "mn-pi-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+
+ PARENT_HANDLER(mailbox);
+
+ /* do not save default port to mailboxes.xml */
+ if (self->port == SELF_GET_CLASS(self)->default_ports[self->connection_type])
+ self->port = 0;
+
+ self->runtime_port = self->port == 0
+ ? SELF_GET_CLASS(self)->default_ports[self->connection_type]
+ : self->port;
+ }}
+#line 377 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 98 "mn-pi-mailbox.gob"
+static void
+___3_mn_pi_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 384 "mn-pi-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+ (* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::impl_check"
+{
+#line 100 "mn-pi-mailbox.gob"
+
+#ifndef WITH_SSL
+ Self *self = SELF(mailbox);
+#endif
+
+ PARENT_HANDLER(mailbox);
+
+#ifndef WITH_SSL
+ if (self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
+ || self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL)
+ {
+ GDK_THREADS_ENTER();
+
+ mn_mailbox_set_error(MN_MAILBOX(mailbox), _("SSL/TLS support has not been compiled in"));
+ mn_mailbox_set_must_poll(MN_MAILBOX(mailbox), FALSE); /* disable the mailbox */
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+#endif
+ }}
+#line 413 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 122 "mn-pi-mailbox.gob"
+gboolean
+mn_pi_mailbox_split_uri (const char * uri, int maxlen, char * scheme, char * auth, char * location, gboolean * has_auth)
+#line 420 "mn-pi-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::split_uri"
+#line 122 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (uri != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (scheme != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (auth != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (location != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (has_auth != NULL, (gboolean )0);
+#line 433 "mn-pi-mailbox.c"
+{
+#line 129 "mn-pi-mailbox.gob"
+
+ char *pat;
+ int n;
+
+ pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", maxlen, maxlen, maxlen);
+ n = sscanf(uri, pat, scheme, auth, location);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ *has_auth = n == 3;
+
+ if (! *has_auth)
+ strcpy(location, auth);
+
+ return TRUE;
+ }
+ else
+ return FALSE;
+ }}
+#line 456 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 150 "mn-pi-mailbox.gob"
+gboolean
+mn_pi_mailbox_split_uri_auth (const char * auth, int maxlen, char * username, char * authmech, gboolean * has_username, gboolean * has_authmech)
+#line 462 "mn-pi-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::split_uri_auth"
+#line 150 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (auth != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (username != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (authmech != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (has_username != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+ g_return_val_if_fail (has_authmech != NULL, (gboolean )0);
+#line 475 "mn-pi-mailbox.c"
+{
+#line 157 "mn-pi-mailbox.gob"
+
+ char *pat;
+ int n;
+
+ pat = g_strdup_printf("%%%i[^;];AUTH=%%%is", maxlen, maxlen);
+ n = sscanf(auth, pat, username, authmech);
+ g_free(pat);
+
+ *has_username = FALSE;
+ *has_authmech = FALSE;
+
+ if (n >= 1)
+ {
+ *has_username = TRUE;
+
+ if (n == 2)
+ *has_authmech = TRUE;
+ }
+ else
+ {
+ pat = g_strdup_printf(";AUTH=%%%is", maxlen);
+ n = sscanf(auth, pat, authmech);
+ g_free(pat);
+
+ if (n < 1)
+ return FALSE;
+
+ *has_authmech = TRUE;
+ }
+
+ return TRUE;
+ }}
+#line 510 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 190 "mn-pi-mailbox.gob"
+void
+mn_pi_mailbox_split_uri_hostport (const char * hostport, int maxlen, char * hostname, int * port)
+#line 516 "mn-pi-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::split_uri_hostport"
+#line 190 "mn-pi-mailbox.gob"
+ g_return_if_fail (hostport != NULL);
+#line 190 "mn-pi-mailbox.gob"
+ g_return_if_fail (hostname != NULL);
+#line 190 "mn-pi-mailbox.gob"
+ g_return_if_fail (port != NULL);
+#line 525 "mn-pi-mailbox.c"
+{
+#line 195 "mn-pi-mailbox.gob"
+
+ char *pat;
+ int n;
+
+ /* split host:port part in 2 subparts: host and port */
+
+ pat = g_strdup_printf("[%%%i[^]]]:%%u", maxlen);
+ n = sscanf(hostport, pat, hostname, port);
+ g_free(pat);
+
+ if (n < 1)
+ {
+ pat = g_strdup_printf("%%%i[^:]:%%u", maxlen);
+ n = sscanf(hostport, pat, hostname, port);
+ g_free(pat);
+ }
+
+ g_assert(n >= 1);
+
+ if (n < 2)
+ *port = 0;
+ }}
+#line 550 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-pi-mailbox.gob b/src/mn-pi-mailbox.gob
@@ -0,0 +1,217 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-authenticated-mailbox.h"
+%}
+
+%h{
+#define MN_PI_MAILBOX_N_CONNECTION_TYPES 3
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+%}
+
+enum MN_PI_MAILBOX_CONNECTION_TYPE
+{
+ NORMAL,
+ INBAND_SSL,
+ SSL,
+} MN:PI:Mailbox:Connection:Type;
+
+class MN:PI:Mailbox from MN:Authenticated:Mailbox
+{
+ classwide int *default_ports;
+
+ public MNPIMailboxConnectionType connection_type;
+ property ENUM connection_type (link,
+ enum_type = MN:PI:Mailbox:Connection:Type,
+ flags = CONSTRUCT | MN_MAILBOX_PARAM_PERMANENT,
+ default_value = MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL);
+
+ public char *authmech destroywith g_free;
+ property STRING authmech (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+ public char *hostname destroywith g_free;
+ property STRING hostname (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+ public int port;
+ property INT port (link,
+ flags = MN_MAILBOX_PARAM_PERMANENT,
+ minimum = 0,
+ maximum = 65535);
+
+ public int runtime_port;
+
+ override (G:Object) GObject *
+ constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ {
+ GObject *object;
+ MNMailbox *mailbox;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ mailbox = MN_MAILBOX(object);
+
+ mn_mailbox_set_stock_id(mailbox, MN_STOCK_REMOTE);
+
+ return object;
+ }
+
+ override (MN:Mailbox) void
+ seal (MNMailbox *mailbox)
+ {
+ Self *self = SELF(mailbox);
+
+ PARENT_HANDLER(mailbox);
+
+ /* do not save default port to mailboxes.xml */
+ if (self->port == SELF_GET_CLASS(self)->default_ports[self->connection_type])
+ self->port = 0;
+
+ self->runtime_port = self->port == 0
+ ? SELF_GET_CLASS(self)->default_ports[self->connection_type]
+ : self->port;
+ }
+
+ override (MN:Authenticated:Mailbox) void
+ impl_check (MNAuthenticatedMailbox *mailbox)
+ {
+#ifndef WITH_SSL
+ Self *self = SELF(mailbox);
+#endif
+
+ PARENT_HANDLER(mailbox);
+
+#ifndef WITH_SSL
+ if (self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
+ || self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL)
+ {
+ GDK_THREADS_ENTER();
+
+ mn_mailbox_set_error(MN_MAILBOX(mailbox), _("SSL/TLS support has not been compiled in"));
+ mn_mailbox_set_must_poll(MN_MAILBOX(mailbox), FALSE); /* disable the mailbox */
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+#endif
+ }
+
+ protected gboolean
+ split_uri (const char *uri (check null),
+ int maxlen,
+ char *scheme (check null),
+ char *auth (check null),
+ char *location (check null),
+ gboolean *has_auth (check null))
+ {
+ char *pat;
+ int n;
+
+ pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", maxlen, maxlen, maxlen);
+ n = sscanf(uri, pat, scheme, auth, location);
+ g_free(pat);
+
+ if (n >= 2)
+ {
+ *has_auth = n == 3;
+
+ if (! *has_auth)
+ strcpy(location, auth);
+
+ return TRUE;
+ }
+ else
+ return FALSE;
+ }
+
+ protected gboolean
+ split_uri_auth (const char *auth (check null),
+ int maxlen,
+ char *username (check null),
+ char *authmech (check null),
+ gboolean *has_username (check null),
+ gboolean *has_authmech (check null))
+ {
+ char *pat;
+ int n;
+
+ pat = g_strdup_printf("%%%i[^;];AUTH=%%%is", maxlen, maxlen);
+ n = sscanf(auth, pat, username, authmech);
+ g_free(pat);
+
+ *has_username = FALSE;
+ *has_authmech = FALSE;
+
+ if (n >= 1)
+ {
+ *has_username = TRUE;
+
+ if (n == 2)
+ *has_authmech = TRUE;
+ }
+ else
+ {
+ pat = g_strdup_printf(";AUTH=%%%is", maxlen);
+ n = sscanf(auth, pat, authmech);
+ g_free(pat);
+
+ if (n < 1)
+ return FALSE;
+
+ *has_authmech = TRUE;
+ }
+
+ return TRUE;
+ }
+
+ protected void
+ split_uri_hostport (const char *hostport (check null),
+ int maxlen,
+ char *hostname (check null),
+ int *port (check null))
+ {
+ char *pat;
+ int n;
+
+ /* split host:port part in 2 subparts: host and port */
+
+ pat = g_strdup_printf("[%%%i[^]]]:%%u", maxlen);
+ n = sscanf(hostport, pat, hostname, port);
+ g_free(pat);
+
+ if (n < 1)
+ {
+ pat = g_strdup_printf("%%%i[^:]:%%u", maxlen);
+ n = sscanf(hostport, pat, hostname, port);
+ g_free(pat);
+ }
+
+ g_assert(n >= 1);
+
+ if (n < 2)
+ *port = 0;
+ }
+}
diff --git a/src/mn-pi-mailbox.h b/src/mn-pi-mailbox.h
@@ -0,0 +1,101 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-authenticated-mailbox.h"
+
+#ifndef __MN_PI_MAILBOX_H__
+#define __MN_PI_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+#define MN_PI_MAILBOX_N_CONNECTION_TYPES 3
+
+
+typedef enum {
+ MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL,
+ MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL,
+ MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+} MNPIMailboxConnectionType;
+#define MN_TYPE_PI_MAILBOX_CONNECTION_TYPE mn_pi_mailbox_connection_type_get_type()
+GType mn_pi_mailbox_connection_type_get_type (void);
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_PI_MAILBOX (mn_pi_mailbox_get_type())
+#define MN_PI_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pi_mailbox_get_type(), MNPIMailbox)
+#define MN_PI_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pi_mailbox_get_type(), MNPIMailbox const)
+#define MN_PI_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_pi_mailbox_get_type(), MNPIMailboxClass)
+#define MN_IS_PI_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_pi_mailbox_get_type ())
+
+#define MN_PI_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_pi_mailbox_get_type(), MNPIMailboxClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_PI_MAILBOX__
+#define __TYPEDEF_MN_PI_MAILBOX__
+typedef struct _MNPIMailbox MNPIMailbox;
+#endif
+struct _MNPIMailbox {
+ MNAuthenticatedMailbox __parent__;
+ /*< public >*/
+ MNPIMailboxConnectionType connection_type;
+ char * authmech;
+ char * hostname;
+ int port;
+ int runtime_port;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNPIMailboxClass MNPIMailboxClass;
+struct _MNPIMailboxClass {
+ MNAuthenticatedMailboxClass __parent__;
+ int * default_ports;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_pi_mailbox_get_type (void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_PI_MAILBOX_PROP_CONNECTION_TYPE(arg) "connection_type", __extension__ ({gint z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_CONNECTION_TYPE(arg) "connection_type", __extension__ ({gint *z = (arg); z;})
+#define MN_PI_MAILBOX_PROP_AUTHMECH(arg) "authmech", __extension__ ({gchar *z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_AUTHMECH(arg) "authmech", __extension__ ({gchar **z = (arg); z;})
+#define MN_PI_MAILBOX_PROP_HOSTNAME(arg) "hostname", __extension__ ({gchar *z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_HOSTNAME(arg) "hostname", __extension__ ({gchar **z = (arg); z;})
+#define MN_PI_MAILBOX_PROP_PORT(arg) "port", __extension__ ({gint z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_PORT(arg) "port", __extension__ ({gint *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_PI_MAILBOX_PROP_CONNECTION_TYPE(arg) "connection_type",(gint )(arg)
+#define MN_PI_MAILBOX_GET_PROP_CONNECTION_TYPE(arg) "connection_type",(gint *)(arg)
+#define MN_PI_MAILBOX_PROP_AUTHMECH(arg) "authmech",(gchar *)(arg)
+#define MN_PI_MAILBOX_GET_PROP_AUTHMECH(arg) "authmech",(gchar **)(arg)
+#define MN_PI_MAILBOX_PROP_HOSTNAME(arg) "hostname",(gchar *)(arg)
+#define MN_PI_MAILBOX_GET_PROP_HOSTNAME(arg) "hostname",(gchar **)(arg)
+#define MN_PI_MAILBOX_PROP_PORT(arg) "port",(gint )(arg)
+#define MN_PI_MAILBOX_GET_PROP_PORT(arg) "port",(gint *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-pop3-mailbox-private.h b/src/mn-pop3-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_POP3_MAILBOX_PRIVATE_H__
#define __MN_POP3_MAILBOX_PRIVATE_H__
@@ -10,9 +10,9 @@ extern "C" {
#endif /* __cplusplus */
struct _MNPOP3MailboxPrivate {
-#line 117 "mn-pop3-mailbox.gob"
+#line 127 "mn-pop3-mailbox.gob"
int login_delay;
-#line 118 "mn-pop3-mailbox.gob"
+#line 128 "mn-pop3-mailbox.gob"
GTimer * authentication_timer;
#line 18 "mn-pop3-mailbox-private.h"
};
diff --git a/src/mn-pop3-mailbox-properties-private.h b/src/mn-pop3-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_POP3_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_POP3_MAILBOX_PROPERTIES_PRIVATE_H__
diff --git a/src/mn-pop3-mailbox-properties.c b/src/mn-pop3-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:26 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:55 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,18 +23,19 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 24 "mn-pop3-mailbox-properties.gob"
+#line 25 "mn-pop3-mailbox-properties.gob"
#include "config.h"
#include <glib/gi18n.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
+#include "mn-authenticated-mailbox-properties-private.h"
#include "mn-pi-mailbox-properties-private.h"
#include "mn-properties-dialog.h"
+#include "mn-pop3-mailbox.h"
-#line 38 "mn-pop3-mailbox-properties.c"
+#line 39 "mn-pop3-mailbox-properties.c"
/* self casting macros */
#define SELF(x) MN_POP3_MAILBOX_PROPERTIES(x)
#define SELF_CONST(x) MN_POP3_MAILBOX_PROPERTIES_CONST(x)
@@ -50,35 +51,18 @@ typedef MNPOP3MailboxPropertiesClass SelfClass;
/* here are local prototypes */
static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * o) G_GNUC_UNUSED;
static void mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_pop3_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * self) G_GNUC_UNUSED;
enum {
PROP_0,
- PROP_COMPLETE
+ PROP_COMPLETE,
+ PROP_DEFAULT_NAME
};
/* pointer to the class of our parent */
static MNPIMailboxPropertiesClass *parent_class = NULL;
-/* Short form macros */
-#define self_set_uri mn_pop3_mailbox_properties_set_uri
-#define self_get_uri mn_pop3_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 96 "mn-pop3-mailbox-properties.gob"
- iface->set_uri = self_set_uri;
-#line 116 "mn-pop3-mailbox-properties.gob"
- iface->get_uri = self_get_uri;
-#line 80 "mn-pop3-mailbox-properties.c"
-}
-
GType
mn_pop3_mailbox_properties_get_type (void)
{
@@ -98,16 +82,7 @@ mn_pop3_mailbox_properties_get_type (void)
NULL
};
- static const GInterfaceInfo MN_Mailbox_Properties_info = {
- (GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
- NULL,
- NULL
- };
-
type = g_type_register_static (MN_TYPE_PI_MAILBOX_PROPERTIES, "MNPOP3MailboxProperties", &info, (GTypeFlags)0);
- g_type_add_interface_static (type,
- MN_TYPE_MAILBOX_PROPERTIES,
- &MN_Mailbox_Properties_info);
}
return type;
@@ -130,41 +105,56 @@ GET_NEW_VARG (const char *first, ...)
return ret;
}
-static void
-mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::init"
-}
-#undef __GOB_FUNCTION__
-#line 63 "mn-pop3-mailbox-properties.gob"
+#line 79 "mn-pop3-mailbox-properties.gob"
static void
mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GNUC_UNUSED)
-#line 143 "mn-pop3-mailbox-properties.c"
+#line 112 "mn-pop3-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX_PROPERTIES);
-#line 72 "mn-pop3-mailbox-properties.gob"
- g_object_class->constructor = ___2_mn_pop3_mailbox_properties_constructor;
-#line 152 "mn-pop3-mailbox-properties.c"
g_object_class->get_property = ___object_get_property;
{
g_object_class_override_property (g_object_class,
PROP_COMPLETE,
"complete");
+ g_object_class_override_property (g_object_class,
+ PROP_DEFAULT_NAME,
+ "default_name");
}
{
-#line 64 "mn-pop3-mailbox-properties.gob"
+#line 80 "mn-pop3-mailbox-properties.gob"
- MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
- pi_class->label = "POP3";
- pi_class->default_port[0] = mn_uri_get_default_port("pop");
- pi_class->default_port[1] = mn_uri_get_default_port("pops");
+ p_class->type = "pop3";
+ p_class->combo_label = "POP3";
-#line 168 "mn-pop3-mailbox-properties.c"
+#line 136 "mn-pop3-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 87 "mn-pop3-mailbox-properties.gob"
+static void
+mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * self G_GNUC_UNUSED)
+#line 143 "mn-pop3-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::init"
+ {
+#line 88 "mn-pop3-mailbox-properties.gob"
+
+ MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+ int i;
+
+ mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
+ mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
+
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_pop3_mailbox_default_ports[i]);
+
+#line 158 "mn-pop3-mailbox-properties.c"
}
}
#undef __GOB_FUNCTION__
@@ -183,31 +173,48 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_COMPLETE:
{
-#line 39 "mn-pop3-mailbox-properties.gob"
+#line 41 "mn-pop3-mailbox-properties.gob"
MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
gboolean complete;
- const char *username;
const char *hostname;
mn_pi_mailbox_properties_get_contents(pi,
NULL,
NULL,
- &username,
- NULL,
- NULL,
&hostname,
NULL);
- complete = *username && *hostname;
+ complete = *hostname != 0;
#ifndef WITH_SSL
if (complete)
- complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+ complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
#endif /* WITH_SSL */
g_value_set_boolean(VAL, complete);
-#line 211 "mn-pop3-mailbox-properties.c"
+#line 197 "mn-pop3-mailbox-properties.c"
+ }
+ break;
+ case PROP_DEFAULT_NAME:
+ {
+#line 63 "mn-pop3-mailbox-properties.gob"
+
+ const char *username;
+ const char *hostname;
+
+ mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+ &username,
+ NULL);
+ mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+ NULL,
+ NULL,
+ &hostname,
+ NULL);
+
+ g_value_take_string(VAL, mn_pop3_mailbox_build_name(username, hostname));
+
+#line 218 "mn-pop3-mailbox-properties.c"
}
break;
default:
@@ -223,116 +230,3 @@ ___object_get_property (GObject *object,
#undef __GOB_FUNCTION__
-
-#line 72 "mn-pop3-mailbox-properties.gob"
-static GObject *
-___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 231 "mn-pop3-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::constructor"
-{
-#line 74 "mn-pop3-mailbox-properties.gob"
-
- GObject *object;
- Self *self;
- MNPIMailboxProperties *pi;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
- pi = MN_PI_MAILBOX_PROPERTIES(object);
-
- mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
- mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
-
- mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
- pi->username_entry, _("Your username on the POP3 server"),
- pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the POP3 server"),
- pi->port_spin[1], _("The port number of the POP3 server"),
- NULL);
-
- return object;
- }}
-#line 261 "mn-pop3-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 96 "mn-pop3-mailbox-properties.gob"
-static gboolean
-mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri)
-#line 268 "mn-pop3-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::set_uri"
-#line 96 "mn-pop3-mailbox-properties.gob"
- g_return_val_if_fail (properties != NULL, (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 279 "mn-pop3-mailbox-properties.c"
-{
-#line 99 "mn-pop3-mailbox-properties.gob"
-
- if (MN_URI_IS_POP(uri))
- {
- mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- MN_URI_IS_SSL(uri),
- MN_URI_IS_INBAND_SSL(uri),
- uri->username,
- uri->password,
- uri->authmech,
- uri->hostname,
- uri->port);
- return TRUE;
- }
- else
- return FALSE;
- }}
-#line 298 "mn-pop3-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 116 "mn-pop3-mailbox-properties.gob"
-static MNURI *
-mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties)
-#line 304 "mn-pop3-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::get_uri"
-#line 116 "mn-pop3-mailbox-properties.gob"
- g_return_val_if_fail (properties != NULL, (MNURI * )0);
-#line 116 "mn-pop3-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (MNURI * )0);
-#line 311 "mn-pop3-mailbox-properties.c"
-{
-#line 118 "mn-pop3-mailbox-properties.gob"
-
- gboolean ssl;
- gboolean inband_ssl;
- const char *username;
- const char *password;
- char *authmech;
- const char *hostname;
- int port;
- MNURI *uri;
-
- mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- &ssl,
- &inband_ssl,
- &username,
- &password,
- &authmech,
- &hostname,
- &port);
-
- uri = mn_uri_new_pop(ssl, inband_ssl, username, password, authmech, hostname, port);
- g_free(authmech);
-
- return uri;
- }}
-#line 338 "mn-pop3-mailbox-properties.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox-properties.gob b/src/mn-pop3-mailbox-properties.gob
@@ -16,127 +16,83 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include "mn-pi-mailbox-properties.h"
%}
+
%{
#include "config.h"
#include <glib/gi18n.h>
#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
+#include "mn-authenticated-mailbox-properties-private.h"
#include "mn-pi-mailbox-properties-private.h"
#include "mn-properties-dialog.h"
+#include "mn-pop3-mailbox.h"
%}
-class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mailbox:Properties)
+class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties
{
property BOOLEAN complete (override)
get
{
MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
gboolean complete;
- const char *username;
const char *hostname;
mn_pi_mailbox_properties_get_contents(pi,
NULL,
NULL,
- &username,
- NULL,
- NULL,
&hostname,
NULL);
- complete = *username && *hostname;
+ complete = *hostname != 0;
#ifndef WITH_SSL
if (complete)
- complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+ complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
#endif /* WITH_SSL */
g_value_set_boolean(VAL, complete);
};
+
+ property STRING default_name (override)
+ get
+ {
+ const char *username;
+ const char *hostname;
+
+ mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+ &username,
+ NULL);
+ mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+ NULL,
+ NULL,
+ &hostname,
+ NULL);
+
+ g_value_take_string(VAL, mn_pop3_mailbox_build_name(username, hostname));
+ };
class_init (class)
{
- MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
- pi_class->label = "POP3";
- pi_class->default_port[0] = mn_uri_get_default_port("pop");
- pi_class->default_port[1] = mn_uri_get_default_port("pops");
+ p_class->type = "pop3";
+ p_class->combo_label = "POP3";
}
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ init (self)
{
- GObject *object;
- Self *self;
- MNPIMailboxProperties *pi;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
- pi = MN_PI_MAILBOX_PROPERTIES(object);
+ MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+ int i;
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
- mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
- pi->username_entry, _("Your username on the POP3 server"),
- pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the POP3 server"),
- pi->port_spin[1], _("The port number of the POP3 server"),
- NULL);
-
- return object;
- }
-
- interface MN:Mailbox:Properties private gboolean
- set_uri (MN:Mailbox:Properties *properties (check null type),
- MN:URI *uri (check null type))
- {
- if (MN_URI_IS_POP(uri))
- {
- mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- MN_URI_IS_SSL(uri),
- MN_URI_IS_INBAND_SSL(uri),
- uri->username,
- uri->password,
- uri->authmech,
- uri->hostname,
- uri->port);
- return TRUE;
- }
- else
- return FALSE;
- }
-
- interface MN:Mailbox:Properties private MNURI *
- get_uri (MN:Mailbox:Properties *properties (check null type))
- {
- gboolean ssl;
- gboolean inband_ssl;
- const char *username;
- const char *password;
- char *authmech;
- const char *hostname;
- int port;
- MNURI *uri;
-
- mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
- &ssl,
- &inband_ssl,
- &username,
- &password,
- &authmech,
- &hostname,
- &port);
-
- uri = mn_uri_new_pop(ssl, inband_ssl, username, password, authmech, hostname, port);
- g_free(authmech);
-
- return uri;
+ for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_pop3_mailbox_default_ports[i]);
}
}
diff --git a/src/mn-pop3-mailbox-properties.h b/src/mn-pop3-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -55,8 +55,10 @@ GType mn_pop3_mailbox_properties_get_type (void);
*/
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name", __extension__ ({gchar **z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
+#define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name",(gchar **)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */
diff --git a/src/mn-pop3-mailbox.c b/src/mn-pop3-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:55 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -21,7 +21,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 33 "mn-pop3-mailbox.gob"
+#line 39 "mn-pop3-mailbox.gob"
#include "config.h"
#include <stdio.h>
@@ -32,78 +32,82 @@
#include <glib/gi18n.h>
#include <libgnomevfs/gnome-vfs-utils.h>
#include <eel/eel.h>
+#ifdef WITH_SASL
+#include <sasl/saslutil.h>
+#endif /* WITH_SASL */
#include "mn-mailbox-private.h"
#include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
#include "mn-client-session.h"
#include "mn-util.h"
#include "mn-md5.h"
#include "mn-message-mime.h"
- enum
- {
- STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
- STATE_CAPA,
+enum
+{
+ STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+ STATE_CAPA,
#ifdef WITH_SSL
- STATE_STLS,
+ STATE_STLS,
#endif
#ifdef WITH_SASL
- STATE_AUTH,
+ STATE_AUTH,
#endif
- STATE_APOP,
- STATE_USER,
- STATE_PASS,
- STATE_LIST,
- STATE_RETR,
- STATE_QUIT
- };
-
- enum
- {
- RESULT_ERROR_QUIT = -1, /* server reported an error, quit normally */
- RESULT_ERROR_END = -2 /* server reported an error, close the connection */
- };
-
- struct _MNClientSessionPrivate
- {
- MNMailbox *mailbox;
- MNAuthenticatedMailbox *authenticated_mailbox;
- MNPOP3Mailbox *self;
- MNClientSession *session;
- gboolean in_list;
- gboolean in_retr;
- char *apop_timestamp;
- GSList *auth_mechanisms;
+ STATE_APOP,
+ STATE_USER,
+ STATE_PASS,
+ STATE_LIST,
+ STATE_RETR_TOP,
+ STATE_QUIT
+};
+
+struct _MNClientSessionPrivate
+{
+ MNMailbox *mailbox;
+ MNAuthenticatedMailbox *authenticated_mailbox;
+ MNPIMailbox *pi_mailbox;
+ MNPOP3Mailbox *self;
+ MNClientSession *session;
+ gboolean in_list;
+ gboolean in_retr_top;
+ char *apop_timestamp;
+ GSList *auth_mechanisms;
+ gboolean top_supported;
#ifdef WITH_SSL
- gboolean stls_supported;
- gboolean stls_completed;
+ gboolean stls_supported;
+ gboolean stls_completed;
#endif
#ifdef WITH_SASL
- const char *sasl_mechanism;
+ GSList *sasl_remaining_mechanisms;
+ const char *sasl_mechanism;
+ gboolean sasl_had_clientout;
#endif
- gboolean authenticated;
- gboolean login_delay_user;
- GSList *message_numbers;
- GSList *current_message_number;
- GSList *messages;
- GString *current_message;
- };
-
- typedef enum
- {
- RESPONSE_OK,
- RESPONSE_ERR,
- RESPONSE_LIST_ITEM,
- RESPONSE_LIST_END,
- RESPONSE_CONTINUATION
- } ResponseType;
-
- struct _MNClientSessionResponse
- {
- ResponseType type;
- char *arguments;
- };
-
-#line 107 "mn-pop3-mailbox.c"
+ gboolean authenticated;
+ gboolean login_delay_user;
+ GSList *message_numbers;
+ GSList *current_message_number;
+ GSList *messages;
+ GString *current_message;
+};
+
+typedef enum
+{
+ RESPONSE_OK,
+ RESPONSE_ERR,
+ RESPONSE_LIST_ITEM,
+ RESPONSE_LIST_END,
+ RESPONSE_CONTINUATION
+} ResponseType;
+
+struct _MNClientSessionResponse
+{
+ ResponseType type;
+ char *arguments;
+};
+
+int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 110, 110, 995 };
+
+#line 111 "mn-pop3-mailbox.c"
/* self casting macros */
#define SELF(x) MN_POP3_MAILBOX(x)
#define SELF_CONST(x) MN_POP3_MAILBOX_CONST(x)
@@ -121,14 +125,14 @@ typedef MNPOP3MailboxClass SelfClass;
static void mn_pop3_mailbox_init (MNPOP3Mailbox * o) G_GNUC_UNUSED;
static void mn_pop3_mailbox_class_init (MNPOP3MailboxClass * class) G_GNUC_UNUSED;
static GObject * ___2_mn_pop3_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_pop3_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
+static void ___3_mn_pop3_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_pop3_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
static int mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_enter_capa_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_pop3_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_pop3_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password) G_GNUC_UNUSED;
static int mn_pop3_mailbox_enter_auth_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
@@ -139,24 +143,23 @@ static int mn_pop3_mailbox_enter_pass_cb (MNClientSession * session, MNClientSes
static int mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_pop3_mailbox_enter_retr_top_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_pop3_mailbox_handle_retr_top_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_enter_quit_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void ___19_mn_pop3_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static MNClientSessionResponse * mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static void mn_pop3_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_apop, gboolean tried_pass) G_GNUC_UNUSED;
static int mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean retr) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean in_retr_top) G_GNUC_UNUSED;
/* pointer to the class of our parent */
-static MNAuthenticatedMailboxClass *parent_class = NULL;
+static MNPIMailboxClass *parent_class = NULL;
/* Short form macros */
#define self_handle_greeting_cb mn_pop3_mailbox_handle_greeting_cb
@@ -164,8 +167,7 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
#define self_handle_capa_cb mn_pop3_mailbox_handle_capa_cb
#define self_enter_stls_cb mn_pop3_mailbox_enter_stls_cb
#define self_handle_stls_cb mn_pop3_mailbox_handle_stls_cb
-#define self_sasl_get_username_cb mn_pop3_mailbox_sasl_get_username_cb
-#define self_sasl_get_password_cb mn_pop3_mailbox_sasl_get_password_cb
+#define self_sasl_get_credentials_cb mn_pop3_mailbox_sasl_get_credentials_cb
#define self_enter_auth_cb mn_pop3_mailbox_enter_auth_cb
#define self_handle_auth_cb mn_pop3_mailbox_handle_auth_cb
#define self_enter_apop_cb mn_pop3_mailbox_enter_apop_cb
@@ -176,20 +178,20 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
#define self_handle_pass_cb mn_pop3_mailbox_handle_pass_cb
#define self_enter_list_cb mn_pop3_mailbox_enter_list_cb
#define self_handle_list_cb mn_pop3_mailbox_handle_list_cb
-#define self_enter_retr_cb mn_pop3_mailbox_enter_retr_cb
-#define self_handle_retr_cb mn_pop3_mailbox_handle_retr_cb
+#define self_enter_retr_top_cb mn_pop3_mailbox_enter_retr_top_cb
+#define self_handle_retr_top_cb mn_pop3_mailbox_handle_retr_top_cb
#define self_enter_quit_cb mn_pop3_mailbox_enter_quit_cb
#define self_handle_quit_cb mn_pop3_mailbox_handle_quit_cb
#define self_notice_cb mn_pop3_mailbox_notice_cb
#define self_warning_cb mn_pop3_mailbox_warning_cb
#define self_response_new_cb mn_pop3_mailbox_response_new_cb
#define self_response_free_cb mn_pop3_mailbox_response_free_cb
-#define self_custom_handler_cb mn_pop3_mailbox_custom_handler_cb
#define self_session_authenticate mn_pop3_mailbox_session_authenticate
#define self_session_authenticate_fallback mn_pop3_mailbox_session_authenticate_fallback
#define self_session_authenticated mn_pop3_mailbox_session_authenticated
#define self_session_set_error_from_arguments mn_pop3_mailbox_session_set_error_from_arguments
#define self_handle_list_response mn_pop3_mailbox_handle_list_response
+#define self_build_name mn_pop3_mailbox_build_name
GType
mn_pop3_mailbox_get_type (void)
{
@@ -209,7 +211,7 @@ mn_pop3_mailbox_get_type (void)
NULL
};
- type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNPOP3Mailbox", &info, (GTypeFlags)0);
+ type = g_type_register_static (MN_TYPE_PI_MAILBOX, "MNPOP3Mailbox", &info, (GTypeFlags)0);
}
return type;
@@ -241,9 +243,9 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 118 "mn-pop3-mailbox.gob"
+#line 128 "mn-pop3-mailbox.gob"
if(self->_priv->authentication_timer) { g_timer_destroy ((gpointer) self->_priv->authentication_timer); self->_priv->authentication_timer = NULL; }
-#line 247 "mn-pop3-mailbox.c"
+#line 249 "mn-pop3-mailbox.c"
}
#undef __GOB_FUNCTION__
@@ -251,46 +253,50 @@ static void
mn_pop3_mailbox_init (MNPOP3Mailbox * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNPOP3MailboxPrivate);
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_POP3_MAILBOX,MNPOP3MailboxPrivate);
}
#undef __GOB_FUNCTION__
-#line 120 "mn-pop3-mailbox.gob"
+#line 130 "mn-pop3-mailbox.gob"
static void
mn_pop3_mailbox_class_init (MNPOP3MailboxClass * class G_GNUC_UNUSED)
-#line 261 "mn-pop3-mailbox.c"
+#line 263 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+ MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
g_type_class_add_private(class,sizeof(MNPOP3MailboxPrivate));
- parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
+ parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX);
-#line 125 "mn-pop3-mailbox.gob"
+#line 136 "mn-pop3-mailbox.gob"
g_object_class->constructor = ___2_mn_pop3_mailbox_constructor;
-#line 142 "mn-pop3-mailbox.gob"
- mn_mailbox_class->impl_is = ___3_mn_pop3_mailbox_impl_is;
-#line 602 "mn-pop3-mailbox.gob"
- mn_mailbox_class->impl_check = ___19_mn_pop3_mailbox_impl_check;
-#line 277 "mn-pop3-mailbox.c"
+#line 150 "mn-pop3-mailbox.gob"
+ mn_mailbox_class->seal = ___3_mn_pop3_mailbox_seal;
+#line 163 "mn-pop3-mailbox.gob"
+ mn_mailbox_class->parse_uri = ___4_mn_pop3_mailbox_parse_uri;
+#line 772 "mn-pop3-mailbox.gob"
+ mn_authenticated_mailbox_class->impl_check = ___19_mn_pop3_mailbox_impl_check;
+#line 282 "mn-pop3-mailbox.c"
g_object_class->finalize = ___finalize;
{
-#line 121 "mn-pop3-mailbox.gob"
+#line 131 "mn-pop3-mailbox.gob"
- MN_MAILBOX_CLASS(class)->format = "POP3";
+ MN_MAILBOX_CLASS(class)->type = "pop3";
+ MN_PI_MAILBOX_CLASS(class)->default_ports = mn_pop3_mailbox_default_ports;
-#line 284 "mn-pop3-mailbox.c"
+#line 290 "mn-pop3-mailbox.c"
}
}
#undef __GOB_FUNCTION__
-#line 125 "mn-pop3-mailbox.gob"
+#line 136 "mn-pop3-mailbox.gob"
static GObject *
___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 294 "mn-pop3-mailbox.c"
+#line 300 "mn-pop3-mailbox.c"
#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
((G_OBJECT_CLASS(parent_class)->constructor)? \
(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -298,7 +304,7 @@ ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::constructor"
{
-#line 127 "mn-pop3-mailbox.gob"
+#line 138 "mn-pop3-mailbox.gob"
GObject *object;
MNMailbox *mailbox;
@@ -306,56 +312,125 @@ ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
object = PARENT_HANDLER(type, n_construct_properties, construct_params);
mailbox = MN_MAILBOX(object);
-#ifndef WITH_SSL
- if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
- mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
-
+ mn_mailbox_set_format(mailbox, "POP3");
+
return object;
}}
-#line 317 "mn-pop3-mailbox.c"
+#line 320 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 142 "mn-pop3-mailbox.gob"
-static gboolean
-___3_mn_pop3_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 324 "mn-pop3-mailbox.c"
+#line 150 "mn-pop3-mailbox.gob"
+static void
+___3_mn_pop3_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 327 "mn-pop3-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::seal"
+{
+#line 152 "mn-pop3-mailbox.gob"
+
+ PARENT_HANDLER(mailbox);
+
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+ MN_PI_MAILBOX(mailbox)->hostname);
+ }}
+#line 342 "mn-pop3-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 163 "mn-pop3-mailbox.gob"
+static MNMailbox *
+___4_mn_pop3_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 349 "mn-pop3-mailbox.c"
#define PARENT_HANDLER(___dummy,___uri) \
- ((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
- (* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
- ((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_is"
-#line 142 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 142 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 335 "mn-pop3-mailbox.c"
-{
-#line 144 "mn-pop3-mailbox.gob"
+ ((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+ (* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+ ((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::parse_uri"
+{
+#line 165 "mn-pop3-mailbox.gob"
- return MN_URI_IS_POP(uri);
+ int len;
+ int buflen;
+ char *username = NULL;
+ char *authmech = NULL;
+ char *hostname;
+ int port;
+ MNMailbox *mailbox;
+
+ len = strlen(uri);
+ buflen = len + 1;
+
+ {
+ char scheme_buf[buflen];
+ char auth_buf[buflen];
+ char location_buf[buflen];
+ char username_buf[buflen];
+ char authmech_buf[buflen];
+ char hostname_buf[buflen];
+ gboolean has_auth;
+ gboolean has_username = FALSE;
+ gboolean has_authmech = FALSE;
+
+ if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+ return NULL;
+
+ if (strcmp(scheme_buf, "pop"))
+ return NULL;
+
+ if (has_auth)
+ {
+ if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+ return NULL;
+
+ if (has_authmech)
+ {
+ if (! has_username)
+ return NULL; /* see user-auth in RFC 2384 ABNF */
+ if (! strcmp(authmech_buf, "*"))
+ has_authmech = FALSE;
+ }
+ }
+
+ mn_pi_mailbox_split_uri_hostport(location_buf, len, hostname_buf, &port);
+
+ if (has_username)
+ username = gnome_vfs_unescape_string(username_buf, NULL);
+ if (has_authmech)
+ authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+ hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+ }
+
+ mailbox = mn_mailbox_new("pop3",
+ "username", username,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ NULL);
+
+ g_free(username);
+ g_free(authmech);
+ g_free(hostname);
+
+ return mailbox;
}}
-#line 341 "mn-pop3-mailbox.c"
+#line 423 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 148 "mn-pop3-mailbox.gob"
+#line 231 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 348 "mn-pop3-mailbox.c"
+#line 430 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_greeting_cb"
-#line 148 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 148 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 148 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 357 "mn-pop3-mailbox.c"
{
-#line 152 "mn-pop3-mailbox.gob"
+#line 235 "mn-pop3-mailbox.gob"
priv->session = session;
@@ -378,47 +453,39 @@ mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
}
return STATE_CAPA;
- case RESPONSE_ERR: return RESULT_ERROR_END;
- default: return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ case RESPONSE_ERR:
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ default:
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 386 "mn-pop3-mailbox.c"
+#line 465 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 179 "mn-pop3-mailbox.gob"
+#line 266 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_capa_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 392 "mn-pop3-mailbox.c"
+#line 471 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_capa_cb"
-#line 179 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 179 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 399 "mn-pop3-mailbox.c"
{
-#line 182 "mn-pop3-mailbox.gob"
+#line 269 "mn-pop3-mailbox.gob"
return mn_client_session_write(session, "CAPA");
}}
-#line 405 "mn-pop3-mailbox.c"
+#line 479 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 186 "mn-pop3-mailbox.gob"
+#line 273 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 411 "mn-pop3-mailbox.c"
+#line 485 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_capa_cb"
-#line 186 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 186 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 186 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 420 "mn-pop3-mailbox.c"
{
-#line 190 "mn-pop3-mailbox.gob"
+#line 277 "mn-pop3-mailbox.gob"
self_handle_list_response(priv, response, FALSE);
@@ -427,6 +494,11 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
case RESPONSE_OK:
eel_g_slist_free_deep(priv->auth_mechanisms);
priv->auth_mechanisms = NULL;
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = NULL;
+#endif
+ priv->top_supported = FALSE;
priv->self->_priv->login_delay = 0;
priv->login_delay_user = FALSE;
#ifdef WITH_SSL
@@ -441,15 +513,14 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
return STATE_LIST;
#ifdef WITH_SSL
- if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
- && ! MN_URI_IS_SSL(priv->mailbox->uri)
+ if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
&& ! priv->stls_completed)
{
if (priv->stls_supported)
return STATE_STLS;
else
{
- mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
return STATE_QUIT;
}
}
@@ -472,6 +543,8 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
for (i = 1; tokens[i]; i++)
priv->auth_mechanisms = g_slist_append(priv->auth_mechanisms, g_strdup(tokens[i]));
}
+ else if (! strcmp(tokens[0], "TOP"))
+ priv->top_supported = TRUE;
#ifdef WITH_SSL
else if (! strcmp(tokens[0], "STLS"))
priv->stls_supported = TRUE;
@@ -495,7 +568,7 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
g_strfreev(tokens);
if (login_delay_error)
- return mn_client_session_error(session, _("invalid arguments for the LOGIN-DELAY capability"));
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("invalid arguments for the LOGIN-DELAY capability"));
}
return MN_CLIENT_SESSION_RESULT_CONTINUE;
@@ -503,22 +576,17 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 507 "mn-pop3-mailbox.c"
+#line 580 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 275 "mn-pop3-mailbox.gob"
+#line 368 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 513 "mn-pop3-mailbox.c"
+#line 586 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_stls_cb"
-#line 275 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 275 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 520 "mn-pop3-mailbox.c"
{
-#line 278 "mn-pop3-mailbox.gob"
+#line 371 "mn-pop3-mailbox.gob"
#ifdef WITH_SSL
return mn_client_session_write(session, "STLS");
@@ -526,24 +594,17 @@ mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate
g_return_val_if_reached(0);
#endif /* WITH_SSL */
}}
-#line 530 "mn-pop3-mailbox.c"
+#line 598 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 286 "mn-pop3-mailbox.gob"
+#line 379 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 536 "mn-pop3-mailbox.c"
+#line 604 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_stls_cb"
-#line 286 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 286 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 286 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 545 "mn-pop3-mailbox.c"
{
-#line 290 "mn-pop3-mailbox.gob"
+#line 383 "mn-pop3-mailbox.gob"
#ifdef WITH_SSL
switch (response->type)
@@ -551,8 +612,16 @@ mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionRespon
case RESPONSE_OK:
priv->stls_completed = TRUE;
return mn_client_session_enable_ssl(session)
- ? STATE_CAPA
- : RESULT_ERROR_END;
+ ? STATE_CAPA /* [1] */
+ : MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ /*
+ * [1] RFC 2595 4:
+ *
+ * "Once TLS has been started, the client MUST discard cached
+ * information about server capabilities and SHOULD re-issue
+ * the CAPA command."
+ */
case RESPONSE_ERR:
return self_session_authenticate(priv);
@@ -564,110 +633,109 @@ mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionRespon
g_return_val_if_reached(0);
#endif /* WITH_SSL */
}}
-#line 568 "mn-pop3-mailbox.c"
+#line 637 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 311 "mn-pop3-mailbox.gob"
-static const char *
-mn_pop3_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 574 "mn-pop3-mailbox.c"
+#line 412 "mn-pop3-mailbox.gob"
+static void
+mn_pop3_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password)
+#line 643 "mn-pop3-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::sasl_get_username_cb"
-#line 311 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (const char * )0);
-#line 311 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 581 "mn-pop3-mailbox.c"
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::sasl_get_credentials_cb"
{
-#line 314 "mn-pop3-mailbox.gob"
+#line 417 "mn-pop3-mailbox.gob"
#ifdef WITH_SASL
- return priv->mailbox->uri->username;
-#else
- g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
- }}
-#line 591 "mn-pop3-mailbox.c"
-#undef __GOB_FUNCTION__
+ g_return_if_fail(username != NULL || password != NULL);
-#line 322 "mn-pop3-mailbox.gob"
-static const char *
-mn_pop3_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 597 "mn-pop3-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::sasl_get_password_cb"
-#line 322 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (const char * )0);
-#line 322 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 604 "mn-pop3-mailbox.c"
-{
-#line 325 "mn-pop3-mailbox.gob"
-
-#ifdef WITH_SASL
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- return priv->authenticated_mailbox->password;
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+ username != NULL,
+ password != NULL);
+
+ if (username)
+ *username = priv->authenticated_mailbox->runtime_username;
+
+ if (password)
+ *password = priv->authenticated_mailbox->runtime_password;
#else
- g_return_val_if_reached(NULL);
+ g_return_if_reached();
#endif /* WITH_SASL */
}}
-#line 615 "mn-pop3-mailbox.c"
+#line 665 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 334 "mn-pop3-mailbox.gob"
+#line 435 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_auth_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 621 "mn-pop3-mailbox.c"
+#line 671 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_auth_cb"
-#line 334 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 334 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 628 "mn-pop3-mailbox.c"
{
-#line 337 "mn-pop3-mailbox.gob"
+#line 438 "mn-pop3-mailbox.gob"
#ifdef WITH_SASL
+ /*
+ * RFC 2449 6.3 specifies that POP3 supports the initial client
+ * response feature of SASL.
+ */
+ const char *initial_clientout = NULL;
+ unsigned int initial_clientoutlen = 0;
+
+ priv->sasl_mechanism = NULL;
+
if (mn_client_session_sasl_authentication_start(priv->session,
"pop",
- priv->auth_mechanisms,
- priv->mailbox->uri->authmech,
+ priv->sasl_remaining_mechanisms,
+ priv->pi_mailbox->authmech,
&priv->sasl_mechanism,
- TRUE /* [1] */))
- return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+ priv->sasl_had_clientout ? NULL : &initial_clientout,
+ priv->sasl_had_clientout ? NULL : &initial_clientoutlen))
+ {
+ g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+
+ if (initial_clientoutlen > 0)
+ {
+ char buf64[initial_clientoutlen * 2]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
+
+ result = sasl_encode64(initial_clientout, initial_clientoutlen, buf64, sizeof(buf64), &outlen);
+ if (result != SASL_OK)
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
+
+ str = g_strndup(buf64, outlen);
+ result = mn_client_session_write(session, "AUTH %s %s", priv->sasl_mechanism, str);
+ g_free(str);
+
+ priv->sasl_had_clientout = TRUE;
+ return result;
+ }
+ else
+ {
+ priv->sasl_had_clientout = FALSE;
+ return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+ }
+ }
else
return priv->authenticated_mailbox->cancelled
? STATE_QUIT
: self_session_authenticate_fallback(priv, FALSE, FALSE);
-
- /*
- * [1] http://www.ietf.org/internet-drafts/draft-siemborski-rfc1734bis-03.txt
- * section 4 specifies that POP3 supports the initial client
- * response feature of SASL.
- */
#else
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 654 "mn-pop3-mailbox.c"
+#line 729 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 361 "mn-pop3-mailbox.gob"
+#line 492 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 660 "mn-pop3-mailbox.c"
+#line 735 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_auth_cb"
-#line 361 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 361 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 361 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 669 "mn-pop3-mailbox.c"
{
-#line 365 "mn-pop3-mailbox.gob"
+#line 496 "mn-pop3-mailbox.gob"
#ifdef WITH_SASL
switch (response->type)
@@ -675,13 +743,29 @@ mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionRespon
case RESPONSE_OK:
return mn_client_session_sasl_authentication_done(session)
? self_session_authenticated(priv)
- : MN_CLIENT_SESSION_RESULT_END;
+ : MN_CLIENT_SESSION_RESULT_DISCONNECT;
case RESPONSE_ERR:
- return priv->authenticated_mailbox->cancelled
- ? STATE_QUIT
- : self_session_authenticate_fallback(priv, FALSE, FALSE);
-
+ if (priv->authenticated_mailbox->cancelled)
+ return STATE_QUIT;
+ else
+ {
+ if (priv->sasl_had_clientout)
+ {
+ /*
+ * Some servers violate RFC 2449 by not supporting a
+ * second argument to the AUTH command. Support these
+ * servers nevertheless, by retrying without the SASL
+ * initial client response.
+ */
+
+ mn_client_session_notice(session, _("SASL authentication with initial client response failed, retrying without initial client response"));
+ return STATE_AUTH;
+ }
+ else
+ return self_session_authenticate_fallback(priv, FALSE, FALSE);
+ }
+
case RESPONSE_CONTINUATION:
return mn_client_session_sasl_authentication_step(session, response->arguments);
@@ -692,57 +776,53 @@ mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionRespon
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 696 "mn-pop3-mailbox.c"
+#line 780 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 390 "mn-pop3-mailbox.gob"
+#line 537 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 702 "mn-pop3-mailbox.c"
+#line 786 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_apop_cb"
-#line 390 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 390 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 709 "mn-pop3-mailbox.c"
{
-#line 393 "mn-pop3-mailbox.gob"
+#line 540 "mn-pop3-mailbox.gob"
MNMD5Context context;
char buf[33];
g_return_val_if_fail(priv->apop_timestamp != NULL, 0);
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- if (! priv->authenticated_mailbox->password)
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+ if (! priv->authenticated_mailbox->runtime_username
+ || ! priv->authenticated_mailbox->runtime_password)
return STATE_QUIT;
mn_md5_init(&context);
mn_md5_update(&context, priv->apop_timestamp, strlen(priv->apop_timestamp));
- mn_md5_update(&context, priv->authenticated_mailbox->password, strlen(priv->authenticated_mailbox->password));
+ mn_md5_update(&context, priv->authenticated_mailbox->runtime_password, strlen(priv->authenticated_mailbox->runtime_password));
mn_md5_end(&context, buf);
- return mn_client_session_write(session, "APOP %s %s", priv->mailbox->uri->username, buf);
+ return mn_client_session_write(session, "APOP %s %s", priv->authenticated_mailbox->runtime_username, buf);
}}
-#line 729 "mn-pop3-mailbox.c"
+#line 809 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 735 "mn-pop3-mailbox.c"
+#line 815 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_apop_cb"
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 744 "mn-pop3-mailbox.c"
+#line 824 "mn-pop3-mailbox.c"
{
-#line 415 "mn-pop3-mailbox.gob"
+#line 563 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -756,43 +836,41 @@ mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 760 "mn-pop3-mailbox.c"
+#line 840 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 429 "mn-pop3-mailbox.gob"
+#line 577 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_user_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 766 "mn-pop3-mailbox.c"
+#line 846 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_user_cb"
-#line 429 "mn-pop3-mailbox.gob"
+#line 577 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 429 "mn-pop3-mailbox.gob"
+#line 577 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 773 "mn-pop3-mailbox.c"
+#line 853 "mn-pop3-mailbox.c"
{
-#line 432 "mn-pop3-mailbox.gob"
+#line 580 "mn-pop3-mailbox.gob"
- return mn_client_session_write(session, "USER %s", priv->mailbox->uri->username);
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+ if (! priv->authenticated_mailbox->runtime_username
+ || ! priv->authenticated_mailbox->runtime_password)
+ return STATE_QUIT;
+
+ return mn_client_session_write(session, "USER %s", priv->authenticated_mailbox->runtime_username);
}}
-#line 779 "mn-pop3-mailbox.c"
+#line 864 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 436 "mn-pop3-mailbox.gob"
+#line 589 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_user_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 785 "mn-pop3-mailbox.c"
+#line 870 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_user_cb"
-#line 436 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 436 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 436 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 794 "mn-pop3-mailbox.c"
{
-#line 440 "mn-pop3-mailbox.gob"
+#line 593 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -800,53 +878,40 @@ mn_pop3_mailbox_handle_user_cb (MNClientSession * session, MNClientSessionRespon
return STATE_PASS;
case RESPONSE_ERR:
- return RESULT_ERROR_QUIT;
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_QUIT;
default:
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 810 "mn-pop3-mailbox.c"
+#line 889 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 454 "mn-pop3-mailbox.gob"
+#line 608 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_pass_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 816 "mn-pop3-mailbox.c"
+#line 895 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_pass_cb"
-#line 454 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 454 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 823 "mn-pop3-mailbox.c"
{
-#line 457 "mn-pop3-mailbox.gob"
+#line 611 "mn-pop3-mailbox.gob"
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- if (! priv->authenticated_mailbox->password)
- return STATE_QUIT;
+ g_return_val_if_fail(priv->authenticated_mailbox->runtime_password != NULL, 0);
- return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->password);
+ return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->runtime_password);
}}
-#line 833 "mn-pop3-mailbox.c"
+#line 905 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 465 "mn-pop3-mailbox.gob"
+#line 617 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 839 "mn-pop3-mailbox.c"
+#line 911 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_pass_cb"
-#line 465 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 465 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 465 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 848 "mn-pop3-mailbox.c"
{
-#line 469 "mn-pop3-mailbox.gob"
+#line 621 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -860,43 +925,31 @@ mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 864 "mn-pop3-mailbox.c"
+#line 929 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 483 "mn-pop3-mailbox.gob"
+#line 635 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 870 "mn-pop3-mailbox.c"
+#line 935 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_list_cb"
-#line 483 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 483 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 877 "mn-pop3-mailbox.c"
{
-#line 486 "mn-pop3-mailbox.gob"
+#line 638 "mn-pop3-mailbox.gob"
return mn_client_session_write(session, "LIST");
}}
-#line 883 "mn-pop3-mailbox.c"
+#line 943 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 490 "mn-pop3-mailbox.gob"
+#line 642 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 889 "mn-pop3-mailbox.c"
+#line 949 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_cb"
-#line 490 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 490 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 490 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 898 "mn-pop3-mailbox.c"
{
-#line 494 "mn-pop3-mailbox.gob"
+#line 646 "mn-pop3-mailbox.gob"
self_handle_list_response(priv, response, FALSE);
@@ -907,10 +960,11 @@ mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionRespon
case RESPONSE_LIST_END:
priv->current_message_number = priv->message_numbers;
- return STATE_RETR;
+ return STATE_RETR_TOP;
case RESPONSE_ERR:
- return RESULT_ERROR_END;
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
case RESPONSE_LIST_ITEM:
{
@@ -928,53 +982,52 @@ mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 932 "mn-pop3-mailbox.c"
+#line 986 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 526 "mn-pop3-mailbox.gob"
+#line 679 "mn-pop3-mailbox.gob"
static int
-mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 938 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_enter_retr_top_cb (MNClientSession * session, MNClientSessionPrivate * priv)
+#line 992 "mn-pop3-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_retr_cb"
-#line 526 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 526 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 945 "mn-pop3-mailbox.c"
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_retr_top_cb"
{
-#line 529 "mn-pop3-mailbox.gob"
+#line 682 "mn-pop3-mailbox.gob"
if (priv->current_message_number)
- return mn_client_session_write(session, "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
+ return mn_client_session_write(session, priv->top_supported ? "TOP %i 0" : "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
else
{
GDK_THREADS_ENTER();
+
mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+ /*
+ * In impl_check(), we do not hold the GDK lock while
+ * unreffing the message list. We have just exposed the list
+ * to other threads through our mn_mailbox_set_messages()
+ * call, so unref it here, while we hold the GDK lock.
+ */
+ mn_g_object_slist_free(priv->messages);
+ priv->messages = NULL;
+
gdk_flush();
GDK_THREADS_LEAVE();
return STATE_QUIT;
}
}}
-#line 961 "mn-pop3-mailbox.c"
+#line 1021 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 543 "mn-pop3-mailbox.gob"
+#line 707 "mn-pop3-mailbox.gob"
static int
-mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 967 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_handle_retr_top_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
+#line 1027 "mn-pop3-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_retr_cb"
-#line 543 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 543 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 543 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 976 "mn-pop3-mailbox.c"
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_retr_top_cb"
{
-#line 547 "mn-pop3-mailbox.gob"
+#line 711 "mn-pop3-mailbox.gob"
self_handle_list_response(priv, response, TRUE);
@@ -988,18 +1041,18 @@ mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionRespon
case RESPONSE_LIST_END:
priv->messages = g_slist_append(priv->messages,
- mn_message_new_from_buffer(priv->mailbox->uri,
+ mn_message_new_from_buffer(priv->mailbox,
priv->current_message->str,
priv->current_message->len));
priv->current_message_number = priv->current_message_number->next;
- return STATE_RETR;
+ return STATE_RETR_TOP;
case RESPONSE_ERR:
priv->messages = g_slist_append(priv->messages,
- mn_message_new_from_error(priv->mailbox->uri,
+ mn_message_new_from_error(priv->mailbox,
response->arguments ? response->arguments : _("unknown error")));
priv->current_message_number = priv->current_message_number->next;
- return STATE_RETR;
+ return STATE_RETR_TOP;
case RESPONSE_LIST_ITEM:
g_string_append_printf(priv->current_message, "%s\n", response->arguments);
@@ -1009,70 +1062,59 @@ mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 1013 "mn-pop3-mailbox.c"
+#line 1066 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 582 "mn-pop3-mailbox.gob"
+#line 746 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_quit_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1019 "mn-pop3-mailbox.c"
+#line 1072 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_quit_cb"
-#line 582 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 582 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1026 "mn-pop3-mailbox.c"
{
-#line 585 "mn-pop3-mailbox.gob"
+#line 749 "mn-pop3-mailbox.gob"
return mn_client_session_write(session, "QUIT");
}}
-#line 1032 "mn-pop3-mailbox.c"
+#line 1080 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 589 "mn-pop3-mailbox.gob"
+#line 753 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1038 "mn-pop3-mailbox.c"
+#line 1086 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_quit_cb"
-#line 589 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 589 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 589 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1047 "mn-pop3-mailbox.c"
{
-#line 593 "mn-pop3-mailbox.gob"
+#line 757 "mn-pop3-mailbox.gob"
switch (response->type)
{
- case RESPONSE_OK: return MN_CLIENT_SESSION_RESULT_END;
- case RESPONSE_ERR: return RESULT_ERROR_END;
- default: return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ case RESPONSE_OK:
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ case RESPONSE_ERR:
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ default:
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 1058 "mn-pop3-mailbox.c"
+#line 1105 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 602 "mn-pop3-mailbox.gob"
+#line 772 "mn-pop3-mailbox.gob"
static void
-___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 1064 "mn-pop3-mailbox.c"
+___19_mn_pop3_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 1111 "mn-pop3-mailbox.c"
#define PARENT_HANDLER(___mailbox) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+ { if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+ (* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_check"
-#line 602 "mn-pop3-mailbox.gob"
- g_return_if_fail (mailbox != NULL);
-#line 602 "mn-pop3-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 1074 "mn-pop3-mailbox.c"
{
-#line 604 "mn-pop3-mailbox.gob"
+#line 774 "mn-pop3-mailbox.gob"
Self *self = SELF(mailbox);
MNClientSessionState states[] = {
@@ -1088,7 +1130,7 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
{ STATE_USER, self_enter_user_cb, self_handle_user_cb },
{ STATE_PASS, self_enter_pass_cb, self_handle_pass_cb },
{ STATE_LIST, self_enter_list_cb, self_handle_list_cb },
- { STATE_RETR, self_enter_retr_cb, self_handle_retr_cb },
+ { STATE_RETR_TOP, self_enter_retr_top_cb, self_handle_retr_top_cb },
{ STATE_QUIT, self_enter_quit_cb, self_handle_quit_cb },
MN_CLIENT_SESSION_STATES_END
@@ -1098,12 +1140,10 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
self_warning_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb,
NULL, /* pre_read */
NULL, /* post_read */
#ifdef WITH_SASL
- self_sasl_get_username_cb,
- self_sasl_get_password_cb,
+ self_sasl_get_credentials_cb,
#endif
};
MNClientSessionPrivate priv;
@@ -1112,6 +1152,10 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
PARENT_HANDLER(mailbox);
+ /* check if the parent handler has disabled the mailbox */
+ if (! MN_MAILBOX(self)->must_poll)
+ return;
+
if (selfp->login_delay && selfp->authentication_timer)
{
double elapsed;
@@ -1124,7 +1168,7 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
int sleeptime;
sleeptime = selfp->login_delay - elapsed;
- mn_mailbox_notice(mailbox,
+ mn_mailbox_notice(MN_MAILBOX(self),
ngettext("honouring LOGIN-DELAY, sleeping for %i second",
"honouring LOGIN-DELAY, sleeping for %i seconds",
sleeptime),
@@ -1134,100 +1178,83 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
}
memset(&priv, 0, sizeof(priv));
- priv.mailbox = mailbox;
- priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+ priv.mailbox = MN_MAILBOX(self);
+ priv.authenticated_mailbox = mailbox;
+ priv.pi_mailbox = MN_PI_MAILBOX(self);
priv.self = self;
status = mn_client_session_run(states,
&callbacks,
#ifdef WITH_SSL
- MN_URI_IS_SSL(mailbox->uri),
+ priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
#endif
- mailbox->uri->hostname,
- mailbox->uri->port,
+ priv.pi_mailbox->hostname,
+ priv.pi_mailbox->runtime_port,
&priv,
&err);
- GDK_THREADS_ENTER();
-
if (! status)
{
- mn_mailbox_set_error(mailbox, "%s", err->message);
+ GDK_THREADS_ENTER();
+
+ mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
g_error_free(err);
}
- mn_mailbox_end_check(mailbox);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
g_free(priv.apop_timestamp);
eel_g_slist_free_deep(priv.auth_mechanisms);
+#ifdef WITH_SASL
+ g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
g_slist_free(priv.message_numbers);
mn_g_object_slist_free(priv.messages);
if (priv.current_message)
g_string_free(priv.current_message, TRUE);
}}
-#line 1171 "mn-pop3-mailbox.c"
+#line 1219 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 699 "mn-pop3-mailbox.gob"
+#line 875 "mn-pop3-mailbox.gob"
static void
-mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1178 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1226 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::notice_cb"
-#line 699 "mn-pop3-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 699 "mn-pop3-mailbox.gob"
- g_return_if_fail (str != NULL);
-#line 699 "mn-pop3-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1187 "mn-pop3-mailbox.c"
{
-#line 703 "mn-pop3-mailbox.gob"
+#line 879 "mn-pop3-mailbox.gob"
- mn_mailbox_notice(priv->mailbox, "%s", str);
+ mn_mailbox_notice(priv->mailbox, "%s", message);
}}
-#line 1193 "mn-pop3-mailbox.c"
+#line 1234 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 707 "mn-pop3-mailbox.gob"
+#line 883 "mn-pop3-mailbox.gob"
static void
-mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1199 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1240 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::warning_cb"
-#line 707 "mn-pop3-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 707 "mn-pop3-mailbox.gob"
- g_return_if_fail (str != NULL);
-#line 707 "mn-pop3-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1208 "mn-pop3-mailbox.c"
{
-#line 711 "mn-pop3-mailbox.gob"
+#line 887 "mn-pop3-mailbox.gob"
- mn_mailbox_warning(priv->mailbox, "%s", str);
+ mn_mailbox_warning(priv->mailbox, "%s", message);
}}
-#line 1214 "mn-pop3-mailbox.c"
+#line 1248 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 715 "mn-pop3-mailbox.gob"
+#line 891 "mn-pop3-mailbox.gob"
static MNClientSessionResponse *
mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1220 "mn-pop3-mailbox.c"
+#line 1254 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_new_cb"
-#line 715 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 715 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 715 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1229 "mn-pop3-mailbox.c"
-{
-#line 719 "mn-pop3-mailbox.gob"
+{
+#line 895 "mn-pop3-mailbox.gob"
MNClientSessionResponse *response = NULL;
@@ -1242,12 +1269,12 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input,
* showing up in the UI (for instance, through
* session_set_error_from_arguments()).
*
- * However, RETR multiline responses do not need to (and must not)
- * be validated: most servers send them in whatever charset the
- * original message is, and our mn-message-mime implementation
+ * However, RETR/TOP multiline responses do not need to (and must
+ * not) be validated: most servers send them in whatever charset
+ * the original message is, and our mn-message-mime implementation
* handles that.
*/
- if (priv->in_retr || g_utf8_validate(input, -1, NULL))
+ if (priv->in_retr_top || g_utf8_validate(input, -1, NULL))
{
if (priv->in_list)
{
@@ -1305,104 +1332,69 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input,
return response;
}}
-#line 1309 "mn-pop3-mailbox.c"
+#line 1336 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 797 "mn-pop3-mailbox.gob"
+#line 973 "mn-pop3-mailbox.gob"
static void
mn_pop3_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1315 "mn-pop3-mailbox.c"
+#line 1342 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_free_cb"
-#line 797 "mn-pop3-mailbox.gob"
- g_return_if_fail (session != NULL);
-#line 797 "mn-pop3-mailbox.gob"
- g_return_if_fail (response != NULL);
-#line 797 "mn-pop3-mailbox.gob"
- g_return_if_fail (priv != NULL);
-#line 1324 "mn-pop3-mailbox.c"
{
-#line 801 "mn-pop3-mailbox.gob"
+#line 977 "mn-pop3-mailbox.gob"
g_free(response->arguments);
g_free(response);
}}
-#line 1331 "mn-pop3-mailbox.c"
+#line 1351 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 806 "mn-pop3-mailbox.gob"
-static int
-mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1337 "mn-pop3-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::custom_handler_cb"
-#line 806 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (session != NULL, (int )0);
-#line 806 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (response != NULL, (int )0);
-#line 806 "mn-pop3-mailbox.gob"
- g_return_val_if_fail (priv != NULL, (int )0);
-#line 1346 "mn-pop3-mailbox.c"
-{
-#line 811 "mn-pop3-mailbox.gob"
-
- switch (result)
- {
- case RESULT_ERROR_QUIT:
- self_session_set_error_from_arguments(priv, response);
- return STATE_QUIT;
-
- case RESULT_ERROR_END:
- self_session_set_error_from_arguments(priv, response);
- return MN_CLIENT_SESSION_RESULT_END;
-
- default:
- g_return_val_if_reached(0);
- }
- }}
-#line 1364 "mn-pop3-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 827 "mn-pop3-mailbox.gob"
+#line 982 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1370 "mn-pop3-mailbox.c"
+#line 1357 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate"
-#line 827 "mn-pop3-mailbox.gob"
+#line 982 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1375 "mn-pop3-mailbox.c"
+#line 1362 "mn-pop3-mailbox.c"
{
-#line 829 "mn-pop3-mailbox.gob"
+#line 984 "mn-pop3-mailbox.gob"
- if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+ if (priv->pi_mailbox->authmech)
{
- if (*priv->mailbox->uri->authmech != '+')
+ if (*priv->pi_mailbox->authmech != '+')
{
#ifdef WITH_SASL
return STATE_AUTH;
#else
- mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
return STATE_QUIT;
#endif /* WITH_SASL */
}
else
{
- if (! strcmp(priv->mailbox->uri->authmech, "+APOP"))
+ if (! strcmp(priv->pi_mailbox->authmech, "+APOP"))
{
if (priv->apop_timestamp)
return STATE_APOP;
else
{
- mn_client_session_error(priv->session, _("server does not support APOP authentication"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support APOP authentication"));
return STATE_QUIT;
}
}
- else if (! strcmp(priv->mailbox->uri->authmech, "+USERPASS"))
+ else if (! strcmp(priv->pi_mailbox->authmech, "+USERPASS"))
return STATE_USER;
else
{
- mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
return STATE_QUIT;
}
}
@@ -1410,7 +1402,7 @@ mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
else
{
#ifdef WITH_SASL
- if (priv->auth_mechanisms)
+ if (priv->sasl_remaining_mechanisms)
return STATE_AUTH;
#endif /* WITH_SASL */
if (priv->apop_timestamp)
@@ -1419,23 +1411,44 @@ mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
return STATE_USER;
}
}}
-#line 1423 "mn-pop3-mailbox.c"
+#line 1415 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 875 "mn-pop3-mailbox.gob"
+#line 1035 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_apop, gboolean tried_pass)
-#line 1429 "mn-pop3-mailbox.c"
+#line 1421 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate_fallback"
-#line 875 "mn-pop3-mailbox.gob"
+#line 1035 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1434 "mn-pop3-mailbox.c"
+#line 1426 "mn-pop3-mailbox.c"
{
-#line 879 "mn-pop3-mailbox.gob"
+#line 1039 "mn-pop3-mailbox.gob"
- if (! priv->mailbox->uri->authmech)
+ if (! priv->pi_mailbox->authmech)
{
+#ifdef WITH_SASL
+ if (priv->sasl_mechanism)
+ {
+ GSList *elem;
+
+ elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+ if (elem)
+ {
+ priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+ if (priv->sasl_remaining_mechanisms)
+ {
+ mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+ return STATE_AUTH;
+ }
+ }
+ }
+
+ /* SASL is not needed anymore, save some memory */
+ mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
if (! tried_apop && priv->apop_timestamp)
{
mn_client_session_notice(priv->session, _("falling back to APOP authentication"));
@@ -1448,31 +1461,31 @@ mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
}
}
- if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+ if (priv->authenticated_mailbox->prompted)
{
mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
return self_session_authenticate(priv);
}
else
{
- mn_client_session_error(priv->session, _("authentication failed"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
return STATE_QUIT;
}
}}
-#line 1463 "mn-pop3-mailbox.c"
+#line 1476 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 906 "mn-pop3-mailbox.gob"
+#line 1087 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
-#line 1469 "mn-pop3-mailbox.c"
+#line 1482 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticated"
-#line 906 "mn-pop3-mailbox.gob"
+#line 1087 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1474 "mn-pop3-mailbox.c"
+#line 1487 "mn-pop3-mailbox.c"
{
-#line 908 "mn-pop3-mailbox.gob"
+#line 1089 "mn-pop3-mailbox.gob"
priv->authenticated = TRUE;
if (priv->self->_priv->login_delay)
@@ -1482,52 +1495,67 @@ mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
else
priv->self->_priv->authentication_timer = g_timer_new();
}
- return priv->login_delay_user ? STATE_CAPA : STATE_LIST;
+
+ /*
+ * We are now in transaction state. We must re-issue CAPA if:
+ *
+ * - the LOGIN-DELAY capability announced in the authorization
+ * state contained the USER argument (priv->login_delay_user is
+ * true)
+ * - the TOP capability was not announced in the authorization
+ * state: although RFC 2449 states that "capabilities available
+ * in the AUTHORIZATION state MUST be announced in both states",
+ * some servers (for instance, pop.gmail.com) violate the RFC
+ * and only announce TOP in the transaction state.
+ */
+ return priv->login_delay_user || ! priv->top_supported
+ ? STATE_CAPA
+ : STATE_LIST;
}}
-#line 1488 "mn-pop3-mailbox.c"
+#line 1516 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 920 "mn-pop3-mailbox.gob"
+#line 1116 "mn-pop3-mailbox.gob"
static void
-mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1494 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response)
+#line 1522 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_set_error_from_arguments"
-#line 920 "mn-pop3-mailbox.gob"
+#line 1116 "mn-pop3-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 920 "mn-pop3-mailbox.gob"
+#line 1116 "mn-pop3-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 1501 "mn-pop3-mailbox.c"
+#line 1529 "mn-pop3-mailbox.c"
{
-#line 923 "mn-pop3-mailbox.gob"
+#line 1120 "mn-pop3-mailbox.gob"
if (response->arguments)
- mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+ mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
else
- mn_client_session_error(priv->session, _("unknown server error"));
+ mn_client_session_error(priv->session, code, _("unknown server error"));
}}
-#line 1510 "mn-pop3-mailbox.c"
+#line 1538 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 930 "mn-pop3-mailbox.gob"
+#line 1127 "mn-pop3-mailbox.gob"
static void
-mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean retr)
-#line 1516 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean in_retr_top)
+#line 1544 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_response"
-#line 930 "mn-pop3-mailbox.gob"
+#line 1127 "mn-pop3-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 930 "mn-pop3-mailbox.gob"
+#line 1127 "mn-pop3-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 1523 "mn-pop3-mailbox.c"
+#line 1551 "mn-pop3-mailbox.c"
{
-#line 934 "mn-pop3-mailbox.gob"
+#line 1131 "mn-pop3-mailbox.gob"
switch (response->type)
{
case RESPONSE_OK:
priv->in_list = TRUE;
- priv->in_retr = retr;
+ priv->in_retr_top = in_retr_top;
break;
case RESPONSE_LIST_ITEM: /* nop */
@@ -1535,9 +1563,28 @@ mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSes
default:
priv->in_list = FALSE;
- priv->in_retr = FALSE;
+ priv->in_retr_top = FALSE;
break;
}
}}
-#line 1543 "mn-pop3-mailbox.c"
+#line 1571 "mn-pop3-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1149 "mn-pop3-mailbox.gob"
+char *
+mn_pop3_mailbox_build_name (const char * username, const char * hostname)
+#line 1577 "mn-pop3-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::build_name"
+#line 1149 "mn-pop3-mailbox.gob"
+ g_return_val_if_fail (hostname != NULL, (char * )0);
+#line 1582 "mn-pop3-mailbox.c"
+{
+#line 1151 "mn-pop3-mailbox.gob"
+
+ return username
+ ? g_strdup_printf("%s@%s", username, hostname)
+ : g_strdup(hostname);
+ }}
+#line 1590 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox.gob b/src/mn-pop3-mailbox.gob
@@ -7,6 +7,7 @@
* - RFC 2449
* - RFC 1734
* - RFC 2595
+ * - RFC 2384
*
* Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
*
@@ -25,11 +26,16 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
%}
+
+%h{
+extern int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+%}
+
%{
#include "config.h"
#include <stdio.h>
@@ -40,86 +46,91 @@ requires 2.0.10
#include <glib/gi18n.h>
#include <libgnomevfs/gnome-vfs-utils.h>
#include <eel/eel.h>
+#ifdef WITH_SASL
+#include <sasl/saslutil.h>
+#endif /* WITH_SASL */
#include "mn-mailbox-private.h"
#include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
#include "mn-client-session.h"
#include "mn-util.h"
#include "mn-md5.h"
#include "mn-message-mime.h"
- enum
- {
- STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
- STATE_CAPA,
+enum
+{
+ STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+ STATE_CAPA,
#ifdef WITH_SSL
- STATE_STLS,
+ STATE_STLS,
#endif
#ifdef WITH_SASL
- STATE_AUTH,
+ STATE_AUTH,
#endif
- STATE_APOP,
- STATE_USER,
- STATE_PASS,
- STATE_LIST,
- STATE_RETR,
- STATE_QUIT
- };
-
- enum
- {
- RESULT_ERROR_QUIT = -1, /* server reported an error, quit normally */
- RESULT_ERROR_END = -2 /* server reported an error, close the connection */
- };
-
- struct _MNClientSessionPrivate
- {
- MNMailbox *mailbox;
- MNAuthenticatedMailbox *authenticated_mailbox;
- MNPOP3Mailbox *self;
- MNClientSession *session;
- gboolean in_list;
- gboolean in_retr;
- char *apop_timestamp;
- GSList *auth_mechanisms;
+ STATE_APOP,
+ STATE_USER,
+ STATE_PASS,
+ STATE_LIST,
+ STATE_RETR_TOP,
+ STATE_QUIT
+};
+
+struct _MNClientSessionPrivate
+{
+ MNMailbox *mailbox;
+ MNAuthenticatedMailbox *authenticated_mailbox;
+ MNPIMailbox *pi_mailbox;
+ MNPOP3Mailbox *self;
+ MNClientSession *session;
+ gboolean in_list;
+ gboolean in_retr_top;
+ char *apop_timestamp;
+ GSList *auth_mechanisms;
+ gboolean top_supported;
#ifdef WITH_SSL
- gboolean stls_supported;
- gboolean stls_completed;
+ gboolean stls_supported;
+ gboolean stls_completed;
#endif
#ifdef WITH_SASL
- const char *sasl_mechanism;
+ GSList *sasl_remaining_mechanisms;
+ const char *sasl_mechanism;
+ gboolean sasl_had_clientout;
#endif
- gboolean authenticated;
- gboolean login_delay_user;
- GSList *message_numbers;
- GSList *current_message_number;
- GSList *messages;
- GString *current_message;
- };
-
- typedef enum
- {
- RESPONSE_OK,
- RESPONSE_ERR,
- RESPONSE_LIST_ITEM,
- RESPONSE_LIST_END,
- RESPONSE_CONTINUATION
- } ResponseType;
-
- struct _MNClientSessionResponse
- {
- ResponseType type;
- char *arguments;
- };
+ gboolean authenticated;
+ gboolean login_delay_user;
+ GSList *message_numbers;
+ GSList *current_message_number;
+ GSList *messages;
+ GString *current_message;
+};
+
+typedef enum
+{
+ RESPONSE_OK,
+ RESPONSE_ERR,
+ RESPONSE_LIST_ITEM,
+ RESPONSE_LIST_END,
+ RESPONSE_CONTINUATION
+} ResponseType;
+
+struct _MNClientSessionResponse
+{
+ ResponseType type;
+ char *arguments;
+};
+
+int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 110, 110, 995 };
%}
-class MN:POP3:Mailbox from MN:Authenticated:Mailbox
+class MN:POP3:Mailbox from MN:PI:Mailbox
{
private int login_delay;
private GTimer *authentication_timer destroywith g_timer_destroy;
class_init (class)
{
- MN_MAILBOX_CLASS(class)->format = "POP3";
+ MN_MAILBOX_CLASS(class)->type = "pop3";
+ MN_PI_MAILBOX_CLASS(class)->default_ports = mn_pop3_mailbox_default_ports;
}
override (G:Object) GObject *
@@ -131,24 +142,96 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
object = PARENT_HANDLER(type, n_construct_properties, construct_params);
mailbox = MN_MAILBOX(object);
-#ifndef WITH_SSL
- if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
- mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
-
+ mn_mailbox_set_format(mailbox, "POP3");
+
return object;
}
- override (MN:Mailbox) gboolean
- impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
+ override (MN:Mailbox) void
+ seal (MNMailbox *mailbox)
{
- return MN_URI_IS_POP(uri);
+ PARENT_HANDLER(mailbox);
+
+ if (! mailbox->runtime_name)
+ mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+ MN_PI_MAILBOX(mailbox)->hostname);
}
+
+ /*
+ * Parses a RFC 2384 POP URL.
+ */
+ override (MN:Mailbox) MNMailbox *
+ parse_uri (MNMailbox *dummy, const char *uri)
+ {
+ int len;
+ int buflen;
+ char *username = NULL;
+ char *authmech = NULL;
+ char *hostname;
+ int port;
+ MNMailbox *mailbox;
+ len = strlen(uri);
+ buflen = len + 1;
+
+ {
+ char scheme_buf[buflen];
+ char auth_buf[buflen];
+ char location_buf[buflen];
+ char username_buf[buflen];
+ char authmech_buf[buflen];
+ char hostname_buf[buflen];
+ gboolean has_auth;
+ gboolean has_username = FALSE;
+ gboolean has_authmech = FALSE;
+
+ if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+ return NULL;
+
+ if (strcmp(scheme_buf, "pop"))
+ return NULL;
+
+ if (has_auth)
+ {
+ if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+ return NULL;
+
+ if (has_authmech)
+ {
+ if (! has_username)
+ return NULL; /* see user-auth in RFC 2384 ABNF */
+ if (! strcmp(authmech_buf, "*"))
+ has_authmech = FALSE;
+ }
+ }
+
+ mn_pi_mailbox_split_uri_hostport(location_buf, len, hostname_buf, &port);
+
+ if (has_username)
+ username = gnome_vfs_unescape_string(username_buf, NULL);
+ if (has_authmech)
+ authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+ hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+ }
+
+ mailbox = mn_mailbox_new("pop3",
+ "username", username,
+ "authmech", authmech,
+ "hostname", hostname,
+ "port", port,
+ NULL);
+
+ g_free(username);
+ g_free(authmech);
+ g_free(hostname);
+
+ return mailbox;
+ }
+
private int
- handle_greeting_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_greeting_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
priv->session = session;
@@ -171,22 +254,26 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
return STATE_CAPA;
- case RESPONSE_ERR: return RESULT_ERROR_END;
- default: return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ case RESPONSE_ERR:
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ default:
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}
private int
- enter_capa_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_capa_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
return mn_client_session_write(session, "CAPA");
}
private int
- handle_capa_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_capa_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
self_handle_list_response(priv, response, FALSE);
@@ -195,6 +282,11 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
case RESPONSE_OK:
eel_g_slist_free_deep(priv->auth_mechanisms);
priv->auth_mechanisms = NULL;
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = NULL;
+#endif
+ priv->top_supported = FALSE;
priv->self->_priv->login_delay = 0;
priv->login_delay_user = FALSE;
#ifdef WITH_SSL
@@ -209,15 +301,14 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
return STATE_LIST;
#ifdef WITH_SSL
- if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
- && ! MN_URI_IS_SSL(priv->mailbox->uri)
+ if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
&& ! priv->stls_completed)
{
if (priv->stls_supported)
return STATE_STLS;
else
{
- mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
return STATE_QUIT;
}
}
@@ -240,6 +331,8 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
for (i = 1; tokens[i]; i++)
priv->auth_mechanisms = g_slist_append(priv->auth_mechanisms, g_strdup(tokens[i]));
}
+ else if (! strcmp(tokens[0], "TOP"))
+ priv->top_supported = TRUE;
#ifdef WITH_SSL
else if (! strcmp(tokens[0], "STLS"))
priv->stls_supported = TRUE;
@@ -263,7 +356,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
g_strfreev(tokens);
if (login_delay_error)
- return mn_client_session_error(session, _("invalid arguments for the LOGIN-DELAY capability"));
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("invalid arguments for the LOGIN-DELAY capability"));
}
return MN_CLIENT_SESSION_RESULT_CONTINUE;
@@ -273,8 +366,8 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- enter_stls_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_stls_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SSL
return mn_client_session_write(session, "STLS");
@@ -284,9 +377,9 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_stls_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_stls_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SSL
switch (response->type)
@@ -294,8 +387,16 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
case RESPONSE_OK:
priv->stls_completed = TRUE;
return mn_client_session_enable_ssl(session)
- ? STATE_CAPA
- : RESULT_ERROR_END;
+ ? STATE_CAPA /* [1] */
+ : MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ /*
+ * [1] RFC 2595 4:
+ *
+ * "Once TLS has been started, the client MUST discard cached
+ * information about server capabilities and SHOULD re-issue
+ * the CAPA command."
+ */
case RESPONSE_ERR:
return self_session_authenticate(priv);
@@ -308,60 +409,90 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
#endif /* WITH_SSL */
}
- private const char *
- sasl_get_username_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ private void
+ sasl_get_credentials_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv,
+ const char **username,
+ const char **password)
{
#ifdef WITH_SASL
- return priv->mailbox->uri->username;
-#else
- g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
- }
+ g_return_if_fail(username != NULL || password != NULL);
- private const char *
- sasl_get_password_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
- {
-#ifdef WITH_SASL
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- return priv->authenticated_mailbox->password;
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+ username != NULL,
+ password != NULL);
+
+ if (username)
+ *username = priv->authenticated_mailbox->runtime_username;
+
+ if (password)
+ *password = priv->authenticated_mailbox->runtime_password;
#else
- g_return_val_if_reached(NULL);
+ g_return_if_reached();
#endif /* WITH_SASL */
}
private int
- enter_auth_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_auth_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SASL
+ /*
+ * RFC 2449 6.3 specifies that POP3 supports the initial client
+ * response feature of SASL.
+ */
+ const char *initial_clientout = NULL;
+ unsigned int initial_clientoutlen = 0;
+
+ priv->sasl_mechanism = NULL;
+
if (mn_client_session_sasl_authentication_start(priv->session,
"pop",
- priv->auth_mechanisms,
- priv->mailbox->uri->authmech,
+ priv->sasl_remaining_mechanisms,
+ priv->pi_mailbox->authmech,
&priv->sasl_mechanism,
- TRUE /* [1] */))
- return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+ priv->sasl_had_clientout ? NULL : &initial_clientout,
+ priv->sasl_had_clientout ? NULL : &initial_clientoutlen))
+ {
+ g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+
+ if (initial_clientoutlen > 0)
+ {
+ char buf64[initial_clientoutlen * 2]; /* Base64 is 33% larger than the data it encodes */
+ unsigned int outlen;
+ int result;
+ char *str;
+
+ result = sasl_encode64(initial_clientout, initial_clientoutlen, buf64, sizeof(buf64), &outlen);
+ if (result != SASL_OK)
+ return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
+
+ str = g_strndup(buf64, outlen);
+ result = mn_client_session_write(session, "AUTH %s %s", priv->sasl_mechanism, str);
+ g_free(str);
+
+ priv->sasl_had_clientout = TRUE;
+ return result;
+ }
+ else
+ {
+ priv->sasl_had_clientout = FALSE;
+ return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+ }
+ }
else
return priv->authenticated_mailbox->cancelled
? STATE_QUIT
: self_session_authenticate_fallback(priv, FALSE, FALSE);
-
- /*
- * [1] http://www.ietf.org/internet-drafts/draft-siemborski-rfc1734bis-03.txt
- * section 4 specifies that POP3 supports the initial client
- * response feature of SASL.
- */
#else
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}
private int
- handle_auth_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_auth_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
#ifdef WITH_SASL
switch (response->type)
@@ -369,13 +500,29 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
case RESPONSE_OK:
return mn_client_session_sasl_authentication_done(session)
? self_session_authenticated(priv)
- : MN_CLIENT_SESSION_RESULT_END;
+ : MN_CLIENT_SESSION_RESULT_DISCONNECT;
case RESPONSE_ERR:
- return priv->authenticated_mailbox->cancelled
- ? STATE_QUIT
- : self_session_authenticate_fallback(priv, FALSE, FALSE);
-
+ if (priv->authenticated_mailbox->cancelled)
+ return STATE_QUIT;
+ else
+ {
+ if (priv->sasl_had_clientout)
+ {
+ /*
+ * Some servers violate RFC 2449 by not supporting a
+ * second argument to the AUTH command. Support these
+ * servers nevertheless, by retrying without the SASL
+ * initial client response.
+ */
+
+ mn_client_session_notice(session, _("SASL authentication with initial client response failed, retrying without initial client response"));
+ return STATE_AUTH;
+ }
+ else
+ return self_session_authenticate_fallback(priv, FALSE, FALSE);
+ }
+
case RESPONSE_CONTINUATION:
return mn_client_session_sasl_authentication_step(session, response->arguments);
@@ -388,24 +535,25 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- enter_apop_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_apop_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
MNMD5Context context;
char buf[33];
g_return_val_if_fail(priv->apop_timestamp != NULL, 0);
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- if (! priv->authenticated_mailbox->password)
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+ if (! priv->authenticated_mailbox->runtime_username
+ || ! priv->authenticated_mailbox->runtime_password)
return STATE_QUIT;
mn_md5_init(&context);
mn_md5_update(&context, priv->apop_timestamp, strlen(priv->apop_timestamp));
- mn_md5_update(&context, priv->authenticated_mailbox->password, strlen(priv->authenticated_mailbox->password));
+ mn_md5_update(&context, priv->authenticated_mailbox->runtime_password, strlen(priv->authenticated_mailbox->runtime_password));
mn_md5_end(&context, buf);
- return mn_client_session_write(session, "APOP %s %s", priv->mailbox->uri->username, buf);
+ return mn_client_session_write(session, "APOP %s %s", priv->authenticated_mailbox->runtime_username, buf);
}
private int
@@ -430,13 +578,18 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
enter_user_cb (MNClientSession *session (check null),
MNClientSessionPrivate *priv (check null))
{
- return mn_client_session_write(session, "USER %s", priv->mailbox->uri->username);
+ mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+ if (! priv->authenticated_mailbox->runtime_username
+ || ! priv->authenticated_mailbox->runtime_password)
+ return STATE_QUIT;
+
+ return mn_client_session_write(session, "USER %s", priv->authenticated_mailbox->runtime_username);
}
private int
- handle_user_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_user_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
switch (response->type)
{
@@ -444,7 +597,8 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
return STATE_PASS;
case RESPONSE_ERR:
- return RESULT_ERROR_QUIT;
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return STATE_QUIT;
default:
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -452,20 +606,18 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- enter_pass_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_pass_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
- mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
- if (! priv->authenticated_mailbox->password)
- return STATE_QUIT;
+ g_return_val_if_fail(priv->authenticated_mailbox->runtime_password != NULL, 0);
- return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->password);
+ return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->runtime_password);
}
private int
- handle_pass_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_pass_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
switch (response->type)
{
@@ -481,16 +633,16 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- enter_list_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_list_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
return mn_client_session_write(session, "LIST");
}
private int
- handle_list_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_list_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
self_handle_list_response(priv, response, FALSE);
@@ -501,10 +653,11 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
case RESPONSE_LIST_END:
priv->current_message_number = priv->message_numbers;
- return STATE_RETR;
+ return STATE_RETR_TOP;
case RESPONSE_ERR:
- return RESULT_ERROR_END;
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
case RESPONSE_LIST_ITEM:
{
@@ -524,15 +677,26 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- enter_retr_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_retr_top_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
if (priv->current_message_number)
- return mn_client_session_write(session, "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
+ return mn_client_session_write(session, priv->top_supported ? "TOP %i 0" : "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
else
{
GDK_THREADS_ENTER();
+
mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+ /*
+ * In impl_check(), we do not hold the GDK lock while
+ * unreffing the message list. We have just exposed the list
+ * to other threads through our mn_mailbox_set_messages()
+ * call, so unref it here, while we hold the GDK lock.
+ */
+ mn_g_object_slist_free(priv->messages);
+ priv->messages = NULL;
+
gdk_flush();
GDK_THREADS_LEAVE();
@@ -541,9 +705,9 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- handle_retr_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_retr_top_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
self_handle_list_response(priv, response, TRUE);
@@ -557,18 +721,18 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
case RESPONSE_LIST_END:
priv->messages = g_slist_append(priv->messages,
- mn_message_new_from_buffer(priv->mailbox->uri,
+ mn_message_new_from_buffer(priv->mailbox,
priv->current_message->str,
priv->current_message->len));
priv->current_message_number = priv->current_message_number->next;
- return STATE_RETR;
+ return STATE_RETR_TOP;
case RESPONSE_ERR:
priv->messages = g_slist_append(priv->messages,
- mn_message_new_from_error(priv->mailbox->uri,
+ mn_message_new_from_error(priv->mailbox,
response->arguments ? response->arguments : _("unknown error")));
priv->current_message_number = priv->current_message_number->next;
- return STATE_RETR;
+ return STATE_RETR_TOP;
case RESPONSE_LIST_ITEM:
g_string_append_printf(priv->current_message, "%s\n", response->arguments);
@@ -580,27 +744,33 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private int
- enter_quit_cb (MNClientSession *session (check null),
- MNClientSessionPrivate *priv (check null))
+ enter_quit_cb (MNClientSession *session,
+ MNClientSessionPrivate *priv)
{
return mn_client_session_write(session, "QUIT");
}
private int
- handle_quit_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ handle_quit_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
switch (response->type)
{
- case RESPONSE_OK: return MN_CLIENT_SESSION_RESULT_END;
- case RESPONSE_ERR: return RESULT_ERROR_END;
- default: return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ case RESPONSE_OK:
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ case RESPONSE_ERR:
+ self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+ return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+ default:
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}
- override (MN:Mailbox) void
- impl_check (MN:Mailbox *mailbox (check null type))
+ override (MN:Authenticated:Mailbox) void
+ impl_check (MNAuthenticatedMailbox *mailbox)
{
Self *self = SELF(mailbox);
MNClientSessionState states[] = {
@@ -616,7 +786,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
{ STATE_USER, self_enter_user_cb, self_handle_user_cb },
{ STATE_PASS, self_enter_pass_cb, self_handle_pass_cb },
{ STATE_LIST, self_enter_list_cb, self_handle_list_cb },
- { STATE_RETR, self_enter_retr_cb, self_handle_retr_cb },
+ { STATE_RETR_TOP, self_enter_retr_top_cb, self_handle_retr_top_cb },
{ STATE_QUIT, self_enter_quit_cb, self_handle_quit_cb },
MN_CLIENT_SESSION_STATES_END
@@ -626,12 +796,10 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
self_warning_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb,
NULL, /* pre_read */
NULL, /* post_read */
#ifdef WITH_SASL
- self_sasl_get_username_cb,
- self_sasl_get_password_cb,
+ self_sasl_get_credentials_cb,
#endif
};
MNClientSessionPrivate priv;
@@ -640,6 +808,10 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
PARENT_HANDLER(mailbox);
+ /* check if the parent handler has disabled the mailbox */
+ if (! MN_MAILBOX(self)->must_poll)
+ return;
+
if (selfp->login_delay && selfp->authentication_timer)
{
double elapsed;
@@ -652,7 +824,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
int sleeptime;
sleeptime = selfp->login_delay - elapsed;
- mn_mailbox_notice(mailbox,
+ mn_mailbox_notice(MN_MAILBOX(self),
ngettext("honouring LOGIN-DELAY, sleeping for %i second",
"honouring LOGIN-DELAY, sleeping for %i seconds",
sleeptime),
@@ -662,34 +834,38 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
memset(&priv, 0, sizeof(priv));
- priv.mailbox = mailbox;
- priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+ priv.mailbox = MN_MAILBOX(self);
+ priv.authenticated_mailbox = mailbox;
+ priv.pi_mailbox = MN_PI_MAILBOX(self);
priv.self = self;
status = mn_client_session_run(states,
&callbacks,
#ifdef WITH_SSL
- MN_URI_IS_SSL(mailbox->uri),
+ priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
#endif
- mailbox->uri->hostname,
- mailbox->uri->port,
+ priv.pi_mailbox->hostname,
+ priv.pi_mailbox->runtime_port,
&priv,
&err);
- GDK_THREADS_ENTER();
-
if (! status)
{
- mn_mailbox_set_error(mailbox, "%s", err->message);
+ GDK_THREADS_ENTER();
+
+ mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
g_error_free(err);
}
- mn_mailbox_end_check(mailbox);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
g_free(priv.apop_timestamp);
eel_g_slist_free_deep(priv.auth_mechanisms);
+#ifdef WITH_SASL
+ g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
g_slist_free(priv.message_numbers);
mn_g_object_slist_free(priv.messages);
if (priv.current_message)
@@ -697,25 +873,25 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private void
- notice_cb (MNClientSession *session (check null),
- const char *str (check null),
- MNClientSessionPrivate *priv (check null))
+ notice_cb (MNClientSession *session,
+ const char *message,
+ MNClientSessionPrivate *priv)
{
- mn_mailbox_notice(priv->mailbox, "%s", str);
+ mn_mailbox_notice(priv->mailbox, "%s", message);
}
private void
- warning_cb (MNClientSession *session (check null),
- const char *str (check null),
- MNClientSessionPrivate *priv (check null))
+ warning_cb (MNClientSession *session,
+ const char *message,
+ MNClientSessionPrivate *priv)
{
- mn_mailbox_warning(priv->mailbox, "%s", str);
+ mn_mailbox_warning(priv->mailbox, "%s", message);
}
private MNClientSessionResponse *
- response_new_cb (MNClientSession *session (check null),
- const char *input (check null),
- MNClientSessionPrivate *priv (check null))
+ response_new_cb (MNClientSession *session,
+ const char *input,
+ MNClientSessionPrivate *priv)
{
MNClientSessionResponse *response = NULL;
@@ -730,12 +906,12 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
* showing up in the UI (for instance, through
* session_set_error_from_arguments()).
*
- * However, RETR multiline responses do not need to (and must not)
- * be validated: most servers send them in whatever charset the
- * original message is, and our mn-message-mime implementation
+ * However, RETR/TOP multiline responses do not need to (and must
+ * not) be validated: most servers send them in whatever charset
+ * the original message is, and our mn-message-mime implementation
* handles that.
*/
- if (priv->in_retr || g_utf8_validate(input, -1, NULL))
+ if (priv->in_retr_top || g_utf8_validate(input, -1, NULL))
{
if (priv->in_list)
{
@@ -795,66 +971,50 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
private void
- response_free_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- MNClientSessionPrivate *priv (check null))
+ response_free_cb (MNClientSession *session,
+ MNClientSessionResponse *response,
+ MNClientSessionPrivate *priv)
{
g_free(response->arguments);
g_free(response);
}
private int
- custom_handler_cb (MNClientSession *session (check null),
- MNClientSessionResponse *response (check null),
- int result,
- MNClientSessionPrivate *priv (check null))
- {
- switch (result)
- {
- case RESULT_ERROR_QUIT:
- self_session_set_error_from_arguments(priv, response);
- return STATE_QUIT;
-
- case RESULT_ERROR_END:
- self_session_set_error_from_arguments(priv, response);
- return MN_CLIENT_SESSION_RESULT_END;
-
- default:
- g_return_val_if_reached(0);
- }
- }
-
- private int
session_authenticate (MNClientSessionPrivate *priv (check null))
{
- if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+ g_slist_free(priv->sasl_remaining_mechanisms);
+ priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+ if (priv->pi_mailbox->authmech)
{
- if (*priv->mailbox->uri->authmech != '+')
+ if (*priv->pi_mailbox->authmech != '+')
{
#ifdef WITH_SASL
return STATE_AUTH;
#else
- mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
return STATE_QUIT;
#endif /* WITH_SASL */
}
else
{
- if (! strcmp(priv->mailbox->uri->authmech, "+APOP"))
+ if (! strcmp(priv->pi_mailbox->authmech, "+APOP"))
{
if (priv->apop_timestamp)
return STATE_APOP;
else
{
- mn_client_session_error(priv->session, _("server does not support APOP authentication"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support APOP authentication"));
return STATE_QUIT;
}
}
- else if (! strcmp(priv->mailbox->uri->authmech, "+USERPASS"))
+ else if (! strcmp(priv->pi_mailbox->authmech, "+USERPASS"))
return STATE_USER;
else
{
- mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
return STATE_QUIT;
}
}
@@ -862,7 +1022,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
else
{
#ifdef WITH_SASL
- if (priv->auth_mechanisms)
+ if (priv->sasl_remaining_mechanisms)
return STATE_AUTH;
#endif /* WITH_SASL */
if (priv->apop_timestamp)
@@ -877,8 +1037,29 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
gboolean tried_apop,
gboolean tried_pass)
{
- if (! priv->mailbox->uri->authmech)
+ if (! priv->pi_mailbox->authmech)
{
+#ifdef WITH_SASL
+ if (priv->sasl_mechanism)
+ {
+ GSList *elem;
+
+ elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+ if (elem)
+ {
+ priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+ if (priv->sasl_remaining_mechanisms)
+ {
+ mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+ return STATE_AUTH;
+ }
+ }
+ }
+
+ /* SASL is not needed anymore, save some memory */
+ mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
if (! tried_apop && priv->apop_timestamp)
{
mn_client_session_notice(priv->session, _("falling back to APOP authentication"));
@@ -891,14 +1072,14 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
}
}
- if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+ if (priv->authenticated_mailbox->prompted)
{
mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
return self_session_authenticate(priv);
}
else
{
- mn_client_session_error(priv->session, _("authentication failed"));
+ mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
return STATE_QUIT;
}
}
@@ -914,29 +1095,45 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
else
priv->self->_priv->authentication_timer = g_timer_new();
}
- return priv->login_delay_user ? STATE_CAPA : STATE_LIST;
+
+ /*
+ * We are now in transaction state. We must re-issue CAPA if:
+ *
+ * - the LOGIN-DELAY capability announced in the authorization
+ * state contained the USER argument (priv->login_delay_user is
+ * true)
+ * - the TOP capability was not announced in the authorization
+ * state: although RFC 2449 states that "capabilities available
+ * in the AUTHORIZATION state MUST be announced in both states",
+ * some servers (for instance, pop.gmail.com) violate the RFC
+ * and only announce TOP in the transaction state.
+ */
+ return priv->login_delay_user || ! priv->top_supported
+ ? STATE_CAPA
+ : STATE_LIST;
}
private void
session_set_error_from_arguments (MNClientSessionPrivate *priv (check null),
+ int code,
MNClientSessionResponse *response (check null))
{
if (response->arguments)
- mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+ mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
else
- mn_client_session_error(priv->session, _("unknown server error"));
+ mn_client_session_error(priv->session, code, _("unknown server error"));
}
private void
handle_list_response (MNClientSessionPrivate *priv (check null),
MNClientSessionResponse *response (check null),
- gboolean retr)
+ gboolean in_retr_top)
{
switch (response->type)
{
case RESPONSE_OK:
priv->in_list = TRUE;
- priv->in_retr = retr;
+ priv->in_retr_top = in_retr_top;
break;
case RESPONSE_LIST_ITEM: /* nop */
@@ -944,8 +1141,16 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
default:
priv->in_list = FALSE;
- priv->in_retr = FALSE;
+ priv->in_retr_top = FALSE;
break;
}
}
+
+ public char *
+ build_name (const char *username, const char *hostname (check null))
+ {
+ return username
+ ? g_strdup_printf("%s@%s", username, hostname)
+ : g_strdup(hostname);
+ }
}
diff --git a/src/mn-pop3-mailbox.h b/src/mn-pop3-mailbox.h
@@ -1,10 +1,10 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
#ifndef __MN_POP3_MAILBOX_H__
#define __MN_POP3_MAILBOX_H__
@@ -14,6 +14,10 @@ extern "C" {
#endif /* __cplusplus */
+
+extern int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+
+
/*
* Type checking and casting macros
*/
@@ -36,7 +40,7 @@ typedef struct _MNPOP3MailboxPrivate MNPOP3MailboxPrivate;
typedef struct _MNPOP3Mailbox MNPOP3Mailbox;
#endif
struct _MNPOP3Mailbox {
- MNAuthenticatedMailbox __parent__;
+ MNPIMailbox __parent__;
/*< private >*/
MNPOP3MailboxPrivate *_priv;
};
@@ -46,7 +50,7 @@ struct _MNPOP3Mailbox {
*/
typedef struct _MNPOP3MailboxClass MNPOP3MailboxClass;
struct _MNPOP3MailboxClass {
- MNAuthenticatedMailboxClass __parent__;
+ MNPIMailboxClass __parent__;
};
@@ -54,6 +58,8 @@ struct _MNPOP3MailboxClass {
* Public methods
*/
GType mn_pop3_mailbox_get_type (void);
+char * mn_pop3_mailbox_build_name (const char * username,
+ const char * hostname);
#ifdef __cplusplus
}
diff --git a/src/mn-properties-dialog-private.h b/src/mn-properties-dialog-private.h
@@ -0,0 +1,123 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_PROPERTIES_DIALOG_PRIVATE_H__
+#define __MN_PROPERTIES_DIALOG_PRIVATE_H__
+
+#include "mn-properties-dialog.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNPropertiesDialogPrivate {
+#line 47 "mn-properties-dialog.gob"
+ GtkWidget * notebook;
+#line 50 "mn-properties-dialog.gob"
+ GtkWidget * autostart_check;
+#line 51 "mn-properties-dialog.gob"
+ GtkWidget * blink_check;
+#line 52 "mn-properties-dialog.gob"
+ GtkWidget * summary_tooltip_check;
+#line 53 "mn-properties-dialog.gob"
+ GtkWidget * command_mail_reader_check;
+#line 54 "mn-properties-dialog.gob"
+ GtkWidget * command_mail_reader_entry;
+#line 55 "mn-properties-dialog.gob"
+ GtkWidget * command_new_mail_check;
+#line 56 "mn-properties-dialog.gob"
+ GtkWidget * command_new_mail_entry;
+#line 57 "mn-properties-dialog.gob"
+ GtkWidget * command_mail_read_check;
+#line 58 "mn-properties-dialog.gob"
+ GtkWidget * command_mail_read_entry;
+#line 59 "mn-properties-dialog.gob"
+ GtkWidget * action_main_window_radio;
+#line 60 "mn-properties-dialog.gob"
+ GtkWidget * action_mail_reader_radio;
+#line 61 "mn-properties-dialog.gob"
+ GtkWidget * action_update_radio;
+#line 64 "mn-properties-dialog.gob"
+ GtkWidget * delay_label;
+#line 65 "mn-properties-dialog.gob"
+ GtkWidget * minutes_spin;
+#line 66 "mn-properties-dialog.gob"
+ GtkWidget * minutes_label;
+#line 67 "mn-properties-dialog.gob"
+ GtkWidget * seconds_spin;
+#line 68 "mn-properties-dialog.gob"
+ GtkWidget * seconds_label;
+#line 69 "mn-properties-dialog.gob"
+ GtkWidget * scrolled;
+#line 70 "mn-properties-dialog.gob"
+ GtkWidget * list;
+#line 71 "mn-properties-dialog.gob"
+ GtkWidget * selected_label;
+#line 72 "mn-properties-dialog.gob"
+ GtkWidget * remove;
+#line 73 "mn-properties-dialog.gob"
+ GtkWidget * properties;
+#line 76 "mn-properties-dialog.gob"
+ GtkWidget * summary_enable_check;
+#line 77 "mn-properties-dialog.gob"
+ GtkWidget * summary_autoclose_check;
+#line 78 "mn-properties-dialog.gob"
+ GtkWidget * summary_minutes_spin;
+#line 79 "mn-properties-dialog.gob"
+ GtkWidget * summary_minutes_label;
+#line 80 "mn-properties-dialog.gob"
+ GtkWidget * summary_seconds_spin;
+#line 81 "mn-properties-dialog.gob"
+ GtkWidget * summary_seconds_label;
+#line 82 "mn-properties-dialog.gob"
+ GtkWidget * summary_only_recent_check;
+#line 83 "mn-properties-dialog.gob"
+ GtkWidget * summary_position_label;
+#line 84 "mn-properties-dialog.gob"
+ GtkWidget * summary_position_combo;
+#line 85 "mn-properties-dialog.gob"
+ GtkWidget * summary_horizontal_offset_label;
+#line 86 "mn-properties-dialog.gob"
+ GtkWidget * summary_horizontal_offset_spin;
+#line 87 "mn-properties-dialog.gob"
+ GtkWidget * summary_horizontal_pixels_label;
+#line 88 "mn-properties-dialog.gob"
+ GtkWidget * summary_vertical_offset_label;
+#line 89 "mn-properties-dialog.gob"
+ GtkWidget * summary_vertical_offset_spin;
+#line 90 "mn-properties-dialog.gob"
+ GtkWidget * summary_vertical_pixels_label;
+#line 91 "mn-properties-dialog.gob"
+ GtkWidget * summary_fonts_from_theme_radio;
+#line 92 "mn-properties-dialog.gob"
+ GtkWidget * summary_custom_fonts_radio;
+#line 93 "mn-properties-dialog.gob"
+ GtkWidget * summary_title_font_alignment;
+#line 94 "mn-properties-dialog.gob"
+ GtkWidget * summary_title_font_label;
+#line 95 "mn-properties-dialog.gob"
+ GtkWidget * summary_title_font_button;
+#line 96 "mn-properties-dialog.gob"
+ GtkWidget * summary_contents_font_alignment;
+#line 97 "mn-properties-dialog.gob"
+ GtkWidget * summary_contents_font_label;
+#line 98 "mn-properties-dialog.gob"
+ GtkWidget * summary_contents_font_button;
+#line 99 "mn-properties-dialog.gob"
+ GtkWidget * summary_test_button;
+#line 101 "mn-properties-dialog.gob"
+ GtkWidget * test_popup;
+#line 110 "mn-properties-dialog-private.h"
+};
+void mn_properties_dialog_toggled_h (MNPropertiesDialog * self, GtkToggleButton * button);
+void mn_properties_dialog_autostart_toggled_h (MNPropertiesDialog * self, GtkToggleButton * togglebutton);
+void mn_properties_dialog_add_clicked_h (MNPropertiesDialog * self, GtkButton * button);
+void mn_properties_dialog_remove_clicked_h (MNPropertiesDialog * self, GtkButton * button);
+void mn_properties_dialog_properties_clicked_h (MNPropertiesDialog * self, GtkButton * button);
+void mn_properties_dialog_summary_enable_toggled_h (MNPropertiesDialog * self, GtkToggleButton * button);
+void mn_properties_dialog_summary_test_button_clicked_h (MNPropertiesDialog * self, GtkButton * button);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-properties-dialog.c b/src/mn-properties-dialog.c
@@ -1,514 +1,711 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-properties-dialog.h"
+
+#include "mn-properties-dialog-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-properties-dialog.gob"
#include "config.h"
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <eel/eel.h>
#include "mn-conf.h"
-#include "mn-properties-dialog.h"
#include "mn-util.h"
#include "mn-mailbox-view.h"
#include "mn-shell.h"
-#include "mn-main-window.h"
+#include "mn-mail-summary-popup.h"
+#include "mn-message.h"
-/*** types *******************************************************************/
-
-typedef struct
+enum
{
- GtkWidget *dialog;
- GtkWidget *notebook;
-
- /* general tab */
- GtkWidget *autostart_check;
- GtkWidget *blink_check;
- GtkWidget *summary_tooltip_check;
- GtkWidget *command_mail_reader_check;
- GtkWidget *command_mail_reader_entry;
- GtkWidget *command_new_mail_check;
- GtkWidget *command_new_mail_entry;
- GtkWidget *command_mail_read_check;
- GtkWidget *command_mail_read_entry;
- GtkWidget *action_main_window_radio;
- GtkWidget *action_mail_reader_radio;
- GtkWidget *action_update_radio;
-
- /* mailboxes tab */
- GtkWidget *delay_label;
- GtkWidget *minutes_spin;
- GtkWidget *minutes_label;
- GtkWidget *seconds_spin;
- GtkWidget *seconds_label;
- GtkWidget *scrolled;
- GtkWidget *list;
- GtkWidget *selected_label;
- GtkWidget *remove;
- GtkWidget *properties;
-
- /* mail summary popup tab */
- GtkWidget *summary_enable_check;
- GtkWidget *summary_autoclose_check;
- GtkWidget *summary_minutes_spin;
- GtkWidget *summary_minutes_label;
- GtkWidget *summary_seconds_spin;
- GtkWidget *summary_seconds_label;
- GtkWidget *summary_only_recent_check;
- GtkWidget *summary_position_label;
- GtkWidget *summary_position_combo;
- GtkWidget *summary_horizontal_offset_label;
- GtkWidget *summary_horizontal_offset_spin;
- GtkWidget *summary_horizontal_pixels_label;
- GtkWidget *summary_vertical_offset_label;
- GtkWidget *summary_vertical_offset_spin;
- GtkWidget *summary_vertical_pixels_label;
- GtkWidget *summary_fonts_from_theme_radio;
- GtkWidget *summary_custom_fonts_radio;
- GtkWidget *summary_title_font_alignment;
- GtkWidget *summary_title_font_label;
- GtkWidget *summary_title_font_button;
- GtkWidget *summary_contents_font_alignment;
- GtkWidget *summary_contents_font_label;
- GtkWidget *summary_contents_font_button;
-
- GtkTooltips *tooltips;
-} PropertiesDialog;
-
-enum {
POSITION_COLUMN_NICK,
POSITION_COLUMN_LABEL,
POSITION_N_COLUMNS
};
-/*** variables ***************************************************************/
-
-static PropertiesDialog self = { NULL };
-
-/*** functions ***************************************************************/
-
-static void mn_properties_dialog_weak_notify_cb (gpointer data,
- GObject *former_dialog);
+#line 47 "mn-properties-dialog.c"
+/* self casting macros */
+#define SELF(x) MN_PROPERTIES_DIALOG(x)
+#define SELF_CONST(x) MN_PROPERTIES_DIALOG_CONST(x)
+#define IS_SELF(x) MN_IS_PROPERTIES_DIALOG(x)
+#define TYPE_SELF MN_TYPE_PROPERTIES_DIALOG
+#define SELF_CLASS(x) MN_PROPERTIES_DIALOG_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_PROPERTIES_DIALOG_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNPropertiesDialog Self;
+typedef MNPropertiesDialogClass SelfClass;
+
+/* here are local prototypes */
+static void mn_properties_dialog_class_init (MNPropertiesDialogClass * c) G_GNUC_UNUSED;
+static void mn_properties_dialog_init (MNPropertiesDialog * self) G_GNUC_UNUSED;
+static void mn_properties_dialog_response_h (MNPropertiesDialog * self, int response, gpointer user_data) G_GNUC_UNUSED;
+static void mn_properties_dialog_add_position (GtkListStore * store, MNPosition position, const char * label) G_GNUC_UNUSED;
+static void mn_properties_dialog_update_selected_label (MNPropertiesDialog * self) G_GNUC_UNUSED;
+static void mn_properties_dialog_update_sensitivity (MNPropertiesDialog * self) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNDialogClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_response_h mn_properties_dialog_response_h
+#define self_add_position mn_properties_dialog_add_position
+#define self_update_selected_label mn_properties_dialog_update_selected_label
+#define self_update_sensitivity mn_properties_dialog_update_sensitivity
+#define self_test_popup_displayed mn_properties_dialog_test_popup_displayed
+#define self_toggled_h mn_properties_dialog_toggled_h
+#define self_autostart_toggled_h mn_properties_dialog_autostart_toggled_h
+#define self_add_clicked_h mn_properties_dialog_add_clicked_h
+#define self_remove_clicked_h mn_properties_dialog_remove_clicked_h
+#define self_properties_clicked_h mn_properties_dialog_properties_clicked_h
+#define self_summary_enable_toggled_h mn_properties_dialog_summary_enable_toggled_h
+#define self_summary_test_button_clicked_h mn_properties_dialog_summary_test_button_clicked_h
+GType
+mn_properties_dialog_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNPropertiesDialogClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_properties_dialog_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNPropertiesDialog),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_properties_dialog_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_DIALOG, "MNPropertiesDialog", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
-static void mn_properties_dialog_add_position (GtkListStore *store,
- MNPosition position,
- const char *label);
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNPropertiesDialog *)g_object_new(mn_properties_dialog_get_type(), NULL))
-static void mn_properties_dialog_update_selected_label (void);
-static void mn_properties_dialog_update_sensitivity (void);
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNPropertiesDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNPropertiesDialog *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNPropertiesDialog *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNPropertiesDialog *)g_object_new_valist (mn_properties_dialog_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
-static void mn_properties_dialog_selection_changed_h (GtkTreeSelection *selection,
- gpointer user_data);
-/*** implementation **********************************************************/
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::finalize"
+ MNPropertiesDialog *self G_GNUC_UNUSED = MN_PROPERTIES_DIALOG (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#define test_popup (self->_priv->test_popup)
+#define VAR test_popup
+ {
+#line 103 "mn-properties-dialog.gob"
+
+ if (VAR)
+ {
+ g_object_weak_unref(G_OBJECT(VAR), (GWeakNotify) self_update_sensitivity, self);
+ gtk_widget_destroy(VAR);
+ }
+ }
+#line 147 "mn-properties-dialog.c"
+ memset(&test_popup, 0, sizeof(test_popup));
+#undef VAR
+#undef test_popup
+}
+#undef __GOB_FUNCTION__
-void
-mn_properties_dialog_display (void)
+static void
+mn_properties_dialog_class_init (MNPropertiesDialogClass * c G_GNUC_UNUSED)
{
- GtkSizeGroup *size_group;
- GtkTreeSelection *selection;
- GtkListStore *position_store;
- GtkCellRenderer *renderer;
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
- g_return_if_fail(mn_shell != NULL);
+ g_type_class_add_private(c,sizeof(MNPropertiesDialogPrivate));
- if (self.dialog)
- {
- gtk_window_present(GTK_WINDOW(self.dialog));
- return;
- }
-
- mn_create_interface(MN_INTERFACE_FILE("properties.glade"),
- "dialog", &self.dialog,
- "notebook", &self.notebook,
- "autostart_check", &self.autostart_check,
- "blink_check", &self.blink_check,
- "summary_tooltip_check", &self.summary_tooltip_check,
- "command_mail_reader_check", &self.command_mail_reader_check,
- "command_mail_reader_entry", &self.command_mail_reader_entry,
- "command_new_mail_check", &self.command_new_mail_check,
- "command_new_mail_entry", &self.command_new_mail_entry,
- "command_mail_read_check", &self.command_mail_read_check,
- "command_mail_read_entry", &self.command_mail_read_entry,
- "action_main_window_radio", &self.action_main_window_radio,
- "action_mail_reader_radio", &self.action_mail_reader_radio,
- "action_update_radio", &self.action_update_radio,
- "delay_label", &self.delay_label,
- "minutes_spin", &self.minutes_spin,
- "minutes_label", &self.minutes_label,
- "seconds_spin", &self.seconds_spin,
- "seconds_label", &self.seconds_label,
- "scrolled", &self.scrolled,
- "selected_label", &self.selected_label,
- "remove", &self.remove,
- "properties", &self.properties,
- "summary_enable_check", &self.summary_enable_check,
- "summary_autoclose_check", &self.summary_autoclose_check,
- "summary_minutes_spin", &self.summary_minutes_spin,
- "summary_minutes_label", &self.summary_minutes_label,
- "summary_seconds_spin", &self.summary_seconds_spin,
- "summary_seconds_label", &self.summary_seconds_label,
- "summary_only_recent_check", &self.summary_only_recent_check,
- "summary_position_label", &self.summary_position_label,
- "summary_position_combo", &self.summary_position_combo,
- "summary_horizontal_offset_label", &self.summary_horizontal_offset_label,
- "summary_horizontal_offset_spin", &self.summary_horizontal_offset_spin,
- "summary_horizontal_pixels_label", &self.summary_horizontal_pixels_label,
- "summary_vertical_offset_label", &self.summary_vertical_offset_label,
- "summary_vertical_offset_spin", &self.summary_vertical_offset_spin,
- "summary_vertical_pixels_label", &self.summary_vertical_pixels_label,
- "summary_fonts_from_theme_radio", &self.summary_fonts_from_theme_radio,
- "summary_custom_fonts_radio", &self.summary_custom_fonts_radio,
- "summary_title_font_alignment", &self.summary_title_font_alignment,
- "summary_title_font_label", &self.summary_title_font_label,
- "summary_title_font_button", &self.summary_title_font_button,
- "summary_contents_font_alignment", &self.summary_contents_font_alignment,
- "summary_contents_font_label", &self.summary_contents_font_label,
- "summary_contents_font_button", &self.summary_contents_font_button,
- NULL);
-
- eel_add_weak_pointer(&self.dialog);
- g_object_weak_ref(G_OBJECT(self.dialog), mn_properties_dialog_weak_notify_cb, NULL);
-
- self.tooltips = gtk_tooltips_new();
- mn_gtk_object_ref_and_sink(GTK_OBJECT(self.tooltips));
- eel_add_weak_pointer(&self.tooltips);
-
- self.list = mn_mailbox_view_new();
- gtk_container_add(GTK_CONTAINER(self.scrolled), self.list);
- gtk_widget_show(self.list);
-
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self.list));
- g_signal_connect(selection, "changed", G_CALLBACK(mn_properties_dialog_selection_changed_h), NULL);
-
- mn_setup_dnd(self.scrolled);
+ parent_class = g_type_class_ref (MN_TYPE_DIALOG);
- size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget(size_group, self.command_mail_reader_check);
- gtk_size_group_add_widget(size_group, self.command_new_mail_check);
- gtk_size_group_add_widget(size_group, self.command_mail_read_check);
- g_object_unref(size_group);
+ g_object_class->finalize = ___finalize;
+}
+#undef __GOB_FUNCTION__
+#line 111 "mn-properties-dialog.gob"
+static void
+mn_properties_dialog_init (MNPropertiesDialog * self G_GNUC_UNUSED)
+#line 170 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::init"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_PROPERTIES_DIALOG,MNPropertiesDialogPrivate);
+ {
+#line 112 "mn-properties-dialog.gob"
+
+ GtkSizeGroup *size_group;
+ GtkTreeSelection *selection;
+ GtkListStore *position_store;
+ GtkCellRenderer *renderer;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+ MN_INTERFACE_FILE("properties-dialog.glade"),
+ "notebook",
+ "mn_properties_dialog_",
+ "notebook", &selfp->notebook,
+ "autostart_check", &selfp->autostart_check,
+ "blink_check", &selfp->blink_check,
+ "summary_tooltip_check", &selfp->summary_tooltip_check,
+ "command_mail_reader_check", &selfp->command_mail_reader_check,
+ "command_mail_reader_entry", &selfp->command_mail_reader_entry,
+ "command_new_mail_check", &selfp->command_new_mail_check,
+ "command_new_mail_entry", &selfp->command_new_mail_entry,
+ "command_mail_read_check", &selfp->command_mail_read_check,
+ "command_mail_read_entry", &selfp->command_mail_read_entry,
+ "action_main_window_radio", &selfp->action_main_window_radio,
+ "action_mail_reader_radio", &selfp->action_mail_reader_radio,
+ "action_update_radio", &selfp->action_update_radio,
+ "delay_label", &selfp->delay_label,
+ "minutes_spin", &selfp->minutes_spin,
+ "minutes_label", &selfp->minutes_label,
+ "seconds_spin", &selfp->seconds_spin,
+ "seconds_label", &selfp->seconds_label,
+ "scrolled", &selfp->scrolled,
+ "selected_label", &selfp->selected_label,
+ "remove", &selfp->remove,
+ "properties", &selfp->properties,
+ "summary_enable_check", &selfp->summary_enable_check,
+ "summary_autoclose_check", &selfp->summary_autoclose_check,
+ "summary_minutes_spin", &selfp->summary_minutes_spin,
+ "summary_minutes_label", &selfp->summary_minutes_label,
+ "summary_seconds_spin", &selfp->summary_seconds_spin,
+ "summary_seconds_label", &selfp->summary_seconds_label,
+ "summary_only_recent_check", &selfp->summary_only_recent_check,
+ "summary_position_label", &selfp->summary_position_label,
+ "summary_position_combo", &selfp->summary_position_combo,
+ "summary_horizontal_offset_label", &selfp->summary_horizontal_offset_label,
+ "summary_horizontal_offset_spin", &selfp->summary_horizontal_offset_spin,
+ "summary_horizontal_pixels_label", &selfp->summary_horizontal_pixels_label,
+ "summary_vertical_offset_label", &selfp->summary_vertical_offset_label,
+ "summary_vertical_offset_spin", &selfp->summary_vertical_offset_spin,
+ "summary_vertical_pixels_label", &selfp->summary_vertical_pixels_label,
+ "summary_fonts_from_theme_radio", &selfp->summary_fonts_from_theme_radio,
+ "summary_custom_fonts_radio", &selfp->summary_custom_fonts_radio,
+ "summary_title_font_alignment", &selfp->summary_title_font_alignment,
+ "summary_title_font_label", &selfp->summary_title_font_label,
+ "summary_title_font_button", &selfp->summary_title_font_button,
+ "summary_contents_font_alignment", &selfp->summary_contents_font_alignment,
+ "summary_contents_font_label", &selfp->summary_contents_font_label,
+ "summary_contents_font_button", &selfp->summary_contents_font_button,
+ "summary_test_button", &selfp->summary_test_button,
+ NULL);
+
+ gtk_window_set_title(GTK_WINDOW(self), _("Mail Notification Properties"));
+ gtk_dialog_add_buttons(GTK_DIALOG(self),
+ GTK_STOCK_HELP, GTK_RESPONSE_HELP,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+ NULL);
+
+ selfp->list = mn_mailbox_view_new();
+ gtk_container_add(GTK_CONTAINER(selfp->scrolled), selfp->list);
+ gtk_widget_show(selfp->list);
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+ g_object_connect(selection,
+ "swapped-signal::changed", self_update_selected_label, self,
+ "swapped-signal::changed", self_update_sensitivity, self,
+ NULL);
- size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget(size_group, self.summary_autoclose_check);
- gtk_size_group_add_widget(size_group, self.summary_position_label);
- gtk_size_group_add_widget(size_group, self.summary_horizontal_offset_label);
- gtk_size_group_add_widget(size_group, self.summary_vertical_offset_label);
- gtk_size_group_add_widget(size_group, self.summary_title_font_alignment);
- gtk_size_group_add_widget(size_group, self.summary_contents_font_alignment);
- g_object_unref(size_group);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self.autostart_check), mn_conf_get_autostart());
-
- position_store = gtk_list_store_new(POSITION_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
-
- mn_properties_dialog_add_position(position_store, MN_POSITION_TOP_LEFT, _("top left"));
- mn_properties_dialog_add_position(position_store, MN_POSITION_TOP_RIGHT, _("top right"));
- mn_properties_dialog_add_position(position_store, MN_POSITION_BOTTOM_LEFT, _("bottom left"));
- mn_properties_dialog_add_position(position_store, MN_POSITION_BOTTOM_RIGHT, _("bottom right"));
-
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(self.summary_position_combo), renderer, TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(self.summary_position_combo), renderer,
- "text", POSITION_COLUMN_LABEL,
- NULL);
-
- gtk_combo_box_set_model(GTK_COMBO_BOX(self.summary_position_combo), GTK_TREE_MODEL(position_store));
- g_object_unref(position_store);
+ mn_setup_dnd(selfp->scrolled);
+
+ size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+ gtk_size_group_add_widget(size_group, selfp->command_mail_reader_check);
+ gtk_size_group_add_widget(size_group, selfp->command_new_mail_check);
+ gtk_size_group_add_widget(size_group, selfp->command_mail_read_check);
+ g_object_unref(size_group);
- mn_conf_link(self.dialog, MN_CONF_PROPERTIES_DIALOG,
- self.blink_check, MN_CONF_BLINK_ON_ERRORS, "active",
- self.summary_tooltip_check, MN_CONF_SUMMARY_TOOLTIP, "active",
- self.command_mail_reader_check, MN_CONF_COMMANDS_MAIL_READER_ENABLED, "active",
- self.command_mail_reader_entry, MN_CONF_COMMANDS_MAIL_READER_COMMAND, "text",
- self.command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED, "active",
- self.command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND, "text",
- self.command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED, "active",
- self.command_mail_read_entry, MN_CONF_COMMANDS_MAIL_READ_COMMAND, "text",
- self.minutes_spin, MN_CONF_DELAY_MINUTES,
- self.seconds_spin, MN_CONF_DELAY_SECONDS,
- self.summary_enable_check, MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, "active",
- self.summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, "active",
- self.summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
- self.summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
- self.summary_only_recent_check, MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT, "active",
- self.summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
- self.summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
- self.summary_title_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, "font-name",
- self.summary_contents_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, "font-name",
- NULL);
- mn_conf_link_radio_group_to_enum(MN_TYPE_ACTION,
- MN_CONF_DOUBLE_CLICK_ACTION_2,
- self.action_main_window_radio, MN_ACTION_DISPLAY_MAIN_WINDOW,
- self.action_mail_reader_radio, MN_ACTION_LAUNCH_MAIL_READER,
- self.action_update_radio, MN_ACTION_UPDATE_MAIL_STATUS,
- NULL);
- mn_conf_link_radio_group_to_enum(MN_TYPE_ASPECT_SOURCE,
- MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE,
- self.summary_fonts_from_theme_radio, MN_ASPECT_SOURCE_THEME,
- self.summary_custom_fonts_radio, MN_ASPECT_SOURCE_CUSTOM,
+ size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+ gtk_size_group_add_widget(size_group, selfp->summary_autoclose_check);
+ gtk_size_group_add_widget(size_group, selfp->summary_position_label);
+ gtk_size_group_add_widget(size_group, selfp->summary_horizontal_offset_label);
+ gtk_size_group_add_widget(size_group, selfp->summary_vertical_offset_label);
+ gtk_size_group_add_widget(size_group, selfp->summary_title_font_alignment);
+ gtk_size_group_add_widget(size_group, selfp->summary_contents_font_alignment);
+ g_object_unref(size_group);
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->autostart_check), mn_conf_get_autostart());
+
+ position_store = gtk_list_store_new(POSITION_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+
+ self_add_position(position_store, MN_POSITION_TOP_LEFT, _("top left"));
+ self_add_position(position_store, MN_POSITION_TOP_RIGHT, _("top right"));
+ self_add_position(position_store, MN_POSITION_BOTTOM_LEFT, _("bottom left"));
+ self_add_position(position_store, MN_POSITION_BOTTOM_RIGHT, _("bottom right"));
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer, TRUE);
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer,
+ "text", POSITION_COLUMN_LABEL,
NULL);
- mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(self.summary_position_combo),
- POSITION_COLUMN_NICK,
- MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
- mn_properties_dialog_update_selected_label();
- mn_properties_dialog_update_sensitivity();
+ gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->summary_position_combo), GTK_TREE_MODEL(position_store));
+ g_object_unref(position_store);
+
+ mn_conf_link(self, MN_CONF_PROPERTIES_DIALOG,
+ selfp->blink_check, MN_CONF_BLINK_ON_ERRORS, "active",
+ selfp->summary_tooltip_check, MN_CONF_SUMMARY_TOOLTIP, "active",
+ selfp->command_mail_reader_check, MN_CONF_COMMANDS_MAIL_READER_ENABLED, "active",
+ selfp->command_mail_reader_entry, MN_CONF_COMMANDS_MAIL_READER_COMMAND, "text",
+ selfp->command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED, "active",
+ selfp->command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND, "text",
+ selfp->command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED, "active",
+ selfp->command_mail_read_entry, MN_CONF_COMMANDS_MAIL_READ_COMMAND, "text",
+ selfp->minutes_spin, MN_CONF_DELAY_MINUTES,
+ selfp->seconds_spin, MN_CONF_DELAY_SECONDS,
+ selfp->summary_enable_check, MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, "active",
+ selfp->summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, "active",
+ selfp->summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+ selfp->summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+ selfp->summary_only_recent_check, MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT, "active",
+ selfp->summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
+ selfp->summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
+ selfp->summary_title_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, "font-name",
+ selfp->summary_contents_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, "font-name",
+ NULL);
+ mn_conf_link_radio_group_to_enum(MN_TYPE_ACTION,
+ MN_CONF_DOUBLE_CLICK_ACTION_2,
+ selfp->action_main_window_radio, MN_ACTION_DISPLAY_MAIN_WINDOW,
+ selfp->action_mail_reader_radio, MN_ACTION_LAUNCH_MAIL_READER,
+ selfp->action_update_radio, MN_ACTION_UPDATE_MAIL_STATUS,
+ NULL);
+ mn_conf_link_radio_group_to_enum(MN_TYPE_ASPECT_SOURCE,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE,
+ selfp->summary_fonts_from_theme_radio, MN_ASPECT_SOURCE_THEME,
+ selfp->summary_custom_fonts_radio, MN_ASPECT_SOURCE_CUSTOM,
+ NULL);
+ mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(selfp->summary_position_combo),
+ POSITION_COLUMN_NICK,
+ MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+
+ self_update_selected_label(self);
+ self_update_sensitivity(self);
+
+ mn_g_object_connect(self,
+ mn_shell->mailboxes,
+ "swapped-signal::notify::must-poll", self_update_sensitivity, self,
+ NULL);
+
+ g_signal_connect(self, "response", G_CALLBACK(self_response_h), NULL);
+
+#line 331 "mn-properties-dialog.c"
+ }
+}
+#undef __GOB_FUNCTION__
- mn_g_object_connect(self.dialog,
- mn_shell->mailboxes,
- "signal::notify::must-poll", mn_properties_dialog_update_sensitivity, NULL,
- NULL);
- mn_main_window_add_transient(GTK_WINDOW(self.dialog));
- gtk_widget_show(self.dialog);
-}
-static void
-mn_properties_dialog_weak_notify_cb (gpointer data, GObject *former_dialog)
+#line 268 "mn-properties-dialog.gob"
+static void
+mn_properties_dialog_response_h (MNPropertiesDialog * self, int response, gpointer user_data)
+#line 341 "mn-properties-dialog.c"
{
- g_object_unref(self.tooltips);
-}
-
-static void
-mn_properties_dialog_add_position (GtkListStore *store,
- MNPosition position,
- const char *label)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::response_h"
+#line 268 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 268 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 348 "mn-properties-dialog.c"
{
- GEnumClass *enum_class;
- GEnumValue *enum_value;
- GtkTreeIter iter;
-
- g_return_if_fail(GTK_IS_LIST_STORE(store));
- g_return_if_fail(label != NULL);
-
- enum_class = g_type_class_ref(MN_TYPE_POSITION);
- g_return_if_fail(enum_class != NULL);
+#line 270 "mn-properties-dialog.gob"
+
+ switch (response)
+ {
+ case GTK_RESPONSE_HELP:
+ {
+ int current_page;
+ const char *sections[] = {
+ "properties-general",
+ "properties-mailboxes",
+ "properties-mail-summary-popup"
+ };
+
+ current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(selfp->notebook));
+ g_return_if_fail(current_page >= 0 && current_page < G_N_ELEMENTS(sections));
- enum_value = g_enum_get_value(enum_class, position);
- g_return_if_fail(enum_value != NULL);
+ mn_display_help(GTK_WINDOW(self), sections[current_page]);
+ break;
+ }
+
+ case GTK_RESPONSE_CLOSE:
+ gtk_widget_destroy(GTK_WIDGET(self));
+ break;
+ }
+ }}
+#line 375 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 295 "mn-properties-dialog.gob"
+static void
+mn_properties_dialog_add_position (GtkListStore * store, MNPosition position, const char * label)
+#line 381 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::add_position"
+#line 295 "mn-properties-dialog.gob"
+ g_return_if_fail (store != NULL);
+#line 295 "mn-properties-dialog.gob"
+ g_return_if_fail (GTK_IS_LIST_STORE (store));
+#line 295 "mn-properties-dialog.gob"
+ g_return_if_fail (label != NULL);
+#line 390 "mn-properties-dialog.c"
+{
+#line 299 "mn-properties-dialog.gob"
+
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+ GtkTreeIter iter;
+
+ enum_class = g_type_class_ref(MN_TYPE_POSITION);
+ g_return_if_fail(enum_class != NULL);
+
+ enum_value = g_enum_get_value(enum_class, position);
+ g_return_if_fail(enum_value != NULL);
+
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter,
+ POSITION_COLUMN_NICK, enum_value->value_nick,
+ POSITION_COLUMN_LABEL, label,
+ -1);
+
+ g_type_class_unref(enum_class);
+ }}
+#line 412 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 319 "mn-properties-dialog.gob"
+static void
+mn_properties_dialog_update_selected_label (MNPropertiesDialog * self)
+#line 418 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::update_selected_label"
+#line 319 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 319 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 425 "mn-properties-dialog.c"
+{
+#line 321 "mn-properties-dialog.gob"
+
+ GtkTreeSelection *selection;
+ int n_rows;
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter,
- POSITION_COLUMN_NICK, enum_value->value_nick,
- POSITION_COLUMN_LABEL, label,
- -1);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+ n_rows = gtk_tree_selection_count_selected_rows(selection);
- g_type_class_unref(enum_class);
-}
+ if (n_rows == 0)
+ gtk_label_set_text(GTK_LABEL(selfp->selected_label), _("No mailbox selected."));
+ else
+ {
+ char *str;
-static void
-mn_properties_dialog_update_selected_label (void)
+ str = g_strdup_printf(ngettext("%i mailbox selected.",
+ "%i mailboxes selected.",
+ n_rows), n_rows);
+ gtk_label_set_text(GTK_LABEL(selfp->selected_label), str);
+ g_free(str);
+ }
+ }}
+#line 448 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 342 "mn-properties-dialog.gob"
+static void
+mn_properties_dialog_update_sensitivity (MNPropertiesDialog * self)
+#line 454 "mn-properties-dialog.c"
{
- GtkTreeSelection *selection;
- int n_rows;
-
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self.list));
- n_rows = gtk_tree_selection_count_selected_rows(selection);
-
- if (n_rows == 0)
- gtk_label_set_text(GTK_LABEL(self.selected_label), _("No mailbox selected."));
- else
- {
- char *str;
-
- str = g_strdup_printf(ngettext("%i mailbox selected.",
- "%i mailboxes selected.",
- n_rows), n_rows);
- gtk_label_set_text(GTK_LABEL(self.selected_label), str);
- g_free(str);
- }
-}
-
-static void
-mn_properties_dialog_update_sensitivity (void)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::update_sensitivity"
+#line 342 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 342 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 461 "mn-properties-dialog.c"
{
- gboolean command_mail_reader_enabled;
- gboolean command_new_mail_enabled;
- gboolean command_mail_read_enabled;
- gboolean must_poll;
- GtkTreeSelection *selection;
- gboolean has_selection;
- gboolean summary_enabled;
- gboolean summary_autoclose_enabled;
- gboolean summary_custom_fonts_enabled;
-
- command_mail_reader_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.command_mail_reader_check));
- command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.command_new_mail_check));
- command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.command_mail_read_check));
-
- gtk_widget_set_sensitive(self.command_mail_reader_entry, command_mail_reader_enabled);
- gtk_widget_set_sensitive(self.command_new_mail_entry, command_new_mail_enabled);
- gtk_widget_set_sensitive(self.command_mail_read_entry, command_mail_read_enabled);
-
- must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
- gtk_widget_set_sensitive(self.delay_label, must_poll);
- gtk_widget_set_sensitive(self.minutes_spin, must_poll);
- gtk_widget_set_sensitive(self.minutes_label, must_poll);
- gtk_widget_set_sensitive(self.seconds_spin, must_poll);
- gtk_widget_set_sensitive(self.seconds_label, must_poll);
-
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self.list));
- has_selection = gtk_tree_selection_count_selected_rows(selection) > 0;
-
- gtk_widget_set_sensitive(self.remove, has_selection);
- gtk_widget_set_sensitive(self.properties, has_selection);
-
- summary_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.summary_enable_check));
- summary_autoclose_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.summary_autoclose_check));
- summary_custom_fonts_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.summary_custom_fonts_radio));
-
- gtk_widget_set_sensitive(self.summary_autoclose_check, summary_enabled);
- gtk_widget_set_sensitive(self.summary_minutes_spin, summary_enabled && summary_autoclose_enabled);
- gtk_widget_set_sensitive(self.summary_minutes_label, summary_enabled && summary_autoclose_enabled);
- gtk_widget_set_sensitive(self.summary_seconds_spin, summary_enabled && summary_autoclose_enabled);
- gtk_widget_set_sensitive(self.summary_seconds_label, summary_enabled && summary_autoclose_enabled);
- gtk_widget_set_sensitive(self.summary_only_recent_check, summary_enabled);
- gtk_widget_set_sensitive(self.summary_position_label, summary_enabled);
- gtk_widget_set_sensitive(self.summary_position_combo, summary_enabled);
- gtk_widget_set_sensitive(self.summary_horizontal_offset_label, summary_enabled);
- gtk_widget_set_sensitive(self.summary_horizontal_offset_spin, summary_enabled);
- gtk_widget_set_sensitive(self.summary_horizontal_pixels_label, summary_enabled);
- gtk_widget_set_sensitive(self.summary_vertical_offset_label, summary_enabled);
- gtk_widget_set_sensitive(self.summary_vertical_offset_spin, summary_enabled);
- gtk_widget_set_sensitive(self.summary_vertical_pixels_label, summary_enabled);
- gtk_widget_set_sensitive(self.summary_fonts_from_theme_radio, summary_enabled);
- gtk_widget_set_sensitive(self.summary_custom_fonts_radio, summary_enabled);
- gtk_widget_set_sensitive(self.summary_title_font_label, summary_enabled && summary_custom_fonts_enabled);
- gtk_widget_set_sensitive(self.summary_title_font_button, summary_enabled && summary_custom_fonts_enabled);
- gtk_widget_set_sensitive(self.summary_contents_font_label, summary_enabled && summary_custom_fonts_enabled);
- gtk_widget_set_sensitive(self.summary_contents_font_button, summary_enabled && summary_custom_fonts_enabled);
-}
-
-static void
-mn_properties_dialog_selection_changed_h (GtkTreeSelection *selection,
- gpointer user_data)
+#line 344 "mn-properties-dialog.gob"
+
+ gboolean command_mail_reader_enabled;
+ gboolean command_new_mail_enabled;
+ gboolean command_mail_read_enabled;
+ gboolean must_poll;
+ GtkTreeSelection *selection;
+ gboolean has_selection;
+ gboolean summary_enabled;
+ gboolean summary_autoclose_enabled;
+ gboolean summary_custom_fonts_enabled;
+
+ command_mail_reader_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_reader_check));
+ command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_new_mail_check));
+ command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_read_check));
+
+ gtk_widget_set_sensitive(selfp->command_mail_reader_entry, command_mail_reader_enabled);
+ gtk_widget_set_sensitive(selfp->command_new_mail_entry, command_new_mail_enabled);
+ gtk_widget_set_sensitive(selfp->command_mail_read_entry, command_mail_read_enabled);
+
+ must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
+ gtk_widget_set_sensitive(selfp->delay_label, must_poll);
+ gtk_widget_set_sensitive(selfp->minutes_spin, must_poll);
+ gtk_widget_set_sensitive(selfp->minutes_label, must_poll);
+ gtk_widget_set_sensitive(selfp->seconds_spin, must_poll);
+ gtk_widget_set_sensitive(selfp->seconds_label, must_poll);
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+ has_selection = gtk_tree_selection_count_selected_rows(selection) > 0;
+
+ gtk_widget_set_sensitive(selfp->remove, has_selection);
+ gtk_widget_set_sensitive(selfp->properties, has_selection);
+
+ summary_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_enable_check));
+ summary_autoclose_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_autoclose_check));
+ summary_custom_fonts_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_custom_fonts_radio));
+
+ gtk_widget_set_sensitive(selfp->summary_autoclose_check, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_minutes_spin, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_minutes_label, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_seconds_spin, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_seconds_label, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_only_recent_check, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_position_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_position_combo, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_horizontal_offset_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_horizontal_offset_spin, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_horizontal_pixels_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_vertical_offset_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_vertical_offset_spin, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_vertical_pixels_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_fonts_from_theme_radio, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_custom_fonts_radio, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_title_font_label, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_title_font_button, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_contents_font_label, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_contents_font_button, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_test_button, summary_enabled && ! selfp->test_popup);
+ }}
+#line 522 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 403 "mn-properties-dialog.gob"
+gboolean
+mn_properties_dialog_test_popup_displayed (MNPropertiesDialog * self)
+#line 528 "mn-properties-dialog.c"
{
- mn_properties_dialog_update_selected_label();
- mn_properties_dialog_update_sensitivity();
-}
-
-void
-mn_properties_dialog_set_tooltip (GtkWidget *widget, const char *tip)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::test_popup_displayed"
+#line 403 "mn-properties-dialog.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 403 "mn-properties-dialog.gob"
+ g_return_val_if_fail (MN_IS_PROPERTIES_DIALOG (self), (gboolean )0);
+#line 535 "mn-properties-dialog.c"
{
- g_return_if_fail(self.tooltips != NULL);
- g_return_if_fail(GTK_IS_WIDGET(widget));
-
- gtk_tooltips_set_tip(self.tooltips, widget, tip, NULL);
-}
-
-void
-mn_properties_dialog_set_tooltips (GtkWidget *widget, ...)
+#line 405 "mn-properties-dialog.gob"
+
+ return selfp->test_popup != NULL;
+ }}
+#line 541 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 411 "mn-properties-dialog.gob"
+void
+mn_properties_dialog_toggled_h (MNPropertiesDialog * self, GtkToggleButton * button)
+#line 547 "mn-properties-dialog.c"
{
- va_list args;
-
- g_return_if_fail(self.tooltips != NULL);
-
- va_start(args, widget);
- while (widget)
- {
- const char *tip;
-
- g_return_if_fail(GTK_IS_WIDGET(widget));
-
- tip = va_arg(args, const char *);
-
- mn_properties_dialog_set_tooltip(widget, tip);
-
- widget = va_arg(args, GtkWidget *);
- }
- va_end(args);
-}
-
-/* libglade callbacks */
-
-void
-mn_properties_dialog_autostart_toggled_h (GtkToggleButton *togglebutton,
- gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::toggled_h"
+#line 411 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 411 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 554 "mn-properties-dialog.c"
{
- mn_conf_set_autostart(gtk_toggle_button_get_active(togglebutton));
-}
-
-void
-mn_properties_dialog_toggled_h (GtkToggleButton *togglebutton,
- gpointer user_data)
+#line 413 "mn-properties-dialog.gob"
+
+ self_update_sensitivity(self);
+ }}
+#line 560 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 417 "mn-properties-dialog.gob"
+void
+mn_properties_dialog_autostart_toggled_h (MNPropertiesDialog * self, GtkToggleButton * togglebutton)
+#line 566 "mn-properties-dialog.c"
{
- mn_properties_dialog_update_sensitivity();
-}
-
-void
-mn_properties_dialog_add_clicked_h (GtkButton *button, gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::autostart_toggled_h"
+#line 417 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 417 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 573 "mn-properties-dialog.c"
{
- mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(self.list));
-}
-
-void
-mn_properties_dialog_remove_clicked_h (GtkButton *button, gpointer user_data)
+#line 419 "mn-properties-dialog.gob"
+
+ mn_conf_set_autostart(gtk_toggle_button_get_active(togglebutton));
+ }}
+#line 579 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 423 "mn-properties-dialog.gob"
+void
+mn_properties_dialog_add_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 585 "mn-properties-dialog.c"
{
- mn_mailbox_view_activate_remove(MN_MAILBOX_VIEW(self.list));
-}
-
-void
-mn_properties_dialog_properties_clicked_h (GtkButton *button,
- gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::add_clicked_h"
+#line 423 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 423 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 592 "mn-properties-dialog.c"
{
- mn_mailbox_view_activate_properties(MN_MAILBOX_VIEW(self.list));
-}
-
-gboolean
-mn_properties_dialog_scrolled_drag_motion_h (GtkWidget *widget,
- GdkDragContext *drag_context,
- int x,
- int y,
- unsigned int time,
- gpointer user_data)
+#line 425 "mn-properties-dialog.gob"
+
+ mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(selfp->list));
+ }}
+#line 598 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 429 "mn-properties-dialog.gob"
+void
+mn_properties_dialog_remove_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 604 "mn-properties-dialog.c"
{
- GtkAdjustment *adjustment;
-
- adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(self.scrolled));
- gtk_adjustment_set_value(adjustment, (double) y / (widget->allocation.height - 2) * (adjustment->upper - adjustment->page_size));
-
- return TRUE;
-}
-
-void
-mn_properties_dialog_response_h (GtkDialog *dialog,
- int response,
- gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::remove_clicked_h"
+#line 429 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 429 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 611 "mn-properties-dialog.c"
{
- switch (response)
- {
- case GTK_RESPONSE_HELP:
- {
- int current_page;
- const char *sections[] = {
- "properties-general",
- "properties-mailboxes",
- "properties-mail-summary-popup"
- };
+#line 431 "mn-properties-dialog.gob"
- current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(self.notebook));
- g_return_if_fail(current_page >= 0 && current_page < G_N_ELEMENTS(sections));
+ mn_mailbox_view_activate_remove(MN_MAILBOX_VIEW(selfp->list));
+ }}
+#line 617 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 435 "mn-properties-dialog.gob"
+void
+mn_properties_dialog_properties_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 623 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::properties_clicked_h"
+#line 435 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 435 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 630 "mn-properties-dialog.c"
+{
+#line 437 "mn-properties-dialog.gob"
+
+ mn_mailbox_view_activate_properties(MN_MAILBOX_VIEW(selfp->list));
+ }}
+#line 636 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 441 "mn-properties-dialog.gob"
+void
+mn_properties_dialog_summary_enable_toggled_h (MNPropertiesDialog * self, GtkToggleButton * button)
+#line 642 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::summary_enable_toggled_h"
+#line 441 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 441 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 649 "mn-properties-dialog.c"
+{
+#line 443 "mn-properties-dialog.gob"
+
+ self_update_sensitivity(self);
+
+ if (selfp->test_popup && ! gtk_toggle_button_get_active(button))
+ gtk_widget_destroy(selfp->test_popup);
+ }}
+#line 658 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 450 "mn-properties-dialog.gob"
+void
+mn_properties_dialog_summary_test_button_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 664 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::summary_test_button_clicked_h"
+#line 450 "mn-properties-dialog.gob"
+ g_return_if_fail (self != NULL);
+#line 450 "mn-properties-dialog.gob"
+ g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 671 "mn-properties-dialog.c"
+{
+#line 452 "mn-properties-dialog.gob"
+
+ GSList *messages = NULL;
+ time_t now;
+ int i;
- mn_display_help(GTK_WINDOW(dialog), sections[current_page]);
- break;
+ now = mn_time();
+ selfp->test_popup = mn_mail_summary_popup_new();
+
+ for (i = 1; i < 4; i++)
+ {
+ MNMessage *message;
+ char *subject;
+
+ subject = g_strdup_printf(_("Test message #%i"), i);
+ message = mn_message_new(NULL,
+ NULL,
+ now,
+ NULL,
+ _("Mail Notification Properties Dialog"),
+ subject);
+ g_free(subject);
+
+ messages = g_slist_append(messages, message);
}
-
- case GTK_RESPONSE_CLOSE:
- gtk_widget_destroy(self.dialog);
- break;
- }
-}
+
+ mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->test_popup), messages);
+ mn_g_object_slist_free(messages);
+
+ eel_add_weak_pointer(&selfp->test_popup);
+ g_object_weak_ref(G_OBJECT(selfp->test_popup), (GWeakNotify) self_update_sensitivity, self);
+
+ /* close the real mail summary popup if any */
+ mn_shell_close_mail_summary_popup(mn_shell);
+
+ self_update_sensitivity(self);
+ gtk_widget_show(selfp->test_popup);
+ }}
+#line 711 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-properties-dialog.gob b/src/mn-properties-dialog.gob
@@ -0,0 +1,489 @@
+/*
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-dialog.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <eel/eel.h>
+#include "mn-conf.h"
+#include "mn-util.h"
+#include "mn-mailbox-view.h"
+#include "mn-shell.h"
+#include "mn-mail-summary-popup.h"
+#include "mn-message.h"
+
+enum
+{
+ POSITION_COLUMN_NICK,
+ POSITION_COLUMN_LABEL,
+ POSITION_N_COLUMNS
+};
+%}
+
+class MN:Properties:Dialog from MN:Dialog
+{
+ private GtkWidget *notebook;
+
+ /* general tab */
+ private GtkWidget *autostart_check;
+ private GtkWidget *blink_check;
+ private GtkWidget *summary_tooltip_check;
+ private GtkWidget *command_mail_reader_check;
+ private GtkWidget *command_mail_reader_entry;
+ private GtkWidget *command_new_mail_check;
+ private GtkWidget *command_new_mail_entry;
+ private GtkWidget *command_mail_read_check;
+ private GtkWidget *command_mail_read_entry;
+ private GtkWidget *action_main_window_radio;
+ private GtkWidget *action_mail_reader_radio;
+ private GtkWidget *action_update_radio;
+
+ /* mailboxes tab */
+ private GtkWidget *delay_label;
+ private GtkWidget *minutes_spin;
+ private GtkWidget *minutes_label;
+ private GtkWidget *seconds_spin;
+ private GtkWidget *seconds_label;
+ private GtkWidget *scrolled;
+ private GtkWidget *list;
+ private GtkWidget *selected_label;
+ private GtkWidget *remove;
+ private GtkWidget *properties;
+
+ /* mail summary popup tab */
+ private GtkWidget *summary_enable_check;
+ private GtkWidget *summary_autoclose_check;
+ private GtkWidget *summary_minutes_spin;
+ private GtkWidget *summary_minutes_label;
+ private GtkWidget *summary_seconds_spin;
+ private GtkWidget *summary_seconds_label;
+ private GtkWidget *summary_only_recent_check;
+ private GtkWidget *summary_position_label;
+ private GtkWidget *summary_position_combo;
+ private GtkWidget *summary_horizontal_offset_label;
+ private GtkWidget *summary_horizontal_offset_spin;
+ private GtkWidget *summary_horizontal_pixels_label;
+ private GtkWidget *summary_vertical_offset_label;
+ private GtkWidget *summary_vertical_offset_spin;
+ private GtkWidget *summary_vertical_pixels_label;
+ private GtkWidget *summary_fonts_from_theme_radio;
+ private GtkWidget *summary_custom_fonts_radio;
+ private GtkWidget *summary_title_font_alignment;
+ private GtkWidget *summary_title_font_label;
+ private GtkWidget *summary_title_font_button;
+ private GtkWidget *summary_contents_font_alignment;
+ private GtkWidget *summary_contents_font_label;
+ private GtkWidget *summary_contents_font_button;
+ private GtkWidget *summary_test_button;
+
+ private GtkWidget *test_popup
+ destroy
+ {
+ if (VAR)
+ {
+ g_object_weak_unref(G_OBJECT(VAR), (GWeakNotify) self_update_sensitivity, self);
+ gtk_widget_destroy(VAR);
+ }
+ };
+
+ init (self)
+ {
+ GtkSizeGroup *size_group;
+ GtkTreeSelection *selection;
+ GtkListStore *position_store;
+ GtkCellRenderer *renderer;
+
+ mn_container_create_interface(GTK_CONTAINER(self),
+ MN_INTERFACE_FILE("properties-dialog.glade"),
+ "notebook",
+ "mn_properties_dialog_",
+ "notebook", &selfp->notebook,
+ "autostart_check", &selfp->autostart_check,
+ "blink_check", &selfp->blink_check,
+ "summary_tooltip_check", &selfp->summary_tooltip_check,
+ "command_mail_reader_check", &selfp->command_mail_reader_check,
+ "command_mail_reader_entry", &selfp->command_mail_reader_entry,
+ "command_new_mail_check", &selfp->command_new_mail_check,
+ "command_new_mail_entry", &selfp->command_new_mail_entry,
+ "command_mail_read_check", &selfp->command_mail_read_check,
+ "command_mail_read_entry", &selfp->command_mail_read_entry,
+ "action_main_window_radio", &selfp->action_main_window_radio,
+ "action_mail_reader_radio", &selfp->action_mail_reader_radio,
+ "action_update_radio", &selfp->action_update_radio,
+ "delay_label", &selfp->delay_label,
+ "minutes_spin", &selfp->minutes_spin,
+ "minutes_label", &selfp->minutes_label,
+ "seconds_spin", &selfp->seconds_spin,
+ "seconds_label", &selfp->seconds_label,
+ "scrolled", &selfp->scrolled,
+ "selected_label", &selfp->selected_label,
+ "remove", &selfp->remove,
+ "properties", &selfp->properties,
+ "summary_enable_check", &selfp->summary_enable_check,
+ "summary_autoclose_check", &selfp->summary_autoclose_check,
+ "summary_minutes_spin", &selfp->summary_minutes_spin,
+ "summary_minutes_label", &selfp->summary_minutes_label,
+ "summary_seconds_spin", &selfp->summary_seconds_spin,
+ "summary_seconds_label", &selfp->summary_seconds_label,
+ "summary_only_recent_check", &selfp->summary_only_recent_check,
+ "summary_position_label", &selfp->summary_position_label,
+ "summary_position_combo", &selfp->summary_position_combo,
+ "summary_horizontal_offset_label", &selfp->summary_horizontal_offset_label,
+ "summary_horizontal_offset_spin", &selfp->summary_horizontal_offset_spin,
+ "summary_horizontal_pixels_label", &selfp->summary_horizontal_pixels_label,
+ "summary_vertical_offset_label", &selfp->summary_vertical_offset_label,
+ "summary_vertical_offset_spin", &selfp->summary_vertical_offset_spin,
+ "summary_vertical_pixels_label", &selfp->summary_vertical_pixels_label,
+ "summary_fonts_from_theme_radio", &selfp->summary_fonts_from_theme_radio,
+ "summary_custom_fonts_radio", &selfp->summary_custom_fonts_radio,
+ "summary_title_font_alignment", &selfp->summary_title_font_alignment,
+ "summary_title_font_label", &selfp->summary_title_font_label,
+ "summary_title_font_button", &selfp->summary_title_font_button,
+ "summary_contents_font_alignment", &selfp->summary_contents_font_alignment,
+ "summary_contents_font_label", &selfp->summary_contents_font_label,
+ "summary_contents_font_button", &selfp->summary_contents_font_button,
+ "summary_test_button", &selfp->summary_test_button,
+ NULL);
+
+ gtk_window_set_title(GTK_WINDOW(self), _("Mail Notification Properties"));
+ gtk_dialog_add_buttons(GTK_DIALOG(self),
+ GTK_STOCK_HELP, GTK_RESPONSE_HELP,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+ NULL);
+
+ selfp->list = mn_mailbox_view_new();
+ gtk_container_add(GTK_CONTAINER(selfp->scrolled), selfp->list);
+ gtk_widget_show(selfp->list);
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+ g_object_connect(selection,
+ "swapped-signal::changed", self_update_selected_label, self,
+ "swapped-signal::changed", self_update_sensitivity, self,
+ NULL);
+
+ mn_setup_dnd(selfp->scrolled);
+
+ size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+ gtk_size_group_add_widget(size_group, selfp->command_mail_reader_check);
+ gtk_size_group_add_widget(size_group, selfp->command_new_mail_check);
+ gtk_size_group_add_widget(size_group, selfp->command_mail_read_check);
+ g_object_unref(size_group);
+
+ size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+ gtk_size_group_add_widget(size_group, selfp->summary_autoclose_check);
+ gtk_size_group_add_widget(size_group, selfp->summary_position_label);
+ gtk_size_group_add_widget(size_group, selfp->summary_horizontal_offset_label);
+ gtk_size_group_add_widget(size_group, selfp->summary_vertical_offset_label);
+ gtk_size_group_add_widget(size_group, selfp->summary_title_font_alignment);
+ gtk_size_group_add_widget(size_group, selfp->summary_contents_font_alignment);
+ g_object_unref(size_group);
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->autostart_check), mn_conf_get_autostart());
+
+ position_store = gtk_list_store_new(POSITION_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+
+ self_add_position(position_store, MN_POSITION_TOP_LEFT, _("top left"));
+ self_add_position(position_store, MN_POSITION_TOP_RIGHT, _("top right"));
+ self_add_position(position_store, MN_POSITION_BOTTOM_LEFT, _("bottom left"));
+ self_add_position(position_store, MN_POSITION_BOTTOM_RIGHT, _("bottom right"));
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer, TRUE);
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer,
+ "text", POSITION_COLUMN_LABEL,
+ NULL);
+
+ gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->summary_position_combo), GTK_TREE_MODEL(position_store));
+ g_object_unref(position_store);
+
+ mn_conf_link(self, MN_CONF_PROPERTIES_DIALOG,
+ selfp->blink_check, MN_CONF_BLINK_ON_ERRORS, "active",
+ selfp->summary_tooltip_check, MN_CONF_SUMMARY_TOOLTIP, "active",
+ selfp->command_mail_reader_check, MN_CONF_COMMANDS_MAIL_READER_ENABLED, "active",
+ selfp->command_mail_reader_entry, MN_CONF_COMMANDS_MAIL_READER_COMMAND, "text",
+ selfp->command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED, "active",
+ selfp->command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND, "text",
+ selfp->command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED, "active",
+ selfp->command_mail_read_entry, MN_CONF_COMMANDS_MAIL_READ_COMMAND, "text",
+ selfp->minutes_spin, MN_CONF_DELAY_MINUTES,
+ selfp->seconds_spin, MN_CONF_DELAY_SECONDS,
+ selfp->summary_enable_check, MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, "active",
+ selfp->summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, "active",
+ selfp->summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+ selfp->summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+ selfp->summary_only_recent_check, MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT, "active",
+ selfp->summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
+ selfp->summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
+ selfp->summary_title_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, "font-name",
+ selfp->summary_contents_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, "font-name",
+ NULL);
+ mn_conf_link_radio_group_to_enum(MN_TYPE_ACTION,
+ MN_CONF_DOUBLE_CLICK_ACTION_2,
+ selfp->action_main_window_radio, MN_ACTION_DISPLAY_MAIN_WINDOW,
+ selfp->action_mail_reader_radio, MN_ACTION_LAUNCH_MAIL_READER,
+ selfp->action_update_radio, MN_ACTION_UPDATE_MAIL_STATUS,
+ NULL);
+ mn_conf_link_radio_group_to_enum(MN_TYPE_ASPECT_SOURCE,
+ MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE,
+ selfp->summary_fonts_from_theme_radio, MN_ASPECT_SOURCE_THEME,
+ selfp->summary_custom_fonts_radio, MN_ASPECT_SOURCE_CUSTOM,
+ NULL);
+ mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(selfp->summary_position_combo),
+ POSITION_COLUMN_NICK,
+ MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+
+ self_update_selected_label(self);
+ self_update_sensitivity(self);
+
+ mn_g_object_connect(self,
+ mn_shell->mailboxes,
+ "swapped-signal::notify::must-poll", self_update_sensitivity, self,
+ NULL);
+
+ g_signal_connect(self, "response", G_CALLBACK(self_response_h), NULL);
+ }
+
+ private void
+ response_h (self, int response, gpointer user_data)
+ {
+ switch (response)
+ {
+ case GTK_RESPONSE_HELP:
+ {
+ int current_page;
+ const char *sections[] = {
+ "properties-general",
+ "properties-mailboxes",
+ "properties-mail-summary-popup"
+ };
+
+ current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(selfp->notebook));
+ g_return_if_fail(current_page >= 0 && current_page < G_N_ELEMENTS(sections));
+
+ mn_display_help(GTK_WINDOW(self), sections[current_page]);
+ break;
+ }
+
+ case GTK_RESPONSE_CLOSE:
+ gtk_widget_destroy(GTK_WIDGET(self));
+ break;
+ }
+ }
+
+ private void
+ add_position (Gtk:List:Store *store (check null type),
+ MNPosition position,
+ const char *label (check null))
+ {
+ GEnumClass *enum_class;
+ GEnumValue *enum_value;
+ GtkTreeIter iter;
+
+ enum_class = g_type_class_ref(MN_TYPE_POSITION);
+ g_return_if_fail(enum_class != NULL);
+
+ enum_value = g_enum_get_value(enum_class, position);
+ g_return_if_fail(enum_value != NULL);
+
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter,
+ POSITION_COLUMN_NICK, enum_value->value_nick,
+ POSITION_COLUMN_LABEL, label,
+ -1);
+
+ g_type_class_unref(enum_class);
+ }
+
+ private void
+ update_selected_label (self)
+ {
+ GtkTreeSelection *selection;
+ int n_rows;
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+ n_rows = gtk_tree_selection_count_selected_rows(selection);
+
+ if (n_rows == 0)
+ gtk_label_set_text(GTK_LABEL(selfp->selected_label), _("No mailbox selected."));
+ else
+ {
+ char *str;
+
+ str = g_strdup_printf(ngettext("%i mailbox selected.",
+ "%i mailboxes selected.",
+ n_rows), n_rows);
+ gtk_label_set_text(GTK_LABEL(selfp->selected_label), str);
+ g_free(str);
+ }
+ }
+
+ private void
+ update_sensitivity (self)
+ {
+ gboolean command_mail_reader_enabled;
+ gboolean command_new_mail_enabled;
+ gboolean command_mail_read_enabled;
+ gboolean must_poll;
+ GtkTreeSelection *selection;
+ gboolean has_selection;
+ gboolean summary_enabled;
+ gboolean summary_autoclose_enabled;
+ gboolean summary_custom_fonts_enabled;
+
+ command_mail_reader_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_reader_check));
+ command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_new_mail_check));
+ command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_read_check));
+
+ gtk_widget_set_sensitive(selfp->command_mail_reader_entry, command_mail_reader_enabled);
+ gtk_widget_set_sensitive(selfp->command_new_mail_entry, command_new_mail_enabled);
+ gtk_widget_set_sensitive(selfp->command_mail_read_entry, command_mail_read_enabled);
+
+ must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
+ gtk_widget_set_sensitive(selfp->delay_label, must_poll);
+ gtk_widget_set_sensitive(selfp->minutes_spin, must_poll);
+ gtk_widget_set_sensitive(selfp->minutes_label, must_poll);
+ gtk_widget_set_sensitive(selfp->seconds_spin, must_poll);
+ gtk_widget_set_sensitive(selfp->seconds_label, must_poll);
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+ has_selection = gtk_tree_selection_count_selected_rows(selection) > 0;
+
+ gtk_widget_set_sensitive(selfp->remove, has_selection);
+ gtk_widget_set_sensitive(selfp->properties, has_selection);
+
+ summary_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_enable_check));
+ summary_autoclose_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_autoclose_check));
+ summary_custom_fonts_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_custom_fonts_radio));
+
+ gtk_widget_set_sensitive(selfp->summary_autoclose_check, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_minutes_spin, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_minutes_label, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_seconds_spin, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_seconds_label, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(selfp->summary_only_recent_check, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_position_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_position_combo, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_horizontal_offset_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_horizontal_offset_spin, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_horizontal_pixels_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_vertical_offset_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_vertical_offset_spin, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_vertical_pixels_label, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_fonts_from_theme_radio, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_custom_fonts_radio, summary_enabled);
+ gtk_widget_set_sensitive(selfp->summary_title_font_label, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_title_font_button, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_contents_font_label, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_contents_font_button, summary_enabled && summary_custom_fonts_enabled);
+ gtk_widget_set_sensitive(selfp->summary_test_button, summary_enabled && ! selfp->test_popup);
+ }
+
+ public gboolean
+ test_popup_displayed (self)
+ {
+ return selfp->test_popup != NULL;
+ }
+
+ /* libglade callbacks */
+
+ protected void
+ toggled_h (self, GtkToggleButton *button)
+ {
+ self_update_sensitivity(self);
+ }
+
+ protected void
+ autostart_toggled_h (self, GtkToggleButton *togglebutton)
+ {
+ mn_conf_set_autostart(gtk_toggle_button_get_active(togglebutton));
+ }
+
+ protected void
+ add_clicked_h (self, GtkButton *button)
+ {
+ mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(selfp->list));
+ }
+
+ protected void
+ remove_clicked_h (self, GtkButton *button)
+ {
+ mn_mailbox_view_activate_remove(MN_MAILBOX_VIEW(selfp->list));
+ }
+
+ protected void
+ properties_clicked_h (self, GtkButton *button)
+ {
+ mn_mailbox_view_activate_properties(MN_MAILBOX_VIEW(selfp->list));
+ }
+
+ protected void
+ summary_enable_toggled_h (self, GtkToggleButton *button)
+ {
+ self_update_sensitivity(self);
+
+ if (selfp->test_popup && ! gtk_toggle_button_get_active(button))
+ gtk_widget_destroy(selfp->test_popup);
+ }
+
+ protected void
+ summary_test_button_clicked_h (self, GtkButton *button)
+ {
+ GSList *messages = NULL;
+ time_t now;
+ int i;
+
+ now = mn_time();
+ selfp->test_popup = mn_mail_summary_popup_new();
+
+ for (i = 1; i < 4; i++)
+ {
+ MNMessage *message;
+ char *subject;
+
+ subject = g_strdup_printf(_("Test message #%i"), i);
+ message = mn_message_new(NULL,
+ NULL,
+ now,
+ NULL,
+ _("Mail Notification Properties Dialog"),
+ subject);
+ g_free(subject);
+
+ messages = g_slist_append(messages, message);
+ }
+
+ mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->test_popup), messages);
+ mn_g_object_slist_free(messages);
+
+ eel_add_weak_pointer(&selfp->test_popup);
+ g_object_weak_ref(G_OBJECT(selfp->test_popup), (GWeakNotify) self_update_sensitivity, self);
+
+ /* close the real mail summary popup if any */
+ mn_shell_close_mail_summary_popup(mn_shell);
+
+ self_update_sensitivity(self);
+ gtk_widget_show(selfp->test_popup);
+ }
+}
diff --git a/src/mn-properties-dialog.h b/src/mn-properties-dialog.h
@@ -1,32 +1,63 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-dialog.h"
+
+#ifndef __MN_PROPERTIES_DIALOG_H__
+#define __MN_PROPERTIES_DIALOG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
*/
+#define MN_TYPE_PROPERTIES_DIALOG (mn_properties_dialog_get_type())
+#define MN_PROPERTIES_DIALOG(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_properties_dialog_get_type(), MNPropertiesDialog)
+#define MN_PROPERTIES_DIALOG_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_properties_dialog_get_type(), MNPropertiesDialog const)
+#define MN_PROPERTIES_DIALOG_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_properties_dialog_get_type(), MNPropertiesDialogClass)
+#define MN_IS_PROPERTIES_DIALOG(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_properties_dialog_get_type ())
-#ifndef _MN_PROPERTIES_DIALOG_H
-#define _MN_PROPERTIES_DIALOG_H
+#define MN_PROPERTIES_DIALOG_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_properties_dialog_get_type(), MNPropertiesDialogClass)
-#include <stdarg.h>
-#include <gtk/gtk.h>
+/* Private structure type */
+typedef struct _MNPropertiesDialogPrivate MNPropertiesDialogPrivate;
-void mn_properties_dialog_display (void);
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_PROPERTIES_DIALOG__
+#define __TYPEDEF_MN_PROPERTIES_DIALOG__
+typedef struct _MNPropertiesDialog MNPropertiesDialog;
+#endif
+struct _MNPropertiesDialog {
+ MNDialog __parent__;
+ /*< private >*/
+ MNPropertiesDialogPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNPropertiesDialogClass MNPropertiesDialogClass;
+struct _MNPropertiesDialogClass {
+ MNDialogClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_properties_dialog_get_type (void);
+gboolean mn_properties_dialog_test_popup_displayed (MNPropertiesDialog * self);
-void mn_properties_dialog_set_tooltip (GtkWidget *widget,
- const char *tip);
-void mn_properties_dialog_set_tooltips (GtkWidget *widget,
- ...);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
-#endif /* _MN_PROPERTIES_DIALOG_H */
+#endif
diff --git a/src/mn-reentrant-mailbox-private.h b/src/mn-reentrant-mailbox-private.h
@@ -0,0 +1,33 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_REENTRANT_MAILBOX_PRIVATE_H__
+#define __MN_REENTRANT_MAILBOX_PRIVATE_H__
+
+#include "mn-reentrant-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNReentrantMailboxPrivate {
+#line 40 "mn-reentrant-mailbox.gob"
+ GMutex * mutex;
+#line 42 "mn-reentrant-mailbox.gob"
+ unsigned int queue_check_id;
+#line 44 "mn-reentrant-mailbox.gob"
+ unsigned long check_id;
+#line 45 "mn-reentrant-mailbox.gob"
+ unsigned long check_unique_id;
+#line 22 "mn-reentrant-mailbox-private.h"
+};
+void mn_reentrant_mailbox_queue_check (MNReentrantMailbox * self);
+gboolean mn_reentrant_mailbox_check_aborted (MNReentrantMailbox * self, unsigned long check_id);
+gboolean mn_reentrant_mailbox_check_aborted_unlocked (MNReentrantMailbox * self, unsigned long check_id);
+void mn_reentrant_mailbox_lock (MNReentrantMailbox * self);
+void mn_reentrant_mailbox_unlock (MNReentrantMailbox * self);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-reentrant-mailbox.c b/src/mn-reentrant-mailbox.c
@@ -0,0 +1,420 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-reentrant-mailbox.h"
+
+#include "mn-reentrant-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-reentrant-mailbox.gob"
+
+#include "config.h"
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+
+typedef struct
+{
+ MNReentrantMailbox *self;
+ unsigned long check_id;
+} CheckInfo;
+
+#line 40 "mn-reentrant-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_REENTRANT_MAILBOX(x)
+#define SELF_CONST(x) MN_REENTRANT_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_REENTRANT_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_REENTRANT_MAILBOX
+#define SELF_CLASS(x) MN_REENTRANT_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_REENTRANT_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNReentrantMailbox Self;
+typedef MNReentrantMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void mn_reentrant_mailbox_init (MNReentrantMailbox * o) G_GNUC_UNUSED;
+static void mn_reentrant_mailbox_class_init (MNReentrantMailboxClass * c) G_GNUC_UNUSED;
+static void ___1_mn_reentrant_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___2_mn_reentrant_mailbox_finalize (GObject * object) G_GNUC_UNUSED;
+static gboolean mn_reentrant_mailbox_queue_check_cb (gpointer data) G_GNUC_UNUSED;
+static void ___5_mn_reentrant_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_reentrant_mailbox_check_thread_cb (CheckInfo * info) G_GNUC_UNUSED;
+static void mn_reentrant_mailbox_impl_check (MNReentrantMailbox * self, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_queue_check mn_reentrant_mailbox_queue_check
+#define self_queue_check_cb mn_reentrant_mailbox_queue_check_cb
+#define self_check_thread_cb mn_reentrant_mailbox_check_thread_cb
+#define self_impl_check mn_reentrant_mailbox_impl_check
+#define self_check_aborted mn_reentrant_mailbox_check_aborted
+#define self_check_aborted_unlocked mn_reentrant_mailbox_check_aborted_unlocked
+#define self_lock mn_reentrant_mailbox_lock
+#define self_unlock mn_reentrant_mailbox_unlock
+GType
+mn_reentrant_mailbox_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNReentrantMailboxClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_reentrant_mailbox_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNReentrantMailbox),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_reentrant_mailbox_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_MAILBOX, "MNReentrantMailbox", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNReentrantMailbox *)g_object_new(mn_reentrant_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNReentrantMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNReentrantMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNReentrantMailbox *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNReentrantMailbox *)g_object_new_valist (mn_reentrant_mailbox_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::finalize"
+ MNReentrantMailbox *self G_GNUC_UNUSED = MN_REENTRANT_MAILBOX (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 59 "mn-reentrant-mailbox.gob"
+ ___2_mn_reentrant_mailbox_finalize(obj_self);
+#line 127 "mn-reentrant-mailbox.c"
+#line 40 "mn-reentrant-mailbox.gob"
+ if(self->_priv->mutex) { g_mutex_free ((gpointer) self->_priv->mutex); self->_priv->mutex = NULL; }
+#line 130 "mn-reentrant-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_reentrant_mailbox_init (MNReentrantMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_REENTRANT_MAILBOX,MNReentrantMailboxPrivate);
+#line 40 "mn-reentrant-mailbox.gob"
+ o->_priv->mutex = g_mutex_new();
+#line 141 "mn-reentrant-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+static void
+mn_reentrant_mailbox_class_init (MNReentrantMailboxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
+
+ g_type_class_add_private(c,sizeof(MNReentrantMailboxPrivate));
+
+ parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
+
+#line 47 "mn-reentrant-mailbox.gob"
+ mn_mailbox_class->removed = ___1_mn_reentrant_mailbox_removed;
+#line 59 "mn-reentrant-mailbox.gob"
+ g_object_class->finalize = ___finalize;
+#line 92 "mn-reentrant-mailbox.gob"
+ mn_mailbox_class->check = ___5_mn_reentrant_mailbox_check;
+#line 161 "mn-reentrant-mailbox.c"
+ c->impl_check = NULL;
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 47 "mn-reentrant-mailbox.gob"
+static void
+___1_mn_reentrant_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 171 "mn-reentrant-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->removed) \
+ (* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::removed"
+{
+#line 49 "mn-reentrant-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+
+ self_lock(self);
+ selfp->check_id = 0;
+ self_unlock(self);
+
+ PARENT_HANDLER(mailbox);
+ }}
+#line 188 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 59 "mn-reentrant-mailbox.gob"
+static void
+___2_mn_reentrant_mailbox_finalize (GObject * object G_GNUC_UNUSED)
+#line 195 "mn-reentrant-mailbox.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::finalize"
+{
+#line 61 "mn-reentrant-mailbox.gob"
+
+ Self *self = SELF(object);
+
+ if (selfp->queue_check_id)
+ g_source_remove(selfp->queue_check_id);
+
+ PARENT_HANDLER(object);
+ }}
+#line 211 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 70 "mn-reentrant-mailbox.gob"
+void
+mn_reentrant_mailbox_queue_check (MNReentrantMailbox * self)
+#line 218 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::queue_check"
+#line 70 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (self != NULL);
+#line 70 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 225 "mn-reentrant-mailbox.c"
+{
+#line 72 "mn-reentrant-mailbox.gob"
+
+ if (selfp->queue_check_id)
+ g_source_remove(selfp->queue_check_id);
+
+ selfp->queue_check_id = g_idle_add(self_queue_check_cb, self);
+ }}
+#line 234 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 79 "mn-reentrant-mailbox.gob"
+static gboolean
+mn_reentrant_mailbox_queue_check_cb (gpointer data)
+#line 240 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::queue_check_cb"
+{
+#line 81 "mn-reentrant-mailbox.gob"
+
+ Self *self = data;
+
+ GDK_THREADS_ENTER();
+ mn_mailbox_check(MN_MAILBOX(self));
+ GDK_THREADS_LEAVE();
+
+ selfp->queue_check_id = 0;
+ return FALSE; /* remove source */
+ }}
+#line 255 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 92 "mn-reentrant-mailbox.gob"
+static void
+___5_mn_reentrant_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 261 "mn-reentrant-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->check) \
+ (* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check"
+{
+#line 94 "mn-reentrant-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+ CheckInfo *info;
+
+ PARENT_HANDLER(mailbox);
+
+ mn_mailbox_set_error(mailbox, NULL);
+
+ if (++selfp->check_unique_id == 0)
+ ++selfp->check_unique_id;
+
+ info = g_new(CheckInfo, 1);
+ info->self = g_object_ref(self);
+ info->check_id = selfp->check_unique_id;
+
+ self_lock(self);
+ selfp->check_id = info->check_id;
+ self_unlock(self);
+
+ mn_thread_create((GThreadFunc) self_check_thread_cb, info);
+ }}
+#line 290 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 116 "mn-reentrant-mailbox.gob"
+static void
+mn_reentrant_mailbox_check_thread_cb (CheckInfo * info)
+#line 297 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check_thread_cb"
+{
+#line 118 "mn-reentrant-mailbox.gob"
+
+ Self *self = info->self;
+
+ self_impl_check(self, info->check_id);
+
+ self_lock(self);
+ if (selfp->check_id == info->check_id)
+ selfp->check_id = 0;
+ self_unlock(self);
+
+ GDK_THREADS_ENTER();
+
+ g_object_unref(self);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ g_free(info);
+ }}
+#line 321 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 138 "mn-reentrant-mailbox.gob"
+static void
+mn_reentrant_mailbox_impl_check (MNReentrantMailbox * self, unsigned long check_id)
+#line 327 "mn-reentrant-mailbox.c"
+{
+ MNReentrantMailboxClass *klass;
+#line 138 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (self != NULL);
+#line 138 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 334 "mn-reentrant-mailbox.c"
+ klass = MN_REENTRANT_MAILBOX_GET_CLASS(self);
+
+ if(klass->impl_check)
+ (*klass->impl_check)(self,check_id);
+}
+
+#line 141 "mn-reentrant-mailbox.gob"
+gboolean
+mn_reentrant_mailbox_check_aborted (MNReentrantMailbox * self, unsigned long check_id)
+#line 344 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check_aborted"
+#line 141 "mn-reentrant-mailbox.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 141 "mn-reentrant-mailbox.gob"
+ g_return_val_if_fail (MN_IS_REENTRANT_MAILBOX (self), (gboolean )0);
+#line 351 "mn-reentrant-mailbox.c"
+{
+#line 143 "mn-reentrant-mailbox.gob"
+
+ gboolean aborted;
+
+ self_lock(self);
+ aborted = selfp->check_id != check_id;
+ self_unlock(self);
+
+ return aborted;
+ }}
+#line 363 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 153 "mn-reentrant-mailbox.gob"
+gboolean
+mn_reentrant_mailbox_check_aborted_unlocked (MNReentrantMailbox * self, unsigned long check_id)
+#line 369 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check_aborted_unlocked"
+#line 153 "mn-reentrant-mailbox.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 153 "mn-reentrant-mailbox.gob"
+ g_return_val_if_fail (MN_IS_REENTRANT_MAILBOX (self), (gboolean )0);
+#line 376 "mn-reentrant-mailbox.c"
+{
+#line 155 "mn-reentrant-mailbox.gob"
+
+ return selfp->check_id != check_id;
+ }}
+#line 382 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 159 "mn-reentrant-mailbox.gob"
+void
+mn_reentrant_mailbox_lock (MNReentrantMailbox * self)
+#line 388 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::lock"
+#line 159 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (self != NULL);
+#line 159 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 395 "mn-reentrant-mailbox.c"
+{
+#line 161 "mn-reentrant-mailbox.gob"
+
+ g_mutex_lock(selfp->mutex);
+ }}
+#line 401 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 165 "mn-reentrant-mailbox.gob"
+void
+mn_reentrant_mailbox_unlock (MNReentrantMailbox * self)
+#line 407 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::unlock"
+#line 165 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (self != NULL);
+#line 165 "mn-reentrant-mailbox.gob"
+ g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 414 "mn-reentrant-mailbox.c"
+{
+#line 167 "mn-reentrant-mailbox.gob"
+
+ g_mutex_unlock(selfp->mutex);
+ }}
+#line 420 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-reentrant-mailbox.gob b/src/mn-reentrant-mailbox.gob
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+
+typedef struct
+{
+ MNReentrantMailbox *self;
+ unsigned long check_id;
+} CheckInfo;
+%}
+
+class MN:Reentrant:Mailbox from MN:Mailbox
+{
+ private GMutex *mutex = {g_mutex_new()} destroywith g_mutex_free;
+
+ private unsigned int queue_check_id;
+
+ private unsigned long check_id;
+ private unsigned long check_unique_id;
+
+ override (MN:Mailbox) void
+ removed (MNMailbox *mailbox)
+ {
+ Self *self = SELF(mailbox);
+
+ self_lock(self);
+ selfp->check_id = 0;
+ self_unlock(self);
+
+ PARENT_HANDLER(mailbox);
+ }
+
+ override (G:Object) void
+ finalize (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ if (selfp->queue_check_id)
+ g_source_remove(selfp->queue_check_id);
+
+ PARENT_HANDLER(object);
+ }
+
+ protected void
+ queue_check (self)
+ {
+ if (selfp->queue_check_id)
+ g_source_remove(selfp->queue_check_id);
+
+ selfp->queue_check_id = g_idle_add(self_queue_check_cb, self);
+ }
+
+ private gboolean
+ queue_check_cb (gpointer data)
+ {
+ Self *self = data;
+
+ GDK_THREADS_ENTER();
+ mn_mailbox_check(MN_MAILBOX(self));
+ GDK_THREADS_LEAVE();
+
+ selfp->queue_check_id = 0;
+ return FALSE; /* remove source */
+ }
+
+ override (MN:Mailbox) void
+ check (MNMailbox *mailbox)
+ {
+ Self *self = SELF(mailbox);
+ CheckInfo *info;
+
+ PARENT_HANDLER(mailbox);
+
+ mn_mailbox_set_error(mailbox, NULL);
+
+ if (++selfp->check_unique_id == 0)
+ ++selfp->check_unique_id;
+
+ info = g_new(CheckInfo, 1);
+ info->self = g_object_ref(self);
+ info->check_id = selfp->check_unique_id;
+
+ self_lock(self);
+ selfp->check_id = info->check_id;
+ self_unlock(self);
+
+ mn_thread_create((GThreadFunc) self_check_thread_cb, info);
+ }
+
+ private void
+ check_thread_cb (CheckInfo *info)
+ {
+ Self *self = info->self;
+
+ self_impl_check(self, info->check_id);
+
+ self_lock(self);
+ if (selfp->check_id == info->check_id)
+ selfp->check_id = 0;
+ self_unlock(self);
+
+ GDK_THREADS_ENTER();
+
+ g_object_unref(self);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ g_free(info);
+ }
+
+ virtual private void
+ impl_check (self, unsigned long check_id);
+
+ protected gboolean
+ check_aborted (self, unsigned long check_id)
+ {
+ gboolean aborted;
+
+ self_lock(self);
+ aborted = selfp->check_id != check_id;
+ self_unlock(self);
+
+ return aborted;
+ }
+
+ protected gboolean
+ check_aborted_unlocked (self, unsigned long check_id)
+ {
+ return selfp->check_id != check_id;
+ }
+
+ protected void
+ lock (self)
+ {
+ g_mutex_lock(selfp->mutex);
+ }
+
+ protected void
+ unlock (self)
+ {
+ g_mutex_unlock(selfp->mutex);
+ }
+}
diff --git a/src/mn-reentrant-mailbox.h b/src/mn-reentrant-mailbox.h
@@ -0,0 +1,63 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-mailbox.h"
+
+#ifndef __MN_REENTRANT_MAILBOX_H__
+#define __MN_REENTRANT_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_REENTRANT_MAILBOX (mn_reentrant_mailbox_get_type())
+#define MN_REENTRANT_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_reentrant_mailbox_get_type(), MNReentrantMailbox)
+#define MN_REENTRANT_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_reentrant_mailbox_get_type(), MNReentrantMailbox const)
+#define MN_REENTRANT_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_reentrant_mailbox_get_type(), MNReentrantMailboxClass)
+#define MN_IS_REENTRANT_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_reentrant_mailbox_get_type ())
+
+#define MN_REENTRANT_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_reentrant_mailbox_get_type(), MNReentrantMailboxClass)
+
+/* Private structure type */
+typedef struct _MNReentrantMailboxPrivate MNReentrantMailboxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_REENTRANT_MAILBOX__
+#define __TYPEDEF_MN_REENTRANT_MAILBOX__
+typedef struct _MNReentrantMailbox MNReentrantMailbox;
+#endif
+struct _MNReentrantMailbox {
+ MNMailbox __parent__;
+ /*< private >*/
+ MNReentrantMailboxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNReentrantMailboxClass MNReentrantMailboxClass;
+struct _MNReentrantMailboxClass {
+ MNMailboxClass __parent__;
+ void (* impl_check) (MNReentrantMailbox * self, unsigned long check_id);
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_reentrant_mailbox_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-sasl.c b/src/mn-sasl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -23,40 +23,43 @@
/*** variables ***************************************************************/
-static int use_count = 0;
-G_LOCK_DEFINE_STATIC(use_count);
+static gboolean attempted = FALSE;
+static gboolean initialized = FALSE;
+static char *init_error = NULL;
+
+G_LOCK_DEFINE_STATIC(init);
/*** implementation **********************************************************/
gboolean
-mn_sasl_use (GError **err)
+mn_sasl_init (GError **err)
{
- gboolean success = TRUE;
+ /*
+ * Bad things may happen if we call sasl_client_init() again after
+ * having called sasl_done(), so we just keep SASL initialized for
+ * the whole application lifetime.
+ */
- G_LOCK(use_count);
- if (++use_count == 1)
+ G_LOCK(init);
+ if (! attempted)
{
int status;
status = sasl_client_init(NULL);
- if (status != SASL_OK)
- {
- use_count--;
- g_set_error(err, 0, 0, "%s", sasl_errstring(status, NULL, NULL));
- success = FALSE;
- }
+ if (status == SASL_OK)
+ initialized = TRUE;
+ else
+ init_error = g_strdup(sasl_errstring(status, NULL, NULL));
+
+ attempted = TRUE;
}
- G_UNLOCK(use_count);
- return success;
-}
+ if (! initialized)
+ {
+ g_assert(init_error != NULL);
+ g_set_error(err, 0, 0, "%s", init_error);
+ }
+ G_UNLOCK(init);
-void
-mn_sasl_unuse (void)
-{
- G_LOCK(use_count);
- g_return_if_fail(use_count > 0);
- if (--use_count == 0)
- sasl_done();
- G_UNLOCK(use_count);
+ return initialized;
}
diff --git a/src/mn-sasl.h b/src/mn-sasl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -21,7 +21,6 @@
#include <glib.h>
-gboolean mn_sasl_use (GError **err);
-void mn_sasl_unuse (void);
+gboolean mn_sasl_init (GError **err);
#endif /* _MN_SASL_H */
diff --git a/src/mn-sgml-entities.h b/src/mn-sgml-entities.h
@@ -1,277 +0,0 @@
-/*
- * mn-sgml-entities.h - SGML entities table
- *
- * Generated automatically by ent2h.sh.
- * Do not edit this file directly.
- */
-
-#ifndef _MN_SGML_ENTITIES_H
-#define _MN_SGML_ENTITIES_H
-
-static const struct
-{
- const char *name;
- unsigned long character;
-} entities[] = {
-
- /* xhtml-lat1.ent */
- { "nbsp", 160 },
- { "iexcl", 161 },
- { "cent", 162 },
- { "pound", 163 },
- { "curren", 164 },
- { "yen", 165 },
- { "brvbar", 166 },
- { "sect", 167 },
- { "uml", 168 },
- { "copy", 169 },
- { "ordf", 170 },
- { "laquo", 171 },
- { "not", 172 },
- { "shy", 173 },
- { "reg", 174 },
- { "macr", 175 },
- { "deg", 176 },
- { "plusmn", 177 },
- { "sup", 178 },
- { "sup", 179 },
- { "acute", 180 },
- { "micro", 181 },
- { "para", 182 },
- { "middot", 183 },
- { "cedil", 184 },
- { "sup", 185 },
- { "ordm", 186 },
- { "raquo", 187 },
- { "frac", 188 },
- { "frac", 189 },
- { "frac", 190 },
- { "iquest", 191 },
- { "Agrave", 192 },
- { "Aacute", 193 },
- { "Acirc", 194 },
- { "Atilde", 195 },
- { "Auml", 196 },
- { "Aring", 197 },
- { "AElig", 198 },
- { "Ccedil", 199 },
- { "Egrave", 200 },
- { "Eacute", 201 },
- { "Ecirc", 202 },
- { "Euml", 203 },
- { "Igrave", 204 },
- { "Iacute", 205 },
- { "Icirc", 206 },
- { "Iuml", 207 },
- { "ETH", 208 },
- { "Ntilde", 209 },
- { "Ograve", 210 },
- { "Oacute", 211 },
- { "Ocirc", 212 },
- { "Otilde", 213 },
- { "Ouml", 214 },
- { "times", 215 },
- { "Oslash", 216 },
- { "Ugrave", 217 },
- { "Uacute", 218 },
- { "Ucirc", 219 },
- { "Uuml", 220 },
- { "Yacute", 221 },
- { "THORN", 222 },
- { "szlig", 223 },
- { "agrave", 224 },
- { "aacute", 225 },
- { "acirc", 226 },
- { "atilde", 227 },
- { "auml", 228 },
- { "aring", 229 },
- { "aelig", 230 },
- { "ccedil", 231 },
- { "egrave", 232 },
- { "eacute", 233 },
- { "ecirc", 234 },
- { "euml", 235 },
- { "igrave", 236 },
- { "iacute", 237 },
- { "icirc", 238 },
- { "iuml", 239 },
- { "eth", 240 },
- { "ntilde", 241 },
- { "ograve", 242 },
- { "oacute", 243 },
- { "ocirc", 244 },
- { "otilde", 245 },
- { "ouml", 246 },
- { "divide", 247 },
- { "oslash", 248 },
- { "ugrave", 249 },
- { "uacute", 250 },
- { "ucirc", 251 },
- { "uuml", 252 },
- { "yacute", 253 },
- { "thorn", 254 },
- { "yuml", 255 },
-
- /* xhtml-special.ent */
- { "quot", 34 },
- { "amp", 38 },
- { "lt", 60 },
- { "gt", 62 },
- { "apos", 39 },
- { "OElig", 338 },
- { "oelig", 339 },
- { "Scaron", 352 },
- { "scaron", 353 },
- { "Yuml", 376 },
- { "circ", 710 },
- { "tilde", 732 },
- { "ensp", 8194 },
- { "emsp", 8195 },
- { "thinsp", 8201 },
- { "zwnj", 8204 },
- { "zwj", 8205 },
- { "lrm", 8206 },
- { "rlm", 8207 },
- { "ndash", 8211 },
- { "mdash", 8212 },
- { "lsquo", 8216 },
- { "rsquo", 8217 },
- { "sbquo", 8218 },
- { "ldquo", 8220 },
- { "rdquo", 8221 },
- { "bdquo", 8222 },
- { "dagger", 8224 },
- { "Dagger", 8225 },
- { "permil", 8240 },
- { "lsaquo", 8249 },
- { "rsaquo", 8250 },
- { "euro", 8364 },
-
- /* xhtml-symbol.ent */
- { "fnof", 402 },
- { "Alpha", 913 },
- { "Beta", 914 },
- { "Gamma", 915 },
- { "Delta", 916 },
- { "Epsilon", 917 },
- { "Zeta", 918 },
- { "Eta", 919 },
- { "Theta", 920 },
- { "Iota", 921 },
- { "Kappa", 922 },
- { "Lambda", 923 },
- { "Mu", 924 },
- { "Nu", 925 },
- { "Xi", 926 },
- { "Omicron", 927 },
- { "Pi", 928 },
- { "Rho", 929 },
- { "Sigma", 931 },
- { "Tau", 932 },
- { "Upsilon", 933 },
- { "Phi", 934 },
- { "Chi", 935 },
- { "Psi", 936 },
- { "Omega", 937 },
- { "alpha", 945 },
- { "beta", 946 },
- { "gamma", 947 },
- { "delta", 948 },
- { "epsilon", 949 },
- { "zeta", 950 },
- { "eta", 951 },
- { "theta", 952 },
- { "iota", 953 },
- { "kappa", 954 },
- { "lambda", 955 },
- { "mu", 956 },
- { "nu", 957 },
- { "xi", 958 },
- { "omicron", 959 },
- { "pi", 960 },
- { "rho", 961 },
- { "sigmaf", 962 },
- { "sigma", 963 },
- { "tau", 964 },
- { "upsilon", 965 },
- { "phi", 966 },
- { "chi", 967 },
- { "psi", 968 },
- { "omega", 969 },
- { "thetasym", 977 },
- { "upsih", 978 },
- { "piv", 982 },
- { "bull", 8226 },
- { "hellip", 8230 },
- { "prime", 8242 },
- { "Prime", 8243 },
- { "oline", 8254 },
- { "frasl", 8260 },
- { "weierp", 8472 },
- { "image", 8465 },
- { "real", 8476 },
- { "trade", 8482 },
- { "alefsym", 8501 },
- { "larr", 8592 },
- { "uarr", 8593 },
- { "rarr", 8594 },
- { "darr", 8595 },
- { "harr", 8596 },
- { "crarr", 8629 },
- { "lArr", 8656 },
- { "uArr", 8657 },
- { "rArr", 8658 },
- { "dArr", 8659 },
- { "hArr", 8660 },
- { "forall", 8704 },
- { "part", 8706 },
- { "exist", 8707 },
- { "empty", 8709 },
- { "nabla", 8711 },
- { "isin", 8712 },
- { "notin", 8713 },
- { "ni", 8715 },
- { "prod", 8719 },
- { "sum", 8721 },
- { "minus", 8722 },
- { "lowast", 8727 },
- { "radic", 8730 },
- { "prop", 8733 },
- { "infin", 8734 },
- { "ang", 8736 },
- { "and", 8743 },
- { "or", 8744 },
- { "cap", 8745 },
- { "cup", 8746 },
- { "int", 8747 },
- { "there", 8756 },
- { "sim", 8764 },
- { "cong", 8773 },
- { "asymp", 8776 },
- { "ne", 8800 },
- { "equiv", 8801 },
- { "le", 8804 },
- { "ge", 8805 },
- { "sub", 8834 },
- { "sup", 8835 },
- { "nsub", 8836 },
- { "sube", 8838 },
- { "supe", 8839 },
- { "oplus", 8853 },
- { "otimes", 8855 },
- { "perp", 8869 },
- { "sdot", 8901 },
- { "lceil", 8968 },
- { "rceil", 8969 },
- { "lfloor", 8970 },
- { "rfloor", 8971 },
- { "lang", 9001 },
- { "rang", 9002 },
- { "loz", 9674 },
- { "spades", 9824 },
- { "clubs", 9827 },
- { "hearts", 9829 },
- { "diams", 9830 },
-};
-
-#endif /* _MN_SGML_ENTITIES_H */
diff --git a/src/mn-sgml-ref.c b/src/mn-sgml-ref.c
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <glib.h>
-#include "mn-sgml-entities.h"
-
-/*** functions ***************************************************************/
-
-static gunichar mn_sgml_ref_get_unichar (const char *ref);
-
-/*** implementation **********************************************************/
-
-static gunichar
-mn_sgml_ref_get_unichar (const char *ref)
-{
- g_return_val_if_fail(ref != NULL, 0);
-
- if (*ref == '#')
- { /* numeric reference */
- const char *nptr;
- int base;
-
- if (*(ref + 1) == 'x' || *(ref + 1) == 'X')
- { /* hexadecimal number */
- nptr = ref + 2;
- base = 16;
- }
- else
- { /* decimal number */
- nptr = ref + 1;
- base = 10;
- }
-
- if (*nptr)
- {
- char *end;
- unsigned long code;
-
- code = strtoul(nptr, &end, base);
- if (*end == 0) /* could convert */
- return code;
- }
- }
- else
- { /* entity reference */
- int i;
-
- for (i = 0; i < G_N_ELEMENTS(entities); i++)
- if (! strcmp(ref, entities[i].name))
- return entities[i].character;
- }
-
- return 0; /* invalid reference */
-}
-
-/**
- * mn_sgml_ref_expand:
- * @str: a nul-terminated string.
- *
- * Parses @str, expanding its SGML character references and XHTML
- * character entities into their Unicode character value.
- *
- * Numerical SGML character references as well as XHTML entities are
- * supported. Unsupported entities will be inserted verbatim into the
- * result.
- *
- * Return value: the expansion of str. The returned string should be
- * freed when no longer needed.
- **/
-char *
-mn_sgml_ref_expand (const char *str)
-{
- GString *unescaped;
- const char *start;
-
- g_return_val_if_fail(str != NULL, NULL);
-
- unescaped = g_string_new(NULL);
-
- while ((start = strchr(str, '&')))
- {
- const char *end;
- gunichar c;
-
- end = strpbrk(start + 1, "; &\t\n");
- if (! end)
- end = strchr(start + 1, 0);
-
- {
- char ref[end - start];
-
- strncpy(ref, start + 1, end - start - 1);
- ref[end - start - 1] = 0;
-
- c = mn_sgml_ref_get_unichar(ref);
- }
-
- if (*end == ';') /* semicolon is part of entity, skip it */
- end++;
-
- g_string_append_len(unescaped, str, start - str);
- if (c)
- g_string_append_unichar(unescaped, c);
- else /* invalid reference, append it raw */
- g_string_append_len(unescaped, start, end - start);
-
- str = end;
- }
-
- g_string_append(unescaped, str);
-
- return g_string_free(unescaped, FALSE);
-}
diff --git a/src/mn-sgml-ref.h b/src/mn-sgml-ref.h
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_SGML_REF_H
-#define _MN_SGML_REF_H
-
-char *mn_sgml_ref_expand (const char *str);
-
-#endif /* _MN_SGML_REF_H */
diff --git a/src/mn-shell-private.h b/src/mn-shell-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_SHELL_PRIVATE_H__
#define __MN_SHELL_PRIVATE_H__
@@ -10,21 +10,31 @@ extern "C" {
#endif /* __cplusplus */
-#line 26 "mn-shell.gob"
+#line 27 "mn-shell.gob"
#include "mn-mail-icon.h"
#line 18 "mn-shell-private.h"
struct _MNShellPrivate {
-#line 50 "mn-shell.gob"
- MNMailIcon * icon;
-#line 51 "mn-shell.gob"
- GtkWidget * about;
#line 52 "mn-shell.gob"
- gboolean has_new;
+ MNMailIcon * icon;
#line 53 "mn-shell.gob"
+ gboolean has_new;
+#line 55 "mn-shell.gob"
+ GtkWidget * main_window;
+#line 56 "mn-shell.gob"
+ GtkWidget * properties_dialog;
+#line 58 "mn-shell.gob"
GSList * mailbox_properties_dialogs;
-#line 28 "mn-shell-private.h"
+#line 60 "mn-shell.gob"
+ GtkWidget * popup;
+#line 61 "mn-shell.gob"
+ GSList * popup_messages;
+#line 62 "mn-shell.gob"
+ GSList * popup_previous_messages;
+#line 64 "mn-shell.gob"
+ GtkWidget * about_dialog;
+#line 38 "mn-shell-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-shell.c b/src/mn-shell.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:58 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -23,7 +23,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 29 "mn-shell.gob"
+#line 31 "mn-shell.gob"
#include "config.h"
#include <errno.h>
@@ -33,13 +33,13 @@
#include "mn-util.h"
#include "mn-conf.h"
#include "mn-mailboxes.h"
-#include "mn-unsupported-mailbox.h"
#include "mn-about-dialog.h"
-#include "mn-summary-popup.h"
#include "mn-main-window.h"
+#include "mn-mail-summary-popup.h"
#include "mn-message-view.h"
+#include "mn-message.h"
- MNShell *mn_shell = NULL;
+MNShell *mn_shell = NULL;
#line 45 "mn-shell.c"
/* self casting macros */
@@ -65,8 +65,8 @@ static void mn_shell_init_icon (MNShell * self) G_GNUC_UNUSED;
static void mn_shell_notify_blink_on_errors_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_notify_summary_tooltip_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_shell_notify_mail_summary_popup_enable_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
-static void mn_shell_icon_activate_main_window_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_mail_reader_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
@@ -79,10 +79,11 @@ static void mn_shell_update_icon (MNShell * self) G_GNUC_UNUSED;
static void mn_shell_update_tooltip (MNShell * self) G_GNUC_UNUSED;
static int mn_shell_new_mailboxes_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
static time_t mn_shell_get_latest_sent_time (MNMailbox * mailbox) G_GNUC_UNUSED;
-static int mn_shell_mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
static GtkWidget * mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title) G_GNUC_UNUSED;
static void mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const char * text) G_GNUC_UNUSED;
-static void mn_shell_welcome_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
+static void mn_shell_update_popup (MNShell * self, gboolean has_new) G_GNUC_UNUSED;
+static void mn_shell_popup_weak_notify_cb (MNShell * self, GObject * former_object) G_GNUC_UNUSED;
+static void mn_shell_display_window (MNShell * self, GType type, GtkWidget ** ptr, GtkWindow * parent) G_GNUC_UNUSED;
static void mn_shell_mailbox_properties_dialog_weak_notify_cb (gpointer data, GObject * former_object) G_GNUC_UNUSED;
/* pointer to the class of our parent */
@@ -95,8 +96,8 @@ static GObjectClass *parent_class = NULL;
#define self_notify_blink_on_errors_cb mn_shell_notify_blink_on_errors_cb
#define self_notify_mail_reader_cb mn_shell_notify_mail_reader_cb
#define self_notify_summary_tooltip_cb mn_shell_notify_summary_tooltip_cb
+#define self_notify_mail_summary_popup_enable_cb mn_shell_notify_mail_summary_popup_enable_cb
#define self_icon_activate_h mn_shell_icon_activate_h
-#define self_icon_activate_main_window_h mn_shell_icon_activate_main_window_h
#define self_icon_activate_mail_reader_h mn_shell_icon_activate_mail_reader_h
#define self_icon_activate_update_h mn_shell_icon_activate_update_h
#define self_icon_activate_properties_h mn_shell_icon_activate_properties_h
@@ -109,14 +110,16 @@ static GObjectClass *parent_class = NULL;
#define self_update_tooltip mn_shell_update_tooltip
#define self_new_mailboxes_compare_func mn_shell_new_mailboxes_compare_func
#define self_get_latest_sent_time mn_shell_get_latest_sent_time
-#define self_mailboxes_compare_by_name_func mn_shell_mailboxes_compare_by_name_func
#define self_tooltip_section_new mn_shell_tooltip_section_new
#define self_tooltip_text_section_new mn_shell_tooltip_text_section_new
+#define self_update_popup mn_shell_update_popup
+#define self_popup_weak_notify_cb mn_shell_popup_weak_notify_cb
#define self_new mn_shell_new
+#define self_display_main_window mn_shell_display_main_window
+#define self_display_properties_dialog mn_shell_display_properties_dialog
#define self_display_about_dialog mn_shell_display_about_dialog
-#define self_display_welcome_dialog mn_shell_display_welcome_dialog
-#define self_welcome_response_h mn_shell_welcome_response_h
-#define self_report mn_shell_report
+#define self_display_window mn_shell_display_window
+#define self_close_mail_summary_popup mn_shell_close_mail_summary_popup
#define self_add_mailbox_properties_dialog mn_shell_add_mailbox_properties_dialog
#define self_mailbox_properties_dialog_weak_notify_cb mn_shell_mailbox_properties_dialog_weak_notify_cb
#define self_get_mailbox_properties_dialog mn_shell_get_mailbox_properties_dialog
@@ -170,9 +173,9 @@ ___dispose (GObject *obj_self)
MNShell *self G_GNUC_UNUSED = MN_SHELL (obj_self);
if (G_OBJECT_CLASS (parent_class)->dispose) \
(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 49 "mn-shell.gob"
+#line 51 "mn-shell.gob"
if(self->mailboxes) { g_object_unref ((gpointer) self->mailboxes); self->mailboxes = NULL; }
-#line 176 "mn-shell.c"
+#line 179 "mn-shell.c"
}
#undef __GOB_FUNCTION__
@@ -183,9 +186,15 @@ ___finalize(GObject *obj_self)
#define __GOB_FUNCTION__ "MN:Shell::finalize"
MNShell *self G_GNUC_UNUSED = MN_SHELL (obj_self);
gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 80 "mn-shell.gob"
+#line 93 "mn-shell.gob"
___2_mn_shell_finalize(obj_self);
-#line 189 "mn-shell.c"
+#line 192 "mn-shell.c"
+#line 61 "mn-shell.gob"
+ if(self->_priv->popup_messages) { mn_g_object_slist_free ((gpointer) self->_priv->popup_messages); self->_priv->popup_messages = NULL; }
+#line 195 "mn-shell.c"
+#line 62 "mn-shell.gob"
+ if(self->_priv->popup_previous_messages) { mn_g_object_slist_free ((gpointer) self->_priv->popup_previous_messages); self->_priv->popup_previous_messages = NULL; }
+#line 198 "mn-shell.c"
}
#undef __GOB_FUNCTION__
@@ -199,34 +208,38 @@ mn_shell_class_init (MNShellClass * c G_GNUC_UNUSED)
parent_class = g_type_class_ref (G_TYPE_OBJECT);
-#line 80 "mn-shell.gob"
+#line 93 "mn-shell.gob"
g_object_class->finalize = ___finalize;
-#line 205 "mn-shell.c"
+#line 214 "mn-shell.c"
g_object_class->dispose = ___dispose;
}
#undef __GOB_FUNCTION__
-#line 55 "mn-shell.gob"
+#line 66 "mn-shell.gob"
static void
mn_shell_init (MNShell * self G_GNUC_UNUSED)
-#line 212 "mn-shell.c"
+#line 221 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::init"
- self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNShellPrivate);
-#line 49 "mn-shell.gob"
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_SHELL,MNShellPrivate);
+#line 51 "mn-shell.gob"
self->mailboxes = mn_mailboxes_new();
-#line 218 "mn-shell.c"
+#line 227 "mn-shell.c"
{
-#line 56 "mn-shell.gob"
+#line 67 "mn-shell.gob"
+
+ g_assert(mn_shell == NULL);
- g_return_if_fail(mn_shell == NULL);
mn_shell = self;
eel_add_weak_pointer(&mn_shell);
self_init_icon(self);
- eel_gconf_notification_add(MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self);
- eel_gconf_notification_add(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self);
- eel_gconf_notification_add(MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self);
+ mn_conf_notifications_add(self,
+ MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self,
+ MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self,
+ MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, self_notify_mail_summary_popup_enable_cb, self,
+ NULL);
g_object_connect(self->mailboxes,
"signal::messages-changed", self_messages_changed_h, self,
@@ -237,50 +250,41 @@ mn_shell_init (MNShell * self G_GNUC_UNUSED)
"swapped-signal::error-changed", self_update_tooltip, self,
"swapped-signal::error-changed", self_update_icon, self,
NULL);
-
- mn_summary_popup_init();
-#line 244 "mn-shell.c"
+#line 255 "mn-shell.c"
}
}
#undef __GOB_FUNCTION__
-#line 80 "mn-shell.gob"
+#line 93 "mn-shell.gob"
static void
___2_mn_shell_finalize (GObject * object G_GNUC_UNUSED)
-#line 254 "mn-shell.c"
+#line 265 "mn-shell.c"
#define PARENT_HANDLER(___object) \
{ if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Shell::finalize"
{
-#line 82 "mn-shell.gob"
+#line 95 "mn-shell.gob"
gtk_main_quit();
PARENT_HANDLER(object);
}}
-#line 266 "mn-shell.c"
+#line 277 "mn-shell.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 87 "mn-shell.gob"
+#line 100 "mn-shell.gob"
static void
mn_shell_messages_changed_h (MNMailboxes * mailboxes, gboolean has_new, gpointer user_data)
-#line 273 "mn-shell.c"
+#line 284 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::messages_changed_h"
-#line 87 "mn-shell.gob"
- g_return_if_fail (mailboxes != NULL);
-#line 87 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 87 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 282 "mn-shell.c"
-{
-#line 91 "mn-shell.gob"
+{
+#line 104 "mn-shell.gob"
Self *self = user_data;
@@ -291,62 +295,54 @@ mn_shell_messages_changed_h (MNMailboxes * mailboxes, gboolean has_new, gpointer
mn_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
}
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+ self_update_popup(self, has_new);
+
self_update_tooltip(self);
self_update_icon(self);
}}
-#line 298 "mn-shell.c"
+#line 305 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 105 "mn-shell.gob"
+#line 121 "mn-shell.gob"
static void
mn_shell_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 304 "mn-shell.c"
+#line 311 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::mailbox_removed_h"
-#line 105 "mn-shell.gob"
- g_return_if_fail (mailboxes != NULL);
-#line 105 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 105 "mn-shell.gob"
- g_return_if_fail (mailbox != NULL);
-#line 105 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 105 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 317 "mn-shell.c"
-{
-#line 109 "mn-shell.gob"
+{
+#line 125 "mn-shell.gob"
Self *self = user_data;
MNMailboxPropertiesDialog *dialog;
/* destroy the associated properties dialog, if any */
- dialog = self_get_mailbox_properties_dialog(self, mailbox->uri);
+ dialog = self_get_mailbox_properties_dialog(self, mailbox);
if (dialog)
gtk_widget_destroy(GTK_WIDGET(dialog));
}}
-#line 329 "mn-shell.c"
+#line 325 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 119 "mn-shell.gob"
+#line 135 "mn-shell.gob"
static void
mn_shell_init_icon (MNShell * self)
-#line 335 "mn-shell.c"
+#line 331 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::init_icon"
-#line 119 "mn-shell.gob"
+#line 135 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 119 "mn-shell.gob"
+#line 135 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 342 "mn-shell.c"
+#line 338 "mn-shell.c"
{
-#line 121 "mn-shell.gob"
+#line 137 "mn-shell.gob"
selfp->icon = MN_MAIL_ICON(mn_mail_icon_new());
g_object_connect(selfp->icon,
"signal::activate", self_icon_activate_h, self,
- "signal::activate-main-window", self_icon_activate_main_window_h, self,
+ "swapped-signal::activate-main-window", self_display_main_window, self,
"signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
"signal::activate-update", self_icon_activate_update_h, self,
"signal::activate-properties", self_icon_activate_properties_h, self,
@@ -360,20 +356,17 @@ mn_shell_init_icon (MNShell * self)
self_update_tooltip(self);
self_update_icon(self);
}}
-#line 364 "mn-shell.c"
+#line 360 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 141 "mn-shell.gob"
+#line 157 "mn-shell.gob"
static void
mn_shell_notify_blink_on_errors_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 370 "mn-shell.c"
+#line 366 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::notify_blink_on_errors_cb"
-#line 141 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 375 "mn-shell.c"
{
-#line 146 "mn-shell.gob"
+#line 162 "mn-shell.gob"
Self *self = user_data;
@@ -381,20 +374,17 @@ mn_shell_notify_blink_on_errors_cb (GConfClient * client, unsigned int cnxn_id,
self_update_icon(self);
GDK_THREADS_LEAVE();
}}
-#line 385 "mn-shell.c"
+#line 378 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 154 "mn-shell.gob"
+#line 170 "mn-shell.gob"
static void
mn_shell_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 391 "mn-shell.c"
+#line 384 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::notify_mail_reader_cb"
-#line 154 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 396 "mn-shell.c"
{
-#line 159 "mn-shell.gob"
+#line 175 "mn-shell.gob"
Self *self = user_data;
@@ -402,20 +392,17 @@ mn_shell_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GCon
self_update_sensitivity(self);
GDK_THREADS_LEAVE();
}}
-#line 406 "mn-shell.c"
+#line 396 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 167 "mn-shell.gob"
+#line 183 "mn-shell.gob"
static void
mn_shell_notify_summary_tooltip_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 412 "mn-shell.c"
+#line 402 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::notify_summary_tooltip_cb"
-#line 167 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 417 "mn-shell.c"
{
-#line 172 "mn-shell.gob"
+#line 188 "mn-shell.gob"
Self *self = user_data;
@@ -423,24 +410,38 @@ mn_shell_notify_summary_tooltip_cb (GConfClient * client, unsigned int cnxn_id,
self_update_tooltip(self);
GDK_THREADS_LEAVE();
}}
-#line 427 "mn-shell.c"
+#line 414 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 196 "mn-shell.gob"
+static void
+mn_shell_notify_mail_summary_popup_enable_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 420 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::notify_mail_summary_popup_enable_cb"
+{
+#line 201 "mn-shell.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ if (selfp->popup && ! eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+ gtk_widget_destroy(selfp->popup);
+
+ GDK_THREADS_LEAVE();
+ }}
+#line 435 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 180 "mn-shell.gob"
+#line 212 "mn-shell.gob"
static void
mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
-#line 433 "mn-shell.c"
+#line 441 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_h"
-#line 180 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 180 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 180 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 442 "mn-shell.c"
{
-#line 183 "mn-shell.gob"
+#line 214 "mn-shell.gob"
MNShell *self = user_data;
MNAction action;
@@ -450,7 +451,7 @@ mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
switch (action)
{
case MN_ACTION_DISPLAY_MAIN_WINDOW:
- mn_main_window_display();
+ self_display_main_window(self);
break;
case MN_ACTION_LAUNCH_MAIL_READER:
@@ -466,228 +467,159 @@ mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
g_return_if_reached();
}
}}
-#line 470 "mn-shell.c"
-#undef __GOB_FUNCTION__
-
-#line 209 "mn-shell.gob"
-static void
-mn_shell_icon_activate_main_window_h (MNMailIcon * icon, gpointer user_data)
-#line 476 "mn-shell.c"
-{
-#define __GOB_FUNCTION__ "MN:Shell::icon_activate_main_window_h"
-#line 209 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 209 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 209 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 485 "mn-shell.c"
-{
-#line 212 "mn-shell.gob"
-
- mn_main_window_display();
- }}
-#line 491 "mn-shell.c"
+#line 471 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 216 "mn-shell.gob"
+#line 240 "mn-shell.gob"
static void
mn_shell_icon_activate_mail_reader_h (MNMailIcon * icon, gpointer user_data)
-#line 497 "mn-shell.c"
+#line 477 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_mail_reader_h"
-#line 216 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 216 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 216 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 506 "mn-shell.c"
{
-#line 219 "mn-shell.gob"
+#line 242 "mn-shell.gob"
mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
}}
-#line 512 "mn-shell.c"
+#line 485 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 223 "mn-shell.gob"
+#line 246 "mn-shell.gob"
static void
mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data)
-#line 518 "mn-shell.c"
+#line 491 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_update_h"
-#line 223 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 223 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 223 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 527 "mn-shell.c"
-{
-#line 226 "mn-shell.gob"
+{
+#line 248 "mn-shell.gob"
Self *self = user_data;
mn_mailboxes_check(self->mailboxes);
}}
-#line 534 "mn-shell.c"
+#line 500 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 231 "mn-shell.gob"
+#line 253 "mn-shell.gob"
static void
mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data)
-#line 540 "mn-shell.c"
+#line 506 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_properties_h"
-#line 231 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 231 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 231 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 549 "mn-shell.c"
-{
-#line 234 "mn-shell.gob"
+{
+#line 255 "mn-shell.gob"
- mn_properties_dialog_display();
+ Self *self = user_data;
+ self_display_properties_dialog(self, NULL);
}}
-#line 555 "mn-shell.c"
+#line 515 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 238 "mn-shell.gob"
+#line 260 "mn-shell.gob"
static void
mn_shell_icon_activate_help_h (MNMailIcon * icon, gpointer user_data)
-#line 561 "mn-shell.c"
+#line 521 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_help_h"
-#line 238 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 238 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 238 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 570 "mn-shell.c"
-{
-#line 241 "mn-shell.gob"
+{
+#line 262 "mn-shell.gob"
mn_display_help(NULL, NULL);
}}
-#line 576 "mn-shell.c"
+#line 529 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 245 "mn-shell.gob"
+#line 266 "mn-shell.gob"
static void
mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data)
-#line 582 "mn-shell.c"
+#line 535 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_about_h"
-#line 245 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 245 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 245 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 591 "mn-shell.c"
{
-#line 248 "mn-shell.gob"
+#line 268 "mn-shell.gob"
Self *self = user_data;
- self_display_about_dialog(self);
+ self_display_about_dialog(self, NULL);
}}
-#line 598 "mn-shell.c"
+#line 544 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 253 "mn-shell.gob"
+#line 273 "mn-shell.gob"
static void
mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_data)
-#line 604 "mn-shell.c"
+#line 550 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_remove_h"
-#line 253 "mn-shell.gob"
- g_return_if_fail (icon != NULL);
-#line 253 "mn-shell.gob"
- g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 253 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 613 "mn-shell.c"
{
-#line 256 "mn-shell.gob"
+#line 275 "mn-shell.gob"
Self *self = user_data;
g_object_unref(self);
}}
-#line 620 "mn-shell.c"
+#line 559 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 261 "mn-shell.gob"
+#line 280 "mn-shell.gob"
static void
mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
-#line 626 "mn-shell.c"
+#line 565 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
-#line 261 "mn-shell.gob"
- g_return_if_fail (object != NULL);
-#line 261 "mn-shell.gob"
- g_return_if_fail (GTK_IS_OBJECT (object));
-#line 261 "mn-shell.gob"
- g_return_if_fail (user_data != NULL);
-#line 635 "mn-shell.c"
-{
-#line 264 "mn-shell.gob"
+{
+#line 282 "mn-shell.gob"
Self *self = user_data;
/* The Notification Area applet has been terminated. Recreate the icon. */
self_init_icon(self);
}}
-#line 644 "mn-shell.c"
+#line 576 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 271 "mn-shell.gob"
+#line 289 "mn-shell.gob"
static void
mn_shell_update_sensitivity (MNShell * self)
-#line 650 "mn-shell.c"
+#line 582 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::update_sensitivity"
-#line 271 "mn-shell.gob"
+#line 289 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 271 "mn-shell.gob"
+#line 289 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 657 "mn-shell.c"
+#line 589 "mn-shell.c"
{
-#line 273 "mn-shell.gob"
+#line 291 "mn-shell.gob"
gtk_widget_set_sensitive(selfp->icon->mail_reader_item, mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE));
gtk_widget_set_sensitive(selfp->icon->update_item, mn_mailboxes_get_must_poll(self->mailboxes));
}}
-#line 664 "mn-shell.c"
+#line 596 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 278 "mn-shell.gob"
+#line 296 "mn-shell.gob"
static void
mn_shell_update_icon (MNShell * self)
-#line 670 "mn-shell.c"
+#line 602 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::update_icon"
-#line 278 "mn-shell.gob"
+#line 296 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 278 "mn-shell.gob"
+#line 296 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 677 "mn-shell.c"
+#line 609 "mn-shell.c"
{
-#line 280 "mn-shell.gob"
+#line 298 "mn-shell.gob"
- GSList *l;
+ GList *l;
gboolean has_new = FALSE;
gboolean blink = FALSE;
- MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+ MN_LIST_FOREACH(l, self->mailboxes->list)
{
MNMailbox *mailbox = l->data;
- if (mn_mailbox_get_messages(mailbox))
+ if (mailbox->messages)
has_new = TRUE;
- if (mn_mailbox_get_error(mailbox) || MN_IS_UNSUPPORTED_MAILBOX(mailbox))
+ if (mailbox->error)
blink = TRUE;
}
@@ -706,48 +638,43 @@ mn_shell_update_icon (MNShell * self)
else
gtk_widget_hide(GTK_WIDGET(selfp->icon));
}}
-#line 710 "mn-shell.c"
+#line 642 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 311 "mn-shell.gob"
+#line 329 "mn-shell.gob"
static void
mn_shell_update_tooltip (MNShell * self)
-#line 716 "mn-shell.c"
+#line 648 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::update_tooltip"
-#line 311 "mn-shell.gob"
+#line 329 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 311 "mn-shell.gob"
+#line 329 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 723 "mn-shell.c"
+#line 655 "mn-shell.c"
{
-#line 313 "mn-shell.gob"
+#line 331 "mn-shell.gob"
GtkWidget *vbox;
- GSList *mailboxes;
vbox = gtk_vbox_new(FALSE, 18);
- mailboxes = mn_mailboxes_get(self->mailboxes);
- if (mailboxes)
+ if (self->mailboxes->list)
{
- GSList *l;
+ GList *l;
+ GSList *sl;
GSList *new_mailboxes = NULL;
GSList *error_mailboxes = NULL;
- GSList *unsupported_mailboxes = NULL;
- MN_LIST_FOREACH(l, mailboxes)
+ MN_LIST_FOREACH(l, self->mailboxes->list)
{
MNMailbox *mailbox = l->data;
- if (mn_mailbox_get_messages(mailbox))
+ if (mailbox->messages)
new_mailboxes = g_slist_append(new_mailboxes, mailbox);
- if (mn_mailbox_get_error(mailbox))
+ if (mailbox->error)
error_mailboxes = g_slist_append(error_mailboxes, mailbox);
-
- if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
- unsupported_mailboxes = g_slist_append(unsupported_mailboxes, mailbox);
}
if (new_mailboxes)
@@ -755,16 +682,16 @@ mn_shell_update_tooltip (MNShell * self)
GString *string = g_string_new(NULL);
new_mailboxes = g_slist_sort(new_mailboxes, self_new_mailboxes_compare_func);
- MN_LIST_FOREACH(l, new_mailboxes)
+ MN_LIST_FOREACH(sl, new_mailboxes)
{
- MNMailbox *mailbox = l->data;
+ MNMailbox *mailbox = sl->data;
int n_messages;
if (*string->str)
g_string_append_c(string, '\n');
- g_string_append(string, mn_mailbox_get_name(mailbox));
+ g_string_append(string, mailbox->runtime_name);
- n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+ n_messages = g_slist_length(mailbox->messages);
if (n_messages > 0)
g_string_append_printf(string, " (%i)", n_messages);
}
@@ -778,43 +705,20 @@ mn_shell_update_tooltip (MNShell * self)
{
GString *string = g_string_new(NULL);
- error_mailboxes = g_slist_sort(error_mailboxes, self_mailboxes_compare_by_name_func);
- MN_LIST_FOREACH(l, error_mailboxes)
+ error_mailboxes = g_slist_sort(error_mailboxes, mn_mailboxes_compare_by_name_func);
+ MN_LIST_FOREACH(sl, error_mailboxes)
{
- MNMailbox *mailbox = l->data;
+ MNMailbox *mailbox = sl->data;
if (*string->str)
g_string_append_c(string, '\n');
- g_string_append_printf(string, "%s: %s",
- mn_mailbox_get_name(mailbox),
- mn_mailbox_get_error(mailbox));
+ g_string_append_printf(string, "%s: %s", mailbox->runtime_name, mailbox->error);
}
g_slist_free(error_mailboxes);
self_tooltip_text_section_new(GTK_VBOX(vbox), _("Errors"), string->str);
g_string_free(string, TRUE);
}
-
- if (unsupported_mailboxes)
- {
- GString *string = g_string_new(NULL);
-
- unsupported_mailboxes = g_slist_sort(unsupported_mailboxes, self_mailboxes_compare_by_name_func);
- MN_LIST_FOREACH(l, unsupported_mailboxes)
- {
- MNMailbox *mailbox = l->data;
-
- if (*string->str)
- g_string_append_c(string, '\n');
- g_string_append_printf(string, "%s: %s",
- mn_mailbox_get_name(mailbox),
- mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
- }
- g_slist_free(unsupported_mailboxes);
-
- self_tooltip_text_section_new(GTK_VBOX(vbox), _("Unsupported Mailboxes"), string->str);
- g_string_free(string, TRUE);
- }
}
if (eel_gconf_get_boolean(MN_CONF_SUMMARY_TOOLTIP))
@@ -842,17 +746,17 @@ mn_shell_update_tooltip (MNShell * self)
gtk_widget_show_all(vbox);
mn_mail_icon_set_tip_widget(selfp->icon, vbox);
}}
-#line 846 "mn-shell.c"
+#line 750 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 434 "mn-shell.gob"
+#line 424 "mn-shell.gob"
static int
mn_shell_new_mailboxes_compare_func (gconstpointer a, gconstpointer b)
-#line 852 "mn-shell.c"
+#line 756 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::new_mailboxes_compare_func"
{
-#line 436 "mn-shell.gob"
+#line 426 "mn-shell.gob"
MNMailbox *mailbox_a = (MNMailbox *) a;
MNMailbox *mailbox_b = (MNMailbox *) b;
@@ -862,34 +766,34 @@ mn_shell_new_mailboxes_compare_func (gconstpointer a, gconstpointer b)
cmp = self_get_latest_sent_time(mailbox_b) - self_get_latest_sent_time(mailbox_a);
/* else sort by number of messages (descending order) */
if (cmp == 0)
- cmp = g_slist_length(mn_mailbox_get_messages(mailbox_b)) - g_slist_length(mn_mailbox_get_messages(mailbox_a));
+ cmp = g_slist_length(mailbox_b->messages) - g_slist_length(mailbox_a->messages);
/* else sort by name (ascending order) */
if (cmp == 0)
- cmp = self_mailboxes_compare_by_name_func(a, b);
+ cmp = mn_mailboxes_compare_by_name_func(a, b);
return cmp;
}}
-#line 873 "mn-shell.c"
+#line 777 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 453 "mn-shell.gob"
+#line 443 "mn-shell.gob"
static time_t
mn_shell_get_latest_sent_time (MNMailbox * mailbox)
-#line 879 "mn-shell.c"
+#line 783 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::get_latest_sent_time"
-#line 453 "mn-shell.gob"
+#line 443 "mn-shell.gob"
g_return_val_if_fail (mailbox != NULL, (time_t )0);
-#line 453 "mn-shell.gob"
+#line 443 "mn-shell.gob"
g_return_val_if_fail (MN_IS_MAILBOX (mailbox), (time_t )0);
-#line 886 "mn-shell.c"
+#line 790 "mn-shell.c"
{
-#line 455 "mn-shell.gob"
+#line 445 "mn-shell.gob"
GSList *l;
time_t latest = 0;
- MN_LIST_FOREACH(l, mn_mailbox_get_messages(mailbox))
+ MN_LIST_FOREACH(l, mailbox->messages)
{
MNMessage *message = l->data;
@@ -899,42 +803,24 @@ mn_shell_get_latest_sent_time (MNMailbox * mailbox)
return latest;
}}
-#line 903 "mn-shell.c"
+#line 807 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 470 "mn-shell.gob"
-static int
-mn_shell_mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b)
-#line 909 "mn-shell.c"
-{
-#define __GOB_FUNCTION__ "MN:Shell::mailboxes_compare_by_name_func"
-{
-#line 472 "mn-shell.gob"
-
- MNMailbox *mailbox_a = (MNMailbox *) a;
- MNMailbox *mailbox_b = (MNMailbox *) b;
-
- return mn_utf8_strcasecoll(mn_mailbox_get_name(mailbox_a),
- mn_mailbox_get_name(mailbox_b));
- }}
-#line 921 "mn-shell.c"
-#undef __GOB_FUNCTION__
-
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
static GtkWidget *
mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title)
-#line 927 "mn-shell.c"
+#line 813 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::tooltip_section_new"
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
g_return_val_if_fail (vbox != NULL, (GtkWidget * )0);
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
g_return_val_if_fail (GTK_IS_VBOX (vbox), (GtkWidget * )0);
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
g_return_val_if_fail (title != NULL, (GtkWidget * )0);
-#line 936 "mn-shell.c"
+#line 822 "mn-shell.c"
{
-#line 483 "mn-shell.gob"
+#line 463 "mn-shell.gob"
GtkWidget *child_vbox;
char *markup;
@@ -961,26 +847,26 @@ mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title)
return alignment;
}}
-#line 965 "mn-shell.c"
+#line 851 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
static void
mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const char * text)
-#line 971 "mn-shell.c"
+#line 857 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::tooltip_text_section_new"
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
g_return_if_fail (vbox != NULL);
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
g_return_if_fail (GTK_IS_VBOX (vbox));
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
g_return_if_fail (title != NULL);
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
g_return_if_fail (text != NULL);
-#line 982 "mn-shell.c"
+#line 868 "mn-shell.c"
{
-#line 514 "mn-shell.gob"
+#line 494 "mn-shell.gob"
GtkWidget *alignment;
GtkWidget *label;
@@ -993,219 +879,314 @@ mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const cha
gtk_container_add(GTK_CONTAINER(alignment), label);
}}
-#line 997 "mn-shell.c"
+#line 883 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 507 "mn-shell.gob"
+static void
+mn_shell_update_popup (MNShell * self, gboolean has_new)
+#line 889 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::update_popup"
+#line 507 "mn-shell.gob"
+ g_return_if_fail (self != NULL);
+#line 507 "mn-shell.gob"
+ g_return_if_fail (MN_IS_SHELL (self));
+#line 896 "mn-shell.c"
+{
+#line 509 "mn-shell.gob"
+
+ if (! selfp->main_window
+ && (! selfp->properties_dialog || ! mn_properties_dialog_test_popup_displayed(MN_PROPERTIES_DIALOG(selfp->properties_dialog)))
+ && (selfp->popup || has_new))
+ {
+ GSList *l;
+
+ mn_g_object_slist_free(selfp->popup_messages);
+ selfp->popup_messages = mn_mailboxes_get_messages(self->mailboxes);
+
+ loop1:
+ MN_LIST_FOREACH(l, selfp->popup_previous_messages)
+ {
+ MNMessage *message = l->data;
+
+ if (! mn_message_slist_find_by_id(selfp->popup_messages, message))
+ {
+ selfp->popup_previous_messages = mn_g_object_slist_delete_link(selfp->popup_previous_messages, l);
+ goto loop1;
+ }
+ }
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT))
+ {
+ loop2:
+ MN_LIST_FOREACH(l, selfp->popup_messages)
+ {
+ MNMessage *message = l->data;
+
+ if (mn_message_slist_find_by_id(selfp->popup_previous_messages, message))
+ {
+ selfp->popup_messages = mn_g_object_slist_delete_link(selfp->popup_messages, l);
+ goto loop2;
+ }
+ }
+ }
+
+ if (selfp->popup_messages)
+ {
+ if (! selfp->popup)
+ {
+ selfp->popup = mn_mail_summary_popup_new();
+
+ eel_add_weak_pointer(&selfp->popup);
+ g_object_weak_ref(G_OBJECT(selfp->popup), (GWeakNotify) self_popup_weak_notify_cb, self);
+ }
+
+ mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->popup), selfp->popup_messages);
+ gtk_widget_show(selfp->popup);
+
+ /* we only reset the timeout if there is new mail */
+
+ if (has_new)
+ mn_mail_summary_popup_reset_timeout(MN_MAIL_SUMMARY_POPUP(selfp->popup));
+
+ return; /* something has been shown */
+ }
+ }
+
+ /* nothing has been shown, destroy the popup if it exists */
+ if (selfp->popup)
+ gtk_widget_destroy(selfp->popup);
+ }}
+#line 962 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 527 "mn-shell.gob"
+#line 573 "mn-shell.gob"
+static void
+mn_shell_popup_weak_notify_cb (MNShell * self, GObject * former_object)
+#line 968 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::popup_weak_notify_cb"
+#line 573 "mn-shell.gob"
+ g_return_if_fail (self != NULL);
+#line 573 "mn-shell.gob"
+ g_return_if_fail (MN_IS_SHELL (self));
+#line 975 "mn-shell.c"
+{
+#line 575 "mn-shell.gob"
+
+ selfp->popup_previous_messages = g_slist_concat(selfp->popup_previous_messages, selfp->popup_messages);
+ selfp->popup_messages = NULL;
+ }}
+#line 982 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 580 "mn-shell.gob"
MNShell *
mn_shell_new (void)
-#line 1003 "mn-shell.c"
+#line 988 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::new"
{
-#line 529 "mn-shell.gob"
+#line 582 "mn-shell.gob"
return GET_NEW;
}}
-#line 1011 "mn-shell.c"
+#line 996 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 533 "mn-shell.gob"
+#line 586 "mn-shell.gob"
void
-mn_shell_display_about_dialog (MNShell * self)
-#line 1017 "mn-shell.c"
+mn_shell_display_main_window (MNShell * self)
+#line 1002 "mn-shell.c"
{
-#define __GOB_FUNCTION__ "MN:Shell::display_about_dialog"
-#line 533 "mn-shell.gob"
+#define __GOB_FUNCTION__ "MN:Shell::display_main_window"
+#line 586 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 533 "mn-shell.gob"
+#line 586 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 1024 "mn-shell.c"
+#line 1009 "mn-shell.c"
{
-#line 535 "mn-shell.gob"
+#line 588 "mn-shell.gob"
- if (selfp->about)
- {
- gtk_window_present(GTK_WINDOW(selfp->about));
- return;
- }
-
- selfp->about = mn_about_dialog_new();
- eel_add_weak_pointer(&selfp->about);
-
- mn_main_window_add_transient(GTK_WINDOW(selfp->about));
- gtk_widget_show(GTK_WIDGET(selfp->about));
+ self_display_window(self, MN_TYPE_MAIN_WINDOW, &selfp->main_window, NULL);
+
+ /* we don't need the mail summary popup anymore */
+ self_close_mail_summary_popup(self);
}}
-#line 1040 "mn-shell.c"
+#line 1018 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 549 "mn-shell.gob"
+#line 595 "mn-shell.gob"
void
-mn_shell_display_welcome_dialog (MNShell * self)
-#line 1046 "mn-shell.c"
+mn_shell_display_properties_dialog (MNShell * self, GtkWindow * parent)
+#line 1024 "mn-shell.c"
{
-#define __GOB_FUNCTION__ "MN:Shell::display_welcome_dialog"
-#line 549 "mn-shell.gob"
+#define __GOB_FUNCTION__ "MN:Shell::display_properties_dialog"
+#line 595 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 549 "mn-shell.gob"
+#line 595 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 1053 "mn-shell.c"
+#line 1031 "mn-shell.c"
{
-#line 551 "mn-shell.gob"
+#line 597 "mn-shell.gob"
- GtkWidget *dialog;
-
- mn_create_interface(MN_INTERFACE_FILE("welcome.glade"), "dialog", &dialog, NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-
- g_signal_connect(dialog, "response", G_CALLBACK(self_welcome_response_h), NULL);
- gtk_widget_show(dialog);
+ self_display_window(self, MN_TYPE_PROPERTIES_DIALOG, &selfp->properties_dialog, parent);
}}
-#line 1065 "mn-shell.c"
+#line 1037 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 561 "mn-shell.gob"
-static void
-mn_shell_welcome_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 1071 "mn-shell.c"
+#line 601 "mn-shell.gob"
+void
+mn_shell_display_about_dialog (MNShell * self, GtkWindow * parent)
+#line 1043 "mn-shell.c"
{
-#define __GOB_FUNCTION__ "MN:Shell::welcome_response_h"
-#line 561 "mn-shell.gob"
- g_return_if_fail (dialog != NULL);
-#line 561 "mn-shell.gob"
- g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 1078 "mn-shell.c"
+#define __GOB_FUNCTION__ "MN:Shell::display_about_dialog"
+#line 601 "mn-shell.gob"
+ g_return_if_fail (self != NULL);
+#line 601 "mn-shell.gob"
+ g_return_if_fail (MN_IS_SHELL (self));
+#line 1050 "mn-shell.c"
{
-#line 565 "mn-shell.gob"
+#line 603 "mn-shell.gob"
- gtk_widget_destroy(GTK_WIDGET(dialog));
- if (response == GTK_RESPONSE_OK)
- mn_properties_dialog_display();
+ self_display_window(self, MN_TYPE_ABOUT_DIALOG, &selfp->about_dialog, parent);
}}
-#line 1086 "mn-shell.c"
+#line 1056 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 571 "mn-shell.gob"
-void
-mn_shell_report (MNShell * self, char ** report)
-#line 1092 "mn-shell.c"
+#line 607 "mn-shell.gob"
+static void
+mn_shell_display_window (MNShell * self, GType type, GtkWidget ** ptr, GtkWindow * parent)
+#line 1062 "mn-shell.c"
{
-#define __GOB_FUNCTION__ "MN:Shell::report"
-#line 571 "mn-shell.gob"
+#define __GOB_FUNCTION__ "MN:Shell::display_window"
+#line 607 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 571 "mn-shell.gob"
+#line 607 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 571 "mn-shell.gob"
- g_return_if_fail (report != NULL);
-#line 1101 "mn-shell.c"
+#line 607 "mn-shell.gob"
+ g_return_if_fail (type != 0);
+#line 607 "mn-shell.gob"
+ g_return_if_fail (ptr != NULL);
+#line 1073 "mn-shell.c"
{
-#line 573 "mn-shell.gob"
+#line 612 "mn-shell.gob"
- GString *string;
- GSList *l;
-
- string = g_string_new(NULL);
- MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+ if (*ptr)
{
- MNMailbox *mailbox = l->data;
- const char *error;
+ gtk_window_present(GTK_WINDOW(*ptr));
+ return;
+ }
- error = mn_mailbox_get_error(mailbox);
+ *ptr = g_object_new(type, NULL);
+ eel_add_weak_pointer(ptr);
- g_string_append_printf(string, "%s\n", mailbox->uri->text);
+ if (parent)
+ gtk_window_set_transient_for(GTK_WINDOW(*ptr), parent);
- if (mn_mailbox_get_messages(mailbox))
- g_string_append(string, " has-new\n");
- if (error)
- g_string_append_printf(string, " error %s\n", error);
- if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
- g_string_append_printf(string, " unsupported %s\n", mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
- }
+ gtk_widget_show(*ptr);
+ }}
+#line 1091 "mn-shell.c"
+#undef __GOB_FUNCTION__
- *report = string->str;
- g_string_free(string, FALSE);
+#line 628 "mn-shell.gob"
+void
+mn_shell_close_mail_summary_popup (MNShell * self)
+#line 1097 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::close_mail_summary_popup"
+#line 628 "mn-shell.gob"
+ g_return_if_fail (self != NULL);
+#line 628 "mn-shell.gob"
+ g_return_if_fail (MN_IS_SHELL (self));
+#line 1104 "mn-shell.c"
+{
+#line 630 "mn-shell.gob"
+
+ if (selfp->popup)
+ gtk_widget_destroy(selfp->popup);
}}
-#line 1129 "mn-shell.c"
+#line 1111 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
void
mn_shell_add_mailbox_properties_dialog (MNShell * self, MNMailboxPropertiesDialog * dialog)
-#line 1135 "mn-shell.c"
+#line 1117 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::add_mailbox_properties_dialog"
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
g_return_if_fail (dialog != NULL);
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (dialog));
-#line 1146 "mn-shell.c"
+#line 1128 "mn-shell.c"
{
-#line 601 "mn-shell.gob"
+#line 637 "mn-shell.gob"
- g_return_if_fail(mn_mailbox_properties_dialog_get_uri(dialog) != NULL);
-
selfp->mailbox_properties_dialogs = g_slist_append(selfp->mailbox_properties_dialogs, dialog);
g_object_weak_ref(G_OBJECT(dialog), self_mailbox_properties_dialog_weak_notify_cb, self);
}}
-#line 1155 "mn-shell.c"
+#line 1135 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 608 "mn-shell.gob"
+#line 642 "mn-shell.gob"
static void
mn_shell_mailbox_properties_dialog_weak_notify_cb (gpointer data, GObject * former_object)
-#line 1161 "mn-shell.c"
+#line 1141 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::mailbox_properties_dialog_weak_notify_cb"
-#line 608 "mn-shell.gob"
- g_return_if_fail (data != NULL);
-#line 1166 "mn-shell.c"
{
-#line 611 "mn-shell.gob"
+#line 645 "mn-shell.gob"
Self *self = data;
selfp->mailbox_properties_dialogs = g_slist_remove(selfp->mailbox_properties_dialogs, former_object);
}}
-#line 1174 "mn-shell.c"
+#line 1151 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 617 "mn-shell.gob"
+#line 651 "mn-shell.gob"
MNMailboxPropertiesDialog *
-mn_shell_get_mailbox_properties_dialog (MNShell * self, MNURI * uri)
-#line 1180 "mn-shell.c"
+mn_shell_get_mailbox_properties_dialog (MNShell * self, MNMailbox * mailbox)
+#line 1157 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::get_mailbox_properties_dialog"
-#line 617 "mn-shell.gob"
+#line 651 "mn-shell.gob"
g_return_val_if_fail (self != NULL, (MNMailboxPropertiesDialog * )0);
-#line 617 "mn-shell.gob"
+#line 651 "mn-shell.gob"
g_return_val_if_fail (MN_IS_SHELL (self), (MNMailboxPropertiesDialog * )0);
-#line 617 "mn-shell.gob"
- g_return_val_if_fail (uri != NULL, (MNMailboxPropertiesDialog * )0);
-#line 617 "mn-shell.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (MNMailboxPropertiesDialog * )0);
-#line 1191 "mn-shell.c"
+#line 651 "mn-shell.gob"
+ g_return_val_if_fail (mailbox != NULL, (MNMailboxPropertiesDialog * )0);
+#line 651 "mn-shell.gob"
+ g_return_val_if_fail (MN_IS_MAILBOX (mailbox), (MNMailboxPropertiesDialog * )0);
+#line 1168 "mn-shell.c"
{
-#line 619 "mn-shell.gob"
+#line 653 "mn-shell.gob"
GSList *l;
MN_LIST_FOREACH(l, selfp->mailbox_properties_dialogs)
{
MNMailboxPropertiesDialog *dialog = l->data;
- MNURI *this_uri;
+ MNMailbox *this_mailbox;
+ gboolean found;
+
+ this_mailbox = mn_mailbox_properties_dialog_get_mailbox(dialog);
+ found = this_mailbox == mailbox;
+ g_object_unref(this_mailbox);
- this_uri = mn_mailbox_properties_dialog_get_uri(dialog);
- if (! strcmp(this_uri->text, uri->text))
+ if (found)
return dialog;
}
return NULL;
}}
-#line 1209 "mn-shell.c"
+#line 1190 "mn-shell.c"
#undef __GOB_FUNCTION__
static const GEnumValue _mn_position_values[] = {
{ MN_POSITION_TOP_LEFT, (char *)"MN_POSITION_TOP_LEFT", (char *)"top-left" },
diff --git a/src/mn-shell.gob b/src/mn-shell.gob
@@ -16,16 +16,18 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
#include "mn-mailboxes.h"
#include "mn-mailbox-properties-dialog.h"
%}
+
%privateheader{
#include "mn-mail-icon.h"
%}
+
%{
#include "config.h"
#include <errno.h>
@@ -35,34 +37,47 @@ requires 2.0.10
#include "mn-util.h"
#include "mn-conf.h"
#include "mn-mailboxes.h"
-#include "mn-unsupported-mailbox.h"
#include "mn-about-dialog.h"
-#include "mn-summary-popup.h"
#include "mn-main-window.h"
+#include "mn-mail-summary-popup.h"
#include "mn-message-view.h"
+#include "mn-message.h"
- MNShell *mn_shell = NULL;
+MNShell *mn_shell = NULL;
%}
class MN:Shell from G:Object
{
public MNMailboxes *mailboxes = {mn_mailboxes_new()} unrefwith g_object_unref;
private MNMailIcon *icon;
- private GtkWidget *about;
private gboolean has_new;
+
+ private GtkWidget *main_window;
+ private GtkWidget *properties_dialog;
+
private GSList *mailbox_properties_dialogs;
+ private GtkWidget *popup;
+ private GSList *popup_messages destroywith mn_g_object_slist_free;
+ private GSList *popup_previous_messages destroywith mn_g_object_slist_free;
+
+ private GtkWidget *about_dialog;
+
init (self)
{
- g_return_if_fail(mn_shell == NULL);
+ g_assert(mn_shell == NULL);
+
mn_shell = self;
eel_add_weak_pointer(&mn_shell);
self_init_icon(self);
- eel_gconf_notification_add(MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self);
- eel_gconf_notification_add(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self);
- eel_gconf_notification_add(MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self);
+ mn_conf_notifications_add(self,
+ MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self,
+ MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self,
+ MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self,
+ MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, self_notify_mail_summary_popup_enable_cb, self,
+ NULL);
g_object_connect(self->mailboxes,
"signal::messages-changed", self_messages_changed_h, self,
@@ -73,8 +88,6 @@ class MN:Shell from G:Object
"swapped-signal::error-changed", self_update_tooltip, self,
"swapped-signal::error-changed", self_update_icon, self,
NULL);
-
- mn_summary_popup_init();
}
override (G:Object) void
@@ -85,9 +98,9 @@ class MN:Shell from G:Object
}
private void
- messages_changed_h (MN:Mailboxes *mailboxes (check null type),
+ messages_changed_h (MNMailboxes *mailboxes,
gboolean has_new,
- gpointer user_data (check null))
+ gpointer user_data)
{
Self *self = user_data;
@@ -98,20 +111,23 @@ class MN:Shell from G:Object
mn_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
}
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+ self_update_popup(self, has_new);
+
self_update_tooltip(self);
self_update_icon(self);
}
private void
- mailbox_removed_h (MN:Mailboxes *mailboxes (check null type),
- MN:Mailbox *mailbox (check null type),
- gpointer user_data (check null))
+ mailbox_removed_h (MNMailboxes *mailboxes,
+ MNMailbox *mailbox,
+ gpointer user_data)
{
Self *self = user_data;
MNMailboxPropertiesDialog *dialog;
/* destroy the associated properties dialog, if any */
- dialog = self_get_mailbox_properties_dialog(self, mailbox->uri);
+ dialog = self_get_mailbox_properties_dialog(self, mailbox);
if (dialog)
gtk_widget_destroy(GTK_WIDGET(dialog));
}
@@ -123,7 +139,7 @@ class MN:Shell from G:Object
g_object_connect(selfp->icon,
"signal::activate", self_icon_activate_h, self,
- "signal::activate-main-window", self_icon_activate_main_window_h, self,
+ "swapped-signal::activate-main-window", self_display_main_window, self,
"signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
"signal::activate-update", self_icon_activate_update_h, self,
"signal::activate-properties", self_icon_activate_properties_h, self,
@@ -142,7 +158,7 @@ class MN:Shell from G:Object
notify_blink_on_errors_cb (GConfClient *client,
unsigned int cnxn_id,
GConfEntry *entry,
- gpointer user_data (check null))
+ gpointer user_data)
{
Self *self = user_data;
@@ -155,7 +171,7 @@ class MN:Shell from G:Object
notify_mail_reader_cb (GConfClient *client,
unsigned int cnxn_id,
GConfEntry *entry,
- gpointer user_data (check null))
+ gpointer user_data)
{
Self *self = user_data;
@@ -168,7 +184,7 @@ class MN:Shell from G:Object
notify_summary_tooltip_cb (GConfClient *client,
unsigned int cnxn_id,
GConfEntry *entry,
- gpointer user_data (check null))
+ gpointer user_data)
{
Self *self = user_data;
@@ -178,8 +194,23 @@ class MN:Shell from G:Object
}
private void
- icon_activate_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
+ notify_mail_summary_popup_enable_cb (GConfClient *client,
+ unsigned int cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+
+ if (selfp->popup && ! eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+ gtk_widget_destroy(selfp->popup);
+
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
+ icon_activate_h (MNMailIcon *icon, gpointer user_data)
{
MNShell *self = user_data;
MNAction action;
@@ -189,7 +220,7 @@ class MN:Shell from G:Object
switch (action)
{
case MN_ACTION_DISPLAY_MAIN_WINDOW:
- mn_main_window_display();
+ self_display_main_window(self);
break;
case MN_ACTION_LAUNCH_MAIL_READER:
@@ -207,60 +238,47 @@ class MN:Shell from G:Object
}
private void
- icon_activate_main_window_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
- {
- mn_main_window_display();
- }
-
- private void
- icon_activate_mail_reader_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
+ icon_activate_mail_reader_h (MNMailIcon *icon, gpointer user_data)
{
mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
}
private void
- icon_activate_update_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
+ icon_activate_update_h (MNMailIcon *icon, gpointer user_data)
{
Self *self = user_data;
mn_mailboxes_check(self->mailboxes);
}
private void
- icon_activate_properties_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
+ icon_activate_properties_h (MNMailIcon *icon, gpointer user_data)
{
- mn_properties_dialog_display();
+ Self *self = user_data;
+ self_display_properties_dialog(self, NULL);
}
private void
- icon_activate_help_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
+ icon_activate_help_h (MNMailIcon *icon, gpointer user_data)
{
mn_display_help(NULL, NULL);
}
private void
- icon_activate_about_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
+ icon_activate_about_h (MNMailIcon *icon, gpointer user_data)
{
Self *self = user_data;
- self_display_about_dialog(self);
+ self_display_about_dialog(self, NULL);
}
private void
- icon_activate_remove_h (MN:Mail:Icon *icon (check null type),
- gpointer user_data (check null))
+ icon_activate_remove_h (MNMailIcon *icon, gpointer user_data)
{
Self *self = user_data;
g_object_unref(self);
}
private void
- icon_destroy_h (Gtk:Object *object (check null type),
- gpointer user_data (check null))
+ icon_destroy_h (GtkObject *object, gpointer user_data)
{
Self *self = user_data;
@@ -278,17 +296,17 @@ class MN:Shell from G:Object
private void
update_icon (self)
{
- GSList *l;
+ GList *l;
gboolean has_new = FALSE;
gboolean blink = FALSE;
- MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+ MN_LIST_FOREACH(l, self->mailboxes->list)
{
MNMailbox *mailbox = l->data;
- if (mn_mailbox_get_messages(mailbox))
+ if (mailbox->messages)
has_new = TRUE;
- if (mn_mailbox_get_error(mailbox) || MN_IS_UNSUPPORTED_MAILBOX(mailbox))
+ if (mailbox->error)
blink = TRUE;
}
@@ -312,30 +330,25 @@ class MN:Shell from G:Object
update_tooltip (self)
{
GtkWidget *vbox;
- GSList *mailboxes;
vbox = gtk_vbox_new(FALSE, 18);
- mailboxes = mn_mailboxes_get(self->mailboxes);
- if (mailboxes)
+ if (self->mailboxes->list)
{
- GSList *l;
+ GList *l;
+ GSList *sl;
GSList *new_mailboxes = NULL;
GSList *error_mailboxes = NULL;
- GSList *unsupported_mailboxes = NULL;
- MN_LIST_FOREACH(l, mailboxes)
+ MN_LIST_FOREACH(l, self->mailboxes->list)
{
MNMailbox *mailbox = l->data;
- if (mn_mailbox_get_messages(mailbox))
+ if (mailbox->messages)
new_mailboxes = g_slist_append(new_mailboxes, mailbox);
- if (mn_mailbox_get_error(mailbox))
+ if (mailbox->error)
error_mailboxes = g_slist_append(error_mailboxes, mailbox);
-
- if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
- unsupported_mailboxes = g_slist_append(unsupported_mailboxes, mailbox);
}
if (new_mailboxes)
@@ -343,16 +356,16 @@ class MN:Shell from G:Object
GString *string = g_string_new(NULL);
new_mailboxes = g_slist_sort(new_mailboxes, self_new_mailboxes_compare_func);
- MN_LIST_FOREACH(l, new_mailboxes)
+ MN_LIST_FOREACH(sl, new_mailboxes)
{
- MNMailbox *mailbox = l->data;
+ MNMailbox *mailbox = sl->data;
int n_messages;
if (*string->str)
g_string_append_c(string, '\n');
- g_string_append(string, mn_mailbox_get_name(mailbox));
+ g_string_append(string, mailbox->runtime_name);
- n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+ n_messages = g_slist_length(mailbox->messages);
if (n_messages > 0)
g_string_append_printf(string, " (%i)", n_messages);
}
@@ -366,43 +379,20 @@ class MN:Shell from G:Object
{
GString *string = g_string_new(NULL);
- error_mailboxes = g_slist_sort(error_mailboxes, self_mailboxes_compare_by_name_func);
- MN_LIST_FOREACH(l, error_mailboxes)
+ error_mailboxes = g_slist_sort(error_mailboxes, mn_mailboxes_compare_by_name_func);
+ MN_LIST_FOREACH(sl, error_mailboxes)
{
- MNMailbox *mailbox = l->data;
+ MNMailbox *mailbox = sl->data;
if (*string->str)
g_string_append_c(string, '\n');
- g_string_append_printf(string, "%s: %s",
- mn_mailbox_get_name(mailbox),
- mn_mailbox_get_error(mailbox));
+ g_string_append_printf(string, "%s: %s", mailbox->runtime_name, mailbox->error);
}
g_slist_free(error_mailboxes);
self_tooltip_text_section_new(GTK_VBOX(vbox), _("Errors"), string->str);
g_string_free(string, TRUE);
}
-
- if (unsupported_mailboxes)
- {
- GString *string = g_string_new(NULL);
-
- unsupported_mailboxes = g_slist_sort(unsupported_mailboxes, self_mailboxes_compare_by_name_func);
- MN_LIST_FOREACH(l, unsupported_mailboxes)
- {
- MNMailbox *mailbox = l->data;
-
- if (*string->str)
- g_string_append_c(string, '\n');
- g_string_append_printf(string, "%s: %s",
- mn_mailbox_get_name(mailbox),
- mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
- }
- g_slist_free(unsupported_mailboxes);
-
- self_tooltip_text_section_new(GTK_VBOX(vbox), _("Unsupported Mailboxes"), string->str);
- g_string_free(string, TRUE);
- }
}
if (eel_gconf_get_boolean(MN_CONF_SUMMARY_TOOLTIP))
@@ -442,10 +432,10 @@ class MN:Shell from G:Object
cmp = self_get_latest_sent_time(mailbox_b) - self_get_latest_sent_time(mailbox_a);
/* else sort by number of messages (descending order) */
if (cmp == 0)
- cmp = g_slist_length(mn_mailbox_get_messages(mailbox_b)) - g_slist_length(mn_mailbox_get_messages(mailbox_a));
+ cmp = g_slist_length(mailbox_b->messages) - g_slist_length(mailbox_a->messages);
/* else sort by name (ascending order) */
if (cmp == 0)
- cmp = self_mailboxes_compare_by_name_func(a, b);
+ cmp = mn_mailboxes_compare_by_name_func(a, b);
return cmp;
}
@@ -456,7 +446,7 @@ class MN:Shell from G:Object
GSList *l;
time_t latest = 0;
- MN_LIST_FOREACH(l, mn_mailbox_get_messages(mailbox))
+ MN_LIST_FOREACH(l, mailbox->messages)
{
MNMessage *message = l->data;
@@ -467,16 +457,6 @@ class MN:Shell from G:Object
return latest;
}
- private int
- mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b)
- {
- MNMailbox *mailbox_a = (MNMailbox *) a;
- MNMailbox *mailbox_b = (MNMailbox *) b;
-
- return mn_utf8_strcasecoll(mn_mailbox_get_name(mailbox_a),
- mn_mailbox_get_name(mailbox_b));
- }
-
private GtkWidget *
tooltip_section_new (Gtk:VBox *vbox (check null type),
const char *title (check null))
@@ -524,6 +504,79 @@ class MN:Shell from G:Object
gtk_container_add(GTK_CONTAINER(alignment), label);
}
+ private void
+ update_popup (self, gboolean has_new)
+ {
+ if (! selfp->main_window
+ && (! selfp->properties_dialog || ! mn_properties_dialog_test_popup_displayed(MN_PROPERTIES_DIALOG(selfp->properties_dialog)))
+ && (selfp->popup || has_new))
+ {
+ GSList *l;
+
+ mn_g_object_slist_free(selfp->popup_messages);
+ selfp->popup_messages = mn_mailboxes_get_messages(self->mailboxes);
+
+ loop1:
+ MN_LIST_FOREACH(l, selfp->popup_previous_messages)
+ {
+ MNMessage *message = l->data;
+
+ if (! mn_message_slist_find_by_id(selfp->popup_messages, message))
+ {
+ selfp->popup_previous_messages = mn_g_object_slist_delete_link(selfp->popup_previous_messages, l);
+ goto loop1;
+ }
+ }
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT))
+ {
+ loop2:
+ MN_LIST_FOREACH(l, selfp->popup_messages)
+ {
+ MNMessage *message = l->data;
+
+ if (mn_message_slist_find_by_id(selfp->popup_previous_messages, message))
+ {
+ selfp->popup_messages = mn_g_object_slist_delete_link(selfp->popup_messages, l);
+ goto loop2;
+ }
+ }
+ }
+
+ if (selfp->popup_messages)
+ {
+ if (! selfp->popup)
+ {
+ selfp->popup = mn_mail_summary_popup_new();
+
+ eel_add_weak_pointer(&selfp->popup);
+ g_object_weak_ref(G_OBJECT(selfp->popup), (GWeakNotify) self_popup_weak_notify_cb, self);
+ }
+
+ mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->popup), selfp->popup_messages);
+ gtk_widget_show(selfp->popup);
+
+ /* we only reset the timeout if there is new mail */
+
+ if (has_new)
+ mn_mail_summary_popup_reset_timeout(MN_MAIL_SUMMARY_POPUP(selfp->popup));
+
+ return; /* something has been shown */
+ }
+ }
+
+ /* nothing has been shown, destroy the popup if it exists */
+ if (selfp->popup)
+ gtk_widget_destroy(selfp->popup);
+ }
+
+ private void
+ popup_weak_notify_cb (self, GObject *former_object)
+ {
+ selfp->popup_previous_messages = g_slist_concat(selfp->popup_previous_messages, selfp->popup_messages);
+ selfp->popup_messages = NULL;
+ }
+
public MNShell *
new (void)
{
@@ -531,82 +584,63 @@ class MN:Shell from G:Object
}
public void
- display_about_dialog (self)
+ display_main_window (self)
{
- if (selfp->about)
- {
- gtk_window_present(GTK_WINDOW(selfp->about));
- return;
- }
-
- selfp->about = mn_about_dialog_new();
- eel_add_weak_pointer(&selfp->about);
-
- mn_main_window_add_transient(GTK_WINDOW(selfp->about));
- gtk_widget_show(GTK_WIDGET(selfp->about));
+ self_display_window(self, MN_TYPE_MAIN_WINDOW, &selfp->main_window, NULL);
+
+ /* we don't need the mail summary popup anymore */
+ self_close_mail_summary_popup(self);
}
public void
- display_welcome_dialog (self)
- {
- GtkWidget *dialog;
-
- mn_create_interface(MN_INTERFACE_FILE("welcome.glade"), "dialog", &dialog, NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-
- g_signal_connect(dialog, "response", G_CALLBACK(self_welcome_response_h), NULL);
- gtk_widget_show(dialog);
- }
-
- private void
- welcome_response_h (Gtk:Dialog *dialog (check null type),
- int response,
- gpointer user_data)
+ display_properties_dialog (self, GtkWindow *parent)
{
- gtk_widget_destroy(GTK_WIDGET(dialog));
- if (response == GTK_RESPONSE_OK)
- mn_properties_dialog_display();
+ self_display_window(self, MN_TYPE_PROPERTIES_DIALOG, &selfp->properties_dialog, parent);
}
public void
- report (self, char **report (check null))
+ display_about_dialog (self, GtkWindow *parent)
{
- GString *string;
- GSList *l;
+ self_display_window(self, MN_TYPE_ABOUT_DIALOG, &selfp->about_dialog, parent);
+ }
- string = g_string_new(NULL);
- MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+ private void
+ display_window (self,
+ GType type (check != 0),
+ GtkWidget **ptr (check null),
+ GtkWindow *parent)
+ {
+ if (*ptr)
{
- MNMailbox *mailbox = l->data;
- const char *error;
-
- error = mn_mailbox_get_error(mailbox);
+ gtk_window_present(GTK_WINDOW(*ptr));
+ return;
+ }
- g_string_append_printf(string, "%s\n", mailbox->uri->text);
+ *ptr = g_object_new(type, NULL);
+ eel_add_weak_pointer(ptr);
- if (mn_mailbox_get_messages(mailbox))
- g_string_append(string, " has-new\n");
- if (error)
- g_string_append_printf(string, " error %s\n", error);
- if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
- g_string_append_printf(string, " unsupported %s\n", mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
- }
+ if (parent)
+ gtk_window_set_transient_for(GTK_WINDOW(*ptr), parent);
- *report = string->str;
- g_string_free(string, FALSE);
+ gtk_widget_show(*ptr);
}
public void
+ close_mail_summary_popup (self)
+ {
+ if (selfp->popup)
+ gtk_widget_destroy(selfp->popup);
+ }
+
+ public void
add_mailbox_properties_dialog (self, MN:Mailbox:Properties:Dialog *dialog (check null type))
{
- g_return_if_fail(mn_mailbox_properties_dialog_get_uri(dialog) != NULL);
-
selfp->mailbox_properties_dialogs = g_slist_append(selfp->mailbox_properties_dialogs, dialog);
g_object_weak_ref(G_OBJECT(dialog), self_mailbox_properties_dialog_weak_notify_cb, self);
}
private void
- mailbox_properties_dialog_weak_notify_cb (gpointer data (check null),
+ mailbox_properties_dialog_weak_notify_cb (gpointer data,
GObject *former_object)
{
Self *self = data;
@@ -615,17 +649,21 @@ class MN:Shell from G:Object
}
public MNMailboxPropertiesDialog *
- get_mailbox_properties_dialog (self, MN:URI *uri (check null type))
+ get_mailbox_properties_dialog (self, MN:Mailbox *mailbox (check null type))
{
GSList *l;
MN_LIST_FOREACH(l, selfp->mailbox_properties_dialogs)
{
MNMailboxPropertiesDialog *dialog = l->data;
- MNURI *this_uri;
+ MNMailbox *this_mailbox;
+ gboolean found;
+
+ this_mailbox = mn_mailbox_properties_dialog_get_mailbox(dialog);
+ found = this_mailbox == mailbox;
+ g_object_unref(this_mailbox);
- this_uri = mn_mailbox_properties_dialog_get_uri(dialog);
- if (! strcmp(this_uri->text, uri->text))
+ if (found)
return dialog;
}
diff --git a/src/mn-shell.h b/src/mn-shell.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -59,14 +59,16 @@ struct _MNShellClass {
*/
GType mn_shell_get_type (void);
MNShell * mn_shell_new (void);
-void mn_shell_display_about_dialog (MNShell * self);
-void mn_shell_display_welcome_dialog (MNShell * self);
-void mn_shell_report (MNShell * self,
- char ** report);
+void mn_shell_display_main_window (MNShell * self);
+void mn_shell_display_properties_dialog (MNShell * self,
+ GtkWindow * parent);
+void mn_shell_display_about_dialog (MNShell * self,
+ GtkWindow * parent);
+void mn_shell_close_mail_summary_popup (MNShell * self);
void mn_shell_add_mailbox_properties_dialog (MNShell * self,
MNMailboxPropertiesDialog * dialog);
MNMailboxPropertiesDialog * mn_shell_get_mailbox_properties_dialog (MNShell * self,
- MNURI * uri);
+ MNMailbox * mailbox);
extern MNShell *mn_shell;
diff --git a/src/mn-soup.c b/src/mn-soup.c
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <eel/eel.h>
-#include <libsoup/soup.h>
-
-/*** cpp *********************************************************************/
-
-#define CONF_HTTP_PROXY_NAMESPACE "/system/http_proxy"
-#define CONF_HTTP_PROXY_USE_HTTP_PROXY CONF_HTTP_PROXY_NAMESPACE "/use_http_proxy"
-#define CONF_HTTP_PROXY_HOST CONF_HTTP_PROXY_NAMESPACE "/host"
-#define CONF_HTTP_PROXY_PORT CONF_HTTP_PROXY_NAMESPACE "/port"
-#define CONF_HTTP_PROXY_USE_AUTHENTICATION CONF_HTTP_PROXY_NAMESPACE "/use_authentication"
-#define CONF_HTTP_PROXY_AUTHENTICATION_USER CONF_HTTP_PROXY_NAMESPACE "/authentication_user"
-#define CONF_HTTP_PROXY_AUTHENTICATION_PASSWORD CONF_HTTP_PROXY_NAMESPACE "/authentication_password"
-#define CONF_PROXY_NAMESPACE "/system/proxy"
-#define CONF_PROXY_MODE CONF_PROXY_NAMESPACE "/mode"
-#define CONF_PROXY_SOCKS_HOST CONF_PROXY_NAMESPACE "/socks_host"
-#define CONF_PROXY_SOCKS_PORT CONF_PROXY_NAMESPACE "/socks_port"
-
-/*** functions ***************************************************************/
-
-static char *mn_soup_build_proxy_uri (void);
-
-/*** implementation **********************************************************/
-
-static char *
-mn_soup_build_proxy_uri (void)
-{
- char *uri = NULL;
- char *mode;
-
- mode = eel_gconf_get_string(CONF_PROXY_MODE);
- if (mode)
- {
- if (! strcmp(mode, "manual"))
- {
- char *socks_host;
-
- socks_host = eel_gconf_get_string(CONF_PROXY_SOCKS_HOST);
- if (socks_host)
- {
- if (*socks_host)
- {
- int socks_port;
-
- socks_port = eel_gconf_get_integer(CONF_PROXY_SOCKS_PORT);
- if (socks_port <= 0 || socks_port > 65535)
- socks_port = 1080;
-
- /* we assume it's a Socks 5 proxy, since it is not specified */
- uri = g_strdup_printf("socks5://%s:%i", socks_host, socks_port);
- }
-
- g_free(socks_host);
- }
- }
- g_free(mode);
- }
-
- if (! uri)
- {
- if (eel_gconf_get_boolean(CONF_HTTP_PROXY_USE_HTTP_PROXY))
- {
- char *host;
-
- /* FIXME: also honour /system/http_proxy/ignore_hosts */
-
- host = eel_gconf_get_string(CONF_HTTP_PROXY_HOST);
- if (host)
- {
- if (*host)
- {
- GString *string;
- int port;
-
- string = g_string_new("http://");
-
- port = eel_gconf_get_integer(CONF_HTTP_PROXY_PORT);
- if (port <= 0 || port > 65535)
- port = 8080; /* default as recommended by http-method.c of GnomeVFS */
-
- if (eel_gconf_get_boolean(CONF_HTTP_PROXY_USE_AUTHENTICATION))
- {
- char *authentication_user;
- char *authentication_password;
-
- authentication_user = eel_gconf_get_string(CONF_HTTP_PROXY_AUTHENTICATION_USER);
- authentication_password = eel_gconf_get_string(CONF_HTTP_PROXY_AUTHENTICATION_PASSWORD);
-
- if (authentication_user && authentication_password
- && *authentication_user && *authentication_password)
- g_string_append_printf(string, "%s:%s@", authentication_user, authentication_password);
-
- g_free(authentication_user);
- g_free(authentication_password);
- }
-
- g_string_append_printf(string, "%s:%i", host, port);
- uri = g_string_free(string, FALSE);
- }
-
- g_free(host);
- }
- }
- }
-
- return uri;
-}
-
-SoupSession *
-mn_soup_session_sync_new (void)
-{
- char *proxy_text_uri;
- SoupUri *proxy_uri = NULL;
- SoupSession *session;
-
- proxy_text_uri = mn_soup_build_proxy_uri();
- if (proxy_text_uri)
- {
- proxy_uri = soup_uri_new(proxy_text_uri);
- if (! proxy_uri)
- g_warning(_("unable to parse proxy URI \"%s\""), proxy_text_uri);
- g_free(proxy_text_uri);
- }
-
- session = soup_session_sync_new_with_options(SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
-
- if (proxy_uri)
- soup_uri_free(proxy_uri);
-
- return session;
-}
diff --git a/src/mn-soup.h b/src/mn-soup.h
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_SOUP_H
-#define _MN_SOUP_H
-
-#include <libsoup/soup.h>
-
-SoupSession *mn_soup_session_sync_new (void);
-
-#endif /* _MN_SOUP_H */
diff --git a/src/mn-ssl.c b/src/mn-ssl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -25,46 +25,43 @@
/*** variables ***************************************************************/
-static gboolean initialized = FALSE;
-G_LOCK_DEFINE_STATIC(initialized);
+static gboolean attempted = FALSE;
+static SSL_CTX *ctx = NULL;
+static char *init_error = NULL;
-static SSL_CTX *global_ctx;
-static char *init_error;
+G_LOCK_DEFINE_STATIC(init);
/*** implementation **********************************************************/
SSL_CTX *
mn_ssl_init (GError **err)
{
- SSL_CTX *ctx;
-
/*
* SSL_CTX_new() will fail the second time it is called, so we just
* keep the same context for the whole application lifetime.
*/
- G_LOCK(initialized);
- if (! initialized)
+ G_LOCK(init);
+ if (! attempted)
{
SSL_library_init();
SSL_load_error_strings();
- global_ctx = SSL_CTX_new(SSLv23_client_method());
- if (global_ctx)
- SSL_CTX_set_mode(global_ctx, SSL_MODE_AUTO_RETRY);
+ ctx = SSL_CTX_new(SSLv23_client_method());
+ if (ctx)
+ SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
else
init_error = g_strdup(mn_ssl_get_error());
- initialized = TRUE;
+ attempted = TRUE;
}
- ctx = global_ctx;
if (! ctx)
{
- g_return_val_if_fail(init_error != NULL, NULL);
+ g_assert(init_error != NULL);
g_set_error(err, 0, 0, "%s", init_error);
}
- G_UNLOCK(initialized);
+ G_UNLOCK(init);
return ctx;
}
diff --git a/src/mn-stock.c b/src/mn-stock.c
@@ -26,7 +26,8 @@
static const GtkStockItem items[] = {
{ MN_STOCK_SELECT_ALL, N_("Select _All"), 0, 0, NULL },
- { MN_STOCK_LEAVE_FULLSCREEN, N_("Leave Fullscreen"), 0, 0, NULL }
+ { MN_STOCK_LEAVE_FULLSCREEN, N_("Leave Fullscreen"), 0, 0, NULL },
+ { MN_STOCK_CONNECT, N_("Co_nnect"), 0, 0, NULL }
};
/*** implementation **********************************************************/
@@ -44,16 +45,24 @@ mn_stock_init (void)
{ MN_STOCK_MAIL, NULL, "stock_mail" },
{ MN_STOCK_LOCAL, NULL, "stock_folder" },
{ MN_STOCK_REMOTE, NULL, "stock_internet" },
- { MN_STOCK_UNSUPPORTED, MN_IMAGE_FILE(UIDIR, "unsupported.png") },
+ { MN_STOCK_POLLED, NULL, "stock_timer" },
+ { MN_STOCK_UNKNOWN, NULL, "stock_unknown" },
+ { MN_STOCK_ERROR, NULL, NULL, GTK_STOCK_DIALOG_ERROR },
#ifdef WITH_GMAIL
{ MN_STOCK_GMAIL, MN_IMAGE_FILE(UIDIR, "gmail.png") },
#endif
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
{ MN_STOCK_SYSTEM_MAILBOX, NULL, "gnome-system" },
+#endif
+#ifdef WITH_EVOLUTION
+ { MN_STOCK_EVOLUTION_MAILBOX, NULL, "evolution" },
+#endif
{ MN_STOCK_SELECT_ALL, NULL, "stock_select-all" },
{ MN_STOCK_MAIL_SUMMARY, MN_IMAGE_FILE(GNOMEPIXMAPSDIR, "mail-notification.png") },
- { MN_STOCK_MAIL_READER, MN_IMAGE_FILE(GNOMEPIXMAPSDIR, "mail-notification.png") },
+ { MN_STOCK_MAIL_READER, NULL, "stock_mail-handling" },
{ MN_STOCK_MAIN_WINDOW, MN_IMAGE_FILE(UIDIR, "main-window.png") },
- { MN_STOCK_LEAVE_FULLSCREEN, NULL, NULL, GTK_STOCK_QUIT }
+ { MN_STOCK_LEAVE_FULLSCREEN, NULL, "stock_leave-fullscreen" },
+ { MN_STOCK_CONNECT, NULL, NULL, GTK_STOCK_CONNECT }
};
GtkIconFactory *factory;
GtkIconTheme *icon_theme;
@@ -96,7 +105,7 @@ mn_stock_init (void)
gtk_icon_set_ref(icon_set);
}
else
- g_return_if_reached();
+ g_assert_not_reached();
gtk_icon_factory_add(factory, icons[i].stock_id, icon_set);
gtk_icon_set_unref(icon_set);
diff --git a/src/mn-stock.h b/src/mn-stock.h
@@ -24,16 +24,24 @@
#define MN_STOCK_MAIL "mn-mail"
#define MN_STOCK_LOCAL "mn-local"
#define MN_STOCK_REMOTE "mn-remote"
-#define MN_STOCK_UNSUPPORTED "mn-unsupported"
+#define MN_STOCK_POLLED "mn-polled"
+#define MN_STOCK_UNKNOWN "mn-unknown"
+#define MN_STOCK_ERROR "mn-error"
#ifdef WITH_GMAIL
#define MN_STOCK_GMAIL "mn-gmail"
#endif
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
#define MN_STOCK_SYSTEM_MAILBOX "mn-system-mailbox"
+#endif
+#ifdef WITH_EVOLUTION
+#define MN_STOCK_EVOLUTION_MAILBOX "mn-evolution-mailbox"
+#endif
#define MN_STOCK_SELECT_ALL "mn-select-all"
#define MN_STOCK_MAIL_SUMMARY "mn-mail-summary"
#define MN_STOCK_MAIL_READER "mn-mail-reader"
#define MN_STOCK_MAIN_WINDOW "mn-main-window"
#define MN_STOCK_LEAVE_FULLSCREEN "mn-leave-fullscreen"
+#define MN_STOCK_CONNECT "mn-connect"
void mn_stock_init (void);
diff --git a/src/mn-summary-popup.c b/src/mn-summary-popup.c
@@ -1,557 +0,0 @@
-/*
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <eel/eel.h>
-#include "mn-util.h"
-#include "mn-shell.h"
-#include "mn-conf.h"
-#include "mn-stock.h"
-#include "mn-main-window.h"
-#include "mn-summary-popup.h"
-#include "mn-message-view.h"
-
-/*** types *******************************************************************/
-
-typedef struct
-{
- gboolean enabled;
- GtkWidget *popup;
- GtkWidget *image;
- GtkWidget *title;
- GtkWidget *message_view;
- unsigned int timeout_id;
-
- GSList *displayed_messages;
- GSList *previous_messages;
-
- MNPosition position;
- int horizontal_offset;
- int vertical_offset;
- GdkGravity gravity;
-} SummaryPopup;
-
-/*** variables ***************************************************************/
-
-static SummaryPopup self = {
- FALSE, /* enabled */
- NULL, /* popup */
- NULL, /* image */
- NULL, /* title */
- NULL, /* message_view */
- 0, /* timeout_id */
-
- NULL, /* displayed_messages */
- NULL, /* previous_messages */
-
- -1, /* position */
- 0, /* horizontal_offset */
- 0, /* vertical_offset */
- 0 /* gravity */
-};
-
-/*** functions ***************************************************************/
-
-static void mn_summary_popup_notify_enable_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-static void mn_summary_popup_notify_autoclose_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-static void mn_summary_popup_notify_delay_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-static void mn_summary_popup_notify_geometry_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-static void mn_summary_popup_notify_fonts_aspect_source_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-static void mn_summary_popup_notify_fonts_title_font_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-static void mn_summary_popup_notify_fonts_contents_font_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data);
-
-static void mn_summary_popup_enable (void);
-static void mn_summary_popup_disable (void);
-
-static void mn_summary_popup_messages_changed_h (MNMailboxes *mailboxes,
- gboolean has_new,
- gpointer user_data);
-
-static void mn_summary_popup_update (gboolean has_new);
-static void mn_summary_popup_weak_notify_cb (gpointer data,
- GObject *former_object);
-
-static void mn_summary_popup_set_geometry (void);
-static void mn_summary_popup_set_title_font (void);
-static void mn_summary_popup_set_contents_font (void);
-
-static void mn_summary_popup_install_timeout (void);
-
-static gboolean mn_summary_popup_timeout_cb (gpointer data);
-
-/*** implementation **********************************************************/
-
-void
-mn_summary_popup_init (void)
-{
- g_return_if_fail(mn_shell != NULL);
-
- if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
- mn_summary_popup_enable();
-
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, mn_summary_popup_notify_enable_cb, NULL);
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, mn_summary_popup_notify_autoclose_cb, NULL);
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_NAMESPACE, mn_summary_popup_notify_delay_cb, NULL);
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_POSITION, mn_summary_popup_notify_geometry_cb, NULL);
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE, mn_summary_popup_notify_geometry_cb, NULL);
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, mn_summary_popup_notify_fonts_aspect_source_cb, NULL);
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, mn_summary_popup_notify_fonts_title_font_cb, NULL);
- eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, mn_summary_popup_notify_fonts_contents_font_cb, NULL);
-}
-
-static void
-mn_summary_popup_notify_enable_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
-
- if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
- mn_summary_popup_enable();
- else
- mn_summary_popup_disable();
-
- GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_autoclose_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
-
- if (self.enabled)
- {
- if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
- {
- if (self.popup && ! self.timeout_id)
- mn_summary_popup_install_timeout();
- }
- else
- mn_source_remove(&self.timeout_id);
- }
-
- GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_delay_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
-
- if (self.enabled && self.popup && eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
- {
- mn_source_remove(&self.timeout_id);
- mn_summary_popup_install_timeout();
- }
-
- GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_geometry_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
-
- self.position = -1; /* invalidate the position */
-
- if (self.enabled && self.popup)
- mn_summary_popup_set_geometry();
-
- GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_fonts_aspect_source_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
-
- if (self.enabled && self.popup)
- {
- mn_summary_popup_set_title_font();
- mn_summary_popup_set_contents_font();
- }
-
- GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_fonts_title_font_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
-
- if (self.enabled && self.popup)
- mn_summary_popup_set_title_font();
-
- GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_fonts_contents_font_cb (GConfClient *client,
- unsigned int cnxn_id,
- GConfEntry *entry,
- gpointer user_data)
-{
- GDK_THREADS_ENTER();
-
- if (self.enabled && self.popup)
- mn_summary_popup_set_contents_font();
-
- GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_enable (void)
-{
- if (! self.enabled)
- {
- self.enabled = TRUE;
- g_signal_connect(mn_shell->mailboxes, "messages-changed", G_CALLBACK(mn_summary_popup_messages_changed_h), NULL);
- }
-}
-
-static void
-mn_summary_popup_disable (void)
-{
- if (self.enabled)
- {
- self.enabled = FALSE;
- g_signal_handlers_disconnect_by_func(mn_shell->mailboxes, mn_summary_popup_messages_changed_h, NULL);
- mn_summary_popup_destroy();
- }
-}
-
-static void
-mn_summary_popup_messages_changed_h (MNMailboxes *mailboxes,
- gboolean has_new,
- gpointer user_data)
-{
- mn_summary_popup_update(has_new);
-}
-
-static void
-mn_summary_popup_update (gboolean has_new)
-{
- if (! mn_main_window_is_displayed() && (self.popup || has_new))
- {
- GSList *l;
-
- mn_g_object_slist_free(self.displayed_messages);
- self.displayed_messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
-
- loop1:
- MN_LIST_FOREACH(l, self.previous_messages)
- {
- MNMessage *message = l->data;
-
- if (! mn_message_slist_find_by_id(self.displayed_messages, message))
- {
- self.previous_messages = mn_g_object_slist_delete_link(self.previous_messages, l);
- goto loop1;
- }
- }
-
- if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT))
- {
- loop2:
- MN_LIST_FOREACH(l, self.displayed_messages)
- {
- MNMessage *message = l->data;
-
- if (mn_message_slist_find_by_id(self.previous_messages, message))
- {
- self.displayed_messages = mn_g_object_slist_delete_link(self.displayed_messages, l);
- goto loop2;
- }
- }
- }
-
- if (self.displayed_messages)
- {
- if (! self.popup)
- {
- mn_create_interface(MN_INTERFACE_FILE("summary-popup.glade"),
- "mn-mail-summary-popup", &self.popup,
- "image", &self.image,
- "mn-mail-summary-popup-title", &self.title,
- "mn-message-view", &self.message_view,
- NULL);
-
- eel_add_weak_pointer(&self.popup);
- g_object_weak_ref(G_OBJECT(self.popup), mn_summary_popup_weak_notify_cb, NULL);
-
- /*
- * The popup must:
- *
- * - be sticky
- * - be kept above other windows
- * - not be focusable
- * - not be decorated
- * - not appear in the pager
- * - not appear in the taskbar
- *
- * An easy way to meet these requirements is to use a
- * window of type GTK_WINDOW_POPUP, but unfortunately
- * these are not hidden by xscreensaver
- * (http://bugzilla.gnome.org/show_bug.cgi?id=154529).
- *
- * We therefore use a window of type
- * GTK_WINDOW_TOPLEVEL, and we set the appropriate
- * properties in the glade file and below (but a
- * drawback is
- * http://bugzilla.gnome.org/show_bug.cgi?id=154593).
- */
-
- gtk_window_stick(GTK_WINDOW(self.popup));
- gtk_window_set_keep_above(GTK_WINDOW(self.popup), TRUE);
- gtk_window_set_accept_focus(GTK_WINDOW(self.popup), FALSE);
-
- gtk_widget_realize(self.popup);
- gdk_window_set_decorations(self.popup->window, GDK_DECOR_BORDER);
-
- gtk_image_set_from_stock(GTK_IMAGE(self.image), MN_STOCK_MAIL_SUMMARY, -1);
-
- mn_summary_popup_set_title_font();
- }
-
- mn_message_view_set_messages(MN_MESSAGE_VIEW(self.message_view), self.displayed_messages);
- mn_summary_popup_set_contents_font();
- mn_summary_popup_set_geometry();
- gtk_widget_show(self.popup);
-
- /* we only reset the timeout if there is new mail */
-
- if (has_new && eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
- {
- mn_source_remove(&self.timeout_id);
- mn_summary_popup_install_timeout();
- }
-
- return; /* something has been shown */
- }
- }
-
- /* nothing has been shown, destroy the popup if it exists */
- mn_summary_popup_destroy();
-}
-
-static void
-mn_summary_popup_weak_notify_cb (gpointer data, GObject *former_object)
-{
- mn_source_remove(&self.timeout_id);
-
- self.previous_messages = g_slist_concat(self.previous_messages, self.displayed_messages);
- self.displayed_messages = NULL;
-}
-
-static void
-mn_summary_popup_set_geometry (void)
-{
- int popup_width;
- int popup_height;
- int screen_width;
- int screen_height;
- GdkGravity gravity_mapping[] = {
- GDK_GRAVITY_NORTH_WEST,
- GDK_GRAVITY_NORTH_EAST,
- GDK_GRAVITY_SOUTH_WEST,
- GDK_GRAVITY_SOUTH_EAST
- };
- GdkGravity gravity;
- int x;
- int y;
- gboolean reshow;
-
- g_return_if_fail(self.popup != NULL);
-
- if (self.position == -1)
- {
- self.position = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
- self.horizontal_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET);
- self.vertical_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET);
- }
-
- gtk_window_get_size(GTK_WINDOW(self.popup), &popup_width, &popup_height);
- screen_width = gdk_screen_width();
- screen_height = gdk_screen_height();
-
- g_return_if_fail(self.position >= 0 && self.position < G_N_ELEMENTS(gravity_mapping));
- gravity = gravity_mapping[self.position];
-
- x = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_SOUTH_WEST)
- ? self.horizontal_offset
- : screen_width - popup_width - self.horizontal_offset;
- y = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_NORTH_EAST)
- ? self.vertical_offset
- : screen_height - popup_height - self.vertical_offset;
-
- /*
- * If the gravity changes, the gtk_window_move() call will misplace
- * the window (probably a Metacity bug).
- *
- * A workaround is to hide and reshow the window.
- */
- if (gravity != self.gravity)
- {
- self.gravity = gravity;
- reshow = TRUE;
- }
- else
- reshow = FALSE;
-
- if (reshow)
- gtk_widget_hide(self.popup);
-
- gtk_window_set_gravity(GTK_WINDOW(self.popup), gravity);
- gtk_window_move(GTK_WINDOW(self.popup), x, y);
-
- if (reshow)
- gtk_widget_show(self.popup);
-}
-
-static void
-mn_summary_popup_set_title_font (void)
-{
- PangoFontDescription *font_desc = NULL;
-
- if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
- {
- char *str;
-
- str = eel_gconf_get_string(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT);
- if (str)
- {
- font_desc = pango_font_description_from_string(str);
- g_free(str);
- }
- }
-
- gtk_widget_modify_font(self.title, font_desc);
- if (font_desc)
- pango_font_description_free(font_desc);
-}
-
-static void
-mn_summary_popup_set_contents_font (void)
-{
- PangoFontDescription *font_desc = NULL;
-
- if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
- {
- char *str;
-
- str = eel_gconf_get_string(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT);
- if (str)
- {
- font_desc = pango_font_description_from_string(str);
- g_free(str);
- }
- }
-
- gtk_widget_modify_font(GTK_WIDGET(self.message_view), font_desc);
- if (font_desc)
- pango_font_description_free(font_desc);
-}
-
-void
-mn_summary_popup_destroy (void)
-{
- if (self.popup)
- gtk_widget_destroy(self.popup);
-}
-
-static void
-mn_summary_popup_install_timeout (void)
-{
- g_return_if_fail(self.timeout_id == 0);
-
- self.timeout_id = mn_timeout_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
- MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
- mn_summary_popup_timeout_cb,
- NULL);
-}
-
-static gboolean
-mn_summary_popup_timeout_cb (gpointer data)
-{
- GDK_THREADS_ENTER();
- mn_summary_popup_destroy();
- GDK_THREADS_LEAVE();
-
- return FALSE; /* remove timeout */
-}
-
-/* libglade callbacks */
-
-gboolean
-mn_summary_popup_button_press_event_h (GtkWidget *widget,
- GdkEventButton *button,
- gpointer user_data)
-{
- gtk_widget_destroy(self.popup);
-
- return TRUE; /* do not propagate event */
-}
-
-GtkWidget *
-mn_summary_popup_message_view_new_cb (void)
-{
- GtkWidget *view;
-
- view = mn_message_view_new(TRUE, FALSE);
- gtk_widget_show(view);
-
- return view;
-}
diff --git a/src/mn-summary-popup.h b/src/mn-summary-popup.h
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_SUMMARY_POPUP_H
-#define _MN_SUMMARY_POPUP_H
-
-void mn_summary_popup_init (void);
-void mn_summary_popup_destroy (void);
-
-#endif /* _MN_SUMMARY_POPUP_H */
diff --git a/src/mn-sylpheed-mailbox-backend-private.h b/src/mn-sylpheed-mailbox-backend-private.h
@@ -0,0 +1,22 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_SYLPHEED_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_SYLPHEED_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-sylpheed-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNSylpheedMailboxBackendPrivate {
+#line 54 "mn-sylpheed-mailbox-backend.gob"
+ unsigned int monitor_timeout_id;
+#line 16 "mn-sylpheed-mailbox-backend-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-sylpheed-mailbox-backend.c b/src/mn-sylpheed-mailbox-backend.c
@@ -0,0 +1,467 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:56 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-sylpheed-mailbox-backend.h"
+
+#include "mn-sylpheed-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-sylpheed-mailbox-backend.gob"
+
+#include "config.h"
+#include <stdlib.h>
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+/* taken from procmsg.h in the Sylpheed sources */
+#define SYLPHEED_MSG_NEW (1U << 0)
+#define SYLPHEED_MSG_UNREAD (1U << 1)
+
+/* taken from defs.h in the Sylpheed sources */
+#define SYLPHEED_MARK_FILE ".sylpheed_mark"
+#define SYLPHEED_MARK_VERSION 2
+
+typedef struct
+{
+ int num;
+ guint32 flags;
+} MarkEntry;
+
+#line 54 "mn-sylpheed-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_SYLPHEED_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_SYLPHEED_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_SYLPHEED_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_SYLPHEED_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_SYLPHEED_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_SYLPHEED_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNSylpheedMailboxBackend Self;
+typedef MNSylpheedMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_sylpheed_mailbox_backend_init (MNSylpheedMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_sylpheed_mailbox_backend_class_init (MNSylpheedMailboxBackendClass * class) G_GNUC_UNUSED;
+static void ___2_mn_sylpheed_mailbox_backend_finalize (GObject * object) G_GNUC_UNUSED;
+static void ___3_mn_sylpheed_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+static gboolean mn_sylpheed_mailbox_backend_monitor_timeout_cb (gpointer data) G_GNUC_UNUSED;
+static gboolean ___5_mn_sylpheed_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___6_mn_sylpheed_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+static GHashTable * mn_sylpheed_mailbox_backend_get_seen_numbers (MNSylpheedMailboxBackend * self, GError ** err) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_monitor_timeout_cb mn_sylpheed_mailbox_backend_monitor_timeout_cb
+#define self_get_seen_numbers mn_sylpheed_mailbox_backend_get_seen_numbers
+GType
+mn_sylpheed_mailbox_backend_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNSylpheedMailboxBackendClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_sylpheed_mailbox_backend_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNSylpheedMailboxBackend),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_sylpheed_mailbox_backend_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNSylpheedMailboxBackend", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNSylpheedMailboxBackend *)g_object_new(mn_sylpheed_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNSylpheedMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNSylpheedMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNSylpheedMailboxBackend *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNSylpheedMailboxBackend *)g_object_new_valist (mn_sylpheed_mailbox_backend_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::finalize"
+ MNSylpheedMailboxBackend *self G_GNUC_UNUSED = MN_SYLPHEED_MAILBOX_BACKEND (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 61 "mn-sylpheed-mailbox-backend.gob"
+ ___2_mn_sylpheed_mailbox_backend_finalize(obj_self);
+#line 135 "mn-sylpheed-mailbox-backend.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_sylpheed_mailbox_backend_init (MNSylpheedMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_SYLPHEED_MAILBOX_BACKEND,MNSylpheedMailboxBackendPrivate);
+}
+#undef __GOB_FUNCTION__
+#line 56 "mn-sylpheed-mailbox-backend.gob"
+static void
+mn_sylpheed_mailbox_backend_class_init (MNSylpheedMailboxBackendClass * class G_GNUC_UNUSED)
+#line 149 "mn-sylpheed-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+ g_type_class_add_private(class,sizeof(MNSylpheedMailboxBackendPrivate));
+
+ parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 61 "mn-sylpheed-mailbox-backend.gob"
+ g_object_class->finalize = ___finalize;
+#line 72 "mn-sylpheed-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->monitor_cb = ___3_mn_sylpheed_mailbox_backend_monitor_cb;
+#line 120 "mn-sylpheed-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->is = ___5_mn_sylpheed_mailbox_backend_is;
+#line 133 "mn-sylpheed-mailbox-backend.gob"
+ mn_vfs_mailbox_backend_class->check = ___6_mn_sylpheed_mailbox_backend_check;
+#line 167 "mn-sylpheed-mailbox-backend.c"
+ {
+#line 57 "mn-sylpheed-mailbox-backend.gob"
+
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Sylpheed";
+
+#line 173 "mn-sylpheed-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 61 "mn-sylpheed-mailbox-backend.gob"
+static void
+___2_mn_sylpheed_mailbox_backend_finalize (GObject * object G_GNUC_UNUSED)
+#line 183 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::finalize"
+{
+#line 63 "mn-sylpheed-mailbox-backend.gob"
+
+ Self *self = SELF(object);
+
+ if (selfp->monitor_timeout_id)
+ g_source_remove(selfp->monitor_timeout_id);
+
+ PARENT_HANDLER(object);
+ }}
+#line 199 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 72 "mn-sylpheed-mailbox-backend.gob"
+static void
+___3_mn_sylpheed_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 206 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___info_uri,___event_type) \
+ { if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb) \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb)(___backend,___info_uri,___event_type); }
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::monitor_cb"
+{
+#line 76 "mn-sylpheed-mailbox-backend.gob"
+
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ char *filename;
+
+ filename = eel_uri_get_basename(info_uri);
+ if (filename)
+ {
+ if (! strcmp(filename, SYLPHEED_MARK_FILE))
+ {
+ Self *self = SELF(backend);
+
+ /*
+ * The mark file has been changed, deleted or created,
+ * probably by a Sylpheed instance. To avoid races, we
+ * will delay the check.
+ */
+
+ if (selfp->monitor_timeout_id)
+ g_source_remove(selfp->monitor_timeout_id);
+
+ selfp->monitor_timeout_id = g_timeout_add(2000, self_monitor_timeout_cb, self);
+ }
+ else if (mn_str_isnumeric(filename))
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+ g_free(filename);
+ }
+ }
+ }}
+#line 246 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 109 "mn-sylpheed-mailbox-backend.gob"
+static gboolean
+mn_sylpheed_mailbox_backend_monitor_timeout_cb (gpointer data)
+#line 253 "mn-sylpheed-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::monitor_timeout_cb"
+{
+#line 111 "mn-sylpheed-mailbox-backend.gob"
+
+ Self *self = data;
+
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(MN_VFS_MAILBOX_BACKEND(self)->mailbox));
+ selfp->monitor_timeout_id = 0;
+
+ return FALSE; /* remove source */
+ }}
+#line 266 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 120 "mn-sylpheed-mailbox-backend.gob"
+static gboolean
+___5_mn_sylpheed_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 272 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+ ((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+ ((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::is"
+{
+#line 122 "mn-sylpheed-mailbox-backend.gob"
+
+ gboolean is = FALSE;
+ GnomeVFSURI *markfile_uri;
+
+ markfile_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+ is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
+ gnome_vfs_uri_unref(markfile_uri);
+
+ return is;
+ }}
+#line 291 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 133 "mn-sylpheed-mailbox-backend.gob"
+static void
+___6_mn_sylpheed_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 298 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+ { if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+ (* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::check"
+{
+#line 135 "mn-sylpheed-mailbox-backend.gob"
+
+ GError *err = NULL;
+ GnomeVFSResult result;
+ GnomeVFSResult close_result;
+ GnomeVFSDirectoryHandle *handle;
+ GnomeVFSFileInfo *file_info;
+ GHashTable *seen_numbers;
+ GSList *messages = NULL;
+
+ mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+ seen_numbers = self_get_seen_numbers(SELF(backend), &err);
+ if (! seen_numbers)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to read %s: %s"), SYLPHEED_MARK_FILE, err->message);
+ g_error_free(err);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return;
+ }
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ goto finish;
+
+ result = gnome_vfs_directory_open_from_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+ if (result != GNOME_VFS_OK)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ goto end;
+ }
+
+ file_info = gnome_vfs_file_info_new();
+ while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+ if (mn_str_isnumeric(file_info->name))
+ {
+ int num = atoi(file_info->name);
+
+ if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
+ {
+ GnomeVFSURI *message_uri;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ break;
+
+ message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, file_info->name);
+ messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+ gnome_vfs_uri_unref(message_uri);
+ }
+ }
+ gnome_vfs_file_info_unref(file_info);
+ close_result = gnome_vfs_directory_close(handle);
+
+ finish:
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
+ }
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ end:
+ g_hash_table_destroy(seen_numbers);
+ }}
+#line 394 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 224 "mn-sylpheed-mailbox-backend.gob"
+static GHashTable *
+mn_sylpheed_mailbox_backend_get_seen_numbers (MNSylpheedMailboxBackend * self, GError ** err)
+#line 401 "mn-sylpheed-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::get_seen_numbers"
+#line 224 "mn-sylpheed-mailbox-backend.gob"
+ g_return_val_if_fail (self != NULL, (GHashTable * )0);
+#line 224 "mn-sylpheed-mailbox-backend.gob"
+ g_return_val_if_fail (MN_IS_SYLPHEED_MAILBOX_BACKEND (self), (GHashTable * )0);
+#line 408 "mn-sylpheed-mailbox-backend.c"
+{
+#line 226 "mn-sylpheed-mailbox-backend.gob"
+
+ GnomeVFSURI *markfile_uri;
+ GHashTable *seen_numbers = NULL;
+ GnomeVFSResult result;
+ int bytes_left;
+ char *buf;
+
+ markfile_uri = gnome_vfs_uri_append_file_name(MN_VFS_MAILBOX_BACKEND(self)->mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+ result = mn_vfs_read_entire_file_uri(markfile_uri, &bytes_left, &buf);
+ gnome_vfs_uri_unref(markfile_uri);
+
+ if (result == GNOME_VFS_OK)
+ {
+ if (bytes_left >= sizeof(int))
+ {
+ int version = *((int *) buf);
+
+ if (version == SYLPHEED_MARK_VERSION)
+ {
+ MarkEntry *entry;
+
+ entry = (MarkEntry *) (buf + sizeof(int));
+ bytes_left -= sizeof(int);
+
+ seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
+
+ while (bytes_left > 0)
+ {
+ if (bytes_left < sizeof(MarkEntry))
+ {
+ g_set_error(err, 0, 0, _("unexpected end of file"));
+ g_hash_table_destroy(seen_numbers);
+ seen_numbers = NULL;
+ break;
+ }
+
+ if ((entry->flags & SYLPHEED_MSG_NEW) == 0 && (entry->flags & SYLPHEED_MSG_UNREAD) == 0)
+ g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
+
+ entry++;
+ bytes_left -= sizeof(MarkEntry);
+ }
+ }
+ else
+ g_set_error(err, 0, 0, _("incompatible file version \"%i\""), version);
+ }
+ else
+ g_set_error(err, 0, 0, _("file version missing"));
+
+ g_free(buf);
+ }
+ else
+ g_set_error(err, 0, 0, "%s", gnome_vfs_result_to_string(result));
+
+ return seen_numbers;
+ }}
+#line 467 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-sylpheed-mailbox-backend.gob b/src/mn-sylpheed-mailbox-backend.gob
@@ -0,0 +1,282 @@
+/*
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <stdlib.h>
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+/* taken from procmsg.h in the Sylpheed sources */
+#define SYLPHEED_MSG_NEW (1U << 0)
+#define SYLPHEED_MSG_UNREAD (1U << 1)
+
+/* taken from defs.h in the Sylpheed sources */
+#define SYLPHEED_MARK_FILE ".sylpheed_mark"
+#define SYLPHEED_MARK_VERSION 2
+
+typedef struct
+{
+ int num;
+ guint32 flags;
+} MarkEntry;
+%}
+
+class MN:Sylpheed:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+ private unsigned int monitor_timeout_id;
+
+ class_init (class)
+ {
+ MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Sylpheed";
+ }
+
+ override (G:Object) void
+ finalize (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ if (selfp->monitor_timeout_id)
+ g_source_remove(selfp->monitor_timeout_id);
+
+ PARENT_HANDLER(object);
+ }
+
+ override (MN:VFS:Mailbox:Backend) void
+ monitor_cb (MNVFSMailboxBackend *backend,
+ const char *info_uri,
+ GnomeVFSMonitorEventType event_type)
+ {
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ char *filename;
+
+ filename = eel_uri_get_basename(info_uri);
+ if (filename)
+ {
+ if (! strcmp(filename, SYLPHEED_MARK_FILE))
+ {
+ Self *self = SELF(backend);
+
+ /*
+ * The mark file has been changed, deleted or created,
+ * probably by a Sylpheed instance. To avoid races, we
+ * will delay the check.
+ */
+
+ if (selfp->monitor_timeout_id)
+ g_source_remove(selfp->monitor_timeout_id);
+
+ selfp->monitor_timeout_id = g_timeout_add(2000, self_monitor_timeout_cb, self);
+ }
+ else if (mn_str_isnumeric(filename))
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+ g_free(filename);
+ }
+ }
+ }
+
+ private gboolean
+ monitor_timeout_cb (gpointer data)
+ {
+ Self *self = data;
+
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(MN_VFS_MAILBOX_BACKEND(self)->mailbox));
+ selfp->monitor_timeout_id = 0;
+
+ return FALSE; /* remove source */
+ }
+
+ override (MN:VFS:Mailbox:Backend) gboolean
+ is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+ {
+ gboolean is = FALSE;
+ GnomeVFSURI *markfile_uri;
+
+ markfile_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+ is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
+ gnome_vfs_uri_unref(markfile_uri);
+
+ return is;
+ }
+
+ override (MN:VFS:Mailbox:Backend) void
+ check (MNVFSMailboxBackend *backend, unsigned long check_id)
+ {
+ GError *err = NULL;
+ GnomeVFSResult result;
+ GnomeVFSResult close_result;
+ GnomeVFSDirectoryHandle *handle;
+ GnomeVFSFileInfo *file_info;
+ GHashTable *seen_numbers;
+ GSList *messages = NULL;
+
+ mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+ seen_numbers = self_get_seen_numbers(SELF(backend), &err);
+ if (! seen_numbers)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to read %s: %s"), SYLPHEED_MARK_FILE, err->message);
+ g_error_free(err);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return;
+ }
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ goto finish;
+
+ result = gnome_vfs_directory_open_from_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+ if (result != GNOME_VFS_OK)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ goto end;
+ }
+
+ file_info = gnome_vfs_file_info_new();
+ while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+ if (mn_str_isnumeric(file_info->name))
+ {
+ int num = atoi(file_info->name);
+
+ if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
+ {
+ GnomeVFSURI *message_uri;
+
+ if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ break;
+
+ message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, file_info->name);
+ messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+ gnome_vfs_uri_unref(message_uri);
+ }
+ }
+ gnome_vfs_file_info_unref(file_info);
+ close_result = gnome_vfs_directory_close(handle);
+
+ finish:
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+ {
+ if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+ {
+ if (close_result == GNOME_VFS_OK)
+ mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
+ }
+ else
+ mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
+ }
+
+ mn_g_object_slist_free(messages);
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ end:
+ g_hash_table_destroy(seen_numbers);
+ }
+
+ private GHashTable *
+ get_seen_numbers (self, GError **err)
+ {
+ GnomeVFSURI *markfile_uri;
+ GHashTable *seen_numbers = NULL;
+ GnomeVFSResult result;
+ int bytes_left;
+ char *buf;
+
+ markfile_uri = gnome_vfs_uri_append_file_name(MN_VFS_MAILBOX_BACKEND(self)->mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+ result = mn_vfs_read_entire_file_uri(markfile_uri, &bytes_left, &buf);
+ gnome_vfs_uri_unref(markfile_uri);
+
+ if (result == GNOME_VFS_OK)
+ {
+ if (bytes_left >= sizeof(int))
+ {
+ int version = *((int *) buf);
+
+ if (version == SYLPHEED_MARK_VERSION)
+ {
+ MarkEntry *entry;
+
+ entry = (MarkEntry *) (buf + sizeof(int));
+ bytes_left -= sizeof(int);
+
+ seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
+
+ while (bytes_left > 0)
+ {
+ if (bytes_left < sizeof(MarkEntry))
+ {
+ g_set_error(err, 0, 0, _("unexpected end of file"));
+ g_hash_table_destroy(seen_numbers);
+ seen_numbers = NULL;
+ break;
+ }
+
+ if ((entry->flags & SYLPHEED_MSG_NEW) == 0 && (entry->flags & SYLPHEED_MSG_UNREAD) == 0)
+ g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
+
+ entry++;
+ bytes_left -= sizeof(MarkEntry);
+ }
+ }
+ else
+ g_set_error(err, 0, 0, _("incompatible file version \"%i\""), version);
+ }
+ else
+ g_set_error(err, 0, 0, _("file version missing"));
+
+ g_free(buf);
+ }
+ else
+ g_set_error(err, 0, 0, "%s", gnome_vfs_result_to_string(result));
+
+ return seen_numbers;
+ }
+}
diff --git a/src/mn-sylpheed-mailbox-backend.h b/src/mn-sylpheed-mailbox-backend.h
@@ -0,0 +1,62 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_SYLPHEED_MAILBOX_BACKEND_H__
+#define __MN_SYLPHEED_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_SYLPHEED_MAILBOX_BACKEND (mn_sylpheed_mailbox_backend_get_type())
+#define MN_SYLPHEED_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackend)
+#define MN_SYLPHEED_MAILBOX_BACKEND_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackend const)
+#define MN_SYLPHEED_MAILBOX_BACKEND_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackendClass)
+#define MN_IS_SYLPHEED_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_sylpheed_mailbox_backend_get_type ())
+
+#define MN_SYLPHEED_MAILBOX_BACKEND_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackendClass)
+
+/* Private structure type */
+typedef struct _MNSylpheedMailboxBackendPrivate MNSylpheedMailboxBackendPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_SYLPHEED_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_SYLPHEED_MAILBOX_BACKEND__
+typedef struct _MNSylpheedMailboxBackend MNSylpheedMailboxBackend;
+#endif
+struct _MNSylpheedMailboxBackend {
+ MNVFSMailboxBackend __parent__;
+ /*< private >*/
+ MNSylpheedMailboxBackendPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNSylpheedMailboxBackendClass MNSylpheedMailboxBackendClass;
+struct _MNSylpheedMailboxBackendClass {
+ MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_sylpheed_mailbox_backend_get_type (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-sylpheed-mailbox-private.h b/src/mn-sylpheed-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_SYLPHEED_MAILBOX_PRIVATE_H__
-#define __MN_SYLPHEED_MAILBOX_PRIVATE_H__
-
-#include "mn-sylpheed-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-sylpheed-mailbox.c b/src/mn-sylpheed-mailbox.c
@@ -1,354 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:27 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-sylpheed-mailbox.h"
-
-#include "mn-sylpheed-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-sylpheed-mailbox.gob"
-
-#include "config.h"
-#include <stdlib.h>
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-/* taken from procmsg.h in the Sylpheed sources */
-#define SYLPHEED_MSG_NEW (1U << 0)
-#define SYLPHEED_MSG_UNREAD (1U << 1)
-
-/* taken from defs.h in the Sylpheed sources */
-#define SYLPHEED_MARK_FILE ".sylpheed_mark"
-#define SYLPHEED_MARK_VERSION 2
-
- typedef struct
- {
- int num;
- guint32 flags;
- } MarkEntry;
-
-#line 51 "mn-sylpheed-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_SYLPHEED_MAILBOX(x)
-#define SELF_CONST(x) MN_SYLPHEED_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_SYLPHEED_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_SYLPHEED_MAILBOX
-#define SELF_CLASS(x) MN_SYLPHEED_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_SYLPHEED_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNSylpheedMailbox Self;
-typedef MNSylpheedMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_sylpheed_mailbox_init (MNSylpheedMailbox * o) G_GNUC_UNUSED;
-static void mn_sylpheed_mailbox_class_init (MNSylpheedMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_sylpheed_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_sylpheed_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_sylpheed_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
-static GHashTable * mn_sylpheed_mailbox_get_seen_numbers (MNSylpheedMailbox * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_get_seen_numbers mn_sylpheed_mailbox_get_seen_numbers
-GType
-mn_sylpheed_mailbox_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNSylpheedMailboxClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_sylpheed_mailbox_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNSylpheedMailbox),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_sylpheed_mailbox_init,
- NULL
- };
-
- type = g_type_register_static (MN_TYPE_MAILBOX, "MNSylpheedMailbox", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNSylpheedMailbox *)g_object_new(mn_sylpheed_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNSylpheedMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNSylpheedMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
- MNSylpheedMailbox *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNSylpheedMailbox *)g_object_new_valist (mn_sylpheed_mailbox_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-static void
-mn_sylpheed_mailbox_init (MNSylpheedMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 50 "mn-sylpheed-mailbox.gob"
-static void
-mn_sylpheed_mailbox_class_init (MNSylpheedMailboxClass * class G_GNUC_UNUSED)
-#line 129 "mn-sylpheed-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::class_init"
- GObjectClass *g_object_class = (GObjectClass *)class;
- MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
- parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 55 "mn-sylpheed-mailbox.gob"
- g_object_class->constructor = ___2_mn_sylpheed_mailbox_constructor;
-#line 79 "mn-sylpheed-mailbox.gob"
- mn_mailbox_class->impl_is = ___3_mn_sylpheed_mailbox_impl_is;
-#line 96 "mn-sylpheed-mailbox.gob"
- mn_mailbox_class->impl_check = ___4_mn_sylpheed_mailbox_impl_check;
-#line 143 "mn-sylpheed-mailbox.c"
- {
-#line 51 "mn-sylpheed-mailbox.gob"
-
- MN_MAILBOX_CLASS(class)->format = "Sylpheed";
-
-#line 149 "mn-sylpheed-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 55 "mn-sylpheed-mailbox.gob"
-static GObject *
-___2_mn_sylpheed_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 159 "mn-sylpheed-mailbox.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::constructor"
-{
-#line 57 "mn-sylpheed-mailbox.gob"
-
- GObject *object;
- MNMailbox *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- self->uri->text,
- GNOME_VFS_MONITOR_DIRECTORY,
- MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return object;
- }}
-#line 189 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 79 "mn-sylpheed-mailbox.gob"
-static gboolean
-___3_mn_sylpheed_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 196 "mn-sylpheed-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
- ((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
- (* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
- ((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::impl_is"
-#line 79 "mn-sylpheed-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 79 "mn-sylpheed-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 207 "mn-sylpheed-mailbox.c"
-{
-#line 81 "mn-sylpheed-mailbox.gob"
-
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- GnomeVFSURI *markfile_uri;
-
- markfile_uri = gnome_vfs_uri_append_file_name(uri->vfs, SYLPHEED_MARK_FILE);
- is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
- gnome_vfs_uri_unref(markfile_uri);
- }
-
- return is;
- }}
-#line 224 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 96 "mn-sylpheed-mailbox.gob"
-static void
-___4_mn_sylpheed_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
-#line 231 "mn-sylpheed-mailbox.c"
-#define PARENT_HANDLER(___self) \
- { if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
- (* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::impl_check"
-#line 96 "mn-sylpheed-mailbox.gob"
- g_return_if_fail (self != NULL);
-#line 96 "mn-sylpheed-mailbox.gob"
- g_return_if_fail (MN_IS_MAILBOX (self));
-#line 241 "mn-sylpheed-mailbox.c"
-{
-#line 98 "mn-sylpheed-mailbox.gob"
-
- GnomeVFSResult result;
- GnomeVFSResult close_result;
- GnomeVFSDirectoryHandle *handle;
- GnomeVFSFileInfo *file_info;
- GHashTable *seen_numbers;
- GSList *messages = NULL;
-
- seen_numbers = self_get_seen_numbers(SELF(self));
-
- result = gnome_vfs_directory_open_from_uri(&handle, self->uri->vfs, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
- if (result != GNOME_VFS_OK)
- {
- GDK_THREADS_ENTER();
-
- mn_mailbox_set_error(self, _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return;
- }
-
- file_info = gnome_vfs_file_info_new();
- while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
- if (mn_str_isnumeric(file_info->name))
- {
- int num = atoi(file_info->name);
-
- if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
- {
- GnomeVFSURI *message_uri;
-
- message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, file_info->name);
- messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
- gnome_vfs_uri_unref(message_uri);
- }
- }
- gnome_vfs_file_info_unref(file_info);
- close_result = gnome_vfs_directory_close(handle);
-
- GDK_THREADS_ENTER();
-
- if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
- {
- if (close_result == GNOME_VFS_OK)
- mn_mailbox_set_messages(self, messages);
- else
- mn_mailbox_set_error(self, _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
- }
- else
- mn_mailbox_set_error(self, _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- g_hash_table_destroy(seen_numbers);
- mn_g_object_slist_free(messages);
- }}
-#line 305 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 160 "mn-sylpheed-mailbox.gob"
-static GHashTable *
-mn_sylpheed_mailbox_get_seen_numbers (MNSylpheedMailbox * self)
-#line 312 "mn-sylpheed-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::get_seen_numbers"
-#line 160 "mn-sylpheed-mailbox.gob"
- g_return_val_if_fail (self != NULL, (GHashTable * )0);
-#line 160 "mn-sylpheed-mailbox.gob"
- g_return_val_if_fail (MN_IS_SYLPHEED_MAILBOX (self), (GHashTable * )0);
-#line 319 "mn-sylpheed-mailbox.c"
-{
-#line 162 "mn-sylpheed-mailbox.gob"
-
- GHashTable *seen_numbers;
- char *uri;
- int file_size;
- char *buf;
-
- seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
-
- uri = g_build_path("/", MN_MAILBOX(self)->uri->text, SYLPHEED_MARK_FILE, NULL);
- if (gnome_vfs_read_entire_file(uri, &file_size, &buf) == GNOME_VFS_OK)
- {
- if (file_size >= sizeof(int) && *((int *) buf) == SYLPHEED_MARK_VERSION)
- {
- int pos = sizeof(int); /* start after version */
-
- while (pos + sizeof(MarkEntry) <= file_size)
- {
- MarkEntry *entry = (MarkEntry *) (buf + pos);
-
- if (! (entry->flags & SYLPHEED_MSG_NEW) && ! (entry->flags & SYLPHEED_MSG_UNREAD))
- g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
-
- pos += sizeof(MarkEntry);
- }
- }
-
- g_free(buf);
- }
- g_free(uri);
-
- return seen_numbers;
- }}
-#line 354 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-sylpheed-mailbox.gob b/src/mn-sylpheed-mailbox.gob
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <stdlib.h>
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-/* taken from procmsg.h in the Sylpheed sources */
-#define SYLPHEED_MSG_NEW (1U << 0)
-#define SYLPHEED_MSG_UNREAD (1U << 1)
-
-/* taken from defs.h in the Sylpheed sources */
-#define SYLPHEED_MARK_FILE ".sylpheed_mark"
-#define SYLPHEED_MARK_VERSION 2
-
- typedef struct
- {
- int num;
- guint32 flags;
- } MarkEntry;
-%}
-
-class MN:Sylpheed:Mailbox from MN:Mailbox
-{
- class_init (class)
- {
- MN_MAILBOX_CLASS(class)->format = "Sylpheed";
- }
-
- override (G:Object) GObject *
- constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
- {
- GObject *object;
- MNMailbox *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = MN_MAILBOX(object);
-
- GDK_THREADS_ENTER();
-
- mn_mailbox_monitor(self,
- self->uri->text,
- GNOME_VFS_MONITOR_DIRECTORY,
- MN_MAILBOX_MONITOR_EVENT_CHANGED
- | MN_MAILBOX_MONITOR_EVENT_DELETED
- | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return object;
- }
-
- override (MN:Mailbox) gboolean
- impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
- {
- gboolean is = FALSE;
-
- if (uri->vfs)
- {
- GnomeVFSURI *markfile_uri;
-
- markfile_uri = gnome_vfs_uri_append_file_name(uri->vfs, SYLPHEED_MARK_FILE);
- is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
- gnome_vfs_uri_unref(markfile_uri);
- }
-
- return is;
- }
-
- override (MN:Mailbox) void
- impl_check (MN:Mailbox *self (check null type))
- {
- GnomeVFSResult result;
- GnomeVFSResult close_result;
- GnomeVFSDirectoryHandle *handle;
- GnomeVFSFileInfo *file_info;
- GHashTable *seen_numbers;
- GSList *messages = NULL;
-
- seen_numbers = self_get_seen_numbers(SELF(self));
-
- result = gnome_vfs_directory_open_from_uri(&handle, self->uri->vfs, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
- if (result != GNOME_VFS_OK)
- {
- GDK_THREADS_ENTER();
-
- mn_mailbox_set_error(self, _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- return;
- }
-
- file_info = gnome_vfs_file_info_new();
- while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
- if (mn_str_isnumeric(file_info->name))
- {
- int num = atoi(file_info->name);
-
- if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
- {
- GnomeVFSURI *message_uri;
-
- message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, file_info->name);
- messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
- gnome_vfs_uri_unref(message_uri);
- }
- }
- gnome_vfs_file_info_unref(file_info);
- close_result = gnome_vfs_directory_close(handle);
-
- GDK_THREADS_ENTER();
-
- if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
- {
- if (close_result == GNOME_VFS_OK)
- mn_mailbox_set_messages(self, messages);
- else
- mn_mailbox_set_error(self, _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
- }
- else
- mn_mailbox_set_error(self, _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
- mn_mailbox_end_check(self);
-
- gdk_flush();
- GDK_THREADS_LEAVE();
-
- g_hash_table_destroy(seen_numbers);
- mn_g_object_slist_free(messages);
- }
-
- private GHashTable *
- get_seen_numbers (self)
- {
- GHashTable *seen_numbers;
- char *uri;
- int file_size;
- char *buf;
-
- seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
-
- uri = g_build_path("/", MN_MAILBOX(self)->uri->text, SYLPHEED_MARK_FILE, NULL);
- if (gnome_vfs_read_entire_file(uri, &file_size, &buf) == GNOME_VFS_OK)
- {
- if (file_size >= sizeof(int) && *((int *) buf) == SYLPHEED_MARK_VERSION)
- {
- int pos = sizeof(int); /* start after version */
-
- while (pos + sizeof(MarkEntry) <= file_size)
- {
- MarkEntry *entry = (MarkEntry *) (buf + pos);
-
- if (! (entry->flags & SYLPHEED_MSG_NEW) && ! (entry->flags & SYLPHEED_MSG_UNREAD))
- g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
-
- pos += sizeof(MarkEntry);
- }
- }
-
- g_free(buf);
- }
- g_free(uri);
-
- return seen_numbers;
- }
-}
diff --git a/src/mn-sylpheed-mailbox.h b/src/mn-sylpheed-mailbox.h
@@ -1,57 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_SYLPHEED_MAILBOX_H__
-#define __MN_SYLPHEED_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_SYLPHEED_MAILBOX (mn_sylpheed_mailbox_get_type())
-#define MN_SYLPHEED_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_get_type(), MNSylpheedMailbox)
-#define MN_SYLPHEED_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_get_type(), MNSylpheedMailbox const)
-#define MN_SYLPHEED_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_sylpheed_mailbox_get_type(), MNSylpheedMailboxClass)
-#define MN_IS_SYLPHEED_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_sylpheed_mailbox_get_type ())
-
-#define MN_SYLPHEED_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_sylpheed_mailbox_get_type(), MNSylpheedMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_SYLPHEED_MAILBOX__
-#define __TYPEDEF_MN_SYLPHEED_MAILBOX__
-typedef struct _MNSylpheedMailbox MNSylpheedMailbox;
-#endif
-struct _MNSylpheedMailbox {
- MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNSylpheedMailboxClass MNSylpheedMailboxClass;
-struct _MNSylpheedMailboxClass {
- MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_sylpheed_mailbox_get_type (void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-system-mailbox-properties-private.h b/src/mn-system-mailbox-properties-private.h
@@ -1,24 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_SYSTEM_MAILBOX_PROPERTIES_PRIVATE_H__
-#define __MN_SYSTEM_MAILBOX_PROPERTIES_PRIVATE_H__
-
-#include "mn-system-mailbox-properties.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-struct _MNSystemMailboxPropertiesPrivate {
-#line 36 "mn-system-mailbox-properties.gob"
- GtkSizeGroup * size_group;
-#line 42 "mn-system-mailbox-properties.gob"
- const char * system_uri;
-#line 18 "mn-system-mailbox-properties-private.h"
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-system-mailbox-properties.c b/src/mn-system-mailbox-properties.c
@@ -1,335 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-system-mailbox-properties.h"
-
-#include "mn-system-mailbox-properties-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-system-mailbox-properties.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include "mn-mailbox-properties.h"
-
-#line 34 "mn-system-mailbox-properties.c"
-/* self casting macros */
-#define SELF(x) MN_SYSTEM_MAILBOX_PROPERTIES(x)
-#define SELF_CONST(x) MN_SYSTEM_MAILBOX_PROPERTIES_CONST(x)
-#define IS_SELF(x) MN_IS_SYSTEM_MAILBOX_PROPERTIES(x)
-#define TYPE_SELF MN_TYPE_SYSTEM_MAILBOX_PROPERTIES
-#define SELF_CLASS(x) MN_SYSTEM_MAILBOX_PROPERTIES_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_SYSTEM_MAILBOX_PROPERTIES_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNSystemMailboxProperties Self;
-typedef MNSystemMailboxPropertiesClass SelfClass;
-
-/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
-static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_system_mailbox_properties_class_init (MNSystemMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static void mn_system_mailbox_properties_init (MNSystemMailboxProperties * self) G_GNUC_UNUSED;
-static gboolean mn_system_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_system_mailbox_properties_get_uri (MNMailboxProperties * self) G_GNUC_UNUSED;
-
-enum {
- PROP_0,
- PROP_LABEL,
- PROP_SIZE_GROUP,
- PROP_COMPLETE
-};
-
-/* pointer to the class of our parent */
-static GtkLabelClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_set_uri mn_system_mailbox_properties_set_uri
-#define self_get_uri mn_system_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 67 "mn-system-mailbox-properties.gob"
- iface->set_uri = self_set_uri;
-#line 74 "mn-system-mailbox-properties.gob"
- iface->get_uri = self_get_uri;
-#line 78 "mn-system-mailbox-properties.c"
-}
-
-GType
-mn_system_mailbox_properties_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNSystemMailboxPropertiesClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_system_mailbox_properties_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNSystemMailboxProperties),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_system_mailbox_properties_init,
- NULL
- };
-
- static const GInterfaceInfo MN_Mailbox_Properties_info = {
- (GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
- NULL,
- NULL
- };
-
- type = g_type_register_static (GTK_TYPE_LABEL, "MNSystemMailboxProperties", &info, (GTypeFlags)0);
- g_type_add_interface_static (type,
- MN_TYPE_MAILBOX_PROPERTIES,
- &MN_Mailbox_Properties_info);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNSystemMailboxProperties *)g_object_new(mn_system_mailbox_properties_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNSystemMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNSystemMailboxProperties *
-GET_NEW_VARG (const char *first, ...)
-{
- MNSystemMailboxProperties *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNSystemMailboxProperties *)g_object_new_valist (mn_system_mailbox_properties_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-
-static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::dispose"
- MNSystemMailboxProperties *self G_GNUC_UNUSED = MN_SYSTEM_MAILBOX_PROPERTIES (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 36 "mn-system-mailbox-properties.gob"
- if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
-#line 142 "mn-system-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::finalize"
- MNSystemMailboxProperties *self G_GNUC_UNUSED = MN_SYSTEM_MAILBOX_PROPERTIES (obj_self);
- gpointer priv G_GNUC_UNUSED = self->_priv;
- if(G_OBJECT_CLASS(parent_class)->finalize) \
- (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-}
-#undef __GOB_FUNCTION__
-
-static void
-mn_system_mailbox_properties_class_init (MNSystemMailboxPropertiesClass * c G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
-
- g_type_class_add_private(c,sizeof(MNSystemMailboxPropertiesPrivate));
-
- parent_class = g_type_class_ref (GTK_TYPE_LABEL);
-
- g_object_class->dispose = ___dispose;
- g_object_class->finalize = ___finalize;
- g_object_class->get_property = ___object_get_property;
- g_object_class->set_property = ___object_set_property;
- {
- g_object_class_override_property (g_object_class,
- PROP_LABEL,
- "label");
- g_object_class_override_property (g_object_class,
- PROP_SIZE_GROUP,
- "size_group");
- g_object_class_override_property (g_object_class,
- PROP_COMPLETE,
- "complete");
- }
-}
-#undef __GOB_FUNCTION__
-#line 44 "mn-system-mailbox-properties.gob"
-static void
-mn_system_mailbox_properties_init (MNSystemMailboxProperties * self G_GNUC_UNUSED)
-#line 188 "mn-system-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::init"
- self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNSystemMailboxPropertiesPrivate);
- {
-#line 45 "mn-system-mailbox-properties.gob"
-
- gtk_label_set_line_wrap(GTK_LABEL(self), TRUE);
- gtk_misc_set_alignment(GTK_MISC(self), 0.0, 0.5);
-
- selfp->system_uri = mn_uri_get_system_mailbox();
- if (selfp->system_uri)
- {
- char *path;
- char *markup;
-
- path = gnome_vfs_get_local_path_from_uri(selfp->system_uri);
-
- markup = g_markup_printf_escaped(_("Your system mailbox (<span weight=\"bold\">%s</span>) will be used."), path ? path : selfp->system_uri);
- gtk_label_set_markup(GTK_LABEL(self), markup);
- g_free(markup);
-
- g_free(path);
- }
- else
- gtk_label_set_text(GTK_LABEL(self), _("The location of your system mailbox could not be detected. Please set the MAIL environment variable."));
-
-#line 215 "mn-system-mailbox-properties.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
- guint property_id,
- const GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::set_property"
-{
- MNSystemMailboxProperties *self G_GNUC_UNUSED;
-
- self = MN_SYSTEM_MAILBOX_PROPERTIES (object);
-
- switch (property_id) {
- case PROP_SIZE_GROUP:
- {
-#line 37 "mn-system-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->_priv->size_group; self->_priv->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 236 "mn-system-mailbox-properties.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_get_property (GObject *object,
- guint property_id,
- GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::get_property"
-{
- MNSystemMailboxProperties *self G_GNUC_UNUSED;
-
- self = MN_SYSTEM_MAILBOX_PROPERTIES (object);
-
- switch (property_id) {
- case PROP_LABEL:
- {
-#line 34 "mn-system-mailbox-properties.gob"
- g_value_set_string(VAL, _("System Mailbox"));
-#line 267 "mn-system-mailbox-properties.c"
- }
- break;
- case PROP_SIZE_GROUP:
- {
-#line 37 "mn-system-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 274 "mn-system-mailbox-properties.c"
- }
- break;
- case PROP_COMPLETE:
- {
-#line 40 "mn-system-mailbox-properties.gob"
- g_value_set_boolean(VAL, selfp->system_uri != NULL);
-#line 281 "mn-system-mailbox-properties.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 67 "mn-system-mailbox-properties.gob"
-static gboolean
-mn_system_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri)
-#line 301 "mn-system-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::set_uri"
-#line 67 "mn-system-mailbox-properties.gob"
- g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 67 "mn-system-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (gboolean )0);
-#line 67 "mn-system-mailbox-properties.gob"
- g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 310 "mn-system-mailbox-properties.c"
-{
-#line 70 "mn-system-mailbox-properties.gob"
-
- return MN_URI_IS_SYSTEM_MAILBOX(uri);
- }}
-#line 316 "mn-system-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 74 "mn-system-mailbox-properties.gob"
-static MNURI *
-mn_system_mailbox_properties_get_uri (MNMailboxProperties * self)
-#line 322 "mn-system-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::get_uri"
-#line 74 "mn-system-mailbox-properties.gob"
- g_return_val_if_fail (self != NULL, (MNURI * )0);
-#line 74 "mn-system-mailbox-properties.gob"
- g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNURI * )0);
-#line 329 "mn-system-mailbox-properties.c"
-{
-#line 76 "mn-system-mailbox-properties.gob"
-
- return mn_uri_new(SELF(self)->_priv->system_uri);
- }}
-#line 335 "mn-system-mailbox-properties.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-system-mailbox-properties.gob b/src/mn-system-mailbox-properties.gob
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include <gtk/gtk.h>
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include "mn-mailbox-properties.h"
-%}
-
-class MN:System:Mailbox:Properties from Gtk:Label (interface MN:Mailbox:Properties)
-{
- property STRING label (override)
- get { g_value_set_string(VAL, _("System Mailbox")); };
-
- private GtkSizeGroup *size_group unrefwith g_object_unref;
- property OBJECT size_group (override, link);
-
- property BOOLEAN complete (override)
- get { g_value_set_boolean(VAL, selfp->system_uri != NULL); };
-
- private const char *system_uri;
-
- init (self)
- {
- gtk_label_set_line_wrap(GTK_LABEL(self), TRUE);
- gtk_misc_set_alignment(GTK_MISC(self), 0.0, 0.5);
-
- selfp->system_uri = mn_uri_get_system_mailbox();
- if (selfp->system_uri)
- {
- char *path;
- char *markup;
-
- path = gnome_vfs_get_local_path_from_uri(selfp->system_uri);
-
- markup = g_markup_printf_escaped(_("Your system mailbox (<span weight=\"bold\">%s</span>) will be used."), path ? path : selfp->system_uri);
- gtk_label_set_markup(GTK_LABEL(self), markup);
- g_free(markup);
-
- g_free(path);
- }
- else
- gtk_label_set_text(GTK_LABEL(self), _("The location of your system mailbox could not be detected. Please set the MAIL environment variable."));
- }
-
- interface MN:Mailbox:Properties private gboolean
- set_uri (MN:Mailbox:Properties *self (check null type),
- MN:URI *uri (check null))
- {
- return MN_URI_IS_SYSTEM_MAILBOX(uri);
- }
-
- interface MN:Mailbox:Properties private MNURI *
- get_uri (MN:Mailbox:Properties *self (check null type))
- {
- return mn_uri_new(SELF(self)->_priv->system_uri);
- }
-}
diff --git a/src/mn-system-mailbox-properties.h b/src/mn-system-mailbox-properties.h
@@ -1,78 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include <gtk/gtk.h>
-
-#ifndef __MN_SYSTEM_MAILBOX_PROPERTIES_H__
-#define __MN_SYSTEM_MAILBOX_PROPERTIES_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_SYSTEM_MAILBOX_PROPERTIES (mn_system_mailbox_properties_get_type())
-#define MN_SYSTEM_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_mailbox_properties_get_type(), MNSystemMailboxProperties)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_mailbox_properties_get_type(), MNSystemMailboxProperties const)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_system_mailbox_properties_get_type(), MNSystemMailboxPropertiesClass)
-#define MN_IS_SYSTEM_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_system_mailbox_properties_get_type ())
-
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_system_mailbox_properties_get_type(), MNSystemMailboxPropertiesClass)
-
-/* Private structure type */
-typedef struct _MNSystemMailboxPropertiesPrivate MNSystemMailboxPropertiesPrivate;
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_SYSTEM_MAILBOX_PROPERTIES__
-#define __TYPEDEF_MN_SYSTEM_MAILBOX_PROPERTIES__
-typedef struct _MNSystemMailboxProperties MNSystemMailboxProperties;
-#endif
-struct _MNSystemMailboxProperties {
- GtkLabel __parent__;
- /*< private >*/
- MNSystemMailboxPropertiesPrivate *_priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNSystemMailboxPropertiesClass MNSystemMailboxPropertiesClass;
-struct _MNSystemMailboxPropertiesClass {
- GtkLabelClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_system_mailbox_properties_get_type (void);
-
-/*
- * Argument wrapping macros
- */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label", __extension__ ({gchar **z = (arg); z;})
-#define MN_SYSTEM_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject **z = (arg); z;})
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
-#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg) "label",(gchar **)(arg)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg) "size_group",(GObject *)(arg)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg) "size_group",(GObject **)(arg)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
-#endif /* __GNUC__ && !__STRICT_ANSI__ */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-system-vfs-mailbox-private.h b/src/mn-system-vfs-mailbox-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_PRIVATE_H__
+#define __MN_SYSTEM_VFS_MAILBOX_PRIVATE_H__
+
+#include "mn-system-vfs-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-system-vfs-mailbox-properties-private.h b/src/mn-system-vfs-mailbox-properties-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-system-vfs-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-system-vfs-mailbox-properties.c b/src/mn-system-vfs-mailbox-properties.c
@@ -0,0 +1,217 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-system-vfs-mailbox-properties.h"
+
+#include "mn-system-vfs-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-system-vfs-mailbox-properties.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
+#include "mn-mailbox-properties.h"
+#include "mn-system-vfs-mailbox.h"
+#include "mn-stock.h"
+
+#line 36 "mn-system-vfs-mailbox-properties.c"
+/* self casting macros */
+#define SELF(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_SYSTEM_VFS_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNSystemVFSMailboxProperties Self;
+typedef MNSystemVFSMailboxPropertiesClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_system_vfs_mailbox_properties_class_init (MNSystemVFSMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_system_vfs_mailbox_properties_init (MNSystemVFSMailboxProperties * self) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_COMPLETE,
+ PROP_DEFAULT_NAME
+};
+
+/* pointer to the class of our parent */
+static MNMailboxPropertiesClass *parent_class = NULL;
+
+GType
+mn_system_vfs_mailbox_properties_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNSystemVFSMailboxPropertiesClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_system_vfs_mailbox_properties_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNSystemVFSMailboxProperties),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_system_vfs_mailbox_properties_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNSystemVFSMailboxProperties", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNSystemVFSMailboxProperties *)g_object_new(mn_system_vfs_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNSystemVFSMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNSystemVFSMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNSystemVFSMailboxProperties *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNSystemVFSMailboxProperties *)g_object_new_valist (mn_system_vfs_mailbox_properties_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+#line 41 "mn-system-vfs-mailbox-properties.gob"
+static void
+mn_system_vfs_mailbox_properties_class_init (MNSystemVFSMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 109 "mn-system-vfs-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox:Properties::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+
+ parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
+
+ g_object_class->get_property = ___object_get_property;
+ {
+ g_object_class_override_property (g_object_class,
+ PROP_COMPLETE,
+ "complete");
+ g_object_class_override_property (g_object_class,
+ PROP_DEFAULT_NAME,
+ "default_name");
+ }
+ {
+#line 42 "mn-system-vfs-mailbox-properties.gob"
+
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+ p_class->type = "system-vfs";
+ p_class->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+ p_class->combo_label = _("System mailbox");
+
+#line 134 "mn-system-vfs-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 50 "mn-system-vfs-mailbox-properties.gob"
+static void
+mn_system_vfs_mailbox_properties_init (MNSystemVFSMailboxProperties * self G_GNUC_UNUSED)
+#line 141 "mn-system-vfs-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox:Properties::init"
+ {
+#line 51 "mn-system-vfs-mailbox-properties.gob"
+
+ GtkWidget *label;
+ const char *system_uri;
+
+ label = gtk_label_new(NULL);
+
+ gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ system_uri = mn_system_vfs_mailbox_get_uri();
+ if (system_uri)
+ {
+ char *path;
+ char *markup;
+
+ path = gnome_vfs_get_local_path_from_uri(system_uri);
+
+ markup = g_markup_printf_escaped(_("Your system mailbox is <span weight=\"bold\">%s</span>."), path ? path : system_uri);
+ gtk_label_set_markup(GTK_LABEL(label), markup);
+ g_free(markup);
+
+ g_free(path);
+ }
+ else
+ gtk_label_set_text(GTK_LABEL(label), _("The location of your system mailbox could not be detected. Check the MAIL environment variable."));
+
+ gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
+
+#line 175 "mn-system-vfs-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox:Properties::get_property"
+{
+ MNSystemVFSMailboxProperties *self G_GNUC_UNUSED;
+
+ self = MN_SYSTEM_VFS_MAILBOX_PROPERTIES (object);
+
+ switch (property_id) {
+ case PROP_COMPLETE:
+ {
+#line 37 "mn-system-vfs-mailbox-properties.gob"
+ g_value_set_boolean(VAL, mn_system_vfs_mailbox_get_uri() != NULL);
+#line 196 "mn-system-vfs-mailbox-properties.c"
+ }
+ break;
+ case PROP_DEFAULT_NAME:
+ {
+#line 39 "mn-system-vfs-mailbox-properties.gob"
+ g_value_set_string(VAL, _("System mailbox"));
+#line 203 "mn-system-vfs-mailbox-properties.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
diff --git a/src/mn-system-vfs-mailbox-properties.gob b/src/mn-system-vfs-mailbox-properties.gob
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-mailbox-properties.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
+#include "mn-mailbox-properties.h"
+#include "mn-system-vfs-mailbox.h"
+#include "mn-stock.h"
+%}
+
+class MN:System:VFS:Mailbox:Properties from MN:Mailbox:Properties
+{
+ property BOOLEAN complete (override)
+ get { g_value_set_boolean(VAL, mn_system_vfs_mailbox_get_uri() != NULL); };
+ property STRING default_name (override)
+ get { g_value_set_string(VAL, _("System mailbox")); };
+
+ class_init (class)
+ {
+ MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+ p_class->type = "system-vfs";
+ p_class->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+ p_class->combo_label = _("System mailbox");
+ }
+
+ init (self)
+ {
+ GtkWidget *label;
+ const char *system_uri;
+
+ label = gtk_label_new(NULL);
+
+ gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ system_uri = mn_system_vfs_mailbox_get_uri();
+ if (system_uri)
+ {
+ char *path;
+ char *markup;
+
+ path = gnome_vfs_get_local_path_from_uri(system_uri);
+
+ markup = g_markup_printf_escaped(_("Your system mailbox is <span weight=\"bold\">%s</span>."), path ? path : system_uri);
+ gtk_label_set_markup(GTK_LABEL(label), markup);
+ g_free(markup);
+
+ g_free(path);
+ }
+ else
+ gtk_label_set_text(GTK_LABEL(label), _("The location of your system mailbox could not be detected. Check the MAIL environment variable."));
+
+ gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
+ }
+}
diff --git a/src/mn-system-vfs-mailbox-properties.h b/src/mn-system-vfs-mailbox-properties.h
@@ -0,0 +1,69 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-mailbox-properties.h"
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_H__
+#define __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES (mn_system_vfs_mailbox_properties_get_type())
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxProperties)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxProperties const)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxPropertiesClass)
+#define MN_IS_SYSTEM_VFS_MAILBOX_PROPERTIES(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_system_vfs_mailbox_properties_get_type ())
+
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxPropertiesClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_SYSTEM_VFS_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_SYSTEM_VFS_MAILBOX_PROPERTIES__
+typedef struct _MNSystemVFSMailboxProperties MNSystemVFSMailboxProperties;
+#endif
+struct _MNSystemVFSMailboxProperties {
+ MNMailboxProperties __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNSystemVFSMailboxPropertiesClass MNSystemVFSMailboxPropertiesClass;
+struct _MNSystemVFSMailboxPropertiesClass {
+ MNMailboxPropertiesClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_system_vfs_mailbox_properties_get_type (void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg) "complete",(gboolean *)(arg)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg) "default_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-system-vfs-mailbox.c b/src/mn-system-vfs-mailbox.c
@@ -0,0 +1,237 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-system-vfs-mailbox.h"
+
+#include "mn-system-vfs-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-system-vfs-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-stock.h"
+#include "mn-mailbox-private.h"
+
+#line 34 "mn-system-vfs-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_SYSTEM_VFS_MAILBOX(x)
+#define SELF_CONST(x) MN_SYSTEM_VFS_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_SYSTEM_VFS_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_SYSTEM_VFS_MAILBOX
+#define SELF_CLASS(x) MN_SYSTEM_VFS_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_SYSTEM_VFS_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNSystemVFSMailbox Self;
+typedef MNSystemVFSMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void mn_system_vfs_mailbox_init (MNSystemVFSMailbox * o) G_GNUC_UNUSED;
+static void mn_system_vfs_mailbox_class_init (MNSystemVFSMailboxClass * class) G_GNUC_UNUSED;
+static void ___2_mn_system_vfs_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___3_mn_system_vfs_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
+static void ___4_mn_system_vfs_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_get_uri mn_system_vfs_mailbox_get_uri
+GType
+mn_system_vfs_mailbox_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNSystemVFSMailboxClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_system_vfs_mailbox_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNSystemVFSMailbox),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_system_vfs_mailbox_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_VFS_MAILBOX, "MNSystemVFSMailbox", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNSystemVFSMailbox *)g_object_new(mn_system_vfs_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNSystemVFSMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNSystemVFSMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNSystemVFSMailbox *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNSystemVFSMailbox *)g_object_new_valist (mn_system_vfs_mailbox_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+static void
+mn_system_vfs_mailbox_init (MNSystemVFSMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::init"
+}
+#undef __GOB_FUNCTION__
+#line 34 "mn-system-vfs-mailbox.gob"
+static void
+mn_system_vfs_mailbox_class_init (MNSystemVFSMailboxClass * class G_GNUC_UNUSED)
+#line 111 "mn-system-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::class_init"
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+
+ parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX);
+
+#line 40 "mn-system-vfs-mailbox.gob"
+ mn_mailbox_class->seal = ___2_mn_system_vfs_mailbox_seal;
+#line 50 "mn-system-vfs-mailbox.gob"
+ mn_mailbox_class->parse_uri = ___3_mn_system_vfs_mailbox_parse_uri;
+#line 63 "mn-system-vfs-mailbox.gob"
+ mn_mailbox_class->check = ___4_mn_system_vfs_mailbox_check;
+#line 124 "mn-system-vfs-mailbox.c"
+ {
+#line 35 "mn-system-vfs-mailbox.gob"
+
+ MN_MAILBOX_CLASS(class)->type = "system-vfs";
+ MN_VFS_MAILBOX_CLASS(class)->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+
+#line 131 "mn-system-vfs-mailbox.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 40 "mn-system-vfs-mailbox.gob"
+static void
+___2_mn_system_vfs_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 141 "mn-system-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::seal"
+{
+#line 42 "mn-system-vfs-mailbox.gob"
+
+ MN_VFS_MAILBOX(mailbox)->uri = g_strdup(self_get_uri());
+
+ mailbox->runtime_name = g_strdup(_("System mailbox"));
+
+ PARENT_HANDLER(mailbox);
+ }}
+#line 156 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 50 "mn-system-vfs-mailbox.gob"
+static MNMailbox *
+___3_mn_system_vfs_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 163 "mn-system-vfs-mailbox.c"
+#define PARENT_HANDLER(___dummy,___uri) \
+ ((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+ (* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+ ((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::parse_uri"
+{
+#line 52 "mn-system-vfs-mailbox.gob"
+
+ const char *system_uri;
+ MNMailbox *mailbox = NULL;
+
+ system_uri = self_get_uri();
+ if (system_uri && gnome_vfs_uris_match(uri, system_uri))
+ mailbox = mn_mailbox_new("system-vfs", NULL);
+
+ return mailbox;
+ }}
+#line 182 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 63 "mn-system-vfs-mailbox.gob"
+static void
+___4_mn_system_vfs_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 189 "mn-system-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->check) \
+ (* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::check"
+{
+#line 65 "mn-system-vfs-mailbox.gob"
+
+ if (MN_VFS_MAILBOX(mailbox)->uri)
+ {
+ PARENT_HANDLER(mailbox);
+ }
+ else
+ {
+ mn_mailbox_set_error(mailbox, _("MAIL environment variable not defined"));
+ mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+ }
+ }}
+#line 208 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 77 "mn-system-vfs-mailbox.gob"
+const char *
+mn_system_vfs_mailbox_get_uri (void)
+#line 215 "mn-system-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::get_uri"
+{
+#line 79 "mn-system-vfs-mailbox.gob"
+
+ static char *global_uri = NULL;
+ G_LOCK_DEFINE_STATIC(global_uri);
+ const char *uri;
+
+ G_LOCK(global_uri);
+ if (! global_uri)
+ {
+ const char *mail = g_getenv("MAIL");
+ if (mail)
+ global_uri = gnome_vfs_get_uri_from_local_path(mail);
+ }
+ uri = global_uri;
+ G_UNLOCK(global_uri);
+
+ return uri;
+ }}
+#line 237 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-system-vfs-mailbox.gob b/src/mn-system-vfs-mailbox.gob
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-stock.h"
+#include "mn-mailbox-private.h"
+%}
+
+class MN:System:VFS:Mailbox from MN:VFS:Mailbox
+{
+ class_init (class)
+ {
+ MN_MAILBOX_CLASS(class)->type = "system-vfs";
+ MN_VFS_MAILBOX_CLASS(class)->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+ }
+
+ override (MN:Mailbox) void
+ seal (MNMailbox *mailbox)
+ {
+ MN_VFS_MAILBOX(mailbox)->uri = g_strdup(self_get_uri());
+
+ mailbox->runtime_name = g_strdup(_("System mailbox"));
+
+ PARENT_HANDLER(mailbox);
+ }
+
+ override (MN:Mailbox) MNMailbox *
+ parse_uri (MNMailbox *dummy, const char *uri)
+ {
+ const char *system_uri;
+ MNMailbox *mailbox = NULL;
+
+ system_uri = self_get_uri();
+ if (system_uri && gnome_vfs_uris_match(uri, system_uri))
+ mailbox = mn_mailbox_new("system-vfs", NULL);
+
+ return mailbox;
+ }
+
+ override (MN:Mailbox) void
+ check (MNMailbox *mailbox)
+ {
+ if (MN_VFS_MAILBOX(mailbox)->uri)
+ {
+ PARENT_HANDLER(mailbox);
+ }
+ else
+ {
+ mn_mailbox_set_error(mailbox, _("MAIL environment variable not defined"));
+ mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+ }
+ }
+
+ public const char *
+ get_uri (void)
+ {
+ static char *global_uri = NULL;
+ G_LOCK_DEFINE_STATIC(global_uri);
+ const char *uri;
+
+ G_LOCK(global_uri);
+ if (! global_uri)
+ {
+ const char *mail = g_getenv("MAIL");
+ if (mail)
+ global_uri = gnome_vfs_get_uri_from_local_path(mail);
+ }
+ uri = global_uri;
+ G_UNLOCK(global_uri);
+
+ return uri;
+ }
+}
diff --git a/src/mn-system-vfs-mailbox.h b/src/mn-system-vfs-mailbox.h
@@ -0,0 +1,58 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox.h"
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_H__
+#define __MN_SYSTEM_VFS_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_SYSTEM_VFS_MAILBOX (mn_system_vfs_mailbox_get_type())
+#define MN_SYSTEM_VFS_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailbox)
+#define MN_SYSTEM_VFS_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailbox const)
+#define MN_SYSTEM_VFS_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailboxClass)
+#define MN_IS_SYSTEM_VFS_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_system_vfs_mailbox_get_type ())
+
+#define MN_SYSTEM_VFS_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailboxClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_SYSTEM_VFS_MAILBOX__
+#define __TYPEDEF_MN_SYSTEM_VFS_MAILBOX__
+typedef struct _MNSystemVFSMailbox MNSystemVFSMailbox;
+#endif
+struct _MNSystemVFSMailbox {
+ MNVFSMailbox __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNSystemVFSMailboxClass MNSystemVFSMailboxClass;
+struct _MNSystemVFSMailboxClass {
+ MNVFSMailboxClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_system_vfs_mailbox_get_type (void);
+const char * mn_system_vfs_mailbox_get_uri (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-tooltips-private.h b/src/mn-tooltips-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#ifndef __MN_TOOLTIPS_PRIVATE_H__
#define __MN_TOOLTIPS_PRIVATE_H__
@@ -12,12 +12,12 @@ extern "C" {
#line 29 "mn-tooltips.gob"
- typedef struct
- {
- MNTooltips *self;
- GtkWidget *widget;
- GtkWidget *tip_widget;
- } TooltipsData;
+typedef struct
+{
+ MNTooltips *self;
+ GtkWidget *widget;
+ GtkWidget *tip_widget;
+} TooltipsData;
#line 23 "mn-tooltips-private.h"
struct _MNTooltipsPrivate {
diff --git a/src/mn-tooltips.c b/src/mn-tooltips.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:58 2005
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
#define selfp (self->_priv)
@@ -40,21 +40,21 @@
* to normal
*/
- /* The private flags that are used in the private_flags member of GtkWidget.
- */
- typedef enum
- {
- PRIVATE_GTK_LEAVE_PENDING = 1 << 4
- } GtkPrivateFlags;
+/* The private flags that are used in the private_flags member of GtkWidget.
+ */
+typedef enum
+{
+ PRIVATE_GTK_LEAVE_PENDING = 1 << 4
+} GtkPrivateFlags;
- /* Macros for extracting a widgets private_flags from GtkWidget.
- */
+/* Macros for extracting a widgets private_flags from GtkWidget.
+ */
#define GTK_PRIVATE_FLAGS(wid) (GTK_WIDGET (wid)->private_flags)
- /* Macros for setting and clearing private widget flags.
- * we use a preprocessor string concatenation here for a clear
- * flags/private_flags distinction at the cost of single flag operations.
- */
+/* Macros for setting and clearing private widget flags.
+ * we use a preprocessor string concatenation here for a clear
+ * flags/private_flags distinction at the cost of single flag operations.
+ */
#define GTK_PRIVATE_SET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
#line 61 "mn-tooltips.c"
@@ -184,7 +184,7 @@ static void
mn_tooltips_init (MNTooltips * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:Tooltips::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNTooltipsPrivate);
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_TOOLTIPS,MNTooltipsPrivate);
}
#undef __GOB_FUNCTION__
static void
@@ -214,11 +214,6 @@ ___1_mn_tooltips_finalize (GObject * object G_GNUC_UNUSED)
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Tooltips::finalize"
-#line 82 "mn-tooltips.gob"
- g_return_if_fail (object != NULL);
-#line 82 "mn-tooltips.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 222 "mn-tooltips.c"
{
#line 84 "mn-tooltips.gob"
@@ -238,14 +233,14 @@ ___1_mn_tooltips_finalize (GObject * object G_GNUC_UNUSED)
PARENT_HANDLER(object);
}}
-#line 242 "mn-tooltips.c"
+#line 237 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
#line 102 "mn-tooltips.gob"
static void
mn_tooltips_destroy_data (TooltipsData * data)
-#line 249 "mn-tooltips.c"
+#line 244 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::destroy_data"
{
@@ -262,40 +257,35 @@ mn_tooltips_destroy_data (TooltipsData * data)
g_object_unref(data->tip_widget);
g_free(data);
}}
-#line 266 "mn-tooltips.c"
+#line 261 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 117 "mn-tooltips.gob"
static void
mn_tooltips_display_closed_h (GdkDisplay * display, gboolean is_error, gpointer user_data)
-#line 272 "mn-tooltips.c"
+#line 267 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::display_closed_h"
-#line 117 "mn-tooltips.gob"
- g_return_if_fail (display != NULL);
-#line 117 "mn-tooltips.gob"
- g_return_if_fail (GDK_IS_DISPLAY (display));
-#line 279 "mn-tooltips.c"
{
#line 121 "mn-tooltips.gob"
Self *self = SELF(user_data);
self_unset_window(self);
}}
-#line 286 "mn-tooltips.c"
+#line 276 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 126 "mn-tooltips.gob"
static void
mn_tooltips_disconnect_display_closed (MNTooltips * self)
-#line 292 "mn-tooltips.c"
+#line 282 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::disconnect_display_closed"
#line 126 "mn-tooltips.gob"
g_return_if_fail (self != NULL);
#line 126 "mn-tooltips.gob"
g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 299 "mn-tooltips.c"
+#line 289 "mn-tooltips.c"
{
#line 128 "mn-tooltips.gob"
@@ -303,20 +293,20 @@ mn_tooltips_disconnect_display_closed (MNTooltips * self)
self_display_closed_h,
self);
}}
-#line 307 "mn-tooltips.c"
+#line 297 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 134 "mn-tooltips.gob"
static void
mn_tooltips_unset_window (MNTooltips * self)
-#line 313 "mn-tooltips.c"
+#line 303 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::unset_window"
#line 134 "mn-tooltips.gob"
g_return_if_fail (self != NULL);
#line 134 "mn-tooltips.gob"
g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 320 "mn-tooltips.c"
+#line 310 "mn-tooltips.c"
{
#line 136 "mn-tooltips.gob"
@@ -326,20 +316,20 @@ mn_tooltips_unset_window (MNTooltips * self)
gtk_widget_destroy(selfp->window);
}
}}
-#line 330 "mn-tooltips.c"
+#line 320 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 144 "mn-tooltips.gob"
static void
mn_tooltips_update_screen (MNTooltips * self, gboolean new_window)
-#line 336 "mn-tooltips.c"
+#line 326 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::update_screen"
#line 144 "mn-tooltips.gob"
g_return_if_fail (self != NULL);
#line 144 "mn-tooltips.gob"
g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 343 "mn-tooltips.c"
+#line 333 "mn-tooltips.c"
{
#line 146 "mn-tooltips.gob"
@@ -366,20 +356,20 @@ mn_tooltips_update_screen (MNTooltips * self, gboolean new_window)
G_CALLBACK(self_display_closed_h),
self);
}}
-#line 370 "mn-tooltips.c"
+#line 360 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 171 "mn-tooltips.gob"
static void
mn_tooltips_force_window (MNTooltips * self)
-#line 376 "mn-tooltips.c"
+#line 366 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::force_window"
#line 171 "mn-tooltips.gob"
g_return_if_fail (self != NULL);
#line 171 "mn-tooltips.gob"
g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 383 "mn-tooltips.c"
+#line 373 "mn-tooltips.c"
{
#line 173 "mn-tooltips.gob"
@@ -400,32 +390,32 @@ mn_tooltips_force_window (MNTooltips * self)
eel_add_weak_pointer(&selfp->window);
}
}}
-#line 404 "mn-tooltips.c"
+#line 394 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 192 "mn-tooltips.gob"
static TooltipsData *
mn_tooltips_get_data (GtkWidget * widget)
-#line 410 "mn-tooltips.c"
+#line 400 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::get_data"
#line 192 "mn-tooltips.gob"
g_return_val_if_fail (widget != NULL, (TooltipsData * )0);
#line 192 "mn-tooltips.gob"
g_return_val_if_fail (GTK_IS_WIDGET (widget), (TooltipsData * )0);
-#line 417 "mn-tooltips.c"
+#line 407 "mn-tooltips.c"
{
#line 194 "mn-tooltips.gob"
return g_object_get_data(G_OBJECT(widget), TOOLTIPS_DATA);
}}
-#line 423 "mn-tooltips.c"
+#line 413 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 198 "mn-tooltips.gob"
void
mn_tooltips_set_tip_widget (MNTooltips * self, GtkWidget * widget, GtkWidget * tip_widget)
-#line 429 "mn-tooltips.c"
+#line 419 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::set_tip_widget"
#line 198 "mn-tooltips.gob"
@@ -436,7 +426,7 @@ mn_tooltips_set_tip_widget (MNTooltips * self, GtkWidget * widget, GtkWidget * t
g_return_if_fail (widget != NULL);
#line 198 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 440 "mn-tooltips.c"
+#line 430 "mn-tooltips.c"
{
#line 202 "mn-tooltips.gob"
@@ -492,20 +482,20 @@ mn_tooltips_set_tip_widget (MNTooltips * self, GtkWidget * widget, GtkWidget * t
NULL);
}
}}
-#line 496 "mn-tooltips.c"
+#line 486 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 256 "mn-tooltips.gob"
static gboolean
mn_tooltips_paint_window (MNTooltips * self)
-#line 502 "mn-tooltips.c"
+#line 492 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::paint_window"
#line 256 "mn-tooltips.gob"
g_return_val_if_fail (self != NULL, (gboolean )0);
#line 256 "mn-tooltips.gob"
g_return_val_if_fail (MN_IS_TOOLTIPS (self), (gboolean )0);
-#line 509 "mn-tooltips.c"
+#line 499 "mn-tooltips.c"
{
#line 258 "mn-tooltips.gob"
@@ -526,20 +516,20 @@ mn_tooltips_paint_window (MNTooltips * self)
return FALSE;
}}
-#line 530 "mn-tooltips.c"
+#line 520 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 277 "mn-tooltips.gob"
static void
mn_tooltips_draw_tips (MNTooltips * self)
-#line 536 "mn-tooltips.c"
+#line 526 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::draw_tips"
#line 277 "mn-tooltips.gob"
g_return_if_fail (self != NULL);
#line 277 "mn-tooltips.gob"
g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 543 "mn-tooltips.c"
+#line 533 "mn-tooltips.c"
{
#line 279 "mn-tooltips.gob"
@@ -623,13 +613,13 @@ mn_tooltips_draw_tips (MNTooltips * self)
gtk_window_move(GTK_WINDOW(selfp->window), x, y);
gtk_widget_show(selfp->window);
}}
-#line 627 "mn-tooltips.c"
+#line 617 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 361 "mn-tooltips.gob"
static gboolean
mn_tooltips_timeout_cb (gpointer data)
-#line 633 "mn-tooltips.c"
+#line 623 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::timeout_cb"
{
@@ -646,20 +636,20 @@ mn_tooltips_timeout_cb (gpointer data)
return FALSE; /* remove timeout */
}}
-#line 650 "mn-tooltips.c"
+#line 640 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 376 "mn-tooltips.gob"
static void
mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget)
-#line 656 "mn-tooltips.c"
+#line 646 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::set_active_widget"
#line 376 "mn-tooltips.gob"
g_return_if_fail (self != NULL);
#line 376 "mn-tooltips.gob"
g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 663 "mn-tooltips.c"
+#line 653 "mn-tooltips.c"
{
#line 378 "mn-tooltips.gob"
@@ -670,7 +660,7 @@ mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget)
gtk_widget_hide(selfp->window);
}
- mn_source_remove(&selfp->timeout_id);
+ mn_source_clear(&selfp->timeout_id);
selfp->active_data = NULL;
@@ -692,20 +682,20 @@ mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget)
else
selfp->use_sticky_delay = FALSE;
}}
-#line 696 "mn-tooltips.c"
+#line 686 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 409 "mn-tooltips.gob"
static void
mn_tooltips_show_tip (GtkWidget * widget)
-#line 702 "mn-tooltips.c"
+#line 692 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::show_tip"
#line 409 "mn-tooltips.gob"
g_return_if_fail (widget != NULL);
#line 409 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 709 "mn-tooltips.c"
+#line 699 "mn-tooltips.c"
{
#line 411 "mn-tooltips.gob"
@@ -721,20 +711,20 @@ mn_tooltips_show_tip (GtkWidget * widget)
self_draw_tips(data->self);
}
}}
-#line 725 "mn-tooltips.c"
+#line 715 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 425 "mn-tooltips.gob"
static void
mn_tooltips_hide_tip (GtkWidget * widget)
-#line 731 "mn-tooltips.c"
+#line 721 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::hide_tip"
#line 425 "mn-tooltips.gob"
g_return_if_fail (widget != NULL);
#line 425 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 738 "mn-tooltips.c"
+#line 728 "mn-tooltips.c"
{
#line 427 "mn-tooltips.gob"
@@ -747,20 +737,20 @@ mn_tooltips_hide_tip (GtkWidget * widget)
data->self->_priv->active_data->widget == widget))
self_set_active_widget(data->self, NULL);
}}
-#line 751 "mn-tooltips.c"
+#line 741 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 438 "mn-tooltips.gob"
static gboolean
mn_tooltips_recently_shown (MNTooltips * self)
-#line 757 "mn-tooltips.c"
+#line 747 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::recently_shown"
#line 438 "mn-tooltips.gob"
g_return_val_if_fail (self != NULL, (gboolean )0);
#line 438 "mn-tooltips.gob"
g_return_val_if_fail (MN_IS_TOOLTIPS (self), (gboolean )0);
-#line 764 "mn-tooltips.c"
+#line 754 "mn-tooltips.c"
{
#line 440 "mn-tooltips.gob"
@@ -772,20 +762,20 @@ mn_tooltips_recently_shown (MNTooltips * self)
(now.tv_usec - selfp->last_popdown.tv_usec) / 1000;
return (msec < STICKY_REVERT_DELAY);
}}
-#line 776 "mn-tooltips.c"
+#line 766 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 450 "mn-tooltips.gob"
static gboolean
mn_tooltips_get_keyboard_mode (GtkWidget * widget)
-#line 782 "mn-tooltips.c"
+#line 772 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::get_keyboard_mode"
#line 450 "mn-tooltips.gob"
g_return_val_if_fail (widget != NULL, (gboolean )0);
#line 450 "mn-tooltips.gob"
g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 789 "mn-tooltips.c"
+#line 779 "mn-tooltips.c"
{
#line 452 "mn-tooltips.gob"
@@ -796,20 +786,20 @@ mn_tooltips_get_keyboard_mode (GtkWidget * widget)
else
return FALSE;
}}
-#line 800 "mn-tooltips.c"
+#line 790 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 461 "mn-tooltips.gob"
static void
mn_tooltips_start_keyboard_mode (GtkWidget * widget)
-#line 806 "mn-tooltips.c"
+#line 796 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::start_keyboard_mode"
#line 461 "mn-tooltips.gob"
g_return_if_fail (widget != NULL);
#line 461 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 813 "mn-tooltips.c"
+#line 803 "mn-tooltips.c"
{
#line 463 "mn-tooltips.gob"
@@ -825,20 +815,20 @@ mn_tooltips_start_keyboard_mode (GtkWidget * widget)
self_show_tip(focus);
}
}}
-#line 829 "mn-tooltips.c"
+#line 819 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 477 "mn-tooltips.gob"
static void
mn_tooltips_stop_keyboard_mode (GtkWidget * widget)
-#line 835 "mn-tooltips.c"
+#line 825 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::stop_keyboard_mode"
#line 477 "mn-tooltips.gob"
g_return_if_fail (widget != NULL);
#line 477 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 842 "mn-tooltips.c"
+#line 832 "mn-tooltips.c"
{
#line 479 "mn-tooltips.gob"
@@ -854,20 +844,20 @@ mn_tooltips_stop_keyboard_mode (GtkWidget * widget)
g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(FALSE));
}
}}
-#line 858 "mn-tooltips.c"
+#line 848 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 493 "mn-tooltips.gob"
static void
mn_tooltips_start_delay (MNTooltips * self, GtkWidget * widget)
-#line 864 "mn-tooltips.c"
+#line 854 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::start_delay"
#line 493 "mn-tooltips.gob"
g_return_if_fail (self != NULL);
#line 493 "mn-tooltips.gob"
g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 871 "mn-tooltips.c"
+#line 861 "mn-tooltips.c"
{
#line 495 "mn-tooltips.gob"
@@ -882,24 +872,17 @@ mn_tooltips_start_delay (MNTooltips * self, GtkWidget * widget)
self);
}
}}
-#line 886 "mn-tooltips.c"
+#line 876 "mn-tooltips.c"
#undef __GOB_FUNCTION__
#line 508 "mn-tooltips.gob"
static void
mn_tooltips_event_after_h (GtkWidget * widget, GdkEvent * event, gpointer user_data)
-#line 892 "mn-tooltips.c"
+#line 882 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::event_after_h"
-#line 508 "mn-tooltips.gob"
- g_return_if_fail (widget != NULL);
-#line 508 "mn-tooltips.gob"
- g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 508 "mn-tooltips.gob"
- g_return_if_fail (event != NULL);
-#line 901 "mn-tooltips.c"
{
-#line 512 "mn-tooltips.gob"
+#line 510 "mn-tooltips.gob"
Self *self;
TooltipsData *old_data;
@@ -982,22 +965,22 @@ mn_tooltips_event_after_h (GtkWidget * widget, GdkEvent * event, gpointer user_d
}
}
}}
-#line 986 "mn-tooltips.c"
+#line 969 "mn-tooltips.c"
#undef __GOB_FUNCTION__
-#line 595 "mn-tooltips.gob"
+#line 593 "mn-tooltips.gob"
static void
mn_tooltips_widget_unmap (GtkWidget * widget, gpointer user_data)
-#line 992 "mn-tooltips.c"
+#line 975 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::widget_unmap"
-#line 595 "mn-tooltips.gob"
+#line 593 "mn-tooltips.gob"
g_return_if_fail (widget != NULL);
-#line 595 "mn-tooltips.gob"
+#line 593 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 999 "mn-tooltips.c"
+#line 982 "mn-tooltips.c"
{
-#line 597 "mn-tooltips.gob"
+#line 595 "mn-tooltips.gob"
TooltipsData *data = user_data;
Self *self = data->self;
@@ -1006,22 +989,22 @@ mn_tooltips_widget_unmap (GtkWidget * widget, gpointer user_data)
(selfp->active_data->widget == widget))
self_set_active_widget(self, NULL);
}}
-#line 1010 "mn-tooltips.c"
+#line 993 "mn-tooltips.c"
#undef __GOB_FUNCTION__
-#line 606 "mn-tooltips.gob"
+#line 604 "mn-tooltips.gob"
static void
mn_tooltips_widget_remove (GtkWidget * widget, gpointer user_data)
-#line 1016 "mn-tooltips.c"
+#line 999 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::widget_remove"
-#line 606 "mn-tooltips.gob"
+#line 604 "mn-tooltips.gob"
g_return_if_fail (widget != NULL);
-#line 606 "mn-tooltips.gob"
+#line 604 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 1023 "mn-tooltips.c"
+#line 1006 "mn-tooltips.c"
{
-#line 608 "mn-tooltips.gob"
+#line 606 "mn-tooltips.gob"
TooltipsData *data = user_data;
Self *self = data->self;
@@ -1030,41 +1013,41 @@ mn_tooltips_widget_remove (GtkWidget * widget, gpointer user_data)
selfp->data_list = g_slist_remove(selfp->data_list, data);
self_destroy_data(data);
}}
-#line 1034 "mn-tooltips.c"
+#line 1017 "mn-tooltips.c"
#undef __GOB_FUNCTION__
-#line 617 "mn-tooltips.gob"
+#line 615 "mn-tooltips.gob"
void
mn_tooltips_toggle_keyboard_mode (GtkWidget * widget)
-#line 1040 "mn-tooltips.c"
+#line 1023 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::toggle_keyboard_mode"
-#line 617 "mn-tooltips.gob"
+#line 615 "mn-tooltips.gob"
g_return_if_fail (widget != NULL);
-#line 617 "mn-tooltips.gob"
+#line 615 "mn-tooltips.gob"
g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 1047 "mn-tooltips.c"
+#line 1030 "mn-tooltips.c"
{
-#line 619 "mn-tooltips.gob"
+#line 617 "mn-tooltips.gob"
if (self_get_keyboard_mode(widget))
self_stop_keyboard_mode(widget);
else
self_start_keyboard_mode(widget);
}}
-#line 1056 "mn-tooltips.c"
+#line 1039 "mn-tooltips.c"
#undef __GOB_FUNCTION__
-#line 626 "mn-tooltips.gob"
+#line 624 "mn-tooltips.gob"
MNTooltips *
mn_tooltips_new (void)
-#line 1062 "mn-tooltips.c"
+#line 1045 "mn-tooltips.c"
{
#define __GOB_FUNCTION__ "MN:Tooltips::new"
{
-#line 628 "mn-tooltips.gob"
+#line 626 "mn-tooltips.gob"
return GET_NEW;
}}
-#line 1070 "mn-tooltips.c"
+#line 1053 "mn-tooltips.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-tooltips.gob b/src/mn-tooltips.gob
@@ -20,19 +20,19 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-requires 2.0.10
+requires 2.0.12
%headertop{
#include <gtk/gtk.h>
%}
%privateheader{
- typedef struct
- {
- MNTooltips *self;
- GtkWidget *widget;
- GtkWidget *tip_widget;
- } TooltipsData;
+typedef struct
+{
+ MNTooltips *self;
+ GtkWidget *widget;
+ GtkWidget *tip_widget;
+} TooltipsData;
%}
%{
@@ -51,21 +51,21 @@ requires 2.0.10
* to normal
*/
- /* The private flags that are used in the private_flags member of GtkWidget.
- */
- typedef enum
- {
- PRIVATE_GTK_LEAVE_PENDING = 1 << 4
- } GtkPrivateFlags;
+/* The private flags that are used in the private_flags member of GtkWidget.
+ */
+typedef enum
+{
+ PRIVATE_GTK_LEAVE_PENDING = 1 << 4
+} GtkPrivateFlags;
- /* Macros for extracting a widgets private_flags from GtkWidget.
- */
+/* Macros for extracting a widgets private_flags from GtkWidget.
+ */
#define GTK_PRIVATE_FLAGS(wid) (GTK_WIDGET (wid)->private_flags)
- /* Macros for setting and clearing private widget flags.
- * we use a preprocessor string concatenation here for a clear
- * flags/private_flags distinction at the cost of single flag operations.
- */
+/* Macros for setting and clearing private widget flags.
+ * we use a preprocessor string concatenation here for a clear
+ * flags/private_flags distinction at the cost of single flag operations.
+ */
#define GTK_PRIVATE_SET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
%}
@@ -80,7 +80,7 @@ class MN:Tooltips from G:Object
private unsigned int timeout_id;
override (G:Object) void
- finalize (G:Object *object (check null type))
+ finalize (GObject *object)
{
Self *self = SELF(object);
GSList *l;
@@ -115,7 +115,7 @@ class MN:Tooltips from G:Object
}
private void
- display_closed_h (Gdk:Display *display (check null type),
+ display_closed_h (GdkDisplay *display,
gboolean is_error,
gpointer user_data)
{
@@ -383,7 +383,7 @@ class MN:Tooltips from G:Object
gtk_widget_hide(selfp->window);
}
- mn_source_remove(&selfp->timeout_id);
+ mn_source_clear(&selfp->timeout_id);
selfp->active_data = NULL;
@@ -506,9 +506,7 @@ class MN:Tooltips from G:Object
}
private void
- event_after_h (Gtk:Widget *widget (check null type),
- GdkEvent *event (check null),
- gpointer user_data)
+ event_after_h (GtkWidget *widget, GdkEvent *event, gpointer user_data)
{
Self *self;
TooltipsData *old_data;
diff --git a/src/mn-tooltips.h b/src/mn-tooltips.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
+/* Generated by GOB (v2.0.12) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-unsupported-mailbox-private.h b/src/mn-unsupported-mailbox-private.h
@@ -1,22 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_UNSUPPORTED_MAILBOX_PRIVATE_H__
-#define __MN_UNSUPPORTED_MAILBOX_PRIVATE_H__
-
-#include "mn-unsupported-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-struct _MNUnsupportedMailboxPrivate {
-#line 32 "mn-unsupported-mailbox.gob"
- char * reason;
-#line 16 "mn-unsupported-mailbox-private.h"
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-unsupported-mailbox.c b/src/mn-unsupported-mailbox.c
@@ -1,268 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-unsupported-mailbox.h"
-
-#include "mn-unsupported-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-unsupported-mailbox.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-stock.h"
-
-#line 33 "mn-unsupported-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_UNSUPPORTED_MAILBOX(x)
-#define SELF_CONST(x) MN_UNSUPPORTED_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_UNSUPPORTED_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_UNSUPPORTED_MAILBOX
-#define SELF_CLASS(x) MN_UNSUPPORTED_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_UNSUPPORTED_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNUnsupportedMailbox Self;
-typedef MNUnsupportedMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
-static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_unsupported_mailbox_init (MNUnsupportedMailbox * o) G_GNUC_UNUSED;
-static void mn_unsupported_mailbox_class_init (MNUnsupportedMailboxClass * class) G_GNUC_UNUSED;
-
-enum {
- PROP_0,
- PROP_REASON
-};
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_get_reason mn_unsupported_mailbox_get_reason
-#define self_new mn_unsupported_mailbox_new
-GType
-mn_unsupported_mailbox_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNUnsupportedMailboxClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_unsupported_mailbox_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNUnsupportedMailbox),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_unsupported_mailbox_init,
- NULL
- };
-
- type = g_type_register_static (MN_TYPE_MAILBOX, "MNUnsupportedMailbox", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNUnsupportedMailbox *)g_object_new(mn_unsupported_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNUnsupportedMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNUnsupportedMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
- MNUnsupportedMailbox *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNUnsupportedMailbox *)g_object_new_valist (mn_unsupported_mailbox_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::finalize"
- MNUnsupportedMailbox *self G_GNUC_UNUSED = MN_UNSUPPORTED_MAILBOX (obj_self);
- gpointer priv G_GNUC_UNUSED = self->_priv;
- if(G_OBJECT_CLASS(parent_class)->finalize) \
- (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 32 "mn-unsupported-mailbox.gob"
- if(self->_priv->reason) { g_free ((gpointer) self->_priv->reason); self->_priv->reason = NULL; }
-#line 117 "mn-unsupported-mailbox.c"
-}
-#undef __GOB_FUNCTION__
-
-static void
-mn_unsupported_mailbox_init (MNUnsupportedMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNUnsupportedMailboxPrivate);
-}
-#undef __GOB_FUNCTION__
-#line 37 "mn-unsupported-mailbox.gob"
-static void
-mn_unsupported_mailbox_class_init (MNUnsupportedMailboxClass * class G_GNUC_UNUSED)
-#line 131 "mn-unsupported-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
-
- g_type_class_add_private(class,sizeof(MNUnsupportedMailboxPrivate));
-
- parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
- g_object_class->finalize = ___finalize;
- g_object_class->get_property = ___object_get_property;
- g_object_class->set_property = ___object_set_property;
- {
- GParamSpec *param_spec;
-
- param_spec = g_param_spec_string
- ("reason" /* name */,
- NULL /* nick */,
- _("The reason why the mailbox is unsupported") /* blurb */,
- NULL /* default_value */,
- (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
- g_object_class_install_property (g_object_class,
- PROP_REASON,
- param_spec);
- }
- {
-#line 38 "mn-unsupported-mailbox.gob"
-
- MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_UNSUPPORTED;
- MN_MAILBOX_CLASS(class)->format = _("unsupported");
-
-#line 162 "mn-unsupported-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
- guint property_id,
- const GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::set_property"
-{
- MNUnsupportedMailbox *self G_GNUC_UNUSED;
-
- self = MN_UNSUPPORTED_MAILBOX (object);
-
- switch (property_id) {
- case PROP_REASON:
- {
-#line 33 "mn-unsupported-mailbox.gob"
-{ char *old = self->_priv->reason; self->_priv->reason = g_value_dup_string (VAL); g_free (old); }
-#line 183 "mn-unsupported-mailbox.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_get_property (GObject *object,
- guint property_id,
- GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::get_property"
-{
- MNUnsupportedMailbox *self G_GNUC_UNUSED;
-
- self = MN_UNSUPPORTED_MAILBOX (object);
-
- switch (property_id) {
- case PROP_REASON:
- {
-#line 33 "mn-unsupported-mailbox.gob"
-g_value_set_string (VAL, self->_priv->reason);
-#line 214 "mn-unsupported-mailbox.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-#undef __GOB_FUNCTION__
-
-
-#line 35 "mn-unsupported-mailbox.gob"
-const char *
-mn_unsupported_mailbox_get_reason (MNUnsupportedMailbox * self)
-#line 233 "mn-unsupported-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::get_reason"
-#line 35 "mn-unsupported-mailbox.gob"
- g_return_val_if_fail (self != NULL, (const char * )0);
-#line 35 "mn-unsupported-mailbox.gob"
- g_return_val_if_fail (MN_IS_UNSUPPORTED_MAILBOX (self), (const char * )0);
-#line 240 "mn-unsupported-mailbox.c"
-{
-#line 35 "mn-unsupported-mailbox.gob"
- return selfp->reason; }}
-#line 244 "mn-unsupported-mailbox.c"
-#undef __GOB_FUNCTION__
-
-
-#line 43 "mn-unsupported-mailbox.gob"
-MNMailbox *
-mn_unsupported_mailbox_new (MNURI * uri, const char * reason)
-#line 251 "mn-unsupported-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::new"
-#line 43 "mn-unsupported-mailbox.gob"
- g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
-#line 43 "mn-unsupported-mailbox.gob"
- g_return_val_if_fail (MN_IS_URI (uri), (MNMailbox * )0);
-#line 43 "mn-unsupported-mailbox.gob"
- g_return_val_if_fail (reason != NULL, (MNMailbox * )0);
-#line 260 "mn-unsupported-mailbox.c"
-{
-#line 46 "mn-unsupported-mailbox.gob"
-
- return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)),
- MN_UNSUPPORTED_MAILBOX_PROP_REASON((char *) reason),
- NULL));
- }}
-#line 268 "mn-unsupported-mailbox.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-unsupported-mailbox.gob b/src/mn-unsupported-mailbox.gob
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2003, 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-stock.h"
-%}
-
-class MN:Unsupported:Mailbox from MN:Mailbox
-{
- private char *reason destroywith g_free;
- property STRING reason (blurb = _("The reason why the mailbox is unsupported"),
- link);
- public const char *get_reason (self) { return selfp->reason; }
-
- class_init (class)
- {
- MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_UNSUPPORTED;
- MN_MAILBOX_CLASS(class)->format = _("unsupported");
- }
-
- public MNMailbox *
- new (MN:URI *uri (check null type),
- const char *reason (check null))
- {
- return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)),
- MN_UNSUPPORTED_MAILBOX_PROP_REASON((char *) reason),
- NULL));
- }
-}
diff --git a/src/mn-unsupported-mailbox.h b/src/mn-unsupported-mailbox.h
@@ -1,77 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_UNSUPPORTED_MAILBOX_H__
-#define __MN_UNSUPPORTED_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_UNSUPPORTED_MAILBOX (mn_unsupported_mailbox_get_type())
-#define MN_UNSUPPORTED_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_unsupported_mailbox_get_type(), MNUnsupportedMailbox)
-#define MN_UNSUPPORTED_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_unsupported_mailbox_get_type(), MNUnsupportedMailbox const)
-#define MN_UNSUPPORTED_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_unsupported_mailbox_get_type(), MNUnsupportedMailboxClass)
-#define MN_IS_UNSUPPORTED_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_unsupported_mailbox_get_type ())
-
-#define MN_UNSUPPORTED_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_unsupported_mailbox_get_type(), MNUnsupportedMailboxClass)
-
-/* Private structure type */
-typedef struct _MNUnsupportedMailboxPrivate MNUnsupportedMailboxPrivate;
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_UNSUPPORTED_MAILBOX__
-#define __TYPEDEF_MN_UNSUPPORTED_MAILBOX__
-typedef struct _MNUnsupportedMailbox MNUnsupportedMailbox;
-#endif
-struct _MNUnsupportedMailbox {
- MNMailbox __parent__;
- /*< private >*/
- MNUnsupportedMailboxPrivate *_priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNUnsupportedMailboxClass MNUnsupportedMailboxClass;
-struct _MNUnsupportedMailboxClass {
- MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_unsupported_mailbox_get_type (void);
-const char * mn_unsupported_mailbox_get_reason (MNUnsupportedMailbox * self);
-MNMailbox * mn_unsupported_mailbox_new (MNURI * uri,
- const char * reason);
-
-/*
- * Argument wrapping macros
- */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_UNSUPPORTED_MAILBOX_PROP_REASON(arg) "reason", __extension__ ({gchar *z = (arg); z;})
-#define MN_UNSUPPORTED_MAILBOX_GET_PROP_REASON(arg) "reason", __extension__ ({gchar **z = (arg); z;})
-#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_UNSUPPORTED_MAILBOX_PROP_REASON(arg) "reason",(gchar *)(arg)
-#define MN_UNSUPPORTED_MAILBOX_GET_PROP_REASON(arg) "reason",(gchar **)(arg)
-#endif /* __GNUC__ && !__STRICT_ANSI__ */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-uri-private.h b/src/mn-uri-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#ifndef __MN_URI_PRIVATE_H__
-#define __MN_URI_PRIVATE_H__
-
-#include "mn-uri.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-uri.c b/src/mn-uri.c
@@ -1,883 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar 6 22:34:28 2005
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include "mn-uri.h"
-
-#include "mn-uri-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 54 "mn-uri.gob"
-
-#include "config.h"
-#include <stdio.h> /* required by stdlib.h on Darwin */
-#include <stdlib.h> /* required by sys/socket.h on Darwin */
-#include <stdarg.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include <eel/eel.h>
-#include "mn-util.h"
-
- typedef struct
- {
- const char *name;
-
- MNURIType type;
- MNURIFlags flags;
-
- int default_port;
- const char *default_path;
- } SchemeInfo;
-
- static const SchemeInfo our_schemes[] = {
- { "pop", MN_URI_POP, 0, 110, NULL },
- { "pops", MN_URI_POP, MN_URI_SSL, 995, NULL },
- { "imap", MN_URI_IMAP, 0, 143, "INBOX" },
- { "imaps", MN_URI_IMAP, MN_URI_SSL, 993, "INBOX" },
- { "gmail", MN_URI_GMAIL, 0, -1, NULL }
- };
-
-#line 60 "mn-uri.c"
-/* self casting macros */
-#define SELF(x) MN_URI(x)
-#define SELF_CONST(x) MN_URI_CONST(x)
-#define IS_SELF(x) MN_IS_URI(x)
-#define TYPE_SELF MN_TYPE_URI
-#define SELF_CLASS(x) MN_URI_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_URI_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNURI Self;
-typedef MNURIClass SelfClass;
-
-/* here are local prototypes */
-static void mn_uri_init (MNURI * o) G_GNUC_UNUSED;
-static void mn_uri_class_init (MNURIClass * c) G_GNUC_UNUSED;
-static gboolean mn_uri_is_ipv6_address (const char * hostname) G_GNUC_UNUSED;
-static const SchemeInfo * mn_uri_get_scheme_info (const char * scheme) G_GNUC_UNUSED;
-static void mn_uri_parse (MNURI * self) G_GNUC_UNUSED;
-static void mn_uri_build (MNURI * self) G_GNUC_UNUSED;
-static void mn_uri_set_human_readable (MNURI * self) G_GNUC_UNUSED;
-static void mn_uri_post_init (MNURI * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static GObjectClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_is_ipv6_address mn_uri_is_ipv6_address
-#define self_has_query mn_uri_has_query
-#define self_get_system_mailbox mn_uri_get_system_mailbox
-#define self_get_scheme_info mn_uri_get_scheme_info
-#define self_get_default_port mn_uri_get_default_port
-#define self_get_default_path mn_uri_get_default_path
-#define self_parse mn_uri_parse
-#define self_build mn_uri_build
-#define self_set_human_readable mn_uri_set_human_readable
-#define self_post_init mn_uri_post_init
-#define self_new mn_uri_new
-#define self_new_pop mn_uri_new_pop
-#define self_new_imap mn_uri_new_imap
-#define self_new_gmail mn_uri_new_gmail
-GType
-mn_uri_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNURIClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_uri_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNURI),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_uri_init,
- NULL
- };
-
- type = g_type_register_static (G_TYPE_OBJECT, "MNURI", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNURI *)g_object_new(mn_uri_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNURI * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNURI *
-GET_NEW_VARG (const char *first, ...)
-{
- MNURI *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNURI *)g_object_new_valist (mn_uri_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-
-static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:URI::dispose"
- MNURI *self G_GNUC_UNUSED = MN_URI (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 92 "mn-uri.gob"
- if(self->vfs) { gnome_vfs_uri_unref ((gpointer) self->vfs); self->vfs = NULL; }
-#line 154 "mn-uri.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:URI::finalize"
- MNURI *self G_GNUC_UNUSED = MN_URI (obj_self);
- if(G_OBJECT_CLASS(parent_class)->finalize) \
- (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 91 "mn-uri.gob"
- if(self->text) { g_free ((gpointer) self->text); self->text = NULL; }
-#line 168 "mn-uri.c"
-#line 93 "mn-uri.gob"
- if(self->human_readable) { g_free ((gpointer) self->human_readable); self->human_readable = NULL; }
-#line 171 "mn-uri.c"
-#line 95 "mn-uri.gob"
- if(self->scheme) { g_free ((gpointer) self->scheme); self->scheme = NULL; }
-#line 174 "mn-uri.c"
-#line 96 "mn-uri.gob"
- if(self->username) { g_free ((gpointer) self->username); self->username = NULL; }
-#line 177 "mn-uri.c"
-#line 97 "mn-uri.gob"
- if(self->password) { g_free ((gpointer) self->password); self->password = NULL; }
-#line 180 "mn-uri.c"
-#line 98 "mn-uri.gob"
- if(self->authmech) { g_free ((gpointer) self->authmech); self->authmech = NULL; }
-#line 183 "mn-uri.c"
-#line 99 "mn-uri.gob"
- if(self->hostname) { g_free ((gpointer) self->hostname); self->hostname = NULL; }
-#line 186 "mn-uri.c"
-#line 101 "mn-uri.gob"
- if(self->path) { g_free ((gpointer) self->path); self->path = NULL; }
-#line 189 "mn-uri.c"
-#line 102 "mn-uri.gob"
- if(self->queries) { g_strfreev ((gpointer) self->queries); self->queries = NULL; }
-#line 192 "mn-uri.c"
-}
-#undef __GOB_FUNCTION__
-
-static void
-mn_uri_init (MNURI * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:URI::init"
-#line 54 "mn-uri.gob"
- o->text = NULL;
-#line 202 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->vfs = NULL;
-#line 205 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->human_readable = NULL;
-#line 208 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->scheme = NULL;
-#line 211 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->username = NULL;
-#line 214 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->password = NULL;
-#line 217 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->authmech = NULL;
-#line 220 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->hostname = NULL;
-#line 223 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->port = -1;
-#line 226 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->path = NULL;
-#line 229 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->queries = NULL;
-#line 232 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->type = MN_URI_UNKNOWN;
-#line 235 "mn-uri.c"
-#line 54 "mn-uri.gob"
- o->flags = 0;
-#line 238 "mn-uri.c"
-}
-#undef __GOB_FUNCTION__
-static void
-mn_uri_class_init (MNURIClass * c G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:URI::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
-
- parent_class = g_type_class_ref (G_TYPE_OBJECT);
-
- g_object_class->dispose = ___dispose;
- g_object_class->finalize = ___finalize;
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 107 "mn-uri.gob"
-static gboolean
-mn_uri_is_ipv6_address (const char * hostname)
-#line 259 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::is_ipv6_address"
-{
-#line 109 "mn-uri.gob"
-
- char dummy[16]; /* sizeof(struct in6_addr) */
-
- g_return_val_if_fail(hostname != NULL, FALSE);
-
- return inet_pton(AF_INET6, hostname, dummy) == 1;
- }}
-#line 271 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 117 "mn-uri.gob"
-gboolean
-mn_uri_has_query (MNURI * self, const char * query)
-#line 277 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::has_query"
-#line 117 "mn-uri.gob"
- g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 117 "mn-uri.gob"
- g_return_val_if_fail (MN_IS_URI (self), (gboolean )0);
-#line 117 "mn-uri.gob"
- g_return_val_if_fail (query != NULL, (gboolean )0);
-#line 286 "mn-uri.c"
-{
-#line 119 "mn-uri.gob"
-
- return self->queries && eel_g_strv_find(self->queries, query) != -1;
- }}
-#line 292 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 123 "mn-uri.gob"
-const char *
-mn_uri_get_system_mailbox (void)
-#line 298 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_system_mailbox"
-{
-#line 125 "mn-uri.gob"
-
- static char *global_uri = NULL;
- G_LOCK_DEFINE_STATIC(global_uri);
- const char *uri;
-
- G_LOCK(global_uri);
- if (! global_uri)
- {
- const char *mail = g_getenv("MAIL");
- if (mail)
- global_uri = gnome_vfs_get_uri_from_local_path(mail);
- }
- uri = global_uri;
- G_UNLOCK(global_uri);
-
- return uri;
- }}
-#line 320 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 143 "mn-uri.gob"
-static const SchemeInfo *
-mn_uri_get_scheme_info (const char * scheme)
-#line 326 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_scheme_info"
-{
-#line 145 "mn-uri.gob"
-
- int i;
-
- for (i = 0; i < G_N_ELEMENTS(our_schemes); i++)
- if (! strcmp(scheme, our_schemes[i].name))
- return &our_schemes[i];
-
- return NULL;
- }}
-#line 340 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 155 "mn-uri.gob"
-int
-mn_uri_get_default_port (const char * scheme)
-#line 346 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_default_port"
-#line 155 "mn-uri.gob"
- g_return_val_if_fail (scheme != NULL, (int )0);
-#line 351 "mn-uri.c"
-{
-#line 157 "mn-uri.gob"
-
- const SchemeInfo *scheme_info;
-
- scheme_info = self_get_scheme_info(scheme);
- return scheme_info ? scheme_info->default_port : -1;
- }}
-#line 360 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 164 "mn-uri.gob"
-const char *
-mn_uri_get_default_path (const char * scheme)
-#line 366 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_default_path"
-#line 164 "mn-uri.gob"
- g_return_val_if_fail (scheme != NULL, (const char * )0);
-#line 371 "mn-uri.c"
-{
-#line 166 "mn-uri.gob"
-
- const SchemeInfo *scheme_info;
-
- scheme_info = self_get_scheme_info(scheme);
- return scheme_info ? scheme_info->default_path : NULL;
- }}
-#line 380 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 173 "mn-uri.gob"
-static void
-mn_uri_parse (MNURI * self)
-#line 386 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::parse"
-#line 173 "mn-uri.gob"
- g_return_if_fail (self != NULL);
-#line 173 "mn-uri.gob"
- g_return_if_fail (MN_IS_URI (self));
-#line 393 "mn-uri.c"
-{
-#line 175 "mn-uri.gob"
-
- int len;
- int buflen;
-
- if (self->vfs || ! self->text) /* no need to parse, or already parsed */
- return;
-
- len = strlen(self->text);
- buflen = len + 1;
-
- {
- char *pat;
- char scheme_buf[buflen];
- char auth_buf[buflen];
- char location_buf[buflen];
- char username_buf[buflen];
- char password_buf[buflen];
- char authmech_buf[buflen];
- char hostname_buf[buflen];
- int _port;
- char path_buf[buflen];
- char queries_buf[buflen];
- gboolean has_location = FALSE;
- gboolean has_password = FALSE;
- gboolean has_authmech = FALSE;
- gboolean has_port = FALSE;
- gboolean has_path = FALSE;
- gboolean has_queries = FALSE;
- int n;
-
- /* split URI in 3 parts: scheme, auth and location */
-
- pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
- n = sscanf(self->text, pat, scheme_buf, auth_buf, location_buf);
- g_free(pat);
-
- if (n >= 2)
- {
- if (n == 3)
- has_location = TRUE;
- }
- else
- return; /* unparsable */
-
- /* split auth part in 3 subparts: username, password and authmech */
-
- /*
- * For backward compatibility with previous versions of Mail
- * Notification, we also support ;auth= (in lowercase).
- */
-
- pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
- n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
- g_free(pat);
-
- if (n >= 2)
- {
- has_password = TRUE;
- if (n == 3)
- has_authmech = TRUE;
- }
- else
- {
- pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
- n = sscanf(auth_buf, pat, username_buf, authmech_buf);
- g_free(pat);
-
- if (n >= 1)
- {
- if (n == 2)
- has_authmech = TRUE;
- }
- else
- return; /* unparsable */
- }
-
- if (has_location)
- {
- char hostport_buf[buflen];
-
- /* split location part in 3 subparts: hostport, path and queries */
-
- pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
- n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
- g_free(pat);
-
- if (n >= 2)
- {
- has_path = TRUE;
- if (n == 3)
- has_queries = TRUE;
- }
- else
- {
- pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
- n = sscanf(location_buf, pat, hostport_buf, queries_buf);
- g_free(pat);
-
- if (n == 2)
- has_queries = TRUE;
- }
-
- /* split hostport in 2 subparts: host and port */
-
- pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
- n = sscanf(hostport_buf, pat, hostname_buf, &_port);
- g_free(pat);
-
- if (n < 1)
- {
- pat = g_strdup_printf("%%%i[^:]:%%u", len);
- n = sscanf(hostport_buf, pat, hostname_buf, &_port);
- g_free(pat);
- }
-
- if (n == 2)
- has_port = TRUE;
- }
-
- self->scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
- self->username = gnome_vfs_unescape_string(username_buf, NULL);
- if (has_password)
- self->password = gnome_vfs_unescape_string(password_buf, NULL);
- if (has_authmech)
- self->authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
- if (has_location)
- self->hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
- self->port = has_port ? _port : self_get_default_port(self->scheme);
- self->path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : g_strdup(self_get_default_path(self->scheme));
- if (has_queries)
- {
- int i;
-
- self->queries = g_strsplit(queries_buf, "&", 0);
- for (i = 0; self->queries[i]; i++)
- {
- char *unescaped;
-
- unescaped = gnome_vfs_unescape_string(self->queries[i], NULL);
-
- g_free(self->queries[i]);
- self->queries[i] = unescaped;
- }
- }
- }
- }}
-#line 542 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 322 "mn-uri.gob"
-static void
-mn_uri_build (MNURI * self)
-#line 548 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::build"
-#line 322 "mn-uri.gob"
- g_return_if_fail (self != NULL);
-#line 322 "mn-uri.gob"
- g_return_if_fail (MN_IS_URI (self));
-#line 555 "mn-uri.c"
-{
-#line 324 "mn-uri.gob"
-
- char *canonical = NULL;
-
- if (self->vfs)
- {
- g_return_if_fail(self->text != NULL);
- canonical = gnome_vfs_make_uri_canonical(self->text);
- }
- else if (self->scheme)
- {
- GString *string;
- char *escaped;
- int i;
-
- g_return_if_fail(self->username != NULL);
-
- escaped = gnome_vfs_escape_string(self->scheme);
- string = g_string_new(escaped);
- g_free(escaped);
-
- escaped = gnome_vfs_escape_string(self->username);
- g_string_append_printf(string, "://%s", escaped);
- g_free(escaped);
-
- if (self->password)
- {
- escaped = gnome_vfs_escape_string(self->password);
- g_string_append_printf(string, ":%s", escaped);
- g_free(escaped);
- }
-
- if (self->authmech)
- {
- escaped = gnome_vfs_escape_string(self->authmech);
- g_string_append_printf(string, ";AUTH=%s", escaped);
- g_free(escaped);
- }
-
- if (self->hostname)
- {
- escaped = gnome_vfs_escape_host_and_path_string(self->hostname);
- g_string_append_printf(string, self_is_ipv6_address(self->hostname) ? "@[%s]" : "@%s", escaped);
- g_free(escaped);
- }
-
- if (self->port >= 0 && self->port != self_get_default_port(self->scheme))
- g_string_append_printf(string, ":%i", self->port);
-
- if (self->path)
- {
- const char *default_path;
-
- default_path = self_get_default_path(self->scheme);
- if (! default_path || strcmp(self->path, default_path))
- {
- escaped = gnome_vfs_escape_path_string(self->path);
- g_string_append_printf(string, "/%s", escaped);
- g_free(escaped);
- }
- }
-
- if (self->queries)
- for (i = 0; self->queries[i]; i++)
- {
- g_string_append_c(string, i == 0 ? '?' : '&');
-
- escaped = gnome_vfs_escape_string(self->queries[i]);
- g_string_append(string, escaped);
- g_free(escaped);
- }
-
- canonical = g_string_free(string, FALSE);
- }
-
- if (canonical)
- {
- g_free(self->text);
- self->text = canonical;
- }
- }}
-#line 638 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 405 "mn-uri.gob"
-static void
-mn_uri_set_human_readable (MNURI * self)
-#line 644 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::set_human_readable"
-#line 405 "mn-uri.gob"
- g_return_if_fail (self != NULL);
-#line 405 "mn-uri.gob"
- g_return_if_fail (MN_IS_URI (self));
-#line 651 "mn-uri.c"
-{
-#line 407 "mn-uri.gob"
-
- g_return_if_fail(self->human_readable == NULL);
-
- if (MN_URI_IS_SYSTEM_MAILBOX(self))
- self->human_readable = g_strdup(_("System Mailbox"));
- else if (self->vfs)
- {
- char *path;
-
- path = gnome_vfs_get_local_path_from_uri(self->text);
- if (path)
- {
- self->human_readable = g_filename_to_utf8(path, -1, NULL, NULL, NULL);
- g_free(path);
- }
-
- if (! self->human_readable)
- self->human_readable = gnome_vfs_uri_to_string(self->vfs, GNOME_VFS_URI_HIDE_PASSWORD);
- }
- else if (MN_URI_IS_POP(self))
- self->human_readable = g_strdup_printf("%s@%s", self->username, self->hostname);
- else if (MN_URI_IS_IMAP(self))
- {
- const char *default_path = self_get_default_path(self->scheme);
- self->human_readable = (self->path && (! default_path || strcmp(self->path, default_path)))
- ? g_strdup_printf("%s@%s/%s", self->username, self->hostname, self->path)
- : g_strdup_printf("%s@%s", self->username, self->hostname);
- }
- else if (MN_URI_IS_GMAIL(self))
- self->human_readable = g_strdup_printf("%s@gmail.com", self->username);
- else
- self->human_readable = g_strdup(self->text);
- }}
-#line 687 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 441 "mn-uri.gob"
-static void
-mn_uri_post_init (MNURI * self)
-#line 693 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::post_init"
-#line 441 "mn-uri.gob"
- g_return_if_fail (self != NULL);
-#line 441 "mn-uri.gob"
- g_return_if_fail (MN_IS_URI (self));
-#line 700 "mn-uri.c"
-{
-#line 443 "mn-uri.gob"
-
- const char *system_uri;
-
- self_parse(self);
- self_build(self);
-
- if (self->vfs)
- {
- self->type = MN_URI_VFS;
- if (gnome_vfs_uri_is_local(self->vfs))
- self->flags |= MN_URI_LOCAL;
- }
- else if (self->scheme)
- {
- const SchemeInfo *scheme_info;
-
- scheme_info = self_get_scheme_info(self->scheme);
- if (scheme_info)
- {
- self->type = scheme_info->type;
- self->flags |= scheme_info->flags;
- }
-
- if ((MN_URI_IS_POP(self) && self_has_query(self, "STLS"))
- || (MN_URI_IS_IMAP(self) && self_has_query(self, "STARTTLS")))
- self->flags |= MN_URI_INBAND_SSL;
- }
-
- system_uri = self_get_system_mailbox();
- if (system_uri && ! strcmp(system_uri, self->text))
- self->flags |= MN_URI_SYSTEM_MAILBOX;
-
- self_set_human_readable(self);
- }}
-#line 737 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 478 "mn-uri.gob"
-MNURI *
-mn_uri_new (const char * text_uri)
-#line 743 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new"
-#line 478 "mn-uri.gob"
- g_return_val_if_fail (text_uri != NULL, (MNURI * )0);
-#line 748 "mn-uri.c"
-{
-#line 480 "mn-uri.gob"
-
- Self *self;
- char *scheme;
-
- self = GET_NEW;
- self->text = g_str_has_prefix(text_uri, "pop3:") /* also handle obsolete pop3 locators */
- ? g_strconcat("pop://", text_uri + 5, NULL)
- : g_strdup(text_uri);
-
- /* only use GnomeVFS if we can't handle it ourselves */
- scheme = gnome_vfs_get_uri_scheme(self->text);
- if (! scheme || ! self_get_scheme_info(scheme))
- self->vfs = gnome_vfs_uri_new(self->text);
- g_free(scheme);
-
- self_post_init(self);
- return self;
- }}
-#line 769 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 499 "mn-uri.gob"
-MNURI *
-mn_uri_new_pop (gboolean ssl, gboolean stls, const char * username, const char * password, const char * authmech, const char * hostname, int port)
-#line 775 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new_pop"
-#line 499 "mn-uri.gob"
- g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 499 "mn-uri.gob"
- g_return_val_if_fail (hostname != NULL, (MNURI * )0);
-#line 782 "mn-uri.c"
-{
-#line 507 "mn-uri.gob"
-
- Self *self;
-
- self = GET_NEW;
-
- self->scheme = g_strdup(ssl ? "pops" : "pop");
- self->username = g_strdup(username);
- self->password = g_strdup(password);
- self->authmech = g_strdup(authmech);
- self->hostname = g_strdup(hostname);
- self->port = port;
- if (stls)
- {
- self->queries = g_new(char *, 2);
- self->queries[0] = g_strdup("STLS");
- self->queries[1] = NULL;
- }
-
- self_post_init(self);
- return self;
- }}
-#line 806 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 529 "mn-uri.gob"
-MNURI *
-mn_uri_new_imap (gboolean ssl, gboolean starttls, const char * username, const char * password, const char * authmech, const char * hostname, int port, const char * mailbox, gboolean disable_idle)
-#line 812 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new_imap"
-#line 529 "mn-uri.gob"
- g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 529 "mn-uri.gob"
- g_return_val_if_fail (hostname != NULL, (MNURI * )0);
-#line 529 "mn-uri.gob"
- g_return_val_if_fail (mailbox != NULL, (MNURI * )0);
-#line 821 "mn-uri.c"
-{
-#line 539 "mn-uri.gob"
-
- Self *self;
- GSList *queries = NULL;
-
- self = GET_NEW;
-
- self->scheme = g_strdup(ssl ? "imaps" : "imap");
- self->username = g_strdup(username);
- self->password = g_strdup(password);
- self->authmech = g_strdup(authmech);
- self->hostname = g_strdup(hostname);
- self->port = port;
- self->path = g_strdup(mailbox);
- if (starttls)
- queries = g_slist_append(queries, "STARTTLS");
- if (disable_idle)
- queries = g_slist_append(queries, "noidle");
-
- if (queries)
- {
- int i = 0;
- GSList *l;
-
- self->queries = g_new(char *, g_slist_length(queries) + 1);
- MN_LIST_FOREACH(l, queries)
- self->queries[i++] = g_strdup(l->data);
- self->queries[i] = NULL;
- g_slist_free(queries);
- }
-
- self_post_init(self);
- return self;
- }}
-#line 857 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 573 "mn-uri.gob"
-MNURI *
-mn_uri_new_gmail (const char * username, const char * password)
-#line 863 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new_gmail"
-#line 573 "mn-uri.gob"
- g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 868 "mn-uri.c"
-{
-#line 576 "mn-uri.gob"
-
- Self *self;
-
- self = GET_NEW;
-
- self->scheme = g_strdup("gmail");
- self->username = g_strdup(username);
- self->password = g_strdup(password);
-
- self_post_init(self);
- return self;
- }}
-#line 883 "mn-uri.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-uri.gob b/src/mn-uri.gob
@@ -1,588 +0,0 @@
-/*
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include <libgnomevfs/gnome-vfs.h>
-%}
-
-%h{
- typedef enum
- {
- MN_URI_VFS,
- MN_URI_POP,
- MN_URI_IMAP,
- MN_URI_GMAIL,
- MN_URI_UNKNOWN
- } MNURIType;
-
- typedef enum
- {
- MN_URI_LOCAL = 1 << 0,
- MN_URI_SYSTEM_MAILBOX = 1 << 1,
- MN_URI_SSL = 1 << 2,
- MN_URI_INBAND_SSL = 1 << 3
- } MNURIFlags;
-
-#define MN_URI_IS_VFS(uri) ((uri)->type == MN_URI_VFS)
-#define MN_URI_IS_POP(uri) ((uri)->type == MN_URI_POP)
-#define MN_URI_IS_IMAP(uri) ((uri)->type == MN_URI_IMAP)
-#define MN_URI_IS_GMAIL(uri) ((uri)->type == MN_URI_GMAIL)
-
-#define MN_URI_IS_LOCAL(uri) (((uri)->flags & MN_URI_LOCAL) != 0)
-#define MN_URI_IS_SYSTEM_MAILBOX(uri) (((uri)->flags & MN_URI_SYSTEM_MAILBOX) != 0)
-#define MN_URI_IS_SSL(uri) (((uri)->flags & MN_URI_SSL) != 0)
-#define MN_URI_IS_INBAND_SSL(uri) (((uri)->flags & MN_URI_INBAND_SSL) != 0)
-%}
-
-%{
-#include "config.h"
-#include <stdio.h> /* required by stdlib.h on Darwin */
-#include <stdlib.h> /* required by sys/socket.h on Darwin */
-#include <stdarg.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include <eel/eel.h>
-#include "mn-util.h"
-
- typedef struct
- {
- const char *name;
-
- MNURIType type;
- MNURIFlags flags;
-
- int default_port;
- const char *default_path;
- } SchemeInfo;
-
- static const SchemeInfo our_schemes[] = {
- { "pop", MN_URI_POP, 0, 110, NULL },
- { "pops", MN_URI_POP, MN_URI_SSL, 995, NULL },
- { "imap", MN_URI_IMAP, 0, 143, "INBOX" },
- { "imaps", MN_URI_IMAP, MN_URI_SSL, 993, "INBOX" },
- { "gmail", MN_URI_GMAIL, 0, -1, NULL }
- };
-%}
-
-class MN:URI from G:Object
-{
- public char *text = NULL destroywith g_free; /* always defined */
- public GnomeVFSURI *vfs = NULL unrefwith gnome_vfs_uri_unref;
- public char *human_readable = NULL destroywith g_free; /* always defined */
-
- public char *scheme = NULL destroywith g_free;
- public char *username = NULL destroywith g_free; /* if scheme is defined, always defined */
- public char *password = NULL destroywith g_free;
- public char *authmech = NULL destroywith g_free;
- public char *hostname = NULL destroywith g_free;
- public int port = -1;
- public char *path = NULL destroywith g_free;
- public char **queries = NULL destroywith g_strfreev;
-
- public MNURIType type = MN_URI_UNKNOWN;
- public MNURIFlags flags = 0;
-
- private gboolean
- is_ipv6_address (const char *hostname)
- {
- char dummy[16]; /* sizeof(struct in6_addr) */
-
- g_return_val_if_fail(hostname != NULL, FALSE);
-
- return inet_pton(AF_INET6, hostname, dummy) == 1;
- }
-
- public gboolean
- has_query (self, const char *query (check null))
- {
- return self->queries && eel_g_strv_find(self->queries, query) != -1;
- }
-
- public const char *
- get_system_mailbox (void)
- {
- static char *global_uri = NULL;
- G_LOCK_DEFINE_STATIC(global_uri);
- const char *uri;
-
- G_LOCK(global_uri);
- if (! global_uri)
- {
- const char *mail = g_getenv("MAIL");
- if (mail)
- global_uri = gnome_vfs_get_uri_from_local_path(mail);
- }
- uri = global_uri;
- G_UNLOCK(global_uri);
-
- return uri;
- }
-
- private const SchemeInfo *
- get_scheme_info (const char *scheme)
- {
- int i;
-
- for (i = 0; i < G_N_ELEMENTS(our_schemes); i++)
- if (! strcmp(scheme, our_schemes[i].name))
- return &our_schemes[i];
-
- return NULL;
- }
-
- public int
- get_default_port (const char *scheme (check null))
- {
- const SchemeInfo *scheme_info;
-
- scheme_info = self_get_scheme_info(scheme);
- return scheme_info ? scheme_info->default_port : -1;
- }
-
- public const char *
- get_default_path (const char *scheme (check null))
- {
- const SchemeInfo *scheme_info;
-
- scheme_info = self_get_scheme_info(scheme);
- return scheme_info ? scheme_info->default_path : NULL;
- }
-
- private void
- parse (self)
- {
- int len;
- int buflen;
-
- if (self->vfs || ! self->text) /* no need to parse, or already parsed */
- return;
-
- len = strlen(self->text);
- buflen = len + 1;
-
- {
- char *pat;
- char scheme_buf[buflen];
- char auth_buf[buflen];
- char location_buf[buflen];
- char username_buf[buflen];
- char password_buf[buflen];
- char authmech_buf[buflen];
- char hostname_buf[buflen];
- int _port;
- char path_buf[buflen];
- char queries_buf[buflen];
- gboolean has_location = FALSE;
- gboolean has_password = FALSE;
- gboolean has_authmech = FALSE;
- gboolean has_port = FALSE;
- gboolean has_path = FALSE;
- gboolean has_queries = FALSE;
- int n;
-
- /* split URI in 3 parts: scheme, auth and location */
-
- pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
- n = sscanf(self->text, pat, scheme_buf, auth_buf, location_buf);
- g_free(pat);
-
- if (n >= 2)
- {
- if (n == 3)
- has_location = TRUE;
- }
- else
- return; /* unparsable */
-
- /* split auth part in 3 subparts: username, password and authmech */
-
- /*
- * For backward compatibility with previous versions of Mail
- * Notification, we also support ;auth= (in lowercase).
- */
-
- pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
- n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
- g_free(pat);
-
- if (n >= 2)
- {
- has_password = TRUE;
- if (n == 3)
- has_authmech = TRUE;
- }
- else
- {
- pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
- n = sscanf(auth_buf, pat, username_buf, authmech_buf);
- g_free(pat);
-
- if (n >= 1)
- {
- if (n == 2)
- has_authmech = TRUE;
- }
- else
- return; /* unparsable */
- }
-
- if (has_location)
- {
- char hostport_buf[buflen];
-
- /* split location part in 3 subparts: hostport, path and queries */
-
- pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
- n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
- g_free(pat);
-
- if (n >= 2)
- {
- has_path = TRUE;
- if (n == 3)
- has_queries = TRUE;
- }
- else
- {
- pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
- n = sscanf(location_buf, pat, hostport_buf, queries_buf);
- g_free(pat);
-
- if (n == 2)
- has_queries = TRUE;
- }
-
- /* split hostport in 2 subparts: host and port */
-
- pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
- n = sscanf(hostport_buf, pat, hostname_buf, &_port);
- g_free(pat);
-
- if (n < 1)
- {
- pat = g_strdup_printf("%%%i[^:]:%%u", len);
- n = sscanf(hostport_buf, pat, hostname_buf, &_port);
- g_free(pat);
- }
-
- if (n == 2)
- has_port = TRUE;
- }
-
- self->scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
- self->username = gnome_vfs_unescape_string(username_buf, NULL);
- if (has_password)
- self->password = gnome_vfs_unescape_string(password_buf, NULL);
- if (has_authmech)
- self->authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
- if (has_location)
- self->hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
- self->port = has_port ? _port : self_get_default_port(self->scheme);
- self->path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : g_strdup(self_get_default_path(self->scheme));
- if (has_queries)
- {
- int i;
-
- self->queries = g_strsplit(queries_buf, "&", 0);
- for (i = 0; self->queries[i]; i++)
- {
- char *unescaped;
-
- unescaped = gnome_vfs_unescape_string(self->queries[i], NULL);
-
- g_free(self->queries[i]);
- self->queries[i] = unescaped;
- }
- }
- }
- }
-
- private void
- build (self)
- {
- char *canonical = NULL;
-
- if (self->vfs)
- {
- g_return_if_fail(self->text != NULL);
- canonical = gnome_vfs_make_uri_canonical(self->text);
- }
- else if (self->scheme)
- {
- GString *string;
- char *escaped;
- int i;
-
- g_return_if_fail(self->username != NULL);
-
- escaped = gnome_vfs_escape_string(self->scheme);
- string = g_string_new(escaped);
- g_free(escaped);
-
- escaped = gnome_vfs_escape_string(self->username);
- g_string_append_printf(string, "://%s", escaped);
- g_free(escaped);
-
- if (self->password)
- {
- escaped = gnome_vfs_escape_string(self->password);
- g_string_append_printf(string, ":%s", escaped);
- g_free(escaped);
- }
-
- if (self->authmech)
- {
- escaped = gnome_vfs_escape_string(self->authmech);
- g_string_append_printf(string, ";AUTH=%s", escaped);
- g_free(escaped);
- }
-
- if (self->hostname)
- {
- escaped = gnome_vfs_escape_host_and_path_string(self->hostname);
- g_string_append_printf(string, self_is_ipv6_address(self->hostname) ? "@[%s]" : "@%s", escaped);
- g_free(escaped);
- }
-
- if (self->port >= 0 && self->port != self_get_default_port(self->scheme))
- g_string_append_printf(string, ":%i", self->port);
-
- if (self->path)
- {
- const char *default_path;
-
- default_path = self_get_default_path(self->scheme);
- if (! default_path || strcmp(self->path, default_path))
- {
- escaped = gnome_vfs_escape_path_string(self->path);
- g_string_append_printf(string, "/%s", escaped);
- g_free(escaped);
- }
- }
-
- if (self->queries)
- for (i = 0; self->queries[i]; i++)
- {
- g_string_append_c(string, i == 0 ? '?' : '&');
-
- escaped = gnome_vfs_escape_string(self->queries[i]);
- g_string_append(string, escaped);
- g_free(escaped);
- }
-
- canonical = g_string_free(string, FALSE);
- }
-
- if (canonical)
- {
- g_free(self->text);
- self->text = canonical;
- }
- }
-
- private void
- set_human_readable (self)
- {
- g_return_if_fail(self->human_readable == NULL);
-
- if (MN_URI_IS_SYSTEM_MAILBOX(self))
- self->human_readable = g_strdup(_("System Mailbox"));
- else if (self->vfs)
- {
- char *path;
-
- path = gnome_vfs_get_local_path_from_uri(self->text);
- if (path)
- {
- self->human_readable = g_filename_to_utf8(path, -1, NULL, NULL, NULL);
- g_free(path);
- }
-
- if (! self->human_readable)
- self->human_readable = gnome_vfs_uri_to_string(self->vfs, GNOME_VFS_URI_HIDE_PASSWORD);
- }
- else if (MN_URI_IS_POP(self))
- self->human_readable = g_strdup_printf("%s@%s", self->username, self->hostname);
- else if (MN_URI_IS_IMAP(self))
- {
- const char *default_path = self_get_default_path(self->scheme);
- self->human_readable = (self->path && (! default_path || strcmp(self->path, default_path)))
- ? g_strdup_printf("%s@%s/%s", self->username, self->hostname, self->path)
- : g_strdup_printf("%s@%s", self->username, self->hostname);
- }
- else if (MN_URI_IS_GMAIL(self))
- self->human_readable = g_strdup_printf("%s@gmail.com", self->username);
- else
- self->human_readable = g_strdup(self->text);
- }
-
- private void
- post_init (self)
- {
- const char *system_uri;
-
- self_parse(self);
- self_build(self);
-
- if (self->vfs)
- {
- self->type = MN_URI_VFS;
- if (gnome_vfs_uri_is_local(self->vfs))
- self->flags |= MN_URI_LOCAL;
- }
- else if (self->scheme)
- {
- const SchemeInfo *scheme_info;
-
- scheme_info = self_get_scheme_info(self->scheme);
- if (scheme_info)
- {
- self->type = scheme_info->type;
- self->flags |= scheme_info->flags;
- }
-
- if ((MN_URI_IS_POP(self) && self_has_query(self, "STLS"))
- || (MN_URI_IS_IMAP(self) && self_has_query(self, "STARTTLS")))
- self->flags |= MN_URI_INBAND_SSL;
- }
-
- system_uri = self_get_system_mailbox();
- if (system_uri && ! strcmp(system_uri, self->text))
- self->flags |= MN_URI_SYSTEM_MAILBOX;
-
- self_set_human_readable(self);
- }
-
- public MNURI *
- new (const char *text_uri (check null))
- {
- Self *self;
- char *scheme;
-
- self = GET_NEW;
- self->text = g_str_has_prefix(text_uri, "pop3:") /* also handle obsolete pop3 locators */
- ? g_strconcat("pop://", text_uri + 5, NULL)
- : g_strdup(text_uri);
-
- /* only use GnomeVFS if we can't handle it ourselves */
- scheme = gnome_vfs_get_uri_scheme(self->text);
- if (! scheme || ! self_get_scheme_info(scheme))
- self->vfs = gnome_vfs_uri_new(self->text);
- g_free(scheme);
-
- self_post_init(self);
- return self;
- }
-
- public MNURI *
- new_pop (gboolean ssl,
- gboolean stls,
- const char *username (check null),
- const char *password,
- const char *authmech,
- const char *hostname (check null),
- int port)
- {
- Self *self;
-
- self = GET_NEW;
-
- self->scheme = g_strdup(ssl ? "pops" : "pop");
- self->username = g_strdup(username);
- self->password = g_strdup(password);
- self->authmech = g_strdup(authmech);
- self->hostname = g_strdup(hostname);
- self->port = port;
- if (stls)
- {
- self->queries = g_new(char *, 2);
- self->queries[0] = g_strdup("STLS");
- self->queries[1] = NULL;
- }
-
- self_post_init(self);
- return self;
- }
-
- public MNURI *
- new_imap (gboolean ssl,
- gboolean starttls,
- const char *username (check null),
- const char *password,
- const char *authmech,
- const char *hostname (check null),
- int port,
- const char *mailbox (check null),
- gboolean disable_idle)
- {
- Self *self;
- GSList *queries = NULL;
-
- self = GET_NEW;
-
- self->scheme = g_strdup(ssl ? "imaps" : "imap");
- self->username = g_strdup(username);
- self->password = g_strdup(password);
- self->authmech = g_strdup(authmech);
- self->hostname = g_strdup(hostname);
- self->port = port;
- self->path = g_strdup(mailbox);
- if (starttls)
- queries = g_slist_append(queries, "STARTTLS");
- if (disable_idle)
- queries = g_slist_append(queries, "noidle");
-
- if (queries)
- {
- int i = 0;
- GSList *l;
-
- self->queries = g_new(char *, g_slist_length(queries) + 1);
- MN_LIST_FOREACH(l, queries)
- self->queries[i++] = g_strdup(l->data);
- self->queries[i] = NULL;
- g_slist_free(queries);
- }
-
- self_post_init(self);
- return self;
- }
-
- public MNURI *
- new_gmail (const char *username (check null),
- const char *password)
- {
- Self *self;
-
- self = GET_NEW;
-
- self->scheme = g_strdup("gmail");
- self->username = g_strdup(username);
- self->password = g_strdup(password);
-
- self_post_init(self);
- return self;
- }
-}
diff --git a/src/mn-uri.h b/src/mn-uri.h
@@ -1,124 +0,0 @@
-/* Generated by GOB (v2.0.11) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include <libgnomevfs/gnome-vfs.h>
-
-#ifndef __MN_URI_H__
-#define __MN_URI_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-
- typedef enum
- {
- MN_URI_VFS,
- MN_URI_POP,
- MN_URI_IMAP,
- MN_URI_GMAIL,
- MN_URI_UNKNOWN
- } MNURIType;
-
- typedef enum
- {
- MN_URI_LOCAL = 1 << 0,
- MN_URI_SYSTEM_MAILBOX = 1 << 1,
- MN_URI_SSL = 1 << 2,
- MN_URI_INBAND_SSL = 1 << 3
- } MNURIFlags;
-
-#define MN_URI_IS_VFS(uri) ((uri)->type == MN_URI_VFS)
-#define MN_URI_IS_POP(uri) ((uri)->type == MN_URI_POP)
-#define MN_URI_IS_IMAP(uri) ((uri)->type == MN_URI_IMAP)
-#define MN_URI_IS_GMAIL(uri) ((uri)->type == MN_URI_GMAIL)
-
-#define MN_URI_IS_LOCAL(uri) (((uri)->flags & MN_URI_LOCAL) != 0)
-#define MN_URI_IS_SYSTEM_MAILBOX(uri) (((uri)->flags & MN_URI_SYSTEM_MAILBOX) != 0)
-#define MN_URI_IS_SSL(uri) (((uri)->flags & MN_URI_SSL) != 0)
-#define MN_URI_IS_INBAND_SSL(uri) (((uri)->flags & MN_URI_INBAND_SSL) != 0)
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_URI (mn_uri_get_type())
-#define MN_URI(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_uri_get_type(), MNURI)
-#define MN_URI_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_uri_get_type(), MNURI const)
-#define MN_URI_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_uri_get_type(), MNURIClass)
-#define MN_IS_URI(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_uri_get_type ())
-
-#define MN_URI_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_uri_get_type(), MNURIClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_URI__
-#define __TYPEDEF_MN_URI__
-typedef struct _MNURI MNURI;
-#endif
-struct _MNURI {
- GObject __parent__;
- /*< public >*/
- char * text;
- GnomeVFSURI * vfs;
- char * human_readable;
- char * scheme;
- char * username;
- char * password;
- char * authmech;
- char * hostname;
- int port;
- char * path;
- char ** queries;
- MNURIType type;
- MNURIFlags flags;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNURIClass MNURIClass;
-struct _MNURIClass {
- GObjectClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_uri_get_type (void);
-gboolean mn_uri_has_query (MNURI * self,
- const char * query);
-const char * mn_uri_get_system_mailbox (void);
-int mn_uri_get_default_port (const char * scheme);
-const char * mn_uri_get_default_path (const char * scheme);
-MNURI * mn_uri_new (const char * text_uri);
-MNURI * mn_uri_new_pop (gboolean ssl,
- gboolean stls,
- const char * username,
- const char * password,
- const char * authmech,
- const char * hostname,
- int port);
-MNURI * mn_uri_new_imap (gboolean ssl,
- gboolean starttls,
- const char * username,
- const char * password,
- const char * authmech,
- const char * hostname,
- int port,
- const char * mailbox,
- gboolean disable_idle);
-MNURI * mn_uri_new_gmail (const char * username,
- const char * password);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-util.c b/src/mn-util.c
@@ -17,11 +17,13 @@
*/
#include "config.h"
+#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <stdlib.h>
#include <time.h>
#include <errno.h>
+#include <gmodule.h>
#include <gnome.h>
#include <glade/glade.h>
#include <eel/eel.h>
@@ -33,7 +35,14 @@
/*** types *******************************************************************/
-enum {
+typedef struct
+{
+ GtkContainer *container;
+ const char *callback_prefix;
+} ContainerCreateInterfaceConnectInfo;
+
+enum
+{
TARGET_URI_LIST,
TARGET_MOZ_URL
};
@@ -52,6 +61,16 @@ typedef struct
/*** functions ***************************************************************/
+static GtkWidget *mn_glade_xml_get_widget (GladeXML *xml, const char *widget_name);
+
+static void mn_container_create_interface_connect_cb (const char *handler_name,
+ GObject *object,
+ const char *signal_name,
+ const char *signal_data,
+ GObject *connect_object,
+ gboolean after,
+ gpointer user_data);
+
static int mn_g_str_slist_compare_func (gconstpointer a, gconstpointer b);
static void mn_file_chooser_dialog_file_activated_h (GtkFileChooser *chooser,
@@ -60,6 +79,12 @@ static void mn_file_chooser_dialog_response_h (GtkDialog *dialog,
int response_id,
gpointer user_data);
+static gboolean mn_scrolled_window_drag_motion_h (GtkWidget *widget,
+ GdkDragContext *drag_context,
+ int x,
+ int y,
+ unsigned int time,
+ gpointer user_data);
static void mn_drag_data_received_h (GtkWidget *widget,
GdkDragContext *drag_context,
int x,
@@ -109,22 +134,6 @@ mn_info (const char *format, ...)
}
/**
- * mn_g_slist_delete_link_deep:
- * @list: a #GSList of g_free'able objects
- * @link_: an element in the #GSList
- *
- * Equivalent of g_slist_delete_link() for a list of g_free'able
- * objects.
- *
- * Return value: new head of @list.
- **/
-GSList *
-mn_g_slist_delete_link_deep (GSList *list, GSList *link_)
-{
- return mn_g_slist_delete_link_deep_custom(list, link_, (GFunc) g_free, NULL);
-}
-
-/**
* mn_g_slist_delete_link_deep_custom:
* @list: a #GSList of @element_free_func-freeable objects
* @link_: an element in the #GSList
@@ -231,6 +240,33 @@ mn_str_isnumeric (const char *str)
return TRUE;
}
+
+/**
+ * mn_strstr_span:
+ * @big: a string.
+ * @little: a string to search for in @big.
+ *
+ * Locates the first occurrence of @little in @big.
+ *
+ * Return value: a pointer to the character following the first
+ * occurrence of @little in @big, or %NULL if @little does not appear
+ * in @big.
+ **/
+char *
+mn_strstr_span (const char *big, const char *little)
+{
+ char *s;
+
+ g_return_val_if_fail(big != NULL, NULL);
+ g_return_val_if_fail(little != NULL, NULL);
+
+ s = strstr(big, little);
+ if (s)
+ s += strlen(little);
+
+ return s;
+}
+
GdkPixbuf *
mn_pixbuf_new (const char *filename)
{
@@ -249,6 +285,21 @@ mn_pixbuf_new (const char *filename)
return pixbuf;
}
+static GtkWidget *
+mn_glade_xml_get_widget (GladeXML *xml, const char *widget_name)
+{
+ GtkWidget *widget;
+
+ g_return_val_if_fail(GLADE_IS_XML(xml), NULL);
+ g_return_val_if_fail(widget_name != NULL, NULL);
+
+ widget = glade_xml_get_widget(xml, widget_name);
+ if (! widget)
+ g_critical(_("widget \"%s\" not found in interface \"%s\""), widget_name, xml->filename);
+
+ return widget;
+}
+
void
mn_create_interface (const char *filename, ...)
{
@@ -271,15 +322,106 @@ mn_create_interface (const char *filename, ...)
widget = va_arg(args, GtkWidget **);
g_return_if_fail(widget != NULL);
- *widget = glade_xml_get_widget(xml, widget_name);
- if (! *widget)
- g_critical(_("widget \"%s\" not found in interface \"%s\""), widget_name, filename);
+ *widget = mn_glade_xml_get_widget(xml, widget_name);
}
va_end(args);
g_object_unref(xml);
}
+void
+mn_container_create_interface (GtkContainer *container,
+ const char *filename,
+ const char *child_name,
+ const char *callback_prefix,
+ ...)
+{
+ GladeXML *xml;
+ GtkWidget *child;
+ ContainerCreateInterfaceConnectInfo info;
+ va_list args;
+ const char *widget_name;
+
+ g_return_if_fail(GTK_IS_CONTAINER(container));
+ g_return_if_fail(filename != NULL);
+ g_return_if_fail(child_name != NULL);
+ g_return_if_fail(callback_prefix != NULL);
+
+ xml = glade_xml_new(filename, child_name, NULL);
+ g_return_if_fail(xml != NULL);
+
+ child = mn_glade_xml_get_widget(xml, child_name);
+
+ if (GTK_IS_DIALOG(container))
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(container)->vbox), child, TRUE, TRUE, 0);
+ else
+ gtk_container_add(container, child);
+
+ info.container = container;
+ info.callback_prefix = callback_prefix;
+ glade_xml_signal_autoconnect_full(xml, mn_container_create_interface_connect_cb, &info);
+
+ va_start(args, callback_prefix);
+ while ((widget_name = va_arg(args, const char *)))
+ {
+ GtkWidget **widget;
+
+ widget = va_arg(args, GtkWidget **);
+ g_return_if_fail(widget != NULL);
+
+ *widget = mn_glade_xml_get_widget(xml, widget_name);
+ }
+ va_end(args);
+
+ g_object_unref(xml);
+}
+
+static void
+mn_container_create_interface_connect_cb (const char *handler_name,
+ GObject *object,
+ const char *signal_name,
+ const char *signal_data,
+ GObject *connect_object,
+ gboolean after,
+ gpointer user_data)
+{
+ static GModule *module = NULL;
+ ContainerCreateInterfaceConnectInfo *info = user_data;
+ char *cb_name;
+ GCallback cb;
+ GConnectFlags flags;
+
+ if (! module)
+ {
+ module = g_module_open(NULL, 0);
+ if (! module)
+ g_critical(_("unable to open self as a module: %s"), g_module_error());
+ }
+
+ cb_name = g_strconcat(info->callback_prefix, handler_name, NULL);
+ if (! g_module_symbol(module, cb_name, (gpointer) &cb))
+ g_critical(_("signal handler \"%s\" not found"), cb_name);
+ g_free(cb_name);
+
+ flags = G_CONNECT_SWAPPED;
+ if (after)
+ flags |= G_CONNECT_AFTER;
+
+ g_signal_connect_data(object, signal_name, cb, info->container, NULL, flags);
+}
+
+GtkWindow *
+mn_widget_get_parent_window (GtkWidget *widget)
+{
+ GtkWidget *toplevel;
+
+ g_return_val_if_fail(GTK_IS_WIDGET(widget), NULL);
+
+ toplevel = gtk_widget_get_toplevel(widget);
+
+ return GTK_WIDGET_TOPLEVEL(toplevel) ? GTK_WINDOW(toplevel) : NULL;
+}
+
/**
* mn_file_chooser_dialog_allow_select_folder:
* @dialog: a #GtkFileChooserDialog
@@ -358,12 +500,35 @@ mn_setup_dnd (GtkWidget *widget)
targets,
G_N_ELEMENTS(targets),
GDK_ACTION_COPY);
+
+ if (GTK_IS_SCROLLED_WINDOW(widget))
+ g_signal_connect(widget,
+ "drag-motion",
+ G_CALLBACK(mn_scrolled_window_drag_motion_h),
+ NULL);
+
g_signal_connect(widget,
"drag-data-received",
G_CALLBACK(mn_drag_data_received_h),
NULL);
}
+static gboolean
+mn_scrolled_window_drag_motion_h (GtkWidget *widget,
+ GdkDragContext *drag_context,
+ int x,
+ int y,
+ unsigned int time,
+ gpointer user_data)
+{
+ GtkAdjustment *adjustment;
+
+ adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(widget));
+ gtk_adjustment_set_value(adjustment, (double) y / (widget->allocation.height - 2) * (adjustment->upper - adjustment->page_size));
+
+ return TRUE; /* we're forcibly in a drop zone */
+}
+
static void
mn_drag_data_received_h (GtkWidget *widget,
GdkDragContext *drag_context,
@@ -378,38 +543,44 @@ mn_drag_data_received_h (GtkWidget *widget,
{
case TARGET_URI_LIST:
{
- char *str;
char **uriv;
int i;
- GSList *new_mailboxes = NULL;
-
- /* complies to RFC 2483, section 5 */
+ GSList *invalid_uri_list = NULL;
- if (selection_data->format != 8 || selection_data->length <= 0)
+ uriv = gtk_selection_data_get_uris(selection_data);
+ if (! uriv)
{
- g_warning(_("received an invalid URI list"));
+ mn_error_dialog(mn_widget_get_parent_window(widget),
+ NULL,
+ NULL,
+ _("A drag and drop error has occurred"),
+ _("An invalid location list has been received."));
return;
}
- str = g_strndup(selection_data->data, selection_data->length);
- uriv = g_strsplit(str, "\r\n", 0);
- g_free(str);
-
for (i = 0; uriv[i]; i++)
- if (*uriv[i] && *uriv[i] != '#' && ! mn_mailboxes_find(mn_shell->mailboxes, uriv[i]))
- new_mailboxes = g_slist_append(new_mailboxes, g_strdup(uriv[i]));
-
- g_strfreev(uriv);
-
- if (new_mailboxes)
+ if (*uriv[i])
+ {
+ MNMailbox *mailbox;
+
+ mailbox = mn_mailbox_new_from_uri(uriv[i]);
+ if (mailbox)
+ {
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
+ }
+ else
+ invalid_uri_list = g_slist_append(invalid_uri_list, uriv[i]);
+ }
+
+ if (invalid_uri_list)
{
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
- gconf_mailboxes = g_slist_concat(gconf_mailboxes, new_mailboxes);
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
+ mn_invalid_uri_list_dialog(mn_widget_get_parent_window(widget), _("A drag and drop error has occurred"), invalid_uri_list);
+ g_slist_free(invalid_uri_list);
}
+
+ g_strfreev(uriv);
}
break;
@@ -419,11 +590,16 @@ mn_drag_data_received_h (GtkWidget *widget,
const guint16 *char_data;
int char_len;
int i;
+ MNMailbox *mailbox;
/* text/x-moz-url is encoded in UCS-2 but in format 8: broken */
if (selection_data->format != 8 || selection_data->length <= 0 || (selection_data->length % 2) != 0)
{
- g_warning(_("received an invalid Mozilla URL"));
+ mn_error_dialog(mn_widget_get_parent_window(widget),
+ NULL,
+ NULL,
+ _("A drag and drop error has occurred"),
+ _("An invalid Mozilla location has been received."));
return;
}
@@ -435,40 +611,23 @@ mn_drag_data_received_h (GtkWidget *widget,
g_string_append_unichar(url, char_data[i]);
g_return_if_fail(mn_shell != NULL);
- if (! mn_mailboxes_find(mn_shell->mailboxes, url->str))
+
+ mailbox = mn_mailbox_new_from_uri(url->str);
+ if (mailbox)
{
- GSList *gconf_mailboxes;
-
- gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
- gconf_mailboxes = g_slist_append(gconf_mailboxes, g_strdup(url->str));
- eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
- eel_g_slist_free_deep(gconf_mailboxes);
+ mn_mailbox_seal(mailbox);
+ mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+ g_object_unref(mailbox);
}
-
+ else
+ mn_invalid_uri_dialog(mn_widget_get_parent_window(widget), _("A drag and drop error has occurred"), url->str);
+
g_string_free(url, TRUE);
}
break;
}
}
-char *
-mn_build_gnome_copied_files (MNGnomeCopiedFilesType type, GSList *uri_list)
-{
- GString *string;
- GSList *l;
-
- string = g_string_new(type == MN_GNOME_COPIED_FILES_CUT ? "cut" : "copy");
- MN_LIST_FOREACH(l, uri_list)
- {
- const char *uri = l->data;
-
- g_string_append_c(string, '\n');
- g_string_append(string, uri);
- }
-
- return g_string_free(string, FALSE);
-}
-
gboolean
mn_parse_gnome_copied_files (const char *gnome_copied_files,
MNGnomeCopiedFilesType *type,
@@ -609,13 +768,10 @@ mn_error_dialog_real (GtkWindow *parent,
{
GtkWidget *dialog;
- dialog = eel_alert_dialog_new(parent,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_NONE,
- primary,
- secondary,
- NULL);
+ g_return_if_fail(primary != NULL);
+ g_return_if_fail(secondary != NULL);
+
+ dialog = mn_alert_dialog_new(parent, GTK_MESSAGE_ERROR, primary, secondary);
if (not_again_key)
{
@@ -678,24 +834,70 @@ mn_error_dialog (GtkWindow *parent,
const char *format,
...)
{
+ va_list args;
char *secondary;
- if (format)
- {
- va_list args;
-
- va_start(args, format);
- secondary = g_strdup_vprintf(format, args);
- va_end(args);
- }
- else
- secondary = NULL;
+ g_return_if_fail(primary != NULL);
+ g_return_if_fail(format != NULL);
+
+ va_start(args, format);
+ secondary = g_strdup_vprintf(format, args);
+ va_end(args);
mn_error_dialog_real(parent, FALSE, not_again_key, help_link_id, primary, secondary);
g_free(secondary);
}
void
+mn_invalid_uri_dialog (GtkWindow *parent,
+ const char *primary,
+ const char *invalid_uri)
+{
+ GSList *list = NULL;
+
+ g_return_if_fail(primary != NULL);
+ g_return_if_fail(invalid_uri != NULL);
+
+ list = g_slist_append(list, (gpointer) invalid_uri);
+ mn_invalid_uri_list_dialog(parent, primary, list);
+ g_slist_free(list);
+}
+
+void
+mn_invalid_uri_list_dialog (GtkWindow *parent,
+ const char *primary,
+ const GSList *invalid_uri_list)
+{
+ GString *string;
+ const GSList *l;
+
+ g_return_if_fail(primary != NULL);
+ g_return_if_fail(invalid_uri_list != NULL);
+
+ string = g_string_new(NULL);
+
+ MN_LIST_FOREACH(l, invalid_uri_list)
+ {
+ const char *uri = l->data;
+
+ g_string_append(string, uri);
+ if (l->next)
+ g_string_append_c(string, '\n');
+ }
+
+ mn_error_dialog(parent,
+ NULL,
+ NULL,
+ primary,
+ ngettext("The following location is invalid:\n\n%s",
+ "The following locations are invalid:\n\n%s",
+ g_slist_length((GSList *) invalid_uri_list)),
+ string->str);
+
+ g_string_free(string, TRUE);
+}
+
+void
mn_fatal_error_dialog (GtkWindow *parent, const char *format, ...)
{
va_list args;
@@ -713,6 +915,30 @@ mn_fatal_error_dialog (GtkWindow *parent, const char *format, ...)
exit(1);
}
+GtkWidget *
+mn_alert_dialog_new (GtkWindow *parent,
+ GtkMessageType type,
+ const char *primary,
+ const char *secondary)
+{
+ GtkWidget *dialog;
+
+ g_return_val_if_fail(primary != NULL, NULL);
+ g_return_val_if_fail(secondary != NULL, NULL);
+
+ dialog = gtk_message_dialog_new(parent,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ type,
+ GTK_BUTTONS_NONE,
+ "%s",
+ primary);
+
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", secondary);
+ gtk_window_set_title(GTK_WINDOW(dialog), ""); /* HIG */
+
+ return dialog;
+}
+
time_t
mn_time (void)
{
@@ -840,6 +1066,54 @@ mn_gtk_object_ref_and_sink (GtkObject *object)
}
int
+mn_utf8_strcmp (const char *s1, const char *s2)
+{
+ char *normalized_s1;
+ char *normalized_s2;
+ int cmp;
+
+ g_return_val_if_fail(s1 != NULL, 0);
+ g_return_val_if_fail(s2 != NULL, 0);
+
+ normalized_s1 = g_utf8_normalize(s1, -1, G_NORMALIZE_ALL);
+ normalized_s2 = g_utf8_normalize(s2, -1, G_NORMALIZE_ALL);
+
+ cmp = strcmp(normalized_s1, normalized_s2);
+
+ g_free(normalized_s1);
+ g_free(normalized_s2);
+
+ return cmp;
+}
+
+int
+mn_utf8_strcasecmp (const char *s1, const char *s2)
+{
+ char *normalized_s1;
+ char *normalized_s2;
+ char *folded_s1;
+ char *folded_s2;
+ int cmp;
+
+ g_return_val_if_fail(s1 != NULL, 0);
+ g_return_val_if_fail(s2 != NULL, 0);
+
+ normalized_s1 = g_utf8_normalize(s1, -1, G_NORMALIZE_ALL);
+ normalized_s2 = g_utf8_normalize(s2, -1, G_NORMALIZE_ALL);
+ folded_s1 = g_utf8_casefold(normalized_s1, -1);
+ folded_s2 = g_utf8_casefold(normalized_s2, -1);
+
+ cmp = strcmp(folded_s1, folded_s2);
+
+ g_free(normalized_s1);
+ g_free(normalized_s2);
+ g_free(folded_s1);
+ g_free(folded_s2);
+
+ return cmp;
+}
+
+int
mn_utf8_strcasecoll (const char *s1, const char *s2)
{
char *folded_s1;
@@ -860,6 +1134,35 @@ mn_utf8_strcasecoll (const char *s1, const char *s2)
return coll;
}
+char *
+mn_utf8_escape (const char *str)
+{
+ GString *escaped;
+
+ g_return_val_if_fail(str != NULL, NULL);
+
+ escaped = g_string_new(NULL);
+
+ while (*str)
+ {
+ gunichar c;
+
+ c = g_utf8_get_char_validated(str, -1);
+ if (c != (gunichar) -2 && c != (gunichar) -1)
+ {
+ g_string_append_unichar(escaped, c);
+ str = g_utf8_next_char(str);
+ }
+ else
+ {
+ g_string_append_printf(escaped, "\\x%02x", (unsigned int) (unsigned char) *str);
+ str++;
+ }
+ }
+
+ return g_string_free(escaped, FALSE);
+}
+
int
mn_dialog_run_nonmodal (GtkDialog *dialog)
{
@@ -951,7 +1254,7 @@ mn_ascii_validate (const char *str)
}
void
-mn_source_remove (unsigned int *tag)
+mn_source_clear (unsigned int *tag)
{
g_return_if_fail(tag != NULL);
@@ -999,3 +1302,15 @@ mn_ascii_str_case_has_prefix (const char *str, const char *prefix)
return g_ascii_strncasecmp(str, prefix, prefix_len) == 0;
}
+
+gboolean
+mn_rename (const char *from, const char *to, GError **err)
+{
+ if (rename(from, to) < 0)
+ {
+ g_set_error(err, 0, 0, _("unable to rename %s to %s: %s"), from, to, g_strerror(errno));
+ return FALSE;
+ }
+ else
+ return TRUE;
+}
diff --git a/src/mn-util.h b/src/mn-util.h
@@ -32,8 +32,6 @@ for ((var) = (head); \
void mn_info (const char *format,
...) G_GNUC_PRINTF(1, 2);
-GSList *mn_g_slist_delete_link_deep (GSList *list,
- GSList *link_);
GSList *mn_g_slist_delete_link_deep_custom (GSList *list,
GSList *link_,
GFunc element_free_func,
@@ -49,6 +47,8 @@ GSList *mn_g_object_slist_delete_link (GSList *list,
GSList *link_);
gboolean mn_str_isnumeric (const char *str);
+char *mn_strstr_span (const char *big,
+ const char *little);
#define MN_IMAGE_FILE(path, name) path G_DIR_SEPARATOR_S name
#define MN_INTERFACE_FILE(name) UIDIR G_DIR_SEPARATOR_S name
@@ -56,6 +56,13 @@ gboolean mn_str_isnumeric (const char *str);
GdkPixbuf *mn_pixbuf_new (const char *filename);
void mn_create_interface (const char *filename,
...);
+void mn_container_create_interface (GtkContainer *container,
+ const char *filename,
+ const char *child_name,
+ const char *callback_prefix,
+ ...);
+
+GtkWindow *mn_widget_get_parent_window (GtkWidget *widget);
void mn_file_chooser_dialog_allow_select_folder (GtkFileChooserDialog *dialog,
int accept_id);
@@ -68,8 +75,6 @@ typedef enum
MN_GNOME_COPIED_FILES_COPY
} MNGnomeCopiedFilesType;
-char *mn_build_gnome_copied_files (MNGnomeCopiedFilesType type,
- GSList *uri_list);
gboolean mn_parse_gnome_copied_files (const char *gnome_copied_files,
MNGnomeCopiedFilesType *type,
GSList **uri_list);
@@ -92,10 +97,21 @@ void mn_error_dialog (GtkWindow *parent,
const char *primary,
const char *format,
...) G_GNUC_PRINTF(5, 6);
+void mn_invalid_uri_dialog (GtkWindow *parent,
+ const char *primary,
+ const char *invalid_uri);
+void mn_invalid_uri_list_dialog (GtkWindow *parent,
+ const char *primary,
+ const GSList *invalid_uri_list);
void mn_fatal_error_dialog (GtkWindow *parent,
const char *format,
...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
+GtkWidget *mn_alert_dialog_new (GtkWindow *parent,
+ GtkMessageType type,
+ const char *primary,
+ const char *secondary);
+
time_t mn_time (void);
gpointer mn_g_object_connect (gpointer object,
@@ -107,14 +123,19 @@ void mn_execute_command (const char *conf_key);
void mn_gtk_object_ref_and_sink (GtkObject *object);
+int mn_utf8_strcmp (const char *s1,
+ const char *s2);
+int mn_utf8_strcasecmp (const char *s1,
+ const char *s2);
int mn_utf8_strcasecoll (const char *s1,
const char *s2);
+char *mn_utf8_escape (const char *str);
int mn_dialog_run_nonmodal (GtkDialog *dialog);
gboolean mn_ascii_validate (const char *str);
-void mn_source_remove (unsigned int *tag);
+void mn_source_clear (unsigned int *tag);
unsigned int mn_timeout_add (const char *minutes_key,
const char *seconds_key,
@@ -124,4 +145,8 @@ unsigned int mn_timeout_add (const char *minutes_key,
gboolean mn_ascii_str_case_has_prefix (const char *str,
const char *prefix);
+gboolean mn_rename (const char *from,
+ const char *to,
+ GError **err);
+
#endif /* _MN_UTIL_H */
diff --git a/src/mn-vfs-mailbox-backend-private.h b/src/mn-vfs-mailbox-backend-private.h
@@ -0,0 +1,27 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_VFS_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_VFS_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNVFSMailboxBackendPrivate {
+#line 48 "mn-vfs-mailbox-backend.gob"
+ GMutex * mutex;
+#line 50 "mn-vfs-mailbox-backend.gob"
+ GnomeVFSMonitorHandle * monitor_handle;
+#line 18 "mn-vfs-mailbox-backend-private.h"
+};
+void mn_vfs_mailbox_backend_monitor (MNVFSMailboxBackend * self, unsigned long check_id, const char * uri, GnomeVFSMonitorType monitor_type);
+void mn_vfs_mailbox_backend_lock (MNVFSMailboxBackend * self);
+void mn_vfs_mailbox_backend_unlock (MNVFSMailboxBackend * self);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs-mailbox-backend.c b/src/mn-vfs-mailbox-backend.c
@@ -0,0 +1,463 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-vfs-mailbox-backend.h"
+
+#include "mn-vfs-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-vfs-mailbox-backend.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-private.h"
+#include "mn-conf.h"
+#include "mn-util.h"
+
+#line 38 "mn-vfs-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_VFS_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_VFS_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_VFS_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_VFS_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_VFS_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_VFS_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNVFSMailboxBackend Self;
+typedef MNVFSMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_vfs_mailbox_backend_init (MNVFSMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_backend_class_init (MNVFSMailboxBackendClass * c) G_GNUC_UNUSED;
+static void ___1_mn_vfs_mailbox_backend_finalize (GObject * object) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_backend_real_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) G_GNUC_UNUSED;
+static void ___real_mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type);
+static void mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_MAILBOX
+};
+
+/* pointer to the class of our parent */
+static GObjectClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_monitor mn_vfs_mailbox_backend_monitor
+#define self_real_monitor_cb mn_vfs_mailbox_backend_real_monitor_cb
+#define self_monitor_cb mn_vfs_mailbox_backend_monitor_cb
+#define self_is mn_vfs_mailbox_backend_is
+#define self_check mn_vfs_mailbox_backend_check
+#define self_lock mn_vfs_mailbox_backend_lock
+#define self_unlock mn_vfs_mailbox_backend_unlock
+GType
+mn_vfs_mailbox_backend_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNVFSMailboxBackendClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_vfs_mailbox_backend_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNVFSMailboxBackend),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_vfs_mailbox_backend_init,
+ NULL
+ };
+
+ type = g_type_register_static (G_TYPE_OBJECT, "MNVFSMailboxBackend", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNVFSMailboxBackend *)g_object_new(mn_vfs_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNVFSMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNVFSMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNVFSMailboxBackend *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNVFSMailboxBackend *)g_object_new_valist (mn_vfs_mailbox_backend_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::finalize"
+ MNVFSMailboxBackend *self G_GNUC_UNUSED = MN_VFS_MAILBOX_BACKEND (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 52 "mn-vfs-mailbox-backend.gob"
+ ___1_mn_vfs_mailbox_backend_finalize(obj_self);
+#line 129 "mn-vfs-mailbox-backend.c"
+#line 48 "mn-vfs-mailbox-backend.gob"
+ if(self->_priv->mutex) { g_mutex_free ((gpointer) self->_priv->mutex); self->_priv->mutex = NULL; }
+#line 132 "mn-vfs-mailbox-backend.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_vfs_mailbox_backend_init (MNVFSMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_VFS_MAILBOX_BACKEND,MNVFSMailboxBackendPrivate);
+#line 48 "mn-vfs-mailbox-backend.gob"
+ o->_priv->mutex = g_mutex_new();
+#line 143 "mn-vfs-mailbox-backend.c"
+}
+#undef __GOB_FUNCTION__
+static void
+mn_vfs_mailbox_backend_class_init (MNVFSMailboxBackendClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+ g_type_class_add_private(c,sizeof(MNVFSMailboxBackendPrivate));
+
+ parent_class = g_type_class_ref (G_TYPE_OBJECT);
+
+#line 52 "mn-vfs-mailbox-backend.gob"
+ g_object_class->finalize = ___finalize;
+#line 139 "mn-vfs-mailbox-backend.gob"
+ c->monitor_cb = ___real_mn_vfs_mailbox_backend_monitor_cb;
+#line 160 "mn-vfs-mailbox-backend.c"
+ c->is = NULL;
+ c->check = NULL;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_pointer
+ ("mailbox" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (g_object_class,
+ PROP_MAILBOX,
+ param_spec);
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::set_property"
+{
+ MNVFSMailboxBackend *self G_GNUC_UNUSED;
+
+ self = MN_VFS_MAILBOX_BACKEND (object);
+
+ switch (property_id) {
+ case PROP_MAILBOX:
+ {
+#line 46 "mn-vfs-mailbox-backend.gob"
+self->mailbox = g_value_get_pointer (VAL);
+#line 196 "mn-vfs-mailbox-backend.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::get_property"
+{
+ MNVFSMailboxBackend *self G_GNUC_UNUSED;
+
+ self = MN_VFS_MAILBOX_BACKEND (object);
+
+ switch (property_id) {
+ case PROP_MAILBOX:
+ {
+#line 46 "mn-vfs-mailbox-backend.gob"
+g_value_set_pointer (VAL, self->mailbox);
+#line 227 "mn-vfs-mailbox-backend.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 52 "mn-vfs-mailbox-backend.gob"
+static void
+___1_mn_vfs_mailbox_backend_finalize (GObject * object G_GNUC_UNUSED)
+#line 247 "mn-vfs-mailbox-backend.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::finalize"
+{
+#line 54 "mn-vfs-mailbox-backend.gob"
+
+ Self *self = SELF(object);
+
+ if (selfp->monitor_handle)
+ {
+ gnome_vfs_monitor_cancel(selfp->monitor_handle);
+ selfp->monitor_handle = NULL;
+ }
+
+ PARENT_HANDLER(object);
+ }}
+#line 266 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 66 "mn-vfs-mailbox-backend.gob"
+void
+mn_vfs_mailbox_backend_monitor (MNVFSMailboxBackend * self, unsigned long check_id, const char * uri, GnomeVFSMonitorType monitor_type)
+#line 273 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::monitor"
+#line 66 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (self != NULL);
+#line 66 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 66 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (uri != NULL);
+#line 282 "mn-vfs-mailbox-backend.c"
+{
+#line 71 "mn-vfs-mailbox-backend.gob"
+
+ GnomeVFSResult result;
+ GnomeVFSMonitorHandle *handle;
+
+ g_return_if_fail(SELF_GET_CLASS(self)->monitor_cb != NULL);
+
+ self_lock(self);
+
+ handle = selfp->monitor_handle;
+
+ self_unlock(self);
+
+ if (handle)
+ return;
+
+ result = gnome_vfs_monitor_add(&handle,
+ uri,
+ monitor_type,
+ self_real_monitor_cb,
+ self);
+
+ if (result == GNOME_VFS_OK)
+ {
+ self_lock(self);
+
+ if (! selfp->monitor_handle)
+ {
+ selfp->monitor_handle = handle;
+ handle = NULL;
+ }
+
+ self_unlock(self);
+
+ if (handle)
+ gnome_vfs_monitor_cancel(handle);
+ }
+ else
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(self->mailbox), check_id)
+ && ! selfp->monitor_handle
+ && result != self->mailbox->contents_monitor_result)
+ {
+ self->mailbox->contents_monitor_result = result;
+
+ mn_mailbox_warning(MN_MAILBOX(self->mailbox), _("unable to monitor mailbox contents (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+ mn_vfs_mailbox_monitor_error_dialog();
+
+ if (! MN_MAILBOX(self->mailbox)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self->mailbox), TRUE);
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }}
+#line 342 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 129 "mn-vfs-mailbox-backend.gob"
+static void
+mn_vfs_mailbox_backend_real_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
+#line 348 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::real_monitor_cb"
+{
+#line 135 "mn-vfs-mailbox-backend.gob"
+
+ self_monitor_cb(user_data, info_uri, event_type);
+ }}
+#line 356 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 139 "mn-vfs-mailbox-backend.gob"
+static void
+mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 362 "mn-vfs-mailbox-backend.c"
+{
+ MNVFSMailboxBackendClass *klass;
+#line 139 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (self != NULL);
+#line 139 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 369 "mn-vfs-mailbox-backend.c"
+ klass = MN_VFS_MAILBOX_BACKEND_GET_CLASS(self);
+
+ if(klass->monitor_cb)
+ (*klass->monitor_cb)(self,info_uri,event_type);
+}
+#line 139 "mn-vfs-mailbox-backend.gob"
+static void
+___real_mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 378 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::monitor_cb"
+{
+#line 143 "mn-vfs-mailbox-backend.gob"
+
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self->mailbox));
+ }}
+#line 389 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 150 "mn-vfs-mailbox-backend.gob"
+gboolean
+mn_vfs_mailbox_backend_is (MNVFSMailboxBackend * self, MNVFSMailbox * mailbox)
+#line 395 "mn-vfs-mailbox-backend.c"
+{
+ MNVFSMailboxBackendClass *klass;
+#line 150 "mn-vfs-mailbox-backend.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 150 "mn-vfs-mailbox-backend.gob"
+ g_return_val_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self), (gboolean )0);
+#line 402 "mn-vfs-mailbox-backend.c"
+ klass = MN_VFS_MAILBOX_BACKEND_GET_CLASS(self);
+
+ if(klass->is)
+ return (*klass->is)(self,mailbox);
+ else
+ return (gboolean )(0);
+}
+
+#line 153 "mn-vfs-mailbox-backend.gob"
+void
+mn_vfs_mailbox_backend_check (MNVFSMailboxBackend * self, unsigned long check_id)
+#line 414 "mn-vfs-mailbox-backend.c"
+{
+ MNVFSMailboxBackendClass *klass;
+#line 153 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (self != NULL);
+#line 153 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 421 "mn-vfs-mailbox-backend.c"
+ klass = MN_VFS_MAILBOX_BACKEND_GET_CLASS(self);
+
+ if(klass->check)
+ (*klass->check)(self,check_id);
+}
+
+#line 156 "mn-vfs-mailbox-backend.gob"
+void
+mn_vfs_mailbox_backend_lock (MNVFSMailboxBackend * self)
+#line 431 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::lock"
+#line 156 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (self != NULL);
+#line 156 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 438 "mn-vfs-mailbox-backend.c"
+{
+#line 158 "mn-vfs-mailbox-backend.gob"
+
+ g_mutex_lock(selfp->mutex);
+ }}
+#line 444 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 162 "mn-vfs-mailbox-backend.gob"
+void
+mn_vfs_mailbox_backend_unlock (MNVFSMailboxBackend * self)
+#line 450 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::unlock"
+#line 162 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (self != NULL);
+#line 162 "mn-vfs-mailbox-backend.gob"
+ g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 457 "mn-vfs-mailbox-backend.c"
+{
+#line 164 "mn-vfs-mailbox-backend.gob"
+
+ g_mutex_unlock(selfp->mutex);
+ }}
+#line 463 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-vfs-mailbox-backend.gob b/src/mn-vfs-mailbox-backend.gob
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-private.h"
+#include "mn-conf.h"
+#include "mn-util.h"
+%}
+
+class MN:VFS:Mailbox:Backend from G:Object
+{
+ classwide const char *format;
+
+ /*
+ * In order to not create reference cycles, we do not keep a
+ * reference to the mailbox. As long as we are alive, it will always
+ * be valid, since we are one of its members.
+ */
+ protected MNVFSMailbox *mailbox;
+ property POINTER mailbox (link, flags = CONSTRUCT_ONLY, type = MNVFSMailbox *);
+
+ private GMutex *mutex = {g_mutex_new()} destroywith g_mutex_free;
+
+ private GnomeVFSMonitorHandle *monitor_handle;
+
+ override (G:Object) void
+ finalize (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ if (selfp->monitor_handle)
+ {
+ gnome_vfs_monitor_cancel(selfp->monitor_handle);
+ selfp->monitor_handle = NULL;
+ }
+
+ PARENT_HANDLER(object);
+ }
+
+ protected void
+ monitor (self,
+ unsigned long check_id,
+ const char *uri (check null),
+ GnomeVFSMonitorType monitor_type)
+ {
+ GnomeVFSResult result;
+ GnomeVFSMonitorHandle *handle;
+
+ g_return_if_fail(SELF_GET_CLASS(self)->monitor_cb != NULL);
+
+ self_lock(self);
+
+ handle = selfp->monitor_handle;
+
+ self_unlock(self);
+
+ if (handle)
+ return;
+
+ result = gnome_vfs_monitor_add(&handle,
+ uri,
+ monitor_type,
+ self_real_monitor_cb,
+ self);
+
+ if (result == GNOME_VFS_OK)
+ {
+ self_lock(self);
+
+ if (! selfp->monitor_handle)
+ {
+ selfp->monitor_handle = handle;
+ handle = NULL;
+ }
+
+ self_unlock(self);
+
+ if (handle)
+ gnome_vfs_monitor_cancel(handle);
+ }
+ else
+ {
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(self->mailbox), check_id)
+ && ! selfp->monitor_handle
+ && result != self->mailbox->contents_monitor_result)
+ {
+ self->mailbox->contents_monitor_result = result;
+
+ mn_mailbox_warning(MN_MAILBOX(self->mailbox), _("unable to monitor mailbox contents (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+ mn_vfs_mailbox_monitor_error_dialog();
+
+ if (! MN_MAILBOX(self->mailbox)->must_poll)
+ mn_mailbox_set_must_poll(MN_MAILBOX(self->mailbox), TRUE);
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }
+
+ private void
+ real_monitor_cb (GnomeVFSMonitorHandle *handle,
+ const char *monitor_uri,
+ const char *info_uri,
+ GnomeVFSMonitorEventType event_type,
+ gpointer user_data)
+ {
+ self_monitor_cb(user_data, info_uri, event_type);
+ }
+
+ virtual private void
+ monitor_cb (self,
+ const char *info_uri,
+ GnomeVFSMonitorEventType event_type)
+ {
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self->mailbox));
+ }
+
+ virtual public gboolean
+ is (self, MN:VFS:Mailbox *mailbox);
+
+ virtual public void
+ check (self, unsigned long check_id);
+
+ protected void
+ lock (self)
+ {
+ g_mutex_lock(selfp->mutex);
+ }
+
+ protected void
+ unlock (self)
+ {
+ g_mutex_unlock(selfp->mutex);
+ }
+}
diff --git a/src/mn-vfs-mailbox-backend.h b/src/mn-vfs-mailbox-backend.h
@@ -0,0 +1,83 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox.h"
+
+#ifndef __MN_VFS_MAILBOX_BACKEND_H__
+#define __MN_VFS_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_VFS_MAILBOX_BACKEND (mn_vfs_mailbox_backend_get_type())
+#define MN_VFS_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackend)
+#define MN_VFS_MAILBOX_BACKEND_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackend const)
+#define MN_VFS_MAILBOX_BACKEND_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackendClass)
+#define MN_IS_VFS_MAILBOX_BACKEND(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_vfs_mailbox_backend_get_type ())
+
+#define MN_VFS_MAILBOX_BACKEND_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackendClass)
+
+/* Private structure type */
+typedef struct _MNVFSMailboxBackendPrivate MNVFSMailboxBackendPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_VFS_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_VFS_MAILBOX_BACKEND__
+typedef struct _MNVFSMailboxBackend MNVFSMailboxBackend;
+#endif
+struct _MNVFSMailboxBackend {
+ GObject __parent__;
+ /*< private >*/
+ MNVFSMailbox * mailbox; /* protected */
+ MNVFSMailboxBackendPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNVFSMailboxBackendClass MNVFSMailboxBackendClass;
+struct _MNVFSMailboxBackendClass {
+ GObjectClass __parent__;
+ void (* monitor_cb) (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type);
+ gboolean (* is) (MNVFSMailboxBackend * self, MNVFSMailbox * mailbox);
+ void (* check) (MNVFSMailboxBackend * self, unsigned long check_id);
+ const char * format;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_vfs_mailbox_backend_get_type (void);
+gboolean mn_vfs_mailbox_backend_is (MNVFSMailboxBackend * self,
+ MNVFSMailbox * mailbox);
+void mn_vfs_mailbox_backend_check (MNVFSMailboxBackend * self,
+ unsigned long check_id);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(arg) "mailbox", __extension__ ({MNVFSMailbox * z = (arg); z;})
+#define MN_VFS_MAILBOX_BACKEND_GET_PROP_MAILBOX(arg) "mailbox", __extension__ ({MNVFSMailbox * *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(arg) "mailbox",(MNVFSMailbox * )(arg)
+#define MN_VFS_MAILBOX_BACKEND_GET_PROP_MAILBOX(arg) "mailbox",(MNVFSMailbox * *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs-mailbox-private.h b/src/mn-vfs-mailbox-private.h
@@ -0,0 +1,33 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#ifndef __MN_VFS_MAILBOX_PRIVATE_H__
+#define __MN_VFS_MAILBOX_PRIVATE_H__
+
+#include "mn-vfs-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 31 "mn-vfs-mailbox.gob"
+
+#include "mn-vfs-mailbox-backend.h"
+
+#line 18 "mn-vfs-mailbox-private.h"
+struct _MNVFSMailboxPrivate {
+#line 64 "mn-vfs-mailbox.gob"
+ GnomeVFSMonitorHandle * monitor_handle;
+#line 66 "mn-vfs-mailbox.gob"
+ GnomeVFSResult type_monitor_result;
+#line 69 "mn-vfs-mailbox.gob"
+ MNVFSMailboxBackend * backend;
+#line 26 "mn-vfs-mailbox-private.h"
+};
+void mn_vfs_mailbox_monitor_error_dialog (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs-mailbox.c b/src/mn-vfs-mailbox.c
@@ -0,0 +1,610 @@
+/* Generated by GOB (v2.0.12) on Tue Aug 9 22:01:57 2005
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-vfs-mailbox.h"
+
+#include "mn-vfs-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 35 "mn-vfs-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#ifdef WITH_MBOX
+#include "mn-mbox-mailbox-backend.h"
+#endif
+#ifdef WITH_MH
+#include "mn-mh-mailbox-backend.h"
+#endif
+#ifdef WITH_MAILDIR
+#include "mn-maildir-mailbox-backend.h"
+#endif
+#ifdef WITH_SYLPHEED
+#include "mn-sylpheed-mailbox-backend.h"
+#endif
+#include "mn-vfs.h"
+#include "mn-stock.h"
+#include "mn-conf.h"
+
+GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+
+#line 49 "mn-vfs-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_VFS_MAILBOX(x)
+#define SELF_CONST(x) MN_VFS_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_VFS_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_VFS_MAILBOX
+#define SELF_CLASS(x) MN_VFS_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_VFS_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNVFSMailbox Self;
+typedef MNVFSMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void mn_vfs_mailbox_init (MNVFSMailbox * o) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_class_init (MNVFSMailboxClass * c) G_GNUC_UNUSED;
+static GObject * ___2_mn_vfs_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___3_mn_vfs_mailbox_dispose (GObject * object) G_GNUC_UNUSED;
+static void ___4_mn_vfs_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) G_GNUC_UNUSED;
+static void ___6_mn_vfs_mailbox_impl_check (MNReentrantMailbox * mailbox, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNReentrantMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_init_types mn_vfs_mailbox_init_types
+#define self_monitor_cb mn_vfs_mailbox_monitor_cb
+#define self_monitor_error_dialog mn_vfs_mailbox_monitor_error_dialog
+GType
+mn_vfs_mailbox_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNVFSMailboxClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_vfs_mailbox_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNVFSMailbox),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_vfs_mailbox_init,
+ NULL
+ };
+
+ type = g_type_register_static (MN_TYPE_REENTRANT_MAILBOX, "MNVFSMailbox", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNVFSMailbox *)g_object_new(mn_vfs_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNVFSMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNVFSMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNVFSMailbox *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNVFSMailbox *)g_object_new_valist (mn_vfs_mailbox_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::dispose"
+ MNVFSMailbox *self G_GNUC_UNUSED = MN_VFS_MAILBOX (obj_self);
+#line 108 "mn-vfs-mailbox.gob"
+ ___3_mn_vfs_mailbox_dispose(obj_self);
+#line 129 "mn-vfs-mailbox.c"
+#line 62 "mn-vfs-mailbox.gob"
+ if(self->vfs_uri) { gnome_vfs_uri_unref ((gpointer) self->vfs_uri); self->vfs_uri = NULL; }
+#line 132 "mn-vfs-mailbox.c"
+#line 69 "mn-vfs-mailbox.gob"
+ if(self->_priv->backend) { g_object_unref ((gpointer) self->_priv->backend); self->_priv->backend = NULL; }
+#line 135 "mn-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::finalize"
+ MNVFSMailbox *self G_GNUC_UNUSED = MN_VFS_MAILBOX (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 61 "mn-vfs-mailbox.gob"
+ if(self->uri) { g_free ((gpointer) self->uri); self->uri = NULL; }
+#line 150 "mn-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_vfs_mailbox_init (MNVFSMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_VFS_MAILBOX,MNVFSMailboxPrivate);
+#line 35 "mn-vfs-mailbox.gob"
+ o->_priv->type_monitor_result = GNOME_VFS_OK;
+#line 161 "mn-vfs-mailbox.c"
+#line 35 "mn-vfs-mailbox.gob"
+ o->contents_monitor_result = GNOME_VFS_OK;
+#line 164 "mn-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+static void
+mn_vfs_mailbox_class_init (MNVFSMailboxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
+ MNReentrantMailboxClass *mn_reentrant_mailbox_class = (MNReentrantMailboxClass *)c;
+
+ g_type_class_add_private(c,sizeof(MNVFSMailboxPrivate));
+
+ parent_class = g_type_class_ref (MN_TYPE_REENTRANT_MAILBOX);
+
+#line 91 "mn-vfs-mailbox.gob"
+ g_object_class->constructor = ___2_mn_vfs_mailbox_constructor;
+#line 108 "mn-vfs-mailbox.gob"
+ g_object_class->dispose = ___dispose;
+#line 126 "mn-vfs-mailbox.gob"
+ mn_mailbox_class->seal = ___4_mn_vfs_mailbox_seal;
+#line 171 "mn-vfs-mailbox.gob"
+ mn_reentrant_mailbox_class->impl_check = ___6_mn_vfs_mailbox_impl_check;
+#line 187 "mn-vfs-mailbox.c"
+ g_object_class->finalize = ___finalize;
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 71 "mn-vfs-mailbox.gob"
+void
+mn_vfs_mailbox_init_types (void)
+#line 197 "mn-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::init_types"
+{
+#line 73 "mn-vfs-mailbox.gob"
+
+ int i = 0;
+
+#ifdef WITH_MBOX
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MBOX_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MH
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MH_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MAILDIR
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MAILDIR_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_SYLPHEED
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_SYLPHEED_MAILBOX_BACKEND;
+#endif
+ mn_vfs_mailbox_backend_types[i] = 0;
+ }}
+#line 219 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 91 "mn-vfs-mailbox.gob"
+static GObject *
+___2_mn_vfs_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 225 "mn-vfs-mailbox.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+ ((G_OBJECT_CLASS(parent_class)->constructor)? \
+ (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+ ((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::constructor"
+{
+#line 93 "mn-vfs-mailbox.gob"
+
+ GObject *object;
+ Self *self;
+ SelfClass *class;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+ class = SELF_GET_CLASS(self);
+
+ if (class->stock_id)
+ mn_mailbox_set_stock_id(MN_MAILBOX(self), (char *) class->stock_id);
+
+ return object;
+ }}
+#line 248 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 108 "mn-vfs-mailbox.gob"
+static void
+___3_mn_vfs_mailbox_dispose (GObject * object G_GNUC_UNUSED)
+#line 255 "mn-vfs-mailbox.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->dispose) \
+ (* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::dispose"
+{
+#line 110 "mn-vfs-mailbox.gob"
+
+ Self *self = SELF(object);
+
+ /*
+ * We are no longer operational after dispose (see unrefwith
+ * above), so we must remove our monitor.
+ */
+ if (selfp->monitor_handle)
+ {
+ gnome_vfs_monitor_cancel(selfp->monitor_handle);
+ selfp->monitor_handle = NULL;
+ }
+
+ PARENT_HANDLER(object);
+ }}
+#line 278 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 126 "mn-vfs-mailbox.gob"
+static void
+___4_mn_vfs_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 285 "mn-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->seal) \
+ (* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::seal"
+{
+#line 128 "mn-vfs-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+
+ PARENT_HANDLER(mailbox);
+
+ if (self->uri)
+ {
+ self->vfs_uri = gnome_vfs_uri_new(self->uri);
+
+ if (! mailbox->runtime_name)
+ {
+ char *path;
+
+ path = gnome_vfs_get_local_path_from_uri(self->uri);
+ if (path)
+ {
+ mailbox->runtime_name = g_filename_display_name(path);
+ g_free(path);
+ }
+ else
+ mailbox->runtime_name = self->vfs_uri
+ ? gnome_vfs_uri_to_string(self->vfs_uri, GNOME_VFS_URI_HIDE_PASSWORD)
+ : g_strdup(self->uri);
+ }
+ }
+ }}
+#line 319 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 155 "mn-vfs-mailbox.gob"
+static void
+mn_vfs_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
+#line 326 "mn-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::monitor_cb"
+{
+#line 161 "mn-vfs-mailbox.gob"
+
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ Self *self = user_data;
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+ }
+ }}
+#line 340 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 171 "mn-vfs-mailbox.gob"
+static void
+___6_mn_vfs_mailbox_impl_check (MNReentrantMailbox * mailbox G_GNUC_UNUSED, unsigned long check_id)
+#line 346 "mn-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox,___check_id) \
+ { if(MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check) \
+ (* MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::impl_check"
+{
+#line 173 "mn-vfs-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+ MNVFSMailboxBackend *backend;
+ GnomeVFSMonitorHandle *handle;
+ GType backend_type = 0;
+ gboolean exists;
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ handle = selfp->monitor_handle;
+
+ backend = selfp->backend;
+ if (backend)
+ g_object_ref(backend);
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (! handle)
+ {
+ GnomeVFSResult result;
+
+ result = gnome_vfs_monitor_add(&handle,
+ self->uri,
+ GNOME_VFS_MONITOR_FILE,
+ self_monitor_cb,
+ self);
+
+ if (result == GNOME_VFS_OK)
+ {
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (! selfp->monitor_handle)
+ {
+ selfp->monitor_handle = handle;
+ handle = NULL;
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (handle)
+ gnome_vfs_monitor_cancel(handle);
+ else
+ {
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }
+ else
+ {
+ gboolean warn = FALSE;
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (! selfp->monitor_handle && result != selfp->type_monitor_result)
+ {
+ warn = TRUE;
+ selfp->type_monitor_result = result;
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (warn)
+ {
+ mn_mailbox_warning(MN_MAILBOX(self), _("unable to monitor mailbox type (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+
+ GDK_THREADS_ENTER();
+ self_monitor_error_dialog();
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }
+ }
+
+ if (backend && MN_VFS_MAILBOX_BACKEND_GET_CLASS(backend)->is(NULL, self))
+ backend_type = G_OBJECT_TYPE(backend);
+ else
+ {
+ exists = mn_vfs_test(self->vfs_uri, G_FILE_TEST_EXISTS);
+ if (exists)
+ {
+ int i;
+
+ for (i = 0; mn_vfs_mailbox_backend_types[i]; i++)
+ {
+ MNVFSMailboxBackendClass *class;
+
+ class = g_type_class_peek(mn_vfs_mailbox_backend_types[i]);
+ g_return_if_fail(class != NULL);
+
+ if (class->is(NULL, self))
+ {
+ backend_type = mn_vfs_mailbox_backend_types[i];
+ break;
+ }
+
+ if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+ goto end;
+ }
+ }
+ }
+
+ if (! backend || backend_type != G_OBJECT_TYPE(backend))
+ {
+ gboolean is_local;
+ MNVFSMailboxBackend *new_backend = NULL;
+
+ is_local = gnome_vfs_uri_is_local(self->vfs_uri);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ if (backend)
+ {
+ /* reset must-poll and contents_monitor_result */
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), selfp->monitor_handle == NULL);
+ self->contents_monitor_result = GNOME_VFS_OK;
+ }
+
+ if (backend_type)
+ {
+ new_backend = g_object_new(backend_type, MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(self), NULL);
+
+ mn_mailbox_set_format(MN_MAILBOX(self), (char *) MN_VFS_MAILBOX_BACKEND_GET_CLASS(new_backend)->format);
+ if (! SELF_GET_CLASS(self)->stock_id)
+ mn_mailbox_set_stock_id(MN_MAILBOX(self), is_local ? MN_STOCK_LOCAL : MN_STOCK_REMOTE);
+ }
+ else
+ {
+ mn_mailbox_set_format(MN_MAILBOX(self), NULL);
+ if (! SELF_GET_CLASS(self)->stock_id)
+ mn_mailbox_set_stock_id(MN_MAILBOX(self), MN_STOCK_UNKNOWN);
+ mn_mailbox_set_error(MN_MAILBOX(self), exists ? _("unknown mailbox format") : _("does not exist"));
+ }
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (backend)
+ {
+ g_object_unref(backend);
+ backend = NULL;
+ }
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ if (selfp->backend)
+ {
+ g_object_unref(selfp->backend);
+ selfp->backend = NULL;
+ }
+
+ if (new_backend)
+ {
+ selfp->backend = backend = new_backend;
+ new_backend = NULL;
+
+ g_object_ref(backend);
+ }
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (new_backend)
+ g_object_unref(new_backend);
+ }
+
+ if (backend)
+ mn_vfs_mailbox_backend_check(backend, check_id);
+
+ end:
+ if (backend)
+ {
+ mn_reentrant_mailbox_lock(mailbox);
+ g_object_unref(backend);
+ mn_reentrant_mailbox_unlock(mailbox);
+ }
+ }}
+#line 537 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 357 "mn-vfs-mailbox.gob"
+void
+mn_vfs_mailbox_monitor_error_dialog (void)
+#line 544 "mn-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::monitor_error_dialog"
+{
+#line 359 "mn-vfs-mailbox.gob"
+
+ static gboolean first_time = TRUE;
+ int minutes;
+ int seconds;
+ char *str;
+
+ if (! first_time)
+ return;
+
+ if (eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
+ return;
+
+ first_time = FALSE;
+
+ minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
+ seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
+
+ if (minutes == 0)
+ str = g_strdup_printf(ngettext("As a fallback, they will be "
+ "checked every %i second (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ "As a fallback, they will be "
+ "checked every %i seconds (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ seconds),
+ seconds);
+ else if (seconds == 0)
+ str = g_strdup_printf(ngettext("As a fallback, they will be "
+ "checked every %i minute (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ "As a fallback, they will be "
+ "checked every %i minutes (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ minutes),
+ minutes);
+ else
+ str = g_strdup_printf(ngettext("As a fallback, they will be "
+ "checked approximately every %i "
+ "minute (this delay is "
+ "configurable from the "
+ "Properties Dialog).",
+ "As a fallback, they will be "
+ "checked approximately every %i "
+ "minutes (this delay is "
+ "configurable from the "
+ "Properties Dialog).",
+ minutes),
+ minutes);
+
+ mn_error_dialog(NULL,
+ MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
+ "immediate-notification",
+ _("A monitoring error has occurred"),
+ _("Mail Notification was unable to enable immediate "
+ "notification for one or more mailboxes. %s"), str);
+ g_free(str);
+ }}
+#line 610 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-vfs-mailbox.gob b/src/mn-vfs-mailbox.gob
@@ -0,0 +1,420 @@
+/*
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <libgnomevfs/gnome-vfs.h>
+#include "mn-reentrant-mailbox.h"
+%}
+
+%h{
+#define MN_VFS_MAILBOX_MAX_BACKEND_TYPES 4
+extern GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+%}
+
+%privateheader{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#ifdef WITH_MBOX
+#include "mn-mbox-mailbox-backend.h"
+#endif
+#ifdef WITH_MH
+#include "mn-mh-mailbox-backend.h"
+#endif
+#ifdef WITH_MAILDIR
+#include "mn-maildir-mailbox-backend.h"
+#endif
+#ifdef WITH_SYLPHEED
+#include "mn-sylpheed-mailbox-backend.h"
+#endif
+#include "mn-vfs.h"
+#include "mn-stock.h"
+#include "mn-conf.h"
+
+GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+%}
+
+class MN:VFS:Mailbox from MN:Reentrant:Mailbox
+{
+ classwide const char *stock_id;
+
+ public char *uri destroywith g_free;
+ public GnomeVFSURI *vfs_uri unrefwith gnome_vfs_uri_unref;
+
+ private GnomeVFSMonitorHandle *monitor_handle;
+
+ private GnomeVFSResult type_monitor_result = GNOME_VFS_OK;
+ protected GnomeVFSResult contents_monitor_result = GNOME_VFS_OK;
+
+ private MNVFSMailboxBackend *backend unrefwith g_object_unref;
+
+ public void
+ init_types (void)
+ {
+ int i = 0;
+
+#ifdef WITH_MBOX
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MBOX_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MH
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MH_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MAILDIR
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MAILDIR_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_SYLPHEED
+ mn_vfs_mailbox_backend_types[i++] = MN_TYPE_SYLPHEED_MAILBOX_BACKEND;
+#endif
+ mn_vfs_mailbox_backend_types[i] = 0;
+ }
+
+ override (G:Object) GObject *
+ constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+ {
+ GObject *object;
+ Self *self;
+ SelfClass *class;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+ class = SELF_GET_CLASS(self);
+
+ if (class->stock_id)
+ mn_mailbox_set_stock_id(MN_MAILBOX(self), (char *) class->stock_id);
+
+ return object;
+ }
+
+ override (G:Object) void
+ dispose (GObject *object)
+ {
+ Self *self = SELF(object);
+
+ /*
+ * We are no longer operational after dispose (see unrefwith
+ * above), so we must remove our monitor.
+ */
+ if (selfp->monitor_handle)
+ {
+ gnome_vfs_monitor_cancel(selfp->monitor_handle);
+ selfp->monitor_handle = NULL;
+ }
+
+ PARENT_HANDLER(object);
+ }
+
+ override (MN:Mailbox) void
+ seal (MNMailbox *mailbox)
+ {
+ Self *self = SELF(mailbox);
+
+ PARENT_HANDLER(mailbox);
+
+ if (self->uri)
+ {
+ self->vfs_uri = gnome_vfs_uri_new(self->uri);
+
+ if (! mailbox->runtime_name)
+ {
+ char *path;
+
+ path = gnome_vfs_get_local_path_from_uri(self->uri);
+ if (path)
+ {
+ mailbox->runtime_name = g_filename_display_name(path);
+ g_free(path);
+ }
+ else
+ mailbox->runtime_name = self->vfs_uri
+ ? gnome_vfs_uri_to_string(self->vfs_uri, GNOME_VFS_URI_HIDE_PASSWORD)
+ : g_strdup(self->uri);
+ }
+ }
+ }
+
+ private void
+ monitor_cb (GnomeVFSMonitorHandle *handle,
+ const char *monitor_uri,
+ const char *info_uri,
+ GnomeVFSMonitorEventType event_type,
+ gpointer user_data)
+ {
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+ || event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+ || event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+ {
+ Self *self = user_data;
+ mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+ }
+ }
+
+ override (MN:Reentrant:Mailbox) void
+ impl_check (MNReentrantMailbox *mailbox, unsigned long check_id)
+ {
+ Self *self = SELF(mailbox);
+ MNVFSMailboxBackend *backend;
+ GnomeVFSMonitorHandle *handle;
+ GType backend_type = 0;
+ gboolean exists;
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ handle = selfp->monitor_handle;
+
+ backend = selfp->backend;
+ if (backend)
+ g_object_ref(backend);
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (! handle)
+ {
+ GnomeVFSResult result;
+
+ result = gnome_vfs_monitor_add(&handle,
+ self->uri,
+ GNOME_VFS_MONITOR_FILE,
+ self_monitor_cb,
+ self);
+
+ if (result == GNOME_VFS_OK)
+ {
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (! selfp->monitor_handle)
+ {
+ selfp->monitor_handle = handle;
+ handle = NULL;
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (handle)
+ gnome_vfs_monitor_cancel(handle);
+ else
+ {
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }
+ else
+ {
+ gboolean warn = FALSE;
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (! selfp->monitor_handle && result != selfp->type_monitor_result)
+ {
+ warn = TRUE;
+ selfp->type_monitor_result = result;
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (warn)
+ {
+ mn_mailbox_warning(MN_MAILBOX(self), _("unable to monitor mailbox type (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+
+ GDK_THREADS_ENTER();
+ self_monitor_error_dialog();
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+ }
+ }
+ }
+
+ if (backend && MN_VFS_MAILBOX_BACKEND_GET_CLASS(backend)->is(NULL, self))
+ backend_type = G_OBJECT_TYPE(backend);
+ else
+ {
+ exists = mn_vfs_test(self->vfs_uri, G_FILE_TEST_EXISTS);
+ if (exists)
+ {
+ int i;
+
+ for (i = 0; mn_vfs_mailbox_backend_types[i]; i++)
+ {
+ MNVFSMailboxBackendClass *class;
+
+ class = g_type_class_peek(mn_vfs_mailbox_backend_types[i]);
+ g_return_if_fail(class != NULL);
+
+ if (class->is(NULL, self))
+ {
+ backend_type = mn_vfs_mailbox_backend_types[i];
+ break;
+ }
+
+ if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+ goto end;
+ }
+ }
+ }
+
+ if (! backend || backend_type != G_OBJECT_TYPE(backend))
+ {
+ gboolean is_local;
+ MNVFSMailboxBackend *new_backend = NULL;
+
+ is_local = gnome_vfs_uri_is_local(self->vfs_uri);
+
+ GDK_THREADS_ENTER();
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ if (backend)
+ {
+ /* reset must-poll and contents_monitor_result */
+ mn_mailbox_set_must_poll(MN_MAILBOX(self), selfp->monitor_handle == NULL);
+ self->contents_monitor_result = GNOME_VFS_OK;
+ }
+
+ if (backend_type)
+ {
+ new_backend = g_object_new(backend_type, MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(self), NULL);
+
+ mn_mailbox_set_format(MN_MAILBOX(self), (char *) MN_VFS_MAILBOX_BACKEND_GET_CLASS(new_backend)->format);
+ if (! SELF_GET_CLASS(self)->stock_id)
+ mn_mailbox_set_stock_id(MN_MAILBOX(self), is_local ? MN_STOCK_LOCAL : MN_STOCK_REMOTE);
+ }
+ else
+ {
+ mn_mailbox_set_format(MN_MAILBOX(self), NULL);
+ if (! SELF_GET_CLASS(self)->stock_id)
+ mn_mailbox_set_stock_id(MN_MAILBOX(self), MN_STOCK_UNKNOWN);
+ mn_mailbox_set_error(MN_MAILBOX(self), exists ? _("unknown mailbox format") : _("does not exist"));
+ }
+ }
+
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ mn_reentrant_mailbox_lock(mailbox);
+
+ if (backend)
+ {
+ g_object_unref(backend);
+ backend = NULL;
+ }
+
+ if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+ {
+ if (selfp->backend)
+ {
+ g_object_unref(selfp->backend);
+ selfp->backend = NULL;
+ }
+
+ if (new_backend)
+ {
+ selfp->backend = backend = new_backend;
+ new_backend = NULL;
+
+ g_object_ref(backend);
+ }
+ }
+
+ mn_reentrant_mailbox_unlock(mailbox);
+
+ if (new_backend)
+ g_object_unref(new_backend);
+ }
+
+ if (backend)
+ mn_vfs_mailbox_backend_check(backend, check_id);
+
+ end:
+ if (backend)
+ {
+ mn_reentrant_mailbox_lock(mailbox);
+ g_object_unref(backend);
+ mn_reentrant_mailbox_unlock(mailbox);
+ }
+ }
+
+ protected void
+ monitor_error_dialog (void)
+ {
+ static gboolean first_time = TRUE;
+ int minutes;
+ int seconds;
+ char *str;
+
+ if (! first_time)
+ return;
+
+ if (eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
+ return;
+
+ first_time = FALSE;
+
+ minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
+ seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
+
+ if (minutes == 0)
+ str = g_strdup_printf(ngettext("As a fallback, they will be "
+ "checked every %i second (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ "As a fallback, they will be "
+ "checked every %i seconds (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ seconds),
+ seconds);
+ else if (seconds == 0)
+ str = g_strdup_printf(ngettext("As a fallback, they will be "
+ "checked every %i minute (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ "As a fallback, they will be "
+ "checked every %i minutes (this "
+ "delay is configurable from the "
+ "Properties Dialog).",
+ minutes),
+ minutes);
+ else
+ str = g_strdup_printf(ngettext("As a fallback, they will be "
+ "checked approximately every %i "
+ "minute (this delay is "
+ "configurable from the "
+ "Properties Dialog).",
+ "As a fallback, they will be "
+ "checked approximately every %i "
+ "minutes (this delay is "
+ "configurable from the "
+ "Properties Dialog).",
+ minutes),
+ minutes);
+
+ mn_error_dialog(NULL,
+ MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
+ "immediate-notification",
+ _("A monitoring error has occurred"),
+ _("Mail Notification was unable to enable immediate "
+ "notification for one or more mailboxes. %s"), str);
+ g_free(str);
+ }
+}
diff --git a/src/mn-vfs-mailbox.h b/src/mn-vfs-mailbox.h
@@ -0,0 +1,74 @@
+/* Generated by GOB (v2.0.12) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <libgnomevfs/gnome-vfs.h>
+#include "mn-reentrant-mailbox.h"
+
+#ifndef __MN_VFS_MAILBOX_H__
+#define __MN_VFS_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+#define MN_VFS_MAILBOX_MAX_BACKEND_TYPES 4
+extern GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_VFS_MAILBOX (mn_vfs_mailbox_get_type())
+#define MN_VFS_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_get_type(), MNVFSMailbox)
+#define MN_VFS_MAILBOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_get_type(), MNVFSMailbox const)
+#define MN_VFS_MAILBOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_vfs_mailbox_get_type(), MNVFSMailboxClass)
+#define MN_IS_VFS_MAILBOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_vfs_mailbox_get_type ())
+
+#define MN_VFS_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_vfs_mailbox_get_type(), MNVFSMailboxClass)
+
+/* Private structure type */
+typedef struct _MNVFSMailboxPrivate MNVFSMailboxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_VFS_MAILBOX__
+#define __TYPEDEF_MN_VFS_MAILBOX__
+typedef struct _MNVFSMailbox MNVFSMailbox;
+#endif
+struct _MNVFSMailbox {
+ MNReentrantMailbox __parent__;
+ /*< public >*/
+ char * uri;
+ GnomeVFSURI * vfs_uri;
+ /*< private >*/
+ GnomeVFSResult contents_monitor_result; /* protected */
+ MNVFSMailboxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNVFSMailboxClass MNVFSMailboxClass;
+struct _MNVFSMailboxClass {
+ MNReentrantMailboxClass __parent__;
+ const char * stock_id;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_vfs_mailbox_get_type (void);
+void mn_vfs_mailbox_init_types (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs.c b/src/mn-vfs.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -156,3 +156,20 @@ mn_vfs_test (GnomeVFSURI *uri, GFileTest test)
return status;
}
+
+GnomeVFSResult
+mn_vfs_read_entire_file_uri (GnomeVFSURI *uri,
+ int *file_size,
+ char **file_contents)
+{
+ char *text_uri;
+ GnomeVFSResult result;
+
+ g_return_val_if_fail(uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
+
+ text_uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
+ result = gnome_vfs_read_entire_file(text_uri, file_size, file_contents);
+ g_free(text_uri);
+
+ return result;
+}
diff --git a/src/mn-vfs.h b/src/mn-vfs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
*
* 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
@@ -32,4 +32,8 @@ void mn_vfs_read_line_context_free (MNVFSReadLineContext *context);
gboolean mn_vfs_test (GnomeVFSURI *uri, GFileTest test);
+GnomeVFSResult mn_vfs_read_entire_file_uri (GnomeVFSURI *uri,
+ int *file_size,
+ char **file_contents);
+
#endif /* _MN_VFS_H */
diff --git a/src/nautilus-cell-renderer-pixbuf-emblem.c b/src/nautilus-cell-renderer-pixbuf-emblem.c
@@ -0,0 +1,505 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
+
+ nautilus-cell-renderer-pixbuf-emblem.c: cell renderer which can render
+ an emblem on top of a pixbuf (for use in FMListView and FMTreeView)
+
+ Copyright (C) 2003 Juerg Billeter
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ This is based on GtkCellRendererPixbuf written by
+ Jonathan Blandford <jrb@redhat.com>
+
+ Author: Juerg Billeter <j@bitron.ch>
+*/
+
+#include "nautilus-cell-renderer-pixbuf-emblem.h"
+
+static void nautilus_cell_renderer_pixbuf_emblem_get_property (GObject *object,
+ guint param_id,
+ GValue *value,
+ GParamSpec *pspec);
+static void nautilus_cell_renderer_pixbuf_emblem_set_property (GObject *object,
+ guint param_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void nautilus_cell_renderer_pixbuf_emblem_init (NautilusCellRendererPixbufEmblem *cellpixbuf);
+static void nautilus_cell_renderer_pixbuf_emblem_class_init (NautilusCellRendererPixbufEmblemClass *klass);
+static void nautilus_cell_renderer_pixbuf_emblem_finalize (GObject *object);
+static void nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (NautilusCellRendererPixbufEmblem *cellpixbuf,
+ GtkWidget *widget);
+static void nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+ GdkRectangle *rectangle,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height);
+static void nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+ GdkWindow *window,
+ GtkWidget *widget,
+ GdkRectangle *background_area,
+ GdkRectangle *cell_area,
+ GdkRectangle *expose_area,
+ GtkCellRendererState flags);
+
+enum {
+ PROP_ZERO,
+ PROP_PIXBUF,
+ PROP_PIXBUF_EXPANDER_OPEN,
+ PROP_PIXBUF_EXPANDER_CLOSED,
+ PROP_STOCK_ID,
+ PROP_STOCK_SIZE,
+ PROP_STOCK_DETAIL,
+ PROP_PIXBUF_EMBLEM
+};
+
+static gpointer parent_class;
+
+#define CELLINFO_KEY "nautilus-cell-renderer-pixbuf-emblem-info"
+
+typedef struct _NautilusCellRendererPixbufEmblemInfo NautilusCellRendererPixbufEmblemInfo;
+struct _NautilusCellRendererPixbufEmblemInfo
+{
+ gchar *stock_id;
+ GtkIconSize stock_size;
+ gchar *stock_detail;
+};
+
+GType
+nautilus_cell_renderer_pixbuf_emblem_get_type (void)
+{
+ static GType cell_pixbuf_type = 0;
+
+ if (!cell_pixbuf_type) {
+ static const GTypeInfo cell_pixbuf_info =
+ {
+ sizeof (NautilusCellRendererPixbufEmblemClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) nautilus_cell_renderer_pixbuf_emblem_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (NautilusCellRendererPixbufEmblem),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) nautilus_cell_renderer_pixbuf_emblem_init,
+ };
+
+ cell_pixbuf_type = g_type_register_static (GTK_TYPE_CELL_RENDERER,
+ "NautilusCellRendererPixbufEmblem",
+ &cell_pixbuf_info, 0);
+ }
+
+ return cell_pixbuf_type;
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_init (NautilusCellRendererPixbufEmblem *cellpixbuf)
+{
+ NautilusCellRendererPixbufEmblemInfo *cellinfo;
+
+ cellinfo = g_new0 (NautilusCellRendererPixbufEmblemInfo, 1);
+ cellinfo->stock_size = GTK_ICON_SIZE_MENU;
+ g_object_set_data (G_OBJECT (cellpixbuf), CELLINFO_KEY, cellinfo);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_class_init (NautilusCellRendererPixbufEmblemClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (klass);
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->finalize = nautilus_cell_renderer_pixbuf_emblem_finalize;
+
+ object_class->get_property = nautilus_cell_renderer_pixbuf_emblem_get_property;
+ object_class->set_property = nautilus_cell_renderer_pixbuf_emblem_set_property;
+
+ cell_class->get_size = nautilus_cell_renderer_pixbuf_emblem_get_size;
+ cell_class->render = nautilus_cell_renderer_pixbuf_emblem_render;
+
+ g_object_class_install_property (object_class,
+ PROP_PIXBUF,
+ g_param_spec_object ("pixbuf",
+ "Pixbuf Object",
+ "The pixbuf to render",
+ GDK_TYPE_PIXBUF,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_PIXBUF_EXPANDER_OPEN,
+ g_param_spec_object ("pixbuf_expander_open",
+ "Pixbuf Expander Open",
+ "Pixbuf for open expander",
+ GDK_TYPE_PIXBUF,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_PIXBUF_EXPANDER_CLOSED,
+ g_param_spec_object ("pixbuf_expander_closed",
+ "Pixbuf Expander Closed",
+ "Pixbuf for closed expander",
+ GDK_TYPE_PIXBUF,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_STOCK_ID,
+ g_param_spec_string ("stock_id",
+ "Stock ID",
+ "The stock ID of the stock icon to render",
+ NULL,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_STOCK_SIZE,
+ g_param_spec_enum ("stock_size",
+ "Size",
+ "The size of the rendered icon",
+ GTK_TYPE_ICON_SIZE,
+ GTK_ICON_SIZE_MENU,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_STOCK_DETAIL,
+ g_param_spec_string ("stock_detail",
+ "Detail",
+ "Render detail to pass to the theme engine",
+ NULL,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_PIXBUF_EMBLEM,
+ g_param_spec_object ("pixbuf_emblem",
+ "Pixbuf Emblem Object",
+ "The emblem to overlay",
+ GDK_TYPE_PIXBUF,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE));
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_finalize (GObject *object)
+{
+ NautilusCellRendererPixbufEmblem *cellpixbuf = NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM (object);
+ NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (object, CELLINFO_KEY);
+
+ if (cellpixbuf->pixbuf && cellinfo->stock_id) {
+ g_object_unref (cellpixbuf->pixbuf);
+ }
+
+ if (cellinfo->stock_id) {
+ g_free (cellinfo->stock_id);
+ }
+
+ if (cellinfo->stock_detail) {
+ g_free (cellinfo->stock_detail);
+ }
+
+ g_free (cellinfo);
+ g_object_set_data (object, CELLINFO_KEY, NULL);
+
+ (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_get_property (GObject *object,
+ guint param_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ NautilusCellRendererPixbufEmblem *cellpixbuf = NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM (object);
+ NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (object, CELLINFO_KEY);
+
+ switch (param_id)
+ {
+ case PROP_PIXBUF:
+ g_value_set_object (value,
+ cellpixbuf->pixbuf ? G_OBJECT (cellpixbuf->pixbuf) : NULL);
+ break;
+ case PROP_PIXBUF_EXPANDER_OPEN:
+ g_value_set_object (value,
+ cellpixbuf->pixbuf_expander_open ? G_OBJECT (cellpixbuf->pixbuf_expander_open) : NULL);
+ break;
+ case PROP_PIXBUF_EXPANDER_CLOSED:
+ g_value_set_object (value,
+ cellpixbuf->pixbuf_expander_closed ? G_OBJECT (cellpixbuf->pixbuf_expander_closed) : NULL);
+ break;
+ case PROP_STOCK_ID:
+ g_value_set_string (value, cellinfo->stock_id);
+ break;
+ case PROP_STOCK_SIZE:
+ g_value_set_enum (value, cellinfo->stock_size);
+ break;
+ case PROP_STOCK_DETAIL:
+ g_value_set_string (value, cellinfo->stock_detail);
+ break;
+ case PROP_PIXBUF_EMBLEM:
+ g_value_set_object (value,
+ cellpixbuf->pixbuf_emblem ? G_OBJECT (cellpixbuf->pixbuf_emblem) : NULL);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+ break;
+ }
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_set_property (GObject *object,
+ guint param_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GdkPixbuf *pixbuf;
+ NautilusCellRendererPixbufEmblem *cellpixbuf = NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM (object);
+ NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (object, CELLINFO_KEY);
+
+ switch (param_id)
+ {
+ case PROP_PIXBUF:
+ pixbuf = (GdkPixbuf*) g_value_get_object (value);
+ if (pixbuf) {
+ g_object_ref (pixbuf);
+ }
+ if (cellpixbuf->pixbuf) {
+ g_object_unref (cellpixbuf->pixbuf);
+ }
+ cellpixbuf->pixbuf = pixbuf;
+ break;
+ case PROP_PIXBUF_EXPANDER_OPEN:
+ pixbuf = (GdkPixbuf*) g_value_get_object (value);
+ if (pixbuf) {
+ g_object_ref (pixbuf);
+ }
+ if (cellpixbuf->pixbuf_expander_open) {
+ g_object_unref (cellpixbuf->pixbuf_expander_open);
+ }
+ cellpixbuf->pixbuf_expander_open = pixbuf;
+ break;
+ case PROP_PIXBUF_EXPANDER_CLOSED:
+ pixbuf = (GdkPixbuf*) g_value_get_object (value);
+ if (pixbuf) {
+ g_object_ref (pixbuf);
+ }
+ if (cellpixbuf->pixbuf_expander_closed) {
+ g_object_unref (cellpixbuf->pixbuf_expander_closed);
+ }
+ cellpixbuf->pixbuf_expander_closed = pixbuf;
+ break;
+ case PROP_STOCK_ID:
+ if (cellinfo->stock_id) {
+ g_free (cellinfo->stock_id);
+ }
+ cellinfo->stock_id = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_STOCK_SIZE:
+ cellinfo->stock_size = g_value_get_enum (value);
+ break;
+ case PROP_STOCK_DETAIL:
+ if (cellinfo->stock_detail) {
+ g_free (cellinfo->stock_detail);
+ }
+ cellinfo->stock_detail = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_PIXBUF_EMBLEM:
+ pixbuf = (GdkPixbuf *) g_value_get_object (value);
+ if (pixbuf) {
+ g_object_ref (pixbuf);
+ }
+ if (cellpixbuf->pixbuf_emblem) {
+ g_object_unref (cellpixbuf->pixbuf_emblem);
+ }
+ cellpixbuf->pixbuf_emblem = pixbuf;
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+ break;
+ }
+}
+
+GtkCellRenderer *
+nautilus_cell_renderer_pixbuf_emblem_new (void)
+{
+ return g_object_new (NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NULL);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (NautilusCellRendererPixbufEmblem *cellpixbuf,
+ GtkWidget *widget)
+{
+ NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (G_OBJECT (cellpixbuf), CELLINFO_KEY);
+
+ if (cellpixbuf->pixbuf) {
+ g_object_unref (cellpixbuf->pixbuf);
+ }
+
+ cellpixbuf->pixbuf = gtk_widget_render_icon (widget,
+ cellinfo->stock_id,
+ cellinfo->stock_size,
+ cellinfo->stock_detail);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+ GdkRectangle *cell_area,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height)
+{
+ NautilusCellRendererPixbufEmblem *cellpixbuf = (NautilusCellRendererPixbufEmblem *) cell;
+ NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (G_OBJECT (cell), CELLINFO_KEY);
+ gint pixbuf_width = 0;
+ gint pixbuf_height = 0;
+ gint calc_width;
+ gint calc_height;
+
+ if (!cellpixbuf->pixbuf && cellinfo->stock_id)
+ nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (cellpixbuf, widget);
+
+ if (cellpixbuf->pixbuf) {
+ pixbuf_width = gdk_pixbuf_get_width (cellpixbuf->pixbuf);
+ pixbuf_height = gdk_pixbuf_get_height (cellpixbuf->pixbuf);
+ }
+ if (cellpixbuf->pixbuf_expander_open) {
+ pixbuf_width = MAX (pixbuf_width, gdk_pixbuf_get_width (cellpixbuf->pixbuf_expander_open));
+ pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellpixbuf->pixbuf_expander_open));
+ }
+ if (cellpixbuf->pixbuf_expander_closed) {
+ pixbuf_width = MAX (pixbuf_width, gdk_pixbuf_get_width (cellpixbuf->pixbuf_expander_closed));
+ pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellpixbuf->pixbuf_expander_closed));
+ }
+
+ calc_width = (gint) cell->xpad * 2 + pixbuf_width;
+ calc_height = (gint) cell->ypad * 2 + pixbuf_height;
+
+ if (x_offset) *x_offset = 0;
+ if (y_offset) *y_offset = 0;
+
+ if (cell_area && pixbuf_width > 0 && pixbuf_height > 0) {
+ if (x_offset) {
+ *x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
+ 1.0 - cell->xalign : cell->xalign) *
+ (cell_area->width - calc_width - 2 * cell->xpad));
+ *x_offset = MAX (*x_offset, 0) + cell->xpad;
+ }
+ if (y_offset) {
+ *y_offset = (cell->yalign *
+ (cell_area->height - calc_height - 2 * cell->ypad));
+ *y_offset = MAX (*y_offset, 0) + cell->ypad;
+ }
+ }
+
+ if (width)
+ *width = calc_width;
+
+ if (height)
+ *height = calc_height;
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer *cell,
+ GdkWindow *window,
+ GtkWidget *widget,
+ GdkRectangle *background_area,
+ GdkRectangle *cell_area,
+ GdkRectangle *expose_area,
+ GtkCellRendererState flags)
+
+{
+ NautilusCellRendererPixbufEmblem *cellpixbuf = (NautilusCellRendererPixbufEmblem *) cell;
+ NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (G_OBJECT (cell), CELLINFO_KEY);
+ GdkPixbuf *pixbuf;
+ GdkRectangle pix_rect;
+ GdkRectangle pix_emblem_rect;
+ GdkRectangle draw_rect;
+ gboolean stock_pixbuf = FALSE;
+
+ pixbuf = cellpixbuf->pixbuf;
+ if (cell->is_expander) {
+ if (cell->is_expanded &&
+ cellpixbuf->pixbuf_expander_open != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_open;
+ } else if (!cell->is_expanded &&
+ cellpixbuf->pixbuf_expander_closed != NULL) {
+ pixbuf = cellpixbuf->pixbuf_expander_closed;
+ }
+ }
+
+ if (!pixbuf && !cellinfo->stock_id) {
+ return;
+ } else if (!pixbuf && cellinfo->stock_id) {
+ stock_pixbuf = TRUE;
+ }
+
+ nautilus_cell_renderer_pixbuf_emblem_get_size (cell, widget, cell_area,
+ &pix_rect.x,
+ &pix_rect.y,
+ &pix_rect.width,
+ &pix_rect.height);
+
+ if (stock_pixbuf)
+ pixbuf = cellpixbuf->pixbuf;
+
+ pix_rect.x += cell_area->x;
+ pix_rect.y += cell_area->y;
+ pix_rect.width -= cell->xpad * 2;
+ pix_rect.height -= cell->ypad * 2;
+
+ if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
+ gdk_draw_pixbuf (window,
+ widget->style->black_gc,
+ pixbuf,
+ /* pixbuf 0, 0 is at pix_rect.x, pix_rect.y */
+ draw_rect.x - pix_rect.x,
+ draw_rect.y - pix_rect.y,
+ draw_rect.x,
+ draw_rect.y,
+ draw_rect.width,
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
+ }
+
+ if (cellpixbuf->pixbuf_emblem) {
+ pix_emblem_rect.width = gdk_pixbuf_get_width (cellpixbuf->pixbuf_emblem);
+ pix_emblem_rect.height = gdk_pixbuf_get_height (cellpixbuf->pixbuf_emblem);
+ pix_emblem_rect.x = pix_rect.x;
+ pix_emblem_rect.y = pix_rect.y + pix_rect.height - pix_emblem_rect.height;
+ if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect) &&
+ gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
+ gdk_draw_pixbuf (window,
+ widget->style->black_gc,
+ cellpixbuf->pixbuf_emblem,
+ /* pixbuf 0, 0 is at pix_emblem_rect.x, pix_emblem_rect.y */
+ draw_rect.x - pix_emblem_rect.x,
+ draw_rect.y - pix_emblem_rect.y,
+ draw_rect.x,
+ draw_rect.y,
+ draw_rect.width,
+ draw_rect.height,
+ GDK_RGB_DITHER_NORMAL,
+ 0, 0);
+ }
+ }
+}
diff --git a/src/nautilus-cell-renderer-pixbuf-emblem.h b/src/nautilus-cell-renderer-pixbuf-emblem.h
@@ -0,0 +1,65 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
+
+ nautilus-cell-renderer-pixbuf-emblem.h: cell renderer which can render
+ an emblem on top of a pixbuf (for use in FMListView and FMTreeView)
+
+ Copyright (C) 2003 Juerg Billeter
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ This is based on GtkCellRendererPixbuf written by
+ Jonathan Blandford <jrb@redhat.com>
+
+ Author: Juerg Billeter <j@bitron.ch>
+*/
+
+#ifndef NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+#define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+
+#include <gtk/gtkcellrenderer.h>
+
+#define NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM \
+ (nautilus_cell_renderer_pixbuf_emblem_get_type ())
+#define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+ (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
+#define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+ (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
+#define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+ (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+#define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+ (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+
+typedef struct _NautilusCellRendererPixbufEmblem NautilusCellRendererPixbufEmblem;
+typedef struct _NautilusCellRendererPixbufEmblemClass NautilusCellRendererPixbufEmblemClass;
+
+struct _NautilusCellRendererPixbufEmblem {
+ GtkCellRenderer parent;
+
+ /*< private >*/
+ GdkPixbuf *pixbuf;
+ GdkPixbuf *pixbuf_expander_open;
+ GdkPixbuf *pixbuf_expander_closed;
+ GdkPixbuf *pixbuf_emblem;
+};
+
+struct _NautilusCellRendererPixbufEmblemClass {
+ GtkCellRendererClass parent_class;
+};
+
+GType nautilus_cell_renderer_pixbuf_emblem_get_type (void);
+GtkCellRenderer *nautilus_cell_renderer_pixbuf_emblem_new (void);
+
+#endif /* NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H */
diff --git a/src/org-gnome-mail-notification.eplug.in b/src/org-gnome-mail-notification.eplug.in
@@ -0,0 +1,17 @@
+<e-plugin-list>
+ <e-plugin
+ id="org.gnome.evolution.mail-notification"
+ type="shlib"
+ name="Mail Notification"
+ location="@PLUGINDIR@/liborg-gnome-mail-notification.so">
+
+ <description>Provides Evolution mailbox support for Mail Notification.</description>
+ <author name="Jean-Yves Lefort" email="jylefort@brutele.be"/>
+
+ <hook class="org.gnome.evolution.mail.events:1.0">
+ <event id="folder.changed"
+ handle="org_gnome_mail_notification_folder_changed"
+ target="folder"/>
+ </hook>
+ </e-plugin>
+</e-plugin-list>
diff --git a/src/xhtml-lat1.ent b/src/xhtml-lat1.ent
@@ -1,196 +0,0 @@
-<!-- Portions (C) International Organization for Standardization 1986
- Permission to copy in any form is granted for use with
- conforming SGML systems and applications as defined in
- ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
- <!ENTITY % HTMLlat1 PUBLIC
- "-//W3C//ENTITIES Latin 1 for XHTML//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
- %HTMLlat1;
--->
-
-<!ENTITY nbsp " "> <!-- no-break space = non-breaking space,
- U+00A0 ISOnum -->
-<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar,
- U+00A6 ISOnum -->
-<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis,
- U+00A8 ISOdia -->
-<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark
- = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not "¬"> <!-- not sign = discretionary hyphen,
- U+00AC ISOnum -->
-<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen,
- U+00AD ISOnum -->
-<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign,
- U+00AE ISOnum -->
-<!ENTITY macr "¯"> <!-- macron = spacing macron = overline
- = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign,
- U+00B1 ISOnum -->
-<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two
- = squared, U+00B2 ISOnum -->
-<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three
- = cubed, U+00B3 ISOnum -->
-<!ENTITY acute "´"> <!-- acute accent = spacing acute,
- U+00B4 ISOdia -->
-<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign,
- U+00B6 ISOnum -->
-<!ENTITY middot "·"> <!-- middle dot = Georgian comma
- = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one,
- U+00B9 ISOnum -->
-<!ENTITY ordm "º"> <!-- masculine ordinal indicator,
- U+00BA ISOnum -->
-<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark
- = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter
- = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "½"> <!-- vulgar fraction one half
- = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters
- = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "¿"> <!-- inverted question mark
- = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "À"> <!-- latin capital letter A with grave
- = latin capital letter A grave,
- U+00C0 ISOlat1 -->
-<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute,
- U+00C1 ISOlat1 -->
-<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex,
- U+00C2 ISOlat1 -->
-<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde,
- U+00C3 ISOlat1 -->
-<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis,
- U+00C4 ISOlat1 -->
-<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above
- = latin capital letter A ring,
- U+00C5 ISOlat1 -->
-<!ENTITY AElig "Æ"> <!-- latin capital letter AE
- = latin capital ligature AE,
- U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla,
- U+00C7 ISOlat1 -->
-<!ENTITY Egrave "È"> <!-- latin capital letter E with grave,
- U+00C8 ISOlat1 -->
-<!ENTITY Eacute "É"> <!-- latin capital letter E with acute,
- U+00C9 ISOlat1 -->
-<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex,
- U+00CA ISOlat1 -->
-<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis,
- U+00CB ISOlat1 -->
-<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave,
- U+00CC ISOlat1 -->
-<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute,
- U+00CD ISOlat1 -->
-<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex,
- U+00CE ISOlat1 -->
-<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis,
- U+00CF ISOlat1 -->
-<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde,
- U+00D1 ISOlat1 -->
-<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave,
- U+00D2 ISOlat1 -->
-<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute,
- U+00D3 ISOlat1 -->
-<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex,
- U+00D4 ISOlat1 -->
-<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde,
- U+00D5 ISOlat1 -->
-<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis,
- U+00D6 ISOlat1 -->
-<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke
- = latin capital letter O slash,
- U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave,
- U+00D9 ISOlat1 -->
-<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute,
- U+00DA ISOlat1 -->
-<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex,
- U+00DB ISOlat1 -->
-<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis,
- U+00DC ISOlat1 -->
-<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute,
- U+00DD ISOlat1 -->
-<!ENTITY THORN "Þ"> <!-- latin capital letter THORN,
- U+00DE ISOlat1 -->
-<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed,
- U+00DF ISOlat1 -->
-<!ENTITY agrave "à"> <!-- latin small letter a with grave
- = latin small letter a grave,
- U+00E0 ISOlat1 -->
-<!ENTITY aacute "á"> <!-- latin small letter a with acute,
- U+00E1 ISOlat1 -->
-<!ENTITY acirc "â"> <!-- latin small letter a with circumflex,
- U+00E2 ISOlat1 -->
-<!ENTITY atilde "ã"> <!-- latin small letter a with tilde,
- U+00E3 ISOlat1 -->
-<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis,
- U+00E4 ISOlat1 -->
-<!ENTITY aring "å"> <!-- latin small letter a with ring above
- = latin small letter a ring,
- U+00E5 ISOlat1 -->
-<!ENTITY aelig "æ"> <!-- latin small letter ae
- = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla,
- U+00E7 ISOlat1 -->
-<!ENTITY egrave "è"> <!-- latin small letter e with grave,
- U+00E8 ISOlat1 -->
-<!ENTITY eacute "é"> <!-- latin small letter e with acute,
- U+00E9 ISOlat1 -->
-<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex,
- U+00EA ISOlat1 -->
-<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis,
- U+00EB ISOlat1 -->
-<!ENTITY igrave "ì"> <!-- latin small letter i with grave,
- U+00EC ISOlat1 -->
-<!ENTITY iacute "í"> <!-- latin small letter i with acute,
- U+00ED ISOlat1 -->
-<!ENTITY icirc "î"> <!-- latin small letter i with circumflex,
- U+00EE ISOlat1 -->
-<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis,
- U+00EF ISOlat1 -->
-<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde,
- U+00F1 ISOlat1 -->
-<!ENTITY ograve "ò"> <!-- latin small letter o with grave,
- U+00F2 ISOlat1 -->
-<!ENTITY oacute "ó"> <!-- latin small letter o with acute,
- U+00F3 ISOlat1 -->
-<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex,
- U+00F4 ISOlat1 -->
-<!ENTITY otilde "õ"> <!-- latin small letter o with tilde,
- U+00F5 ISOlat1 -->
-<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis,
- U+00F6 ISOlat1 -->
-<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "ø"> <!-- latin small letter o with stroke,
- = latin small letter o slash,
- U+00F8 ISOlat1 -->
-<!ENTITY ugrave "ù"> <!-- latin small letter u with grave,
- U+00F9 ISOlat1 -->
-<!ENTITY uacute "ú"> <!-- latin small letter u with acute,
- U+00FA ISOlat1 -->
-<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex,
- U+00FB ISOlat1 -->
-<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis,
- U+00FC ISOlat1 -->
-<!ENTITY yacute "ý"> <!-- latin small letter y with acute,
- U+00FD ISOlat1 -->
-<!ENTITY thorn "þ"> <!-- latin small letter thorn with,
- U+00FE ISOlat1 -->
-<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis,
- U+00FF ISOlat1 -->
diff --git a/src/xhtml-special.ent b/src/xhtml-special.ent
@@ -1,79 +0,0 @@
-<!-- Special characters for HTML -->
-
-<!-- Character entity set. Typical invocation:
- <!ENTITY % HTMLspecial PUBLIC
- "-//W3C//ENTITIES Special for XHTML//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
- %HTMLspecial;
--->
-
-<!-- Portions (C) International Organization for Standardization 1986:
- Permission to copy in any form is granted for use with
- conforming SGML systems and applications as defined in
- ISO 8879, provided this notice is included in all copies.
--->
-
-<!-- Relevant ISO entity set is given unless names are newly introduced.
- New names (i.e., not in ISO 8879 list) do not clash with any
- existing ISO 8879 entity names. ISO 10646 character numbers
- are given for each character, in hex. values are decimal
- conversions of the ISO 10646 values and refer to the document
- character set. Names are Unicode names.
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY quot """> <!-- quotation mark = APL quote,
- U+0022 ISOnum -->
-<!ENTITY amp "&"> <!-- ampersand, U+0026 ISOnum -->
-<!ENTITY lt "<"> <!-- less-than sign, U+003C ISOnum -->
-<!ENTITY gt ">"> <!-- greater-than sign, U+003E ISOnum -->
-<!ENTITY apos "'"> <!-- apostrophe mark, U+0027 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig "Œ"> <!-- latin capital ligature OE,
- U+0152 ISOlat2 -->
-<!ENTITY oelig "œ"> <!-- latin small ligature oe, U+0153 ISOlat2 -->
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron "Š"> <!-- latin capital letter S with caron,
- U+0160 ISOlat2 -->
-<!ENTITY scaron "š"> <!-- latin small letter s with caron,
- U+0161 ISOlat2 -->
-<!ENTITY Yuml "Ÿ"> <!-- latin capital letter Y with diaeresis,
- U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ "ˆ"> <!-- modifier letter circumflex accent,
- U+02C6 ISOpub -->
-<!ENTITY tilde "˜"> <!-- small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp " "> <!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp " "> <!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp " "> <!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj "‌"> <!-- zero width non-joiner,
- U+200C NEW RFC 2070 -->
-<!ENTITY zwj "‍"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm "‎"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm "‏"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo "‘"> <!-- left single quotation mark,
- U+2018 ISOnum -->
-<!ENTITY rsquo "’"> <!-- right single quotation mark,
- U+2019 ISOnum -->
-<!ENTITY sbquo "‚"> <!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo "“"> <!-- left double quotation mark,
- U+201C ISOnum -->
-<!ENTITY rdquo "”"> <!-- right double quotation mark,
- U+201D ISOnum -->
-<!ENTITY bdquo "„"> <!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger "†"> <!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger "‡"> <!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil "‰"> <!-- per mille sign, U+2030 ISOtech -->
-<!ENTITY lsaquo "‹"> <!-- single left-pointing angle quotation mark,
- U+2039 ISO proposed -->
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo "›"> <!-- single right-pointing angle quotation mark,
- U+203A ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-<!ENTITY euro "€"> <!-- euro sign, U+20AC NEW -->
diff --git a/src/xhtml-symbol.ent b/src/xhtml-symbol.ent
@@ -1,242 +0,0 @@
-<!-- Mathematical, Greek and Symbolic characters for HTML -->
-
-<!-- Character entity set. Typical invocation:
- <!ENTITY % HTMLsymbol PUBLIC
- "-//W3C//ENTITIES Symbols for XHTML//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
- %HTMLsymbol;
--->
-
-<!-- Portions (C) International Organization for Standardization 1986:
- Permission to copy in any form is granted for use with
- conforming SGML systems and applications as defined in
- ISO 8879, provided this notice is included in all copies.
--->
-
-<!-- Relevant ISO entity set is given unless names are newly introduced.
- New names (i.e., not in ISO 8879 list) do not clash with any
- existing ISO 8879 entity names. ISO 10646 character numbers
- are given for each character, in hex. values are decimal
- conversions of the ISO 10646 values and refer to the document
- character set. Names are Unicode names.
--->
-
-<!-- Latin Extended-B -->
-<!ENTITY fnof "ƒ"> <!-- latin small f with hook = function
- = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha "Α"> <!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta "Β"> <!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma "Γ"> <!-- greek capital letter gamma,
- U+0393 ISOgrk3 -->
-<!ENTITY Delta "Δ"> <!-- greek capital letter delta,
- U+0394 ISOgrk3 -->
-<!ENTITY Epsilon "Ε"> <!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta "Ζ"> <!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta "Η"> <!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta "Θ"> <!-- greek capital letter theta,
- U+0398 ISOgrk3 -->
-<!ENTITY Iota "Ι"> <!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa "Κ"> <!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda "Λ"> <!-- greek capital letter lambda,
- U+039B ISOgrk3 -->
-<!ENTITY Mu "Μ"> <!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu "Ν"> <!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi "Ξ"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron "Ο"> <!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi "Π"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho "Ρ"> <!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma "Σ"> <!-- greek capital letter sigma,
- U+03A3 ISOgrk3 -->
-<!ENTITY Tau "Τ"> <!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon "Υ"> <!-- greek capital letter upsilon,
- U+03A5 ISOgrk3 -->
-<!ENTITY Phi "Φ"> <!-- greek capital letter phi,
- U+03A6 ISOgrk3 -->
-<!ENTITY Chi "Χ"> <!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi "Ψ"> <!-- greek capital letter psi,
- U+03A8 ISOgrk3 -->
-<!ENTITY Omega "Ω"> <!-- greek capital letter omega,
- U+03A9 ISOgrk3 -->
-
-<!ENTITY alpha "α"> <!-- greek small letter alpha,
- U+03B1 ISOgrk3 -->
-<!ENTITY beta "β"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma "γ"> <!-- greek small letter gamma,
- U+03B3 ISOgrk3 -->
-<!ENTITY delta "δ"> <!-- greek small letter delta,
- U+03B4 ISOgrk3 -->
-<!ENTITY epsilon "ε"> <!-- greek small letter epsilon,
- U+03B5 ISOgrk3 -->
-<!ENTITY zeta "ζ"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta "η"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta "θ"> <!-- greek small letter theta,
- U+03B8 ISOgrk3 -->
-<!ENTITY iota "ι"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa "κ"> <!-- greek small letter kappa,
- U+03BA ISOgrk3 -->
-<!ENTITY lambda "λ"> <!-- greek small letter lambda,
- U+03BB ISOgrk3 -->
-<!ENTITY mu "μ"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu "ν"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi "ξ"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron "ο"> <!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi "π"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho "ρ"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf "ς"> <!-- greek small letter final sigma,
- U+03C2 ISOgrk3 -->
-<!ENTITY sigma "σ"> <!-- greek small letter sigma,
- U+03C3 ISOgrk3 -->
-<!ENTITY tau "τ"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon "υ"> <!-- greek small letter upsilon,
- U+03C5 ISOgrk3 -->
-<!ENTITY phi "φ"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi "χ"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi "ψ"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega "ω"> <!-- greek small letter omega,
- U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "ϑ"> <!-- greek small letter theta symbol,
- U+03D1 NEW -->
-<!ENTITY upsih "ϒ"> <!-- greek upsilon with hook symbol,
- U+03D2 NEW -->
-<!ENTITY piv "ϖ"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull "•"> <!-- bullet = black small circle,
- U+2022 ISOpub -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip "…"> <!-- horizontal ellipsis = three dot leader,
- U+2026 ISOpub -->
-<!ENTITY prime "′"> <!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime "″"> <!-- double prime = seconds = inches,
- U+2033 ISOtech -->
-<!ENTITY oline "‾"> <!-- overline = spacing overscore,
- U+203E NEW -->
-<!ENTITY frasl "⁄"> <!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp "℘"> <!-- script capital P = power set
- = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image "ℑ"> <!-- blackletter capital I = imaginary part,
- U+2111 ISOamso -->
-<!ENTITY real "ℜ"> <!-- blackletter capital R = real part symbol,
- U+211C ISOamso -->
-<!ENTITY trade "™"> <!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym "ℵ"> <!-- alef symbol = first transfinite cardinal,
- U+2135 NEW -->
-<!-- alef symbol is NOT the same as hebrew letter alef,
- U+05D0 although the same glyph could be used to depict both characters -->
-
-<!-- Arrows -->
-<!ENTITY larr "←"> <!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr "↑"> <!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr "→"> <!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr "↓"> <!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr "↔"> <!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr "↵"> <!-- downwards arrow with corner leftwards
- = carriage return, U+21B5 NEW -->
-<!ENTITY lArr "⇐"> <!-- leftwards double arrow, U+21D0 ISOtech -->
-<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
- but also does not have any other character for that function. So ? lArr can
- be used for 'is implied by' as ISOtech suggests -->
-<!ENTITY uArr "⇑"> <!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr "⇒"> <!-- rightwards double arrow,
- U+21D2 ISOtech -->
-<!-- Unicode does not say this is the 'implies' character but does not have
- another character with this function so ?
- rArr can be used for 'implies' as ISOtech suggests -->
-<!ENTITY dArr "⇓"> <!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr "⇔"> <!-- left right double arrow,
- U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall "∀"> <!-- for all, U+2200 ISOtech -->
-<!ENTITY part "∂"> <!-- partial differential, U+2202 ISOtech -->
-<!ENTITY exist "∃"> <!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty "∅"> <!-- empty set = null set = diameter,
- U+2205 ISOamso -->
-<!ENTITY nabla "∇"> <!-- nabla = backward difference,
- U+2207 ISOtech -->
-<!ENTITY isin "∈"> <!-- element of, U+2208 ISOtech -->
-<!ENTITY notin "∉"> <!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni "∋"> <!-- contains as member, U+220B ISOtech -->
-<!-- should there be a more memorable name than 'ni'? -->
-<!ENTITY prod "∏"> <!-- n-ary product = product sign,
- U+220F ISOamsb -->
-<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
- the same glyph might be used for both -->
-<!ENTITY sum "∑"> <!-- n-ary sumation, U+2211 ISOamsb -->
-<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
- though the same glyph might be used for both -->
-<!ENTITY minus "−"> <!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast "∗"> <!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic "√"> <!-- square root = radical sign,
- U+221A ISOtech -->
-<!ENTITY prop "∝"> <!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin "∞"> <!-- infinity, U+221E ISOtech -->
-<!ENTITY ang "∠"> <!-- angle, U+2220 ISOamso -->
-<!ENTITY and "∧"> <!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or "∨"> <!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap "∩"> <!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup "∪"> <!-- union = cup, U+222A ISOtech -->
-<!ENTITY int "∫"> <!-- integral, U+222B ISOtech -->
-<!ENTITY there4 "∴"> <!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim "∼"> <!-- tilde operator = varies with = similar to,
- U+223C ISOtech -->
-<!-- tilde operator is NOT the same character as the tilde, U+007E,
- although the same glyph might be used to represent both -->
-<!ENTITY cong "≅"> <!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp "≈"> <!-- almost equal to = asymptotic to,
- U+2248 ISOamsr -->
-<!ENTITY ne "≠"> <!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv "≡"> <!-- identical to, U+2261 ISOtech -->
-<!ENTITY le "≤"> <!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge "≥"> <!-- greater-than or equal to,
- U+2265 ISOtech -->
-<!ENTITY sub "⊂"> <!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup "⊃"> <!-- superset of, U+2283 ISOtech -->
-<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol
- font encoding and is not included. Should it be, for symmetry?
- It is in ISOamsn -->
-<!ENTITY nsub "⊄"> <!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube "⊆"> <!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe "⊇"> <!-- superset of or equal to,
- U+2287 ISOtech -->
-<!ENTITY oplus "⊕"> <!-- circled plus = direct sum,
- U+2295 ISOamsb -->
-<!ENTITY otimes "⊗"> <!-- circled times = vector product,
- U+2297 ISOamsb -->
-<!ENTITY perp "⊥"> <!-- up tack = orthogonal to = perpendicular,
- U+22A5 ISOtech -->
-<!ENTITY sdot "⋅"> <!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil "⌈"> <!-- left ceiling = apl upstile,
- U+2308 ISOamsc -->
-<!ENTITY rceil "⌉"> <!-- right ceiling, U+2309 ISOamsc -->
-<!ENTITY lfloor "⌊"> <!-- left floor = apl downstile,
- U+230A ISOamsc -->
-<!ENTITY rfloor "⌋"> <!-- right floor, U+230B ISOamsc -->
-<!ENTITY lang "〈"> <!-- left-pointing angle bracket = bra,
- U+2329 ISOtech -->
-<!-- lang is NOT the same character as U+003C 'less than'
- or U+2039 'single left-pointing angle quotation mark' -->
-<!ENTITY rang "〉"> <!-- right-pointing angle bracket = ket,
- U+232A ISOtech -->
-<!-- rang is NOT the same character as U+003E 'greater than'
- or U+203A 'single right-pointing angle quotation mark' -->
-
-<!-- Geometric Shapes -->
-<!ENTITY loz "◊"> <!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades "♠"> <!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs "♣"> <!-- black club suit = shamrock,
- U+2663 ISOpub -->
-<!ENTITY hearts "♥"> <!-- black heart suit = valentine,
- U+2665 ISOpub -->
-<!ENTITY diams "♦"> <!-- black diamond suit, U+2666 ISOpub -->
diff --git a/tests/Makefile.am b/tests/Makefile.am
@@ -1,26 +1,14 @@
tests = \
- test-sgml-ref.stamp \
- test-uri.stamp \
test-vfs-read-line1-smallblock.output \
test-vfs-read-line1-largeblock.output \
test-vfs-read-line2-smallblock.output \
test-vfs-read-line2-largeblock.output
noinst_PROGRAMS = \
- test-sgml-ref \
- test-uri \
test-vfs-read-line-smallblock \
test-vfs-read-line-largeblock
noinst_DATA = $(tests)
-test_sgml_ref_SOURCES = \
- $(top_srcdir)/src/mn-sgml-ref.c \
- test-sgml-ref.c
-
-test_uri_SOURCES = \
- $(top_srcdir)/src/mn-uri.c \
- test-uri.c
-
test_vfs_read_line_sources = \
$(top_srcdir)/src/mn-vfs.c \
$(top_srcdir)/src/mn-vfs.h \
@@ -40,14 +28,6 @@ AM_CPPFLAGS = $(WARN_CFLAGS) $(G_ASSERTIONS) $(GNOME_CFLAGS) \
-I$(top_srcdir)/src \
-DMN_REGRESSION_TEST
-test-sgml-ref.stamp: test-sgml-ref
- ./test-sgml-ref
- @touch test-sgml-ref.stamp
-
-test-uri.stamp: test-uri
- ./test-uri
- @touch test-uri.stamp
-
test-vfs-read-line1-smallblock.output: test-vfs-read-line-smallblock test-vfs-read-line1.input test-vfs-read-line1.expected
./test-vfs-read-line-smallblock file://`pwd`/test-vfs-read-line1.input > test-vfs-read-line1-smallblock.output
@if cmp test-vfs-read-line1-smallblock.output test-vfs-read-line1.expected > /dev/null; then echo "+++ VFS-READ-LINE TEST 1-SMALLBLOCK PASSED"; else echo "--- VFS-READ-LINE TEST 1-SMALLBLOCK FAILED"; exit 1; fi
diff --git a/tests/Makefile.in b/tests/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -15,8 +15,6 @@
@SET_MAKE@
-SOURCES = $(test_sgml_ref_SOURCES) $(test_uri_SOURCES) $(test_vfs_read_line_largeblock_SOURCES) $(test_vfs_read_line_smallblock_SOURCES)
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -37,28 +35,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-noinst_PROGRAMS = test-sgml-ref$(EXEEXT) test-uri$(EXEEXT) \
- test-vfs-read-line-smallblock$(EXEEXT) \
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+noinst_PROGRAMS = test-vfs-read-line-smallblock$(EXEEXT) \
test-vfs-read-line-largeblock$(EXEEXT)
subdir = tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.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 =
PROGRAMS = $(noinst_PROGRAMS)
-am_test_sgml_ref_OBJECTS = mn-sgml-ref.$(OBJEXT) \
- test-sgml-ref.$(OBJEXT)
-test_sgml_ref_OBJECTS = $(am_test_sgml_ref_OBJECTS)
-test_sgml_ref_LDADD = $(LDADD)
-am_test_uri_OBJECTS = mn-uri.$(OBJEXT) test-uri.$(OBJEXT)
-test_uri_OBJECTS = $(am_test_uri_OBJECTS)
-test_uri_LDADD = $(LDADD)
am__objects_1 = test_vfs_read_line_largeblock-mn-vfs.$(OBJEXT) \
test_vfs_read_line_largeblock-test-vfs-read-line.$(OBJEXT)
am_test_vfs_read_line_largeblock_OBJECTS = $(am__objects_1)
@@ -76,13 +72,15 @@ 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 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(test_sgml_ref_SOURCES) $(test_uri_SOURCES) \
- $(test_vfs_read_line_largeblock_SOURCES) \
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(test_vfs_read_line_largeblock_SOURCES) \
$(test_vfs_read_line_smallblock_SOURCES)
-DIST_SOURCES = $(test_sgml_ref_SOURCES) $(test_uri_SOURCES) \
- $(test_vfs_read_line_largeblock_SOURCES) \
+DIST_SOURCES = $(test_vfs_read_line_largeblock_SOURCES) \
$(test_vfs_read_line_smallblock_SOURCES)
DATA = $(noinst_DATA)
ETAGS = etags
@@ -92,6 +90,7 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -104,15 +103,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -129,10 +137,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -143,9 +147,12 @@ 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@
@@ -158,12 +165,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -171,7 +181,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -188,25 +197,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -227,20 +239,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -255,24 +286,18 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
tests = \
- test-sgml-ref.stamp \
- test-uri.stamp \
test-vfs-read-line1-smallblock.output \
test-vfs-read-line1-largeblock.output \
test-vfs-read-line2-smallblock.output \
test-vfs-read-line2-largeblock.output
noinst_DATA = $(tests)
-test_sgml_ref_SOURCES = \
- $(top_srcdir)/src/mn-sgml-ref.c \
- test-sgml-ref.c
-
-test_uri_SOURCES = \
- $(top_srcdir)/src/mn-uri.c \
- test-uri.c
-
test_vfs_read_line_sources = \
$(top_srcdir)/src/mn-vfs.c \
$(top_srcdir)/src/mn-vfs.h \
@@ -302,7 +327,7 @@ EXTRA_DIST = \
all: all-am
.SUFFIXES:
-.SUFFIXES: .c .o .obj
+.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 \
@@ -334,13 +359,11 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-test-sgml-ref$(EXEEXT): $(test_sgml_ref_OBJECTS) $(test_sgml_ref_DEPENDENCIES)
- @rm -f test-sgml-ref$(EXEEXT)
- $(LINK) $(test_sgml_ref_LDFLAGS) $(test_sgml_ref_OBJECTS) $(test_sgml_ref_LDADD) $(LIBS)
-test-uri$(EXEEXT): $(test_uri_OBJECTS) $(test_uri_DEPENDENCIES)
- @rm -f test-uri$(EXEEXT)
- $(LINK) $(test_uri_LDFLAGS) $(test_uri_OBJECTS) $(test_uri_LDADD) $(LIBS)
+ @list='$(noinst_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
test-vfs-read-line-largeblock$(EXEEXT): $(test_vfs_read_line_largeblock_OBJECTS) $(test_vfs_read_line_largeblock_DEPENDENCIES)
@rm -f test-vfs-read-line-largeblock$(EXEEXT)
$(LINK) $(test_vfs_read_line_largeblock_LDFLAGS) $(test_vfs_read_line_largeblock_OBJECTS) $(test_vfs_read_line_largeblock_LDADD) $(LIBS)
@@ -354,10 +377,6 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sgml-ref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-uri.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sgml-ref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-uri.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Po@am__quote@
@@ -377,33 +396,12 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-mn-sgml-ref.o: $(top_srcdir)/src/mn-sgml-ref.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-sgml-ref.o -MD -MP -MF "$(DEPDIR)/mn-sgml-ref.Tpo" -c -o mn-sgml-ref.o `test -f '$(top_srcdir)/src/mn-sgml-ref.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-sgml-ref.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mn-sgml-ref.Tpo" "$(DEPDIR)/mn-sgml-ref.Po"; else rm -f "$(DEPDIR)/mn-sgml-ref.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-sgml-ref.c' object='mn-sgml-ref.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-sgml-ref.o `test -f '$(top_srcdir)/src/mn-sgml-ref.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-sgml-ref.c
-
-mn-sgml-ref.obj: $(top_srcdir)/src/mn-sgml-ref.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-sgml-ref.obj -MD -MP -MF "$(DEPDIR)/mn-sgml-ref.Tpo" -c -o mn-sgml-ref.obj `if test -f '$(top_srcdir)/src/mn-sgml-ref.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-sgml-ref.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-sgml-ref.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mn-sgml-ref.Tpo" "$(DEPDIR)/mn-sgml-ref.Po"; else rm -f "$(DEPDIR)/mn-sgml-ref.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-sgml-ref.c' object='mn-sgml-ref.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-sgml-ref.obj `if test -f '$(top_srcdir)/src/mn-sgml-ref.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-sgml-ref.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-sgml-ref.c'; fi`
-
-mn-uri.o: $(top_srcdir)/src/mn-uri.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-uri.o -MD -MP -MF "$(DEPDIR)/mn-uri.Tpo" -c -o mn-uri.o `test -f '$(top_srcdir)/src/mn-uri.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-uri.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mn-uri.Tpo" "$(DEPDIR)/mn-uri.Po"; else rm -f "$(DEPDIR)/mn-uri.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-uri.c' object='mn-uri.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-uri.o `test -f '$(top_srcdir)/src/mn-uri.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-uri.c
-
-mn-uri.obj: $(top_srcdir)/src/mn-uri.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-uri.obj -MD -MP -MF "$(DEPDIR)/mn-uri.Tpo" -c -o mn-uri.obj `if test -f '$(top_srcdir)/src/mn-uri.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-uri.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-uri.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mn-uri.Tpo" "$(DEPDIR)/mn-uri.Po"; else rm -f "$(DEPDIR)/mn-uri.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-uri.c' object='mn-uri.obj' libtool=no @AMDEPBACKSLASH@
+.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@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-uri.obj `if test -f '$(top_srcdir)/src/mn-uri.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-uri.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-uri.c'; fi`
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
test_vfs_read_line_largeblock-mn-vfs.o: $(top_srcdir)/src/mn-vfs.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_largeblock-mn-vfs.o -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo" -c -o test_vfs_read_line_largeblock-mn-vfs.o `test -f '$(top_srcdir)/src/mn-vfs.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-vfs.c; \
@@ -460,6 +458,15 @@ test_vfs_read_line_smallblock-test-vfs-read-line.obj: test-vfs-read-line.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-vfs-read-line.c' object='test_vfs_read_line_smallblock-test-vfs-read-line.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_smallblock-test-vfs-read-line.obj `if test -f 'test-vfs-read-line.c'; then $(CYGPATH_W) 'test-vfs-read-line.c'; else $(CYGPATH_W) '$(srcdir)/test-vfs-read-line.c'; fi`
+
+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)
@@ -568,13 +575,14 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
+ distclean-libtool distclean-tags
dvi: dvi-am
@@ -603,7 +611,8 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
pdf: pdf-am
@@ -616,24 +625,17 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-noinstPROGRAMS ctags distclean distclean-compile \
- distclean-generic 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-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-
-test-sgml-ref.stamp: test-sgml-ref
- ./test-sgml-ref
- @touch test-sgml-ref.stamp
-
-test-uri.stamp: test-uri
- ./test-uri
- @touch test-uri.stamp
+ clean-libtool clean-noinstPROGRAMS 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-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-info-am
+
test-vfs-read-line1-smallblock.output: test-vfs-read-line-smallblock test-vfs-read-line1.input test-vfs-read-line1.expected
./test-vfs-read-line-smallblock file://`pwd`/test-vfs-read-line1.input > test-vfs-read-line1-smallblock.output
diff --git a/tests/test-sgml-ref.c b/tests/test-sgml-ref.c
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include <glib.h>
-#include "mn-sgml-ref.h"
-
-#define FAIL \
- { \
- g_printerr("failure at %s\n", G_STRLOC); \
- exit(1); \
- }
-
-int
-main (int argc, char **argv)
-{
- if (strcmp(mn_sgml_ref_expand("<tag>"), "<tag>") != 0)
- FAIL;
- if (strcmp(mn_sgml_ref_expand("ABC"), "ABC") != 0)
- FAIL;
- if (strcmp(mn_sgml_ref_expand("ABC"), "ABC") != 0)
- FAIL;
- if (strcmp(mn_sgml_ref_expand("ABC"), "ABC") != 0)
- FAIL;
- if (strcmp(mn_sgml_ref_expand("ABC"), "ABC") != 0)
- FAIL;
- if (strcmp(mn_sgml_ref_expand("<tag> &unknown;"), "<tag> &unknown;") != 0)
- FAIL;
- if (strcmp(mn_sgml_ref_expand("<tag> &unknown end"), "<tag> &unknown end") != 0)
- FAIL;
-
- g_print("+++ SGML-REF TEST PASSED\n");
-
- return 0;
-}
diff --git a/tests/test-uri.c b/tests/test-uri.c
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include "mn-uri.h"
-
-static char *
-build_uri (const char *scheme,
- const char *password,
- const char *authmech,
- const char *hostname,
- int port,
- const char *path,
- const char *queries)
-{
- GString *uri;
-
- uri = g_string_new(scheme);
- g_string_append(uri, "://username");
-
- if (password)
- g_string_append_printf(uri, ":%s", password);
- if (authmech)
- g_string_append_printf(uri, ";AUTH=%s", authmech);
- if (hostname)
- g_string_append_printf(uri, "@%s", hostname);
- if (port != -1)
- g_string_append_printf(uri, ":%i", port);
- if (path)
- g_string_append_printf(uri, "/%s", path);
- if (queries)
- g_string_append_printf(uri, "?%s", queries);
-
- return g_string_free(uri, FALSE);
-}
-
-static char *
-build_canonical_uri (const char *scheme,
- const char *password,
- const char *authmech,
- const char *hostname,
- int port,
- const char *path,
- const char *queries)
-{
- int default_port = -1;
- const char *default_path = NULL;
-
- if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops"))
- {
- if (! hostname || path)
- return NULL;
- }
- else if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
- {
- if (! hostname)
- return NULL;
- }
- else if (! strcmp(scheme, "gmail"))
- {
- if (authmech || hostname || port != -1 || path || queries)
- return NULL;
- }
-
- if (! strcmp(scheme, "pop"))
- default_port = 110;
- else if (! strcmp(scheme, "pops"))
- default_port = 995;
- else if (! strcmp(scheme, "imap"))
- default_port = 143;
- else if (! strcmp(scheme, "imaps"))
- default_port = 993;
-
- if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
- default_path = "INBOX";
-
- return build_uri(scheme,
- password,
- authmech,
- hostname,
- port != default_port ? port : -1,
- (! path || ! default_path || strcmp(path, default_path)) ? path : NULL,
- queries);
-}
-
-static void
-assert_strequal (const char *uri, const char *str1, const char *str2)
-{
- if (! ((! str1 && ! str2) || (str1 && str2 && ! strcmp(str1, str2))))
- {
- g_print("%s and %s differ\n", str1, str2);
- g_print("uri was %s\n", uri);
- exit(1);
- }
-}
-
-int
-main (int argc, char **argv)
-{
-#define FOR(iterator, var) \
- for (iterator = 0; iterator < G_N_ELEMENTS(var); iterator++)
-
- int a, b, c, d, e, f, g;
- const char *schemes[] = { "pop", "pops", "imap", "imaps", "gmail" };
- const char *passwords[] = { NULL, "password" };
- const char *authmechs[] = { NULL, "CRAM-MD5" };
- const char *hostnames[] = { NULL, "hostname", "[::1]" };
- int ports[] = { -1, 110, 995, 143, 993, 555 };
- const char *paths[] = { NULL, "INBOX", "foo-path" };
- const char *queries[] = { NULL, "STARTTLS", "STLS", "foo-query", "noidle" };
- int n_uri = 0;
- int n_canonical = 0;
-
- g_type_init();
-
- FOR(a, schemes)
- FOR(b, passwords)
- FOR(c, authmechs)
- FOR(d, hostnames)
- FOR(e, ports)
- FOR(f, paths)
- FOR(g, queries)
- {
- char *uri;
- char *canonical_uri;
- MNURI *obj;
-
- n_uri++;
-
- uri = build_uri(schemes[a], passwords[b], authmechs[c], hostnames[d], ports[e], paths[f], queries[g]);
- canonical_uri = build_canonical_uri(schemes[a], passwords[b], authmechs[c], hostnames[d], ports[e], paths[f], queries[g]);
-
- obj = mn_uri_new(uri);
- if (canonical_uri)
- {
- n_canonical++;
- assert_strequal(uri, obj->text, canonical_uri);
- }
-
- g_free(uri);
- g_free(canonical_uri);
- g_object_unref(obj);
- }
-
- g_print("+++ URI TEST PASSED (%i URI tested, %i could be canonicalized)\n", n_uri, n_canonical);
-
- return 0;
-}
diff --git a/ui/Makefile.am b/ui/Makefile.am
@@ -1,26 +1,15 @@
uidir = $(pkgdatadir)/ui
-if WITH_POP3_OR_IMAP_OR_GMAIL
-authentication_interface = authentication.glade
-authentication_project = authentication.gladep
-endif
-
dist_ui_DATA = \
- $(authentication_interface) \
- edit-toolbars.glade \
- mailbox-properties.glade \
- main.glade \
+ edit-toolbars-dialog.glade \
+ mail-summary-popup.glade \
+ mailbox-properties-dialog.glade \
menus.xml \
- properties.glade \
- summary-popup.glade \
- toolbars.xml \
- welcome.glade
+ properties-dialog.glade \
+ toolbars.xml
EXTRA_DIST = \
- $(authentication_project) \
- edit-toolbars.gladep \
- mailbox-properties.gladep \
- main.gladep \
- properties.gladep \
- summary-popup.gladep \
- welcome.gladep
+ edit-toolbars-dialog.gladep \
+ mail-summary-popup.gladep \
+ mailbox-properties-dialog.gladep \
+ properties-dialog.gladep
diff --git a/ui/Makefile.in b/ui/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# 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 Free Software Foundation, Inc.
+# 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.
@@ -34,13 +34,19 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
subdir = ui
-DIST_COMMON = $(am__dist_ui_DATA_DIST) $(srcdir)/Makefile.am \
+DIST_COMMON = $(dist_ui_DATA) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
- $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+ $(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 \
+ $(top_srcdir)/m4/reentrant-resolver.m4 \
+ $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -48,9 +54,6 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
-am__dist_ui_DATA_DIST = authentication.glade edit-toolbars.glade \
- mailbox-properties.glade main.glade menus.xml properties.glade \
- summary-popup.glade toolbars.xml welcome.glade
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -65,6 +68,7 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -77,15 +81,24 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
GCONFTOOL = @GCONFTOOL@
GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -102,10 +115,6 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -116,9 +125,12 @@ 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@
@@ -131,12 +143,15 @@ 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@
LIBBONOBO_IDL = @LIBBONOBO_IDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -144,7 +159,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -161,25 +175,28 @@ POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
SASL_CFLAGS = @SASL_CFLAGS@
SASL_LIBS = @SASL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
WITH_MH_FALSE = @WITH_MH_FALSE@
WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -200,20 +217,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
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@
+evolution_plugindir = @evolution_plugindir@
exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
@@ -228,29 +264,25 @@ program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
uidir = $(pkgdatadir)/ui
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authentication_interface = authentication.glade
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authentication_project = authentication.gladep
dist_ui_DATA = \
- $(authentication_interface) \
- edit-toolbars.glade \
- mailbox-properties.glade \
- main.glade \
+ edit-toolbars-dialog.glade \
+ mail-summary-popup.glade \
+ mailbox-properties-dialog.glade \
menus.xml \
- properties.glade \
- summary-popup.glade \
- toolbars.xml \
- welcome.glade
+ properties-dialog.glade \
+ toolbars.xml
EXTRA_DIST = \
- $(authentication_project) \
- edit-toolbars.gladep \
- mailbox-properties.gladep \
- main.gladep \
- properties.gladep \
- summary-popup.gladep \
- welcome.gladep
+ edit-toolbars-dialog.gladep \
+ mail-summary-popup.gladep \
+ mailbox-properties-dialog.gladep \
+ properties-dialog.gladep
all: all-am
@@ -284,6 +316,15 @@ $(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-dist_uiDATA: $(dist_ui_DATA)
@$(NORMAL_INSTALL)
@@ -369,11 +410,11 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
@@ -401,7 +442,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
@@ -413,15 +454,15 @@ ps-am:
uninstall-am: uninstall-dist_uiDATA uninstall-info-am
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-dist_uiDATA 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 pdf \
- pdf-am ps ps-am uninstall uninstall-am uninstall-dist_uiDATA \
- 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-dist_uiDATA 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-dist_uiDATA 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.
diff --git a/ui/authentication.glade b/ui/authentication.glade
@@ -1,260 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="dialog">
- <property name="border_width">6</property>
- <property name="title" translatable="yes"></property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button2">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Authenticate</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-authentication</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="label">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0</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="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="username_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Username:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">username_entry</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="username_entry">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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="GtkHBox" id="hbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="password_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Password:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">password_entry</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="password_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- <signal name="changed" handler="mn_authenticated_mailbox_password_prompt_changed_h" object="dialog" last_modification_time="Sun, 10 Oct 2004 21:53:42 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/authentication.gladep b/ui/authentication.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>Mail Notification Authentication</name>
- <program_name>mail-notification</program_name>
- <directory>../</directory>
- <source_directory>../src</source_directory>
- <pixmaps_directory>../art</pixmaps_directory>
- <output_main_file>FALSE</output_main_file>
- <output_support_files>FALSE</output_support_files>
- <output_build_files>FALSE</output_build_files>
- <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/edit-toolbars-dialog.glade b/ui/edit-toolbars-dialog.glade
@@ -0,0 +1,163 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkDialog" id="dialog">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Edit Toolbars</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="has_separator">False</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="helpbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-help</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-11</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="button1">
+ <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>
+ <property name="response_id">1</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment1">
+ <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="hbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-undo</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="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Use Default</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="button2">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Add a New Toolbar</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">2</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="button3">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-7</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/edit-toolbars-dialog.gladep b/ui/edit-toolbars-dialog.gladep
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+ <name>Mail Notification Edit Toolbars Dialog</name>
+ <program_name>mail-notification</program_name>
+ <directory>../</directory>
+ <source_directory>../src</source_directory>
+ <pixmaps_directory>../art</pixmaps_directory>
+ <output_main_file>FALSE</output_main_file>
+ <output_support_files>FALSE</output_support_files>
+ <output_build_files>FALSE</output_build_files>
+ <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/edit-toolbars.glade b/ui/edit-toolbars.glade
@@ -1,159 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="dialog">
- <property name="border_width">6</property>
- <property name="title" translatable="yes">Edit Toolbars</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
- <signal name="response" handler="mn_main_window_edit_toolbars_response_h" last_modification_time="Thu, 10 Feb 2005 14:42:36 GMT"/>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="helpbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-help</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-11</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button1">
- <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>
- <property name="response_id">1</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <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="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-undo</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="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Use Default</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>
- </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="button2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Add a New Toolbar</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">2</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button3">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-7</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/edit-toolbars.gladep b/ui/edit-toolbars.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>Mail Notification Edit Toolbars</name>
- <program_name>mail-notification</program_name>
- <directory>../</directory>
- <source_directory>../src</source_directory>
- <pixmaps_directory>../art</pixmaps_directory>
- <output_main_file>FALSE</output_main_file>
- <output_support_files>FALSE</output_support_files>
- <output_build_files>FALSE</output_build_files>
- <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/mail-summary-popup.glade b/ui/mail-summary-popup.glade
@@ -0,0 +1,120 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkWindow" id="popup">
+ <property name="title" translatable="yes"></property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">False</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">False</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="skip_pager_hint">True</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">False</property>
+
+ <child>
+ <widget class="GtkEventBox" id="eventbox">
+ <property name="visible">True</property>
+ <property name="visible_window">False</property>
+ <property name="above_child">False</property>
+ <signal name="button_press_event" handler="button_press_event_h" last_modification_time="Sun, 24 Jul 2005 01:50:26 GMT"/>
+
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkImage" id="image">
+ <property name="visible">True</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="mn-mail-summary-popup-title">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span size="larger" weight="bold">Mail Summary</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHSeparator" id="hseparator1">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="Custom" id="mn-message-view">
+ <property name="visible">True</property>
+ <property name="creation_function">mn_mail_summary_popup_message_view_new_cb</property>
+ <property name="int1">0</property>
+ <property name="int2">0</property>
+ <property name="last_modification_time">Sun, 24 Jul 2005 01:51:23 GMT</property>
+ <signal name="button_press_event" handler="button_press_event_h" last_modification_time="Sun, 24 Jul 2005 01:51:17 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/mail-summary-popup.gladep b/ui/mail-summary-popup.gladep
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+ <name>Mail Notification Mail Summary Popup</name>
+ <program_name>mail-notification</program_name>
+ <directory>../</directory>
+ <source_directory>../src</source_directory>
+ <pixmaps_directory>../art</pixmaps_directory>
+ <output_main_file>FALSE</output_main_file>
+ <output_support_files>FALSE</output_support_files>
+ <output_build_files>FALSE</output_build_files>
+ <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/mailbox-properties-dialog.glade b/ui/mailbox-properties-dialog.glade
@@ -0,0 +1,336 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkDialog" id="dialog">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes"></property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">False</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="has_separator">False</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox">
+ <property name="border_width">5</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">General</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox4">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox16">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="mailbox_type_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Mailbox _type:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">mailbox_type_combo</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="GtkComboBox" id="mailbox_type_combo">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="changed" handler="type_changed_h" last_modification_time="Sat, 23 Jul 2005 18:47:02 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</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="GtkHBox" id="hbox17">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="mailbox_name_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Mailbox _name:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">mailbox_name_entry</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="GtkHBox" id="hbox18">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkEntry" id="mailbox_name_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">False</property>
+ <signal name="changed" handler="name_changed_h" last_modification_time="Sat, 23 Jul 2005 18:25:45 GMT"/>
+ <signal name="activate" handler="entry_activate_h" last_modification_time="Sat, 23 Jul 2005 18:25:59 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="mailbox_name_default_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Use Default</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked" handler="name_default_button_clicked_h" last_modification_time="Sat, 23 Jul 2005 18:26:16 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>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <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="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="type_section_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkEventBox" id="properties_event_box">
+ <property name="visible">True</property>
+ <property name="visible_window">False</property>
+ <property name="above_child">False</property>
+
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/mailbox-properties-dialog.gladep b/ui/mailbox-properties-dialog.gladep
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+ <name>Mail Notification Mailbox Properties Dialog</name>
+ <program_name>mail-notification</program_name>
+ <directory>../</directory>
+ <source_directory>../src</source_directory>
+ <pixmaps_directory>../art</pixmaps_directory>
+ <output_main_file>FALSE</output_main_file>
+ <output_support_files>FALSE</output_support_files>
+ <output_build_files>FALSE</output_build_files>
+ <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/mailbox-properties.glade b/ui/mailbox-properties.glade
@@ -1,122 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="dialog">
- <property name="border_width">6</property>
- <property name="title" translatable="yes"></property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox16">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="mailbox_type_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Mailbox type:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">mailbox_type_combo</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="mailbox_type_combo">
- <property name="visible">True</property>
- <signal name="changed" handler="mn_mailbox_properties_dialog_mailbox_type_changed_h" object="dialog" last_modification_time="Wed, 11 Aug 2004 16:33:22 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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="GtkEventBox" id="properties_event_box">
- <property name="visible">True</property>
- <property name="visible_window">False</property>
- <property name="above_child">False</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/mailbox-properties.gladep b/ui/mailbox-properties.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>Mail Notification Mailbox Properties</name>
- <program_name>mail-notification</program_name>
- <directory>../</directory>
- <source_directory>../src</source_directory>
- <pixmaps_directory>../art</pixmaps_directory>
- <output_main_file>FALSE</output_main_file>
- <output_support_files>FALSE</output_support_files>
- <output_build_files>FALSE</output_build_files>
- <translatable_strings_file>mailbox-properties-strings.c</translatable_strings_file>
-</glade-project>
diff --git a/ui/main.glade b/ui/main.glade
@@ -1,93 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkWindow" id="window">
- <property name="title" translatable="yes">Mail Notification</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <signal name="window_state_event" handler="mn_main_window_window_state_event_h" last_modification_time="Sun, 13 Feb 2005 02:14:14 GMT"/>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="Custom" id="menubar">
- <property name="visible">True</property>
- <property name="creation_function">mn_main_window_get_widget_cb</property>
- <property name="string1">/menubar</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Thu, 10 Feb 2005 11:52:55 GMT</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="Custom" id="toolbar">
- <property name="visible">True</property>
- <property name="creation_function">mn_main_window_toolbar_new_cb</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Thu, 10 Feb 2005 11:53:22 GMT</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolled">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkStatusbar" id="statusbar">
- <property name="visible">True</property>
- <property name="has_resize_grip">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/main.gladep b/ui/main.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>Mail Notification</name>
- <program_name>mail-notification</program_name>
- <directory>../</directory>
- <source_directory>../src</source_directory>
- <pixmaps_directory>../art</pixmaps_directory>
- <output_main_file>FALSE</output_main_file>
- <output_support_files>FALSE</output_support_files>
- <output_build_files>FALSE</output_build_files>
- <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/properties-dialog.glade b/ui/properties-dialog.glade
@@ -0,0 +1,1890 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkDialog" id="dialog">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Mail Notification Properties</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="has_separator">False</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkNotebook" id="notebook">
+ <property name="border_width">5</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">True</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox12">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox22">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label36">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">General</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox23">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="autostart_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Start Mail Notification on GNOME login</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="autostart_toggled_h" last_modification_time="Sat, 23 Jul 2005 21:06:40 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="blink_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Blink on errors</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>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="summary_tooltip_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Dis_play mail summary in tooltip</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>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox24">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label38">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Commands</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox25">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox33">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="command_mail_reader_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Mail reader:</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="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:24 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="command_mail_reader_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</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="GtkHBox" id="hbox29">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="command_new_mail_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">When _new mail arrives:</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="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:29 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="command_new_mail_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</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="GtkHBox" id="hbox30">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="command_mail_read_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">When _all mail has been read:</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="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:35 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="command_mail_read_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox26">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label40">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Double-click Action</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox27">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="action_main_window_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Display the main window</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="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:42 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="action_mail_reader_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Launch the mail reader</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>
+ <property name="group">action_main_window_radio</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="action_update_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Update the mail 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>
+ <property name="group">action_main_window_radio</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label25">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">General</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">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="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox13">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox19">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label32">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">General</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment4">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox11">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="delay_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Delay between mail checks:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">minutes_spin</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="GtkHBox" id="hbox12">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkSpinButton" id="minutes_spin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">1 0 1440 1 10 10</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="minutes_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">minutes</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">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="GtkSpinButton" id="seconds_spin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">1 0 59 1 10 10</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="seconds_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">seconds</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">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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </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">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox20">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label34">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Mailbox List</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment5">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox21">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolled">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="selected_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></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">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="GtkHBox" id="hbox5">
+ <property name="visible">True</property>
+ <property name="homogeneous">True</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkButton" id="button2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-add</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="add_clicked_h" last_modification_time="Sat, 23 Jul 2005 21:09:18 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="remove">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-remove</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="remove_clicked_h" last_modification_time="Sat, 23 Jul 2005 21:09:25 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="properties">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-properties</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="properties_clicked_h" last_modification_time="Sat, 23 Jul 2005 21:09:58 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label26">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Mailboxes</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">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="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox14">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox15">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label28">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">General</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment6">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox16">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="summary_enable_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Enable mail summary popup</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="summary_enable_toggled_h" last_modification_time="Sun, 24 Jul 2005 23:21:58 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox15">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="summary_autoclose_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Automatically close after:</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="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:08:08 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox16">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkSpinButton" id="summary_minutes_spin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">1 0 1440 1 10 10</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="summary_minutes_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">minutes</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">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="GtkSpinButton" id="summary_seconds_spin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">1 0 59 1 10 10</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="summary_seconds_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">seconds</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">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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</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="GtkCheckButton" id="summary_only_recent_check">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Only display _recent mail</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>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox17">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label30">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Position</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox18">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox17">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="summary_position_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Position:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">summary_position_combo</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="GtkComboBox" id="summary_position_combo">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox18">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="summary_horizontal_offset_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Horizontal offset:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">summary_horizontal_offset_spin</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="GtkHBox" id="hbox19">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkSpinButton" id="summary_horizontal_offset_spin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">1 0 9999 1 10 10</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="summary_horizontal_pixels_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">pixels</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">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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox20">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="summary_vertical_offset_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Vertical offset:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">summary_vertical_offset_spin</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="GtkHBox" id="hbox21">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkSpinButton" id="summary_vertical_offset_spin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">1 0 9999 1 10 10</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="summary_vertical_pixels_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">pixels</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">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>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox28">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label42">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Fonts</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</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="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox29">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="summary_fonts_from_theme_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Use fonts from theme</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="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:08:22 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="summary_custom_fonts_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use these _fonts:</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>
+ <property name="group">summary_fonts_from_theme_radio</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox39">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkAlignment" id="summary_title_font_alignment">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">30</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="summary_title_font_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Title:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">summary_title_font_button</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>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkFontButton" id="summary_title_font_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_style">True</property>
+ <property name="show_size">True</property>
+ <property name="use_font">False</property>
+ <property name="use_size">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</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="GtkHBox" id="hbox40">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkAlignment" id="summary_contents_font_alignment">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">30</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="summary_contents_font_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Co_ntents:</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</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">summary_contents_font_button</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>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkFontButton" id="summary_contents_font_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_style">True</property>
+ <property name="show_size">True</property>
+ <property name="use_font">False</property>
+ <property name="use_size">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox41">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkButton" id="summary_test_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="summary_test_button_clicked_h" last_modification_time="Wed, 27 Jul 2005 07:48:49 GMT"/>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment9">
+ <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="hbox42">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="icon_size">4</property>
+ <property name="icon_name">stock_test-mode</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="label43">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Display a Test Popup</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>
+ <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">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label27">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Mail Summary Popup</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">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="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/properties-dialog.gladep b/ui/properties-dialog.gladep
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+ <name>Mail Notification Properties Dialog</name>
+ <program_name>mail-notification</program_name>
+ <directory>../</directory>
+ <source_directory>../src</source_directory>
+ <pixmaps_directory>../art</pixmaps_directory>
+ <output_main_file>FALSE</output_main_file>
+ <output_support_files>FALSE</output_support_files>
+ <output_build_files>FALSE</output_build_files>
+ <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/properties.glade b/ui/properties.glade
@@ -1,1744 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="dialog">
- <property name="border_width">6</property>
- <property name="title" translatable="yes">Mail Notification Properties</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
- <signal name="response" handler="mn_properties_dialog_response_h" last_modification_time="Sat, 02 Oct 2004 18:23:37 GMT"/>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="helpbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-help</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-11</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="closebutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-7</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkNotebook" id="notebook">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
-
- <child>
- <widget class="GtkVBox" id="vbox12">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
-
- <child>
- <widget class="GtkVBox" id="vbox22">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label36">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">General</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox23">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkCheckButton" id="autostart_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to start Mail Notification when you log into your GNOME session or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Start Mail Notification on GNOME login</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="mn_properties_dialog_autostart_toggled_h" last_modification_time="Mon, 23 Aug 2004 01:36:43 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="blink_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether the status icon should blink on errors or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Blink on errors</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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="summary_tooltip_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to display the mail summary in the status icon tooltip or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Dis_play mail summary in tooltip</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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox24">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label38">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">Commands</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox25">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox33">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkCheckButton" id="command_mail_reader_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to set a mail reader or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Mail reader:</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="mn_properties_dialog_toggled_h" last_modification_time="Fri, 29 Oct 2004 16:42:45 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="command_mail_reader_entry">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The command to run to launch the mail reader</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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="GtkHBox" id="hbox29">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkCheckButton" id="command_new_mail_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to run a command when new mail arrives or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">When _new mail arrives:</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="mn_properties_dialog_toggled_h" last_modification_time="Sun, 27 Jul 2003 08:45:08 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="command_new_mail_entry">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The command to run when new mail arrives</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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="GtkHBox" id="hbox30">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkCheckButton" id="command_mail_read_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to run a command when all mail is read or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">When _all mail is read:</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="mn_properties_dialog_toggled_h" last_modification_time="Sat, 09 Oct 2004 17:36:36 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="command_mail_read_entry">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The command to run when all mail is read</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox26">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label40">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">Double-click Action</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox27">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkRadioButton" id="action_main_window_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Display the main window</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="mn_properties_dialog_toggled_h" last_modification_time="Tue, 26 Oct 2004 11:27:38 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="action_mail_reader_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Launch the mail reader</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>
- <property name="group">action_main_window_radio</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="action_update_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Update the mail 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>
- <property name="group">action_main_window_radio</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="label" translatable="yes">General</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">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox13">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
-
- <child>
- <widget class="GtkVBox" id="vbox19">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label32">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">General</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox11">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="delay_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Delay between mail checks:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">minutes_spin</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox12">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkSpinButton" id="minutes_spin">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The amount of time to wait between mail checks</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">True</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 1440 1 10 10</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="minutes_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">minutes</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">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="seconds_spin">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The amount of time to wait between mail checks</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">True</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 59 1 10 10</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="seconds_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">seconds</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">0</property>
- </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>
- </widget>
- </child>
- </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">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox20">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label34">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">Mailbox List</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment5">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox21">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolled">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="selected_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></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">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox5">
- <property name="visible">True</property>
- <property name="homogeneous">True</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="button2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-add</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="mn_properties_dialog_add_clicked_h" last_modification_time="Thu, 27 May 2004 20:34:29 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="remove">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-remove</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="mn_properties_dialog_remove_clicked_h" last_modification_time="Sat, 06 Dec 2003 14:00:02 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="properties">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-properties</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="mn_properties_dialog_properties_clicked_h" last_modification_time="Sat, 05 Jun 2004 20:07:54 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label26">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Mailboxes</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">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox14">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">18</property>
-
- <child>
- <widget class="GtkVBox" id="vbox15">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label28">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">General</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment6">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox16">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkCheckButton" id="summary_enable_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to display the mail summary popup when new mail arrives or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Enable mail summary popup</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="mn_properties_dialog_toggled_h" last_modification_time="Wed, 15 Sep 2004 19:20:43 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox15">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkCheckButton" id="summary_autoclose_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to automatically close the mail summary popup or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Automatically close after:</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="mn_properties_dialog_toggled_h" last_modification_time="Wed, 15 Sep 2004 19:20:52 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox16">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkSpinButton" id="summary_minutes_spin">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The amount of time to wait before closing the mail summary popup</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">True</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 1440 1 10 10</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="summary_minutes_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">minutes</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">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="summary_seconds_spin">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The amount of time to wait before closing the mail summary popup</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">True</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 59 1 10 10</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="summary_seconds_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">seconds</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">0</property>
- </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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="summary_only_recent_check">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Whether to hide previously displayed mail or not</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Only display _recent mail</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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox17">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label30">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">Position</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment7">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox18">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox17">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="summary_position_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">P_osition:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">summary_position_combo</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="summary_position_combo">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox18">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="summary_horizontal_offset_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Hori_zontal offset:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">summary_horizontal_offset_spin</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox19">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkSpinButton" id="summary_horizontal_offset_spin">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The number of pixels to leave between the left or right side of the screen and the mail summary popup</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">True</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 9999 1 10 10</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="summary_horizontal_pixels_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">pixels</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">0</property>
- </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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox20">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="summary_vertical_offset_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Vertical offset:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">summary_vertical_offset_spin</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox21">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkSpinButton" id="summary_vertical_offset_spin">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">The number of pixels to leave between the top or bottom side of the screen and the mail summary popup</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">True</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 9999 1 10 10</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="summary_vertical_pixels_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">pixels</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">0</property>
- </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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox28">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label42">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span weight="bold">Fonts</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</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="GtkAlignment" id="alignment8">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox29">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkRadioButton" id="summary_fonts_from_theme_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Use fonts from theme</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="mn_properties_dialog_toggled_h" last_modification_time="Thu, 03 Feb 2005 20:37:10 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="summary_custom_fonts_radio">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Use these _fonts:</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>
- <property name="group">summary_fonts_from_theme_radio</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox39">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkAlignment" id="summary_title_font_alignment">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">30</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkLabel" id="summary_title_font_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Title:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">summary_title_font_button</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFontButton" id="summary_title_font_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_style">True</property>
- <property name="show_size">True</property>
- <property name="use_font">False</property>
- <property name="use_size">False</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</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="GtkHBox" id="hbox40">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkAlignment" id="summary_contents_font_alignment">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">30</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkLabel" id="summary_contents_font_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Co_ntents:</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</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">summary_contents_font_button</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFontButton" id="summary_contents_font_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_style">True</property>
- <property name="show_size">True</property>
- <property name="use_font">False</property>
- <property name="use_size">False</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label27">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Mail Summary Popup</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">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/properties.gladep b/ui/properties.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>Mail Notification Properties</name>
- <program_name>mail-notification</program_name>
- <directory>../</directory>
- <source_directory>../src</source_directory>
- <pixmaps_directory>../art</pixmaps_directory>
- <output_main_file>FALSE</output_main_file>
- <output_support_files>FALSE</output_support_files>
- <output_build_files>FALSE</output_build_files>
- <translatable_strings_file>properties-strings.c</translatable_strings_file>
-</glade-project>
diff --git a/ui/summary-popup.glade b/ui/summary-popup.glade
@@ -1,115 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkWindow" id="mn-mail-summary-popup">
- <property name="title" translatable="yes"></property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">False</property>
- <property name="skip_taskbar_hint">True</property>
- <property name="skip_pager_hint">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
- <child>
- <widget class="GtkEventBox" id="eventbox1">
- <property name="visible">True</property>
- <property name="visible_window">False</property>
- <property name="above_child">False</property>
- <signal name="button_press_event" handler="mn_summary_popup_button_press_event_h" last_modification_time="Wed, 15 Sep 2004 18:53:08 GMT"/>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkImage" id="image">
- <property name="visible">True</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="mn-mail-summary-popup-title">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><span size="larger" weight="bold">Mail Summary</span></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</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>
- </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">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHSeparator" id="hseparator1">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="Custom" id="mn-message-view">
- <property name="visible">True</property>
- <property name="creation_function">mn_summary_popup_message_view_new_cb</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Sat, 12 Feb 2005 15:59:50 GMT</property>
- <signal name="button_press_event" handler="mn_summary_popup_button_press_event_h" last_modification_time="Sat, 12 Feb 2005 17:30:20 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/summary-popup.gladep b/ui/summary-popup.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>Mail Notification Summary Popup</name>
- <program_name>mail-notification</program_name>
- <directory>../</directory>
- <source_directory>../src</source_directory>
- <pixmaps_directory>../art</pixmaps_directory>
- <output_main_file>FALSE</output_main_file>
- <output_support_files>FALSE</output_support_files>
- <output_build_files>FALSE</output_build_files>
- <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/welcome.glade b/ui/welcome.glade
@@ -1,244 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="dialog">
- <property name="border_width">6</property>
- <property name="title" translatable="yes"></property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button1">
- <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>
- <property name="response_id">-7</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment3">
- <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="hbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image4">
- <property name="visible">True</property>
- <property name="stock">gtk-close</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="label4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Skip configuration</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>
- </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="button2">
- <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>
- <property name="response_id">-5</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <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="hbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image3">
- <property name="visible">True</property>
- <property name="stock">gtk-properties</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="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Configure Mail Notification</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>
- </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>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="pixbuf">logo.png</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0</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="label5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes"><span weight="bold" size="larger">First startup</span>
-
-Mail Notification has been loaded successfully.
-
-Since this is the first time you run Mail Notification, you need to configure it.
-
-Note: this message will not be shown anymore. To configure Mail Notification again, choose <span weight="bold">Applications</span> → <span weight="bold">Desktop Preferences</span> → <span weight="bold">Mail Notification</span> (or on some systems <span weight="bold">Applications → Preferences → More Preferences → Mail Notification</span>).</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0</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>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/welcome.gladep b/ui/welcome.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>Mail Notification Welcome</name>
- <program_name>mail-notification</program_name>
- <directory>../</directory>
- <source_directory>../src</source_directory>
- <pixmaps_directory>../art</pixmaps_directory>
- <output_main_file>FALSE</output_main_file>
- <output_support_files>FALSE</output_support_files>
- <output_build_files>FALSE</output_build_files>
- <translatable_strings_file>../</translatable_strings_file>
-</glade-project>