summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Bailey <rekkanoryo@rekkanoryo.org>2007-11-09 16:46:42 +0000
committerJohn Bailey <rekkanoryo@rekkanoryo.org>2007-11-09 16:46:42 +0000
commitd0e568ba6cf997ab8d656c6d515639041499224a (patch)
tree958acb948242630708dce2cb5e87cacb51757c5f
parentbacb6f76de4178788cab41be5545f2f56b4151bf (diff)
downloadpidgin-d0e568ba6cf997ab8d656c6d515639041499224a.tar.gz
applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
through 7857eaa0edf6a2d71cf85fde1c5a83fc489f6a7e applied changes from c0e4131f3643a7c168121757b8ca10122d0db80d through e6a0621e642090070ae405efd3897ec69ae271c4 applied changes from e6a0621e642090070ae405efd3897ec69ae271c4 through ae7d6a059cb6a63da97a3af79360e507a2c9c944 applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936 through 8f4d756b61b5688ce770c469c3a7095dbe6c271d
-rw-r--r--configure.ac24
-rw-r--r--doc/pidgin.1.in224
-rw-r--r--libpurple/util.c40
-rw-r--r--pidgin/gtkimhtml.c4
-rw-r--r--pidgin/gtksavedstatuses.c1
5 files changed, 158 insertions, 135 deletions
diff --git a/configure.ac b/configure.ac
index 968f851471..1cd9ea3125 100644
--- a/configure.ac
+++ b/configure.ac
@@ -233,6 +233,30 @@ AC_SYS_LARGEFILE
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
diff --git a/doc/pidgin.1.in b/doc/pidgin.1.in
index 5102b3c53d..5fff07a54f 100644
--- a/doc/pidgin.1.in
+++ b/doc/pidgin.1.in
@@ -32,7 +32,7 @@ Pidgin v@VERSION@ \- Instant Messaging client
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 @@ that are displayed in the \fBDebug Window\fR.
.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 @@ You can also add and remove buddies from your buddy list.
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 @@ buddy's state changes. This will open the \fBBuddy Pounce\fR dialog to be
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 @@ buddy by his common name.
.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,120 +141,84 @@ 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.
-
-.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.
-
-\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.
-
-\fIRaise window on events\fR: Tells Pidgin to bring the \fBBuddy
-List\fR window to the top when buddies sign in or out.
-
-\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 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).
-\fIShow buddy icons\fR: Toggles the display of buddies' custom icons.
+.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 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.
+.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.
-\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).
+.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.
-\fIDim idle buddies\fR: If enabled, idle buddies will be displayed in grey
-text instead of black text.
+.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.
-\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.
+.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.
.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.
-
-\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).
+.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.
.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.
-
-\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).
+.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.
.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
@@ -420,23 +376,25 @@ Pidgin allows for Tcl scripting. See \fIplugins/tcl/TCL-HOWTO\fR for
more information about Tcl scripting.
.SH FILES
-\fI@prefix@/bin/pidgin\fR: Pidgin's location.
+ \fI@prefix@/bin/pidgin\fR: Pidgin's location.
+.br
+ \fI@prefix@/lib/pidgin/\fR: Pidgin's plugins directory.
.br
-\fI@prefix@/lib/pidgin/\fR: Pidgin's plugins directory.
+ \fI@prefix@/lib/purple-2/\fR: libpurple's plugins directory.
.br
-\fI~/.purple/prefs.xml\fR: Pidgin's configuration file.
+ \fI~/.purple/prefs.xml\fR: Pidgin's configuration file.
.br
-\fI~/.purple/accounts.xml\fR: information about your accounts.
+ \fI~/.purple/accounts.xml\fR: information about your accounts.
.br
-\fI~/.purple/status.xml\fR: stores your away messages.
+ \fI~/.purple/status.xml\fR: stores your away messages.
.br
-\fI~/.purple/pounces.xml\fR: stores your buddy pounces.
+ \fI~/.purple/pounces.xml\fR: stores your buddy pounces.
.br
-\fI~/.purple/logs/PROTOCOL/ACCOUNT/SCREENNAME/DATE.{html,txt}\fR: conversation logs.
+ \fI~/.purple/logs/PROTOCOL/ACCOUNT/SCREENNAME/DATE.{html,txt}\fR: conversation logs.
.br
-\fI~/.purple/blist.xml\fR: the buddy list.
+ \fI~/.purple/blist.xml\fR: the buddy list.
.br
-\fI~/.purple/plugins/\fR: users' local plugins
+ \fI~/.purple/plugins/\fR: users' local plugins
.SH BUGS
The bug tracker can be reached by visiting \fIhttp://developer.pidgin.im/query\fR
diff --git a/libpurple/util.c b/libpurple/util.c
index d7e961746d..301396e98c 100644
--- a/libpurple/util.c
+++ b/libpurple/util.c
@@ -2578,6 +2578,9 @@ purple_util_write_data_to_file_absolute(const char *filename_full, const char *d
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(const char *filename_full, const char *d
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(const char *filename_full, const char *d
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)
{
diff --git a/pidgin/gtkimhtml.c b/pidgin/gtkimhtml.c
index 4add170327..962ace3175 100644
--- a/pidgin/gtkimhtml.c
+++ b/pidgin/gtkimhtml.c
@@ -2833,8 +2833,8 @@ void gtk_imhtml_insert_html_at_iter(GtkIMHtml *imhtml,
{
gtk_imhtml_toggle_underline(imhtml);
font->underline = 1;
- } else
- g_free(textdec);
+ }
+ g_free(textdec);
if (oldfont)
{
diff --git a/pidgin/gtksavedstatuses.c b/pidgin/gtksavedstatuses.c
index f00eac8215..fb126e91ca 100644
--- a/pidgin/gtksavedstatuses.c
+++ b/pidgin/gtksavedstatuses.c
@@ -1201,6 +1201,7 @@ pidgin_status_editor_show(gboolean edit, PurpleSavedStatus *saved_status)
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),