/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; -*- */ /* * * Authors: Bertrand Guiheneuf * * Copyright 1999-2003 Ximian, Inc. (www.ximian.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public * License as published by the Free Software Foundation. * * 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 */ #ifdef HAVE_CONFIG_H #include #endif #include #include "camel-data-wrapper.h" #include "camel-stream.h" #include "camel-stream-filter.h" #include "camel-mime-filter-basic.h" #include "camel-mime-filter-crlf.h" #include "camel-exception.h" #include "camel-private.h" #define d(x) static CamelObjectClass *parent_class = NULL; /* Returns the class for a CamelDataWrapper */ #define CDW_CLASS(so) CAMEL_DATA_WRAPPER_CLASS (CAMEL_OBJECT_GET_CLASS(so)) static int construct_from_stream(CamelDataWrapper *, CamelStream *); static ssize_t write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream); static ssize_t decode_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream); static void set_mime_type (CamelDataWrapper *data_wrapper, const char *mime_type); static gchar *get_mime_type (CamelDataWrapper *data_wrapper); static CamelContentType *get_mime_type_field (CamelDataWrapper *data_wrapper); static void set_mime_type_field (CamelDataWrapper *data_wrapper, CamelContentType *mime_type); static gboolean is_offline (CamelDataWrapper *data_wrapper); static void camel_data_wrapper_class_init (CamelDataWrapperClass *camel_data_wrapper_class) { parent_class = camel_type_get_global_classfuncs (camel_object_get_type ()); /* virtual method definition */ camel_data_wrapper_class->write_to_stream = write_to_stream; camel_data_wrapper_class->decode_to_stream = decode_to_stream; camel_data_wrapper_class->set_mime_type = set_mime_type; camel_data_wrapper_class->get_mime_type = get_mime_type; camel_data_wrapper_class->get_mime_type_field = get_mime_type_field; camel_data_wrapper_class->set_mime_type_field = set_mime_type_field; camel_data_wrapper_class->construct_from_stream = construct_from_stream; camel_data_wrapper_class->is_offline = is_offline; } static void camel_data_wrapper_init (gpointer object, gpointer klass) { CamelDataWrapper *camel_data_wrapper = CAMEL_DATA_WRAPPER (object); camel_data_wrapper->priv = g_malloc (sizeof (struct _CamelDataWrapperPrivate)); pthread_mutex_init (&camel_data_wrapper->priv->stream_lock, NULL); camel_data_wrapper->mime_type = camel_content_type_new ("application", "octet-stream"); camel_data_wrapper->encoding = CAMEL_TRANSFER_ENCODING_DEFAULT; camel_data_wrapper->offline = FALSE; } static void camel_data_wrapper_finalize (CamelObject *object) { CamelDataWrapper *camel_data_wrapper = CAMEL_DATA_WRAPPER (object); pthread_mutex_destroy (&camel_data_wrapper->priv->stream_lock); g_free (camel_data_wrapper->priv); if (camel_data_wrapper->mime_type) camel_content_type_unref (camel_data_wrapper->mime_type); if (camel_data_wrapper->stream) camel_object_unref (camel_data_wrapper->stream); } CamelType camel_data_wrapper_get_type (void) { static CamelType type = CAMEL_INVALID_TYPE; if (type == CAMEL_INVALID_TYPE) { type = camel_type_register (CAMEL_OBJECT_TYPE, "CamelDataWrapper", sizeof (CamelDataWrapper), sizeof (CamelDataWrapperClass), (CamelObjectClassInitFunc) camel_data_wrapper_class_init, NULL, (CamelObjectInitFunc) camel_data_wrapper_init, (CamelObjectFinalizeFunc) camel_data_wrapper_finalize); } return type; } CamelDataWrapper * camel_data_wrapper_new (void) { return (CamelDataWrapper *) camel_object_new (CAMEL_DATA_WRAPPER_TYPE); } static ssize_t write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { ssize_t ret; if (data_wrapper->stream == NULL) { return -1; } CAMEL_DATA_WRAPPER_LOCK (data_wrapper, stream_lock); if (camel_stream_reset (data_wrapper->stream) == -1) { CAMEL_DATA_WRAPPER_UNLOCK (data_wrapper, stream_lock); return -1; } ret = camel_stream_write_to_stream (data_wrapper->stream, stream); CAMEL_DATA_WRAPPER_UNLOCK (data_wrapper, stream_lock); return ret; } /** * camel_data_wrapper_write_to_stream: * @data_wrapper: a data wrapper * @stream: stream for data to be written to * @ex: a CamelException * * Writes the data content to @stream in a machine-independent format * appropriate for the data. It should be possible to construct an * equivalent data wrapper object later by passing this stream to * camel_data_wrapper_construct_from_stream(). * * Return value: the number of bytes written, or -1 if an error * occurs. **/ ssize_t camel_data_wrapper_write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { g_return_val_if_fail (CAMEL_IS_DATA_WRAPPER (data_wrapper), -1); g_return_val_if_fail (CAMEL_IS_STREAM (stream), -1); return CDW_CLASS (data_wrapper)->write_to_stream (data_wrapper, stream); } static ssize_t decode_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { CamelMimeFilter *filter; CamelStream *fstream; ssize_t ret; fstream = (CamelStream *) camel_stream_filter_new_with_stream (stream); switch (data_wrapper->encoding) { case CAMEL_TRANSFER_ENCODING_BASE64: filter = (CamelMimeFilter *) camel_mime_filter_basic_new_type (CAMEL_MIME_FILTER_BASIC_BASE64_DEC); camel_stream_filter_add (CAMEL_STREAM_FILTER (fstream), filter); camel_object_unref (filter); break; case CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE: filter = (CamelMimeFilter *) camel_mime_filter_basic_new_type (CAMEL_MIME_FILTER_BASIC_QP_DEC); camel_stream_filter_add (CAMEL_STREAM_FILTER (fstream), filter); camel_object_unref (filter); break; case CAMEL_TRANSFER_ENCODING_UUENCODE: filter = (CamelMimeFilter *) camel_mime_filter_basic_new_type (CAMEL_MIME_FILTER_BASIC_UU_DEC); camel_stream_filter_add (CAMEL_STREAM_FILTER (fstream), filter); camel_object_unref (filter); break; default: break; } if (camel_content_type_is (data_wrapper->mime_type, "text", "*")) { filter = camel_mime_filter_crlf_new (CAMEL_MIME_FILTER_CRLF_DECODE, CAMEL_MIME_FILTER_CRLF_MODE_CRLF_ONLY); camel_stream_filter_add (CAMEL_STREAM_FILTER (fstream), filter); camel_object_unref (filter); } ret = camel_data_wrapper_write_to_stream (data_wrapper, fstream); camel_stream_flush (fstream); camel_object_unref (fstream); return ret; } /** * camel_data_wrapper_decode_to_stream: * @data_wrapper: a data wrapper * @stream: stream for decoded data to be written to * @ex: a CamelException * * Writes the decoded data content to @stream. * * Return value: the number of bytes written, or -1 if an error * occurs. **/ ssize_t camel_data_wrapper_decode_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { g_return_val_if_fail (CAMEL_IS_DATA_WRAPPER (data_wrapper), -1); g_return_val_if_fail (CAMEL_IS_STREAM (stream), -1); return CDW_CLASS (data_wrapper)->decode_to_stream (data_wrapper, stream); } static int construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { if (data_wrapper->stream) camel_object_unref (data_wrapper->stream); data_wrapper->stream = stream; camel_object_ref (stream); return 0; } /** * camel_data_wrapper_construct_from_stream: * @data_wrapper: a data wrapper * @stream: A stream that can be read from. * * Constructs the content of the data wrapper from the * supplied @stream. * * Return value: -1 on error. **/ int camel_data_wrapper_construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) { g_return_val_if_fail (CAMEL_IS_DATA_WRAPPER (data_wrapper), -1); g_return_val_if_fail (CAMEL_IS_STREAM (stream), -1); return CDW_CLASS (data_wrapper)->construct_from_stream (data_wrapper, stream); } static void set_mime_type (CamelDataWrapper *data_wrapper, const char *mime_type) { if (data_wrapper->mime_type) camel_content_type_unref (data_wrapper->mime_type); data_wrapper->mime_type = camel_content_type_decode (mime_type); } /** * camel_data_wrapper_set_mime_type: * @data_wrapper: a data wrapper * @mime_type: the text representation of a MIME type * * This sets the data wrapper's MIME type. * It might fail, but you won't know. It will allow you to set * Content-Type parameters on the data wrapper, which are meaningless. * You should not be allowed to change the MIME type of a data wrapper * that contains data, or at least, if you do, it should invalidate the * data. **/ void camel_data_wrapper_set_mime_type (CamelDataWrapper *data_wrapper, const char *mime_type) { g_return_if_fail (CAMEL_IS_DATA_WRAPPER (data_wrapper)); g_return_if_fail (mime_type != NULL); CDW_CLASS (data_wrapper)->set_mime_type (data_wrapper, mime_type); } static char * get_mime_type (CamelDataWrapper *data_wrapper) { return camel_content_type_simple (data_wrapper->mime_type); } /** * camel_data_wrapper_get_mime_type: * @data_wrapper: a data wrapper * * Return value: the text form of the data wrapper's MIME type, * which the caller must free. **/ char * camel_data_wrapper_get_mime_type (CamelDataWrapper *data_wrapper) { g_return_val_if_fail (CAMEL_IS_DATA_WRAPPER (data_wrapper), NULL); return CDW_CLASS (data_wrapper)->get_mime_type (data_wrapper); } static CamelContentType * get_mime_type_field (CamelDataWrapper *data_wrapper) { return data_wrapper->mime_type; } /** * camel_data_wrapper_get_mime_type_field: * @data_wrapper: a data wrapper * * Return value: the parsed form of the data wrapper's MIME type **/ CamelContentType * camel_data_wrapper_get_mime_type_field (CamelDataWrapper *data_wrapper) { g_return_val_if_fail (CAMEL_IS_DATA_WRAPPER (data_wrapper), NULL); return CDW_CLASS (data_wrapper)->get_mime_type_field (data_wrapper); } /** * camel_data_wrapper_set_mime_type_field: * @data_wrapper: a data wrapper * @mime_type: the parsed representation of a MIME type * * This sets the data wrapper's MIME type. It suffers from the same * flaws as camel_data_wrapper_set_mime_type. **/ static void set_mime_type_field (CamelDataWrapper *data_wrapper, CamelContentType *mime_type) { if (mime_type) camel_content_type_ref (mime_type); if (data_wrapper->mime_type) camel_content_type_unref (data_wrapper->mime_type); data_wrapper->mime_type = mime_type; } void camel_data_wrapper_set_mime_type_field (CamelDataWrapper *data_wrapper, CamelContentType *mime_type) { g_return_if_fail (CAMEL_IS_DATA_WRAPPER (data_wrapper)); g_return_if_fail (mime_type != NULL); CDW_CLASS (data_wrapper)->set_mime_type_field (data_wrapper, mime_type); } static gboolean is_offline (CamelDataWrapper *data_wrapper) { return data_wrapper->offline; } /** * camel_data_wrapper_is_offline: * @data_wrapper: a data wrapper * * Return value: whether @data_wrapper is "offline" (data stored * remotely) or not. Some optional code paths may choose to not * operate on offline data. **/ gboolean camel_data_wrapper_is_offline (CamelDataWrapper *data_wrapper) { return CDW_CLASS (data_wrapper)->is_offline (data_wrapper); } cgit/cgit.cgi/freebsd-ports-gnome/commit/deskutils?h=gnome-3.24&id=5016eb401168acb0c734e53d5ae5eec8b30b1571'>Fix execution on 64bit platformsarved2009-07-252-1/+23 * - Fix build on 32-bit platforms (temporary quick & dirty fix)gahr2009-07-232-1/+32 * - lang/perl5.6 is dead, remove PERL_LEVEL/PERL_VERSION < 500801 checkspgollucci2009-07-231-7/+1 * - Update to 1.8.0gahr2009-07-224-10/+64 * - Update to 0.9beat2009-07-182-87/+87 * - update to jpeg7dinoex2009-07-181-2/+2 * - Update to 0.9beat2009-07-173-8/+20 * - Chase security/gpgme update.wxs2009-07-1618-7/+153 * Daisy is a simple launcher plasma applet for KDE4. Features include:miwi2009-07-135-0/+60 * - Drop maintainershipmiwi2009-07-111-1/+1 * - Remove port as it is no longer supported upstream and is included inwxs2009-07-104-42/+0 * - Update to 1.1.1miwi2009-07-092-5/+6 * - add PORTSCOUTdinoex2009-07-063-0/+6 * - cleanup ADDITIONAL_LIB_DIRSdinoex2009-07-054-6/+0 * Update to 0.3.16.marcus2009-07-054-57/+69 * - Update to 5.10avl2009-07-042-4/+4 * - Add missing RUN_DEPENDS on wgetwxs2009-07-031-1/+3 * Update to 2.26.3.avl2009-07-033-4/+8 * Update to 2.26.3.1.avl2009-07-013-4/+10 * BerliOS is up again => remove the temporary site.thierry2009-06-301-3/+2 * Upgrade to 0.94.thierry2009-06-293-8/+9 * Update deskutils/tomboy to 0.14.3.flz2009-06-242-4/+4 * VBoxGtk is a simple GTK frontend for VirtualBox. Its objective is toavl2009-06-235-0/+74 * - Update lang/mono to 2.4.flz2009-06-223-7/+27 * - Update to 1.7.0miwi2009-06-204-27/+13 * - Update to 0.112-r1amdmi32009-06-182-5/+4 * - Fix localizationamdmi32009-06-182-6/+18 * - Update to 2.4clsung2009-06-162-13/+10 * - Do not create DOCSDIR when NOPORTDOCS is setgahr2009-06-161-1/+1 * - Update to 0.2.0miwi2009-06-163-5/+6 * - New port: deskutils/taskwarriorgahr2009-06-165-0/+48 * Remove deskutils/mical as it has been marked BROKEN for over 8 months.erwin2009-06-145-42/+0 * Remove deskutils/kio_locate as it has been marked BROKEN for over 5 months.erwin2009-06-145-64/+0 * - Mark as DEPRECATED and set to expire in one month.wxs2009-06-111-0/+2 * Convert most of remaining ports that depend on xorg-libraries toamdmi32009-06-098-8/+16 * - Update lang/python26 and make Python 2.6.2 to the default Python versionmiwi2009-06-091-2/+16 * - Update to 5.9avl2009-06-073-4/+7 * Global Menu is the globally-shared menu bar of all applicationsmiwi2009-06-069-0/+152 * - add direct dependency on X11dinoex2009-06-051-0/+2 * - fix buildwith custom LOCALBASEdinoex2009-06-051-0/+1 * - fix buildwith custom LOCALBASEdinoex2009-06-051-0/+2 * Fix build with custom LOCALBASE.itetcu2009-06-041-4/+8 * Respect PREFIXitetcu2009-06-041-0/+3 * - Update to 1.0.2dhn2009-06-043-8/+21 * - Update MASTER_SITES/WWW/pkg-descrdhn2009-06-042-5/+4 * The KDE FreeBSD team is pleased to announce KDE 4.2.4, the last bugfixmiwi2009-06-039-17/+17 * Fix build with custom PREFIX.itetcu2009-06-031-0/+1 * Chase the vte shared lib version bump.marcus2009-06-032-2/+3 * - Resolve LATEST_LINK conflictpav2009-06-011-0/+1 * - Mark BROKEN on 6.X: does not compilepav2009-05-301-1/+7 * - Unbreakmiwi2009-05-302-7/+3 * - Update to 0.9miwi2009-05-303-10/+5 * - Add missing php dependencymiwi2009-05-291-1/+2 * - Update to 1.0.5miwi2009-05-294-11/+47 * Change MAINTAINER on my ports to my FreeBSD email addressavl2009-05-2911-11/+11 * Update to 0.13.marcus2009-05-252-4/+4 * Update to 2.26.2.kwm2009-05-192-5/+4 * Update to 2.26.2.kwm2009-05-192-4/+4 * Update to 2.26.2.marcus2009-05-192-5/+4 * - Fix a problem with hardcoded paths that wouldmiwi2009-05-171-0/+4 * - Update to 0.2.3miwi2009-05-173-4/+5 * Update to 0.11.kwm2009-05-173-5/+7 * Fix PLIST_SUB handling.makc2009-05-161-1/+3 * Add optional dependency on print/kdeutils4-printer-appletmakc2009-05-161-1/+9 * We no longer require py-elementtree with Python 2.5.marcus2009-05-151-2/+6 * Apparently py-elementtree is no longer required.marcus2009-05-141-4/+8 * Chase libgmp and bump PORTREVISION.ale2009-05-131-1/+2 * Fix LIB_DEPENDS on devel/readline: its sh lib version was bumped recently fromitetcu2009-05-121-3/+3 * Remove qt4 build tools from run dependencies.makc2009-05-111-1/+2 * Parcellite is a lightweight GTK+ clipboard manager. This is a stripped down,miwi2009-05-116-0/+70 * - Update to 5.2.0dmiwi2009-05-114-11/+27 * - Update maintainer mail adressmiwi2009-05-111-1/+1 * Update KDE ports to 4.2.3makc2009-05-1010-31/+36 * - Update to 0.7.4.1miwi2009-05-092-6/+4 * Update to 1.1.5.kwm2009-05-093-5/+5 * update xfce to 4.6.1oliver2009-05-066-10/+9 * Update to 0.12.1.marcus2009-05-063-5/+8 * - Give Maintainership up to the Gecko Gang (gecko@)miwi2009-05-056-6/+6 * - Update to 0.10.7miwi2009-05-033-6/+7 * Update to 2.2.5.marcus2009-05-032-4/+4 * - Update deskutils/plasma-applet-yawp to version 0.2.2miwi2009-05-012-5/+5 * - Update to 0.9.4miwi2009-05-014-5/+23 * - Update to 1.15pav2009-04-302-5/+4 * - Update to 0.6.4.1miwi2009-04-274-79/+225 * - Move russian/xneur to deskutils - it is more suitable category as the tool ...amdmi32009-04-273-3/+4 * - Update to 0.7.2miwi2009-04-262-4/+5 * Fix plist.kwm2009-04-242-0/+4 * Presenting GNOME 2.26.1 for FreeBSD.kwm2009-04-248-26/+55 * - Update to 0.9.4amdmi32009-04-234-43/+167 * - Update to 2.2.1beat2009-04-222-7/+4 * Upgrade to Pinot 0.93.thierry2009-04-222-4/+4 * - really reaspect DOCSDIRitetcu2009-04-221-0/+9 * - Mark all kde4 ports MAKE_JOBS_UNSAFEmiwi2009-04-175-5/+5 * Update to 2.26.1.kwm2009-04-133-4/+17 * Reassign a Gecko port to miwi.marcus2009-04-133-3/+3 * Take maintainership. The first of two steps is to take allmiwi2009-04-131-1/+1 * - Update to 5.8amdmi32009-04-122-4/+4 * - Upgrade to 0.92.thierry2009-04-103-6/+7 * Presenting GNOME 2.26 for FreeBSD. Seemarcus2009-04-1024-56/+185 * - Fix fetch by removing -A from FETCH_ARGS.amdmi32009-04-091-0/+1 * - Update to 0.1.1amdmi32009-04-094-12/+44 * - Change KDE4 dependency from workspace to kdelibs since Plasma movedmiwi2009-04-031-2/+3 * - Update to 1.0.4miwi2009-04-033-5/+10 * - Chase devel/libconfig shlip bumpmiwi2009-04-031-1/+2 * The KDE FreeBSD team is proud to announce the release of KDE 4.2.2miwi2009-04-0214-71/+37 * - Update to 2.3.1beech2009-04-026-10/+20 * - Allow to build with MAKE_JOBS_SAFEmiwi2009-04-013-0/+6 * Mark MAKE_JOBS_SAFEehaupt2009-03-271-0/+1 * - fix brokenclsung2009-03-271-2/+2 * - fix INDEX brokenclsung2009-03-261-2/+2 * - Fix build on HEADmiwi2009-03-251-0/+11 * - Fix build depends to respect HORBASbeech2009-03-251-3/+3 * bump PORTREVISION after cmake updatemakc2009-03-2516-3/+16 * Update devel/cmake to 2.6.3.makc2009-03-253-1/+23 * - Update to 2.0 and undeprecatepav2009-03-245-26/+34 * - Update to 1.0.6miwi2009-03-243-5/+9 * PlayWolf is a plasma applet for KDE4 that allows you to control Amarok 2.x frommiwi2009-03-214-0/+47 * - Update to 0.2.1miwi2009-03-212-5/+5 * - Update to version 2.1.2miwi2009-03-213-7/+20 * - udpate to 0.4.1dinoex2009-03-202-5/+7 * - udpate to 0.4.1dinoex2009-03-2017-111/+122 * - update to 0.38dinoex2009-03-203-4/+8 * Connect deskutils/plasma-applet-simpleweatherforecast to buildmakc2009-03-191-0/+1 * Add new port deskutils/plasma-applet-simpleweatherforecast:makc2009-03-194-0/+36 * Release these ports into wild. I don't have time for these ports anymore. I ammezz2009-03-191-1/+1 * Update to 0.11.10.marcus2009-03-183-4/+10 * - Fix "Enter RFC number" dialog so RFC numbers > 5000 can be enteredamdmi32009-03-182-4/+15 * - Add backup mirrormiwi2009-03-171-1/+2 * GTG is a personal organizer for the GNOME desktop environment,miwi2009-03-177-0/+179 * . update to version 3.1;bsam2009-03-163-8/+10 * - Update to 5.7lwhsu2009-03-153-4/+10 * - Update to version 0.7.4miwi2009-03-142-6/+6 * Free most of my ports, since they aren't being maintained to ashaun2009-03-143-3/+3 * Don't install kioslave to avoid conflict with kdegraphics4makc2009-03-133-2/+10 * . update graphics/exiv2 to the new version;bsam2009-03-121-0/+1 * Make dependency on gnu libiconv explicitjohans2009-03-121-1/+9 * - update to 0.15leeym2009-03-113-13/+19 * Add new port deskutils/plasma-applet-yawp:makc2009-03-105-0/+45 * - Reset farrokhi@freebsd.org due to long period of inactivity.miwi2009-03-101-1/+1 * Update KDE to 4.2.1.makc2009-03-0917-73/+67 * - Update to 0.10.5beat2009-03-085-52/+42 * the last missing ports:oliver2009-03-081-1/+1 * Upgrade to 0.91.thierry2009-03-084-18/+18 * Bump PORTREVISION after xfce 4.6 updateoliver2009-03-062-1/+2 * update Xfce to 4.6oliver2009-03-033-13/+25 * Attempt to fix the py-simplejson dependency. Is there no better way tomarcus2009-03-021-1/+3 * Add a dependency on py-simplejson so that the Google Search plug-in works.marcus2009-03-021-1/+3 * - Update to 0.8.1cmiwi2009-03-012-4/+4 * - Update to 1.6.4miwi2009-03-013-4/+7 * - Update to 0.10.3miwi2009-03-013-7/+7 * - Update to 2.6.2pav2009-02-272-5/+4 * - Change default Tcl/Tk version to 8.5mm2009-02-231-1/+1 * Update to 0.11.9.marcus2009-02-232-4/+4 * - convert for USE_TK, USE_TCLdinoex2009-02-231-3/+3 * - Distfile was rerolled. Only changes are in .desktop file - default comment ...amdmi32009-02-211-3/+3 * - Update to 0.7.3.2miwi2009-02-212-5/+9 * - Fix maintainer's emailamdmi32009-02-211-1/+1 * - Update to 1.0.5miwi2009-02-212-7/+5 * - Update to 1.9.60miwi2009-02-213-16/+14 * - Update to 5.6miwi2009-02-202-4/+4 * Distfile was rerolled without any changesmakc2009-02-192-5/+4 * Add patch from kde svn rev.927081:makc2009-02-194-0/+32 * Q4wine is an Qt4 (http://www.qtsoftware.com/) GUI for wine (http://winehq.org/).amdmi32009-02-186-0/+98 * - Add missing patch to fix the buildmiwi2009-02-171-0/+10 * - Update to 0.8.1bnivit2009-02-162-8/+7 * - Add a patch to fix unicode supportinglwhsu2009-02-162-1/+34 * - Remove deskutils/zbgset and deskutils/zbgset-admin both included now in des...miwi2009-02-167-109/+0 * A versitile background setter supporting random backgroundsmiwi2009-02-164-0/+44 * - Update to 2.3.0miwi2009-02-1523-1757/+172 * - Update to 1.12.0wxs2009-02-142-4/+4 * - Unbreakmiwi2009-02-133-2/+21 * - Unbreakmiwi2009-02-132-9/+7 * Upgrade to 1.3.7.kuriyama2009-02-132-4/+4 * - Fix broken build due to my recent HaXml updatepgj2009-02-132-2/+48 * - Remove duplicate curl from USE_PHPmiwi2009-02-101-2/+1 * - Update to 5.2.0amiwi2009-02-103-5/+470 * - Update lang/mono to 2.0.1.flz2009-02-093-37/+102 * The KDE FreeBSD team is proud to announce the release of KDE 4.2.0miwi2009-02-0932-1335/+968