im.pidgin.pidgin.2.2.3: 3e41952270bf5671f5d2fd8f01fc6449b066c10f

rekkanoryo at pidgin.im rekkanoryo at pidgin.im
Fri Nov 9 13:27:31 EST 2007


-----------------------------------------------------------------
Revision: 3e41952270bf5671f5d2fd8f01fc6449b066c10f
Ancestor: 514319dbcff1312931dd42628eb5bb7a2864909c
Author: rekkanoryo at pidgin.im
Date: 2007-11-09T16:46:42
Branch: im.pidgin.pidgin.2.2.3

Modified files:
        configure.ac doc/pidgin.1.in libpurple/util.c
        pidgin/gtkimhtml.c pidgin/gtksavedstatuses.c

ChangeLog: 

applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
             through 7857eaa0edf6a2d71cf85fde1c5a83fc489f6a7e

applied changes from c0e4131f3643a7c168121757b8ca10122d0db80d
             through e6a0621e642090070ae405efd3897ec69ae271c4

applied changes from e6a0621e642090070ae405efd3897ec69ae271c4
             through ae7d6a059cb6a63da97a3af79360e507a2c9c944

applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
             through 8f4d756b61b5688ce770c469c3a7095dbe6c271d

-------------- next part --------------
============================================================
--- configure.ac	2a3a83305153f94aa68caa3612b8078c0685f6c1
+++ configure.ac	8a78d72b0b6fcc49086185a502b373c8b729be4e
@@ -233,6 +233,30 @@ AC_CHECK_FUNC(dlopen, LIBDL="", [AC_CHEC
 dnl FreeBSD doesn't have libdl, dlopen is provided by libc
 AC_CHECK_FUNC(dlopen, LIBDL="", [AC_CHECK_LIB(dl, dlopen, LIBDL="-ldl")])
 
+AC_MSG_CHECKING(for fileno())
+AC_TRY_RUN([
+#include <stdio.h>
+
+int main(int argc, char *argv[])
+{
+	int fd;
+
+	fd = fileno(stdout);
+
+	return !(fd > 0);
+}
+], [
+	AC_MSG_RESULT(yes)
+	AC_DEFINE([HAVE_FILENO], [1],
+	          [Define to 1 if your stdio has int fileno(FILE *).])
+], [
+	AC_MSG_RESULT(no)
+], [
+	# Fallback for Cross Compiling...
+	# This will enable the compatibility code.
+	AC_MSG_RESULT(no)
+])
+
 AC_MSG_CHECKING(for the %z format string in strftime())
 AC_TRY_RUN([
 #ifdef HAVE_SYS_TIME_H
============================================================
--- doc/pidgin.1.in	6f204e175140870370f797efe760674a4f828d57
+++ doc/pidgin.1.in	708873c3a92f9414907360edd228dd8a588ddc0e
@@ -32,7 +32,7 @@ many common features found in other clie
 which is capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC,
 Novell GroupWise, Lotus Sametime, Zephyr, Gadu-Gadu, and QQ all at once. It has
 many common features found in other clients, as well as many unique features.
-Finch is not endorsed by or affiliated with America Online, ICQ, Microsoft, or
+Pidgin is not endorsed by or affiliated with America Online, ICQ, Microsoft, or
 Yahoo.
 
 .SH OPTIONS
@@ -49,6 +49,9 @@ Print a summary of command line options 
 .B \-h, \-\-help
 Print a summary of command line options and exit.
 .TP
+.B \-m, \-\-multiple
+Allow multiple instances of Pidgin to run.
+.TP
 .B \-n, \-\-nologin
 Don't automatically login when Pidgin starts.  Sets the global status to
 \fBOffline\fR.
@@ -68,9 +71,9 @@ and have allowed you to be notified of t
 
 The \fBBuddy List\fR window contains a list of your buddies who are online
 and have allowed you to be notified of their presence.  The icon to the
-left of each buddy indicates the buddy's current state and the protocol
-they are using.  Double clicking a buddy will open a new \fBConversation\fR
-window.  Right clicking will pop up a menu:
+left of each buddy indicates the buddy's current status.  Double clicking
+a buddy will open a new \fBConversation\fR window.  Right clicking will
+pop up a menu:
 .TP
 .B Get Info
 Retrieves and displays information about the buddy.  This information is
@@ -89,16 +92,17 @@ discussed later.
 discussed later.
 .TP
 .B View Log
-Pidgin is capable of automatically log its activities.  These logs are
+Pidgin is capable of automatically logging messages.  These logs are
 either plain text files (with a .txt extension) or html files (with a
 \&.html extension) located under the \fI~/.purple/logs\fR directory.  This
 menu command will display Pidgin's log viewer with logs loaded for that
 buddy or chat.
 .TP
 .B Alias
-Create an alias for this buddy.  This will open up a new dialog in which
-one can give this buddy an alternate name to appear on the buddy list and
-in conversations.
+Create an alias for this buddy.  This will show an editable text field where
+the buddy's screen name was displayed.  In this field one can give this
+buddy an alternate, more friendly name to appear on the buddy list and in
+conversations.
 
 For example, if a buddy's name screen name was jsmith1281xx and his real
 name was 'John Q. Smith,' one could create an alias as to identify the
@@ -106,39 +110,27 @@ These commands vary depending on the pro
 .LP
 The remainder of the menu will consist of protocol specific commands.
 These commands vary depending on the protocol.
-.LP
-At the bottom of the \fBBuddy List\fR are several buttons (if enabled in
-\fBPreferences\fR):
 .TP
-.B IM
-Opens a new \fBConversation\fR window to to the selected buddy, or brings
-up the \fBNew Message\fR dialog box if no buddy is selected.
-.TP
-.B Info
-Retrieves and display information about the selected buddy, or brings up
-the \fBGet User Info\fR dialog box if no buddy is selected.
-.TP
-.B Chat
-Brings up the \fBJoin Chat\fR dialog box, prompting the user to select
-which username to use and what chat group to join.
-.TP
-.B Away
-Brings up a menu of all available \fBAway Messages\fR.  If an item is
-selected, all online accounts will use this item as their away message.
+.B Status Selector
+At the bottom of the \fBBuddy List\fR is a status selector which allows
+one to change his/her status.  This will be discussed further below.
+.T
 
 .SH ACCOUNT EDITOR
 The account editor consists of a list of accounts and information about
-them.  Clicking \fIDelete\fR will delete the currently selected account.
+them.  It can be accessed by selecting \fBManage\fR from the Tools menu.
+Clicking \fIDelete\fR will delete the currently selected account.
 Clicking \fIAdd\fR or \fIModify\fR will invoke a \fBModify Account\fR
 window.  Here, you can add or alter account information.  When creating a
 new account, you will submit your screen name and password.  You will also
 choose your protocol.
 
 If \fIRemember Password\fR is chosen, the password will be saved in
-Pidgin's configuration file.
+Pidgin's \fI~/.purple/accounts.xml\fR configuration file.
 
-If \fIAuto-Login\fR is chosen, this account will automatically login upon
-starting Pidgin.
+If \fIEnabled\fR is checked in the accounts dialog, this account will
+follow the status currently selected in the status selector.  If it is
+not checked, the account will always be offline.
 
 Each protocol has its own specific options that can be found in the
 modify screen.
@@ -149,122 +141,86 @@ All options take effect immediately.
 
 .SH Interface
 
-\fIDisplay remote nicknames if no alias is set\fR: Toggles whether server
-nickname data should be used if no local alias exists.
+.TP
+.B Show system tray icon
+Specifies when to show a Pidgin icon in the notification area of your
+panel (commonly referred to as the System Tray).
 
-.SH Buddy List
-\fISorting\fR: Toggles the order in which buddies are shown in your
-\fBBuddy List\fR between none, alphabetical, by status and by log size.
+.TP
+.B Hide new IM conversations
+Specifies when to hide new IM messages.  Messages will queue under the
+specified condition until shown.  Clicking the Pidgin icon in the
+notification area or system tray will display the queued messages.  An
+icon also appears in the buddy list's menu bar; this icon may also be
+used to display queued messages.
 
-\fIShow buttons as\fR: Toggles between picture-only, text-only, picture and
-text or no buttons view of the buttons on the \fBBuddy List\fR.
+.TP
+.B Show IMs and chats in tabbed windows
+When checked, this option will cause IM and chat sessions to appear in
+windows with multiple tabs.  One tab will represent one conversation or
+chat.  Where tabs are placed will be dictated by the preferences below.
 
-\fIRaise window on events\fR: Tells Pidgin to bring the \fBBuddy
-List\fR window to the top when buddies sign in or out.
+.TP
+.B Show close buttons on tabs
+When checked, this option will cause a clickable "U+2715 MULTIPLICATION X"
+unicode character to appear at the right edge of each tab.  Clicking this
+will cause the tab to be closed.
 
-\fIShow numbers in groups\fR: The number of buddies from each group
-currently logged in will be shown along with the total number of buddies in
-the group.
+.TP
+.B Placement
+Specifies where to place tabs in the window.  Some tab orientations may
+allow some users to fit more tabs into a single window comfortably.
 
-\fIShow buddy icons\fR: Toggles the display of buddies' custom icons.
+.TP
+.B New conversations
+Specifies under which conditions tabs are placed into existing windows or
+into new windows.  For a single window, select \fILast created window\fR here.
 
-\fIShow warning levels\fR: Each buddy's warning level will be displayed
-next to the screen name. As a buddy's warning level increases, outgoing
-messages are more and more severely rate-limited.
-
-\fIShow idle times\fR: The amount of time each buddy has been idle will be
-displayed next to the screen name (if the buddy has opted to have their
-client report this information).
-
-\fIDim idle buddies\fR: If enabled, idle buddies will be displayed in grey
-text instead of black text.
-
-\fIAutomatically expand contacts\fR: If enabled, contacts will
-automatically expand to show the associated buddies when the mouse is held
-over the contact for a short period.
-
 .SH Conversations
 
-\fIShow buttons as...\fR: The selected item will determine whether
-picture-only, text-only, combined picture/text, or no buttons will be used
-for \fBConversation\fR windows.
-
-\fIShow formatting toolbar\fR: Display the formatting toolbar between the
-upper and lower text boxes in conversations.
-
-\fIShow aliases in tabs/titles\fR: Displays buddy alias instead of screen
-name in window tabs and titles.
-
-\fIShow buddy icons\fR: For protocols that support it, buddy icons allow
-buddies to send small pictures to be displayed during the course of a
-conversation. Turning this option off hides those pictures.
-
-\fIEnable buddy icon animation\fR: If these pictures happen to be animated,
-this option will enable the animation, otherwise only the first frame will
-be displayed.
-
-\fINotify buddies that you are typing to them\fR: Some protocols allow
-clients to tell their buddies when they are typing. This option enables
-this feature for protocols that supports it.
-
-\fIRaise IM windows on events\fR: If enabled, IM \fBConversation\fR windows
-will be brought to the top when new messages are received.
-
-\fIRaise Chat windows on events\fR: If enabled, chat \fBConversation\fR windows
-will be brought to the top when new messages are received.
-
-\fIUse multi-colored screen names in chats\fR: Color code the screen names of
-users in chat rooms.
-
 .TP
-.B Tab Options
-\fIShow IMs and chats in tabbed windows\fR: Tabbed chatting allows one to
-have multiple conversations without multiple windows.
+.B Enable buddy icon animation
+If a buddy's icon happens to be animated, this option will enable the
+animation, otherwise only the first frame will be displayed.
 
-\fIShow close buttons on tabs\fR: Adds a close button to each tab.
-
-\fITab Placement...\fR: Specifies where tabs are shown in the conversation
-window.
-
-\fI New conversation placement...\fR: Determines where new conversations will
-be placed (Last created window / New window / windows grouped by group or
-account / separate windows for IMs and Chats).
-
 .TP
-.B Message Text
-\fIShow timestamp on messages\fR: Toggles the timestamp behavior for
-conversations.  Per-conversation behavior can be changed by pressing
-\fIF2\fR in the \fBConversation\fR window.
+.B Notify buddies that you are typing to them
+Some protocols allow clients to tell their buddies when they are typing.
+This option enables this feature for protocols that supports it.  For XMPP,
+this also enables sending the "User has left the conversation" message
+when ending the conversation.
 
-\fIHighlight misspelled words\fR: Toggles highlighting of misspelled words
-as you type.
-
-\fIIgnore colors/font faces/font sizes\fR: Tells Pidgin to disregard
-buddies' color/font/size information in displaying IMs or Chats.
-
-\fIDefault Formatting\fR: Allows specifying the default formatting to apply
-to all outgoing messages (only applicable to protocols that support
-formatting in messages).
-
 .TP
-.B Shortcuts
-Allows the user to determine which keyboard shortcuts are available.
+.B Default Formatting
+Allows specifying the default formatting to apply to all outgoing messages
+(only applicable to protocols that support formatting in messages).
 
-.TP
-.B Smiley Themes
+.SH Smiley Themes
 Allows the user to choose between different smiley themes. The "none" theme
 will disable graphical emoticons - they will be displayed as text instead.
+The \fBAdd\fR and \fBRemove\fR buttons may be used to install or uninstall
+smiley themes.  Themes may also be installed by dragging and dropping them
+onto the list of themes.
 
 .SH Sounds
 
-\fISounds while away\fR: Determines whether sounds are played when an away
-message is up.
+.TP
+.B Method
+Lets the user choose between different playback methods. The user can also
+manually enter a command to be executed when a sound is to be played\
+(\fI%s\fR expands to the full path to the file name).
 
-\fISound Method\fR lets the user choose between different playback methods.
-The user can also manually enter a command to be executed when a sound is
-to be played (\fI%s\fR expands to the full path to the file name).
+.TP
+.B Sounds when conversation has focus
+When checked, sounds will play for events in the active conversation if
+the window is focused.  When unchecked, sounds will not play for the
+active conversation when the window is focused.
 
 .TP
+.B Enable Sounds
+Determines when to play sounds.
+
+.TP
 .B Sound Events
 Lets the user choose when and what sounds are to be played.
 
@@ -420,23 +376,25 @@ more information about Tcl scripting.
 more information about Tcl scripting.
 
 .SH FILES
-\fI at prefix@/bin/pidgin\fR: Pidgin's location.
+  \fI at prefix@/bin/pidgin\fR: Pidgin's location.
 .br
-\fI at prefix@/lib/pidgin/\fR: Pidgin's plugins directory.
+  \fI at prefix@/lib/pidgin/\fR: Pidgin's plugins directory.
 .br
-\fI~/.purple/prefs.xml\fR: Pidgin's configuration file.
+  \fI at prefix@/lib/purple-2/\fR: libpurple's plugins directory.
 .br
-\fI~/.purple/accounts.xml\fR: information about your accounts.
+  \fI~/.purple/prefs.xml\fR: Pidgin's configuration file.
 .br
-\fI~/.purple/status.xml\fR: stores your away messages.
+  \fI~/.purple/accounts.xml\fR: information about your accounts.
 .br
-\fI~/.purple/pounces.xml\fR: stores your buddy pounces.
+  \fI~/.purple/status.xml\fR: stores your away messages.
 .br
-\fI~/.purple/logs/PROTOCOL/ACCOUNT/SCREENNAME/DATE.{html,txt}\fR: conversation logs.
+  \fI~/.purple/pounces.xml\fR: stores your buddy pounces.
 .br
-\fI~/.purple/blist.xml\fR: the buddy list.
+  \fI~/.purple/logs/PROTOCOL/ACCOUNT/SCREENNAME/DATE.{html,txt}\fR: conversation logs.
 .br
-\fI~/.purple/plugins/\fR: users' local plugins
+  \fI~/.purple/blist.xml\fR: the buddy list.
+.br
+  \fI~/.purple/plugins/\fR: users' local plugins
 
 .SH BUGS
 The bug tracker can be reached by visiting \fIhttp://developer.pidgin.im/query\fR
============================================================
--- libpurple/util.c	63f196b1db9f1545b3820e1d71a54dc315482679
+++ libpurple/util.c	326226965b12c345707c270564d5a76b0bd9b0ef
@@ -2578,6 +2578,9 @@ purple_util_write_data_to_file_absolute(
 	FILE *file;
 	size_t real_size, byteswritten;
 	struct stat st;
+#ifndef HAVE_FILENO
+	int fd;
+#endif
 
 	purple_debug_info("util", "Writing file %s\n",
 					filename_full);
@@ -2612,6 +2615,19 @@ purple_util_write_data_to_file_absolute(
 	real_size = (size == -1) ? strlen(data) : (size_t) size;
 	byteswritten = fwrite(data, 1, real_size, file);
 
+#ifdef HAVE_FILENO
+	/* Apparently XFS (and possibly other filesystems) do not
+	 * guarantee that file data is flushed before file metadata,
+	 * so this procedure is insufficient without some flushage. */
+	if (fsync(fileno(file)) < 0) {
+		purple_debug_error("util", "Error syncing file contents for %s: %s\n",
+				   filename_temp, g_strerror(errno));
+		g_free(filename_temp);
+		fclose(file);
+		return FALSE;
+	}
+#endif
+    
 	/* Close file */
 	if (fclose(file) != 0)
 	{
@@ -2621,6 +2637,30 @@ purple_util_write_data_to_file_absolute(
 		return FALSE;
 	}
 
+#ifndef HAVE_FILENO
+	/* This is the same effect (we hope) as the HAVE_FILENO block
+	 * above, but for systems without fileno(). */
+	if ((fd = open(filename_temp, O_RDWR)) < 0) {
+		purple_debug_error("util", "Error opening file %s for flush: %s\n",
+				   filename_temp, g_strerror(errno));
+		g_free(filename_temp);
+		return FALSE;
+	}
+	if (fsync(fd) < 0) {
+		purple_debug_error("util", "Error syncing %s: %s\n",
+				   filename_temp, g_strerror(errno));
+		g_free(filename_temp);
+		close(fd);
+		return FALSE;
+	}
+	if (close(fd) < 0) {
+		purple_debug_error("util", "Error closing %s after sync: %s\n",
+				   filename_temp, g_strerror(errno));
+		g_free(filename_temp);
+		return FALSE;
+	}
+#endif
+
 	/* Ensure the file is the correct size */
 	if (byteswritten != real_size)
 	{
============================================================
--- pidgin/gtkimhtml.c	ad22aa5216781e7d2143221d5771dc129ebea3ab
+++ pidgin/gtkimhtml.c	1530cb3ec19dca75add1cf38a91bff2897a7ecd2
@@ -2833,8 +2833,8 @@ void gtk_imhtml_insert_html_at_iter(GtkI
 						{
 						    gtk_imhtml_toggle_underline(imhtml);
 						    font->underline = 1;
-						} else
-							g_free(textdec);
+						}
+						g_free(textdec);
 
 						if (oldfont)
 						{
============================================================
--- pidgin/gtksavedstatuses.c	6aaf921f625803b7ef442f351abae0b6b530ebb3
+++ pidgin/gtksavedstatuses.c	beff29118d082b89efbb0982c126d71c6f088b1e
@@ -1201,6 +1201,7 @@ pidgin_status_editor_show(gboolean edit,
 	gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
 	focus_chain = g_list_prepend(focus_chain, dialog->message);
 	gtk_container_set_focus_chain(GTK_CONTAINER(hbox), focus_chain);
+	g_list_free(focus_chain);
 
 	if ((saved_status != NULL) && (purple_savedstatus_get_message(saved_status) != NULL))
 		gtk_imhtml_append_text(GTK_IMHTML(text),


More information about the Commits mailing list