rpms/logjam/F-8 logjam-4.5.3-default-spelllang-en-US.patch, NONE, 1.1 logjam-4.5.3-tags.patch, NONE, 1.1 logjam-title.patch, NONE, 1.1 logjam.spec, 1.32, 1.33

Tom Callaway (spot) fedora-extras-commits at redhat.com
Tue Mar 11 19:53:41 UTC 2008


Author: spot

Update of /cvs/extras/rpms/logjam/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17601/F-8

Modified Files:
	logjam.spec 
Added Files:
	logjam-4.5.3-default-spelllang-en-US.patch 
	logjam-4.5.3-tags.patch logjam-title.patch 
Log Message:
tags, title, default lang fix, crash fix

logjam-4.5.3-default-spelllang-en-US.patch:

--- NEW FILE logjam-4.5.3-default-spelllang-en-US.patch ---
diff -up logjam-4.5.3/src/conf_xml.c.BAD logjam-4.5.3/src/conf_xml.c
--- logjam-4.5.3/src/conf_xml.c.BAD	2008-03-11 15:41:21.000000000 -0400
+++ logjam-4.5.3/src/conf_xml.c	2008-03-11 15:41:25.000000000 -0400
@@ -266,7 +266,7 @@ parseconf(xmlDocPtr doc, xmlNodePtr node
 #ifdef HAVE_GTKSPELL
 	if (!c->spell_language || strlen(c->spell_language) < 2) {
 		g_free(c->spell_language);
-		c->spell_language = g_strdup("en");
+		c->spell_language = g_strdup("en_US");
 	}
 #endif /* HAVE_GTKSPELL */
 	hostspath = g_build_filename(app.conf_dir, "servers", NULL);

logjam-4.5.3-tags.patch:

--- NEW FILE logjam-4.5.3-tags.patch ---
diff -up /dev/null logjam-4.5.3/protocol/liblivejournal/livejournal/tags.h
--- /dev/null	2008-03-11 09:22:57.310023055 -0400
+++ logjam-4.5.3/protocol/liblivejournal/livejournal/tags.h	2008-03-11 15:09:55.000000000 -0400
@@ -0,0 +1,18 @@
+/* liblivejournal - a client library for LiveJournal.
+ * Copyright (C) 2003 Evan Martin <evan at livejournal.com>
+ *
+ * vim: tabstop=4 shiftwidth=4 noexpandtab :
+ */
+
+#ifndef __LIVEJOURNAL_TAGS_H__
+#define __LIVEJOURNAL_TAGS_H__
+
+typedef struct _LJTag {
+	char *tag;
+	guint32 count;
+} LJTag;
+
+LJTag *lj_tag_new(void);
+void   lj_tag_free(LJTag *t);
+
+#endif /* __LIVEJOURNAL_TAGS_H__ */
diff -up logjam-4.5.3/protocol/liblivejournal/livejournal/types.c.tags logjam-4.5.3/protocol/liblivejournal/livejournal/types.c
--- logjam-4.5.3/protocol/liblivejournal/livejournal/types.c.tags	2005-10-23 21:29:32.000000000 -0400
+++ logjam-4.5.3/protocol/liblivejournal/livejournal/types.c	2008-03-11 15:09:55.000000000 -0400
@@ -14,6 +14,7 @@
 
 #include "entry.h"
 #include "friends.h"
+#include "tags.h"
 #include "types.h"
 
 char*
@@ -75,6 +76,18 @@ lj_friend_compare_username(gconstpointer
 	return strcmp(fa->username, fb->username);
 }
 
+LJTag*
+lj_tag_new(void) {
+    LJTag *t = g_new0(LJTag, 1);
+    return t;
+}
+
+void
+lj_tag_free(LJTag *t) {
+   g_free(t->tag);
+   g_free(t);
+}
+
 void 
 lj_security_append_to_request(LJSecurity *security, LJRequest *request) {
 	char *text = NULL;
diff -up logjam-4.5.3/protocol/liblivejournal/livejournal/Makefile.am.tags logjam-4.5.3/protocol/liblivejournal/livejournal/Makefile.am
--- logjam-4.5.3/protocol/liblivejournal/livejournal/Makefile.am.tags	2005-08-24 22:42:14.000000000 -0400
+++ logjam-4.5.3/protocol/liblivejournal/livejournal/Makefile.am	2008-03-11 15:09:55.000000000 -0400
@@ -7,7 +7,7 @@ liblivejournal_la_LIBADD = @LIVEJOURNAL_
 liblivejournal_la_SOURCES = \
 	md5.c              md5.h            \
 	protocol.c         protocol.h       \
-	friends.h                           \
+	friends.h          tags.h           \    
 	serveruser.c       serveruser.h     \
 	entry.c            entry.h          \
 	types.c            types.h          \
@@ -21,6 +21,7 @@ liblivejournal_la_SOURCES = \
 	getchallenge.c     getchallenge.h   \
 	getevents.c        getevents.h      \
 	getfriends.c       getfriends.h     \
+	gettags.c          gettags.h        \
 	syncitems.c        syncitems.h      \
 	sync.c             sync.h           \
 	livejournal.h
diff -up logjam-4.5.3/protocol/liblivejournal/livejournal/livejournal.h.tags logjam-4.5.3/protocol/liblivejournal/livejournal/livejournal.h
--- logjam-4.5.3/protocol/liblivejournal/livejournal/livejournal.h.tags	2005-02-21 12:46:10.000000000 -0500
+++ logjam-4.5.3/protocol/liblivejournal/livejournal/livejournal.h	2008-03-11 15:09:55.000000000 -0400
@@ -16,5 +16,6 @@
 #include <livejournal/serveruser.h>
 #include <livejournal/friends.h>
 #include <livejournal/entry.h>
+#include <livejournal/tags.h>
 
 #endif /* __LIVEJOURNAL_H__ */
diff -up /dev/null logjam-4.5.3/protocol/liblivejournal/livejournal/gettags.h
--- /dev/null	2008-03-11 09:22:57.310023055 -0400
+++ logjam-4.5.3/protocol/liblivejournal/livejournal/gettags.h	2008-03-11 15:09:55.000000000 -0400
@@ -0,0 +1,16 @@
+
+#ifndef __LIVEJOURNAL_GETTAGS_H__
+#define __LIVEJOURNAL_GETTAGS_H__
+
+#include <livejournal/verb.h>
+
+typedef struct {
+	LJVerb verb;
+	GHashTable *tags;
+} LJGetTags;
+
+LJGetTags* lj_gettags_new(LJUser *user, const gchar *journal);
+void       lj_gettags_free(LJGetTags *gettags, gboolean includetags);
+
+#endif /* __LIVEJOURNAL_GETTAGS_H__ */
+
diff -up /dev/null logjam-4.5.3/protocol/liblivejournal/livejournal/gettags.c
--- /dev/null	2008-03-11 09:22:57.310023055 -0400
+++ logjam-4.5.3/protocol/liblivejournal/livejournal/gettags.c	2008-03-11 15:09:55.000000000 -0400
@@ -0,0 +1,65 @@
+
+#include <config.h>
+
+#include <glib.h>
+
+#include "tags.h"
+#include "gettags.h"
+
+static void
+read_tags(LJResult *result, GHashTable *tags) {
+	LJTag *t;
+	int i, count;
+	guint32 mask;
+	char *value;
+
+	count = lj_result_get_int(result, "tag_count");
+	for (i = 1; i <= count; i++) {
+		t = lj_tag_new();
+		t->tag = g_strdup(lj_result_getf(result, "tag_%d_name", i));
+
+        value = lj_result_getf(result, "tag_%d_uses", i);
+		if (value) t->count = lj_color_to_int(value);
+
+		g_hash_table_insert(tags, t->tag, t);
+	}
+}
+
+static void
+parse_result(LJVerb *verb) {
+	GHashTable *tags;
+	
+	tags = g_hash_table_new(g_str_hash, g_str_equal);
+
+	read_tags(verb->result, tags);
+	((LJGetTags*)verb)->tags = tags;
+}
+
+LJGetTags*
+lj_gettags_new(LJUser *user, const gchar *journal) {
+	LJGetTags *gettags = g_new0(LJGetTags, 1);
+	LJVerb *verb = (LJVerb*)gettags;
+
+	lj_verb_init(verb, user, "getusertags", FALSE, parse_result);
+    if (journal)
+	    lj_request_add(verb->request, "usejournal", journal);
+
+	return gettags;
+}
+
+static void
+hash_tag_free_cb(gpointer key, LJTag *t, gpointer data) {
+	lj_tag_free(t);
+}
+
+void
+lj_gettags_free(LJGetTags *gettags, gboolean includetags) {
+	if (gettags->tags) {
+		if (includetags)
+			g_hash_table_foreach(gettags->tags,
+					(GHFunc)hash_tag_free_cb, NULL);
+		g_hash_table_destroy(gettags->tags);
+	}
+	g_free(gettags);
+}
+
diff -up /dev/null logjam-4.5.3/src/tags.c
--- /dev/null	2008-03-11 09:22:57.310023055 -0400
+++ logjam-4.5.3/src/tags.c	2008-03-11 15:16:52.000000000 -0400
@@ -0,0 +1,181 @@
+
+#include "gtk-all.h"
+
+#include <livejournal/livejournal.h>
+#include <livejournal/gettags.h>
+
+#include "account.h"
+#include "tags.h"
+
+static void
+tags_hash_list_cb (gpointer key, LJTag *t, GSList **list) 
+{
+  *list = g_slist_append(*list, t);
+}
+
+static gboolean
+load_tags (GtkWindow *parent, JamAccountLJ *acc, gchar *journal, GSList **l) 
+{
+  LJGetTags *gettags;
+  NetContext *ctx;
+  
+  ctx = net_ctx_gtk_new (parent, _("Loading Tags"));
+  gettags = lj_gettags_new (jam_account_lj_get_user (acc), journal);
+  if (!net_run_verb_ctx ((LJVerb*) gettags, ctx, NULL)) 
+    { 
+      lj_gettags_free (gettags, TRUE);
+      net_ctx_gtk_free (ctx);
+      return FALSE;
+    }
+  
+  g_hash_table_foreach (gettags->tags, (GHFunc) tags_hash_list_cb, l);
+  
+  lj_gettags_free (gettags, FALSE);
+  net_ctx_gtk_free (ctx);
+  
+  return TRUE;
+}
+
+static void
+tag_toggled (GtkCellRendererToggle *cell,
+	     gchar                 *path_str,
+	     gpointer               data)
+{
+  GtkTreeModel *model = (GtkTreeModel *)data;
+  GtkTreeIter  iter;
+  GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
+  gboolean tag;
+
+  gtk_tree_model_get_iter (model, &iter, path);
+  gtk_tree_model_get (model, &iter, 0, &tag, -1);
+
+  tag ^= 1;
+
+  gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, tag, -1);
+
+  gtk_tree_path_free (path);
+}
+
+gboolean
+create_tag_string (GtkTreeModel *model,
+		   GtkTreePath  *path,
+		   GtkTreeIter  *iter,
+		   gpointer     data)
+{
+  gchar *tag;
+  gboolean is_sel;
+  gchar **tagstr = (gchar **) data;
+    
+  gtk_tree_model_get (model, iter, 0, &is_sel, -1);
+  if (is_sel)
+    {
+      gchar *buf = *tagstr;
+      gtk_tree_model_get (model, iter, 1, &tag, -1);
+      *tagstr = g_strconcat (buf, tag, ", ", NULL);
+      g_free (buf);
+    }
+
+  return FALSE;
+}
+
+GtkWidget* 
+taglist_create (GSList *l)
+{
+  GtkWidget *treeview;
+  GtkListStore *store;
+  GtkTreeIter iter;
+  GtkCellRenderer *renderer;
+  GtkTreeViewColumn *column;
+  guint i;
+
+  /* create model */
+  store = gtk_list_store_new (2, G_TYPE_BOOLEAN, G_TYPE_STRING);
+  for (i = 0; i < g_slist_length (l); i++)
+    {
+      LJTag *t = (LJTag *) g_slist_nth_data (l, i);
+
+      gtk_list_store_append (store, &iter);
+      gtk_list_store_set (store, &iter,
+			  0, FALSE,
+			  1, t->tag,
+			  -1);
+    }
+
+  /* create treeview */
+  treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
+  gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
+  gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), 1);
+
+  /* add columns */
+  renderer = gtk_cell_renderer_toggle_new ();
+  g_signal_connect (renderer, "toggled",
+		    G_CALLBACK (tag_toggled), 
+		    GTK_TREE_MODEL (store));
+  column = gtk_tree_view_column_new_with_attributes ("#", 
+						     renderer, "active", 0,
+						     NULL);
+  gtk_tree_view_append_column (treeview, column);
+
+  renderer = gtk_cell_renderer_text_new ();
+  column = gtk_tree_view_column_new_with_attributes (_("Tag name"), 
+						     renderer, "text", 1,
+						     NULL);
+  gtk_tree_view_column_set_sort_column_id (column, 1);
+  gtk_tree_view_append_column (treeview, column);
+ 
+  g_object_unref (store);
+
+  return treeview;
+}
+
+gchar* 
+tags_dialog (GtkWidget *win, JamAccountLJ *acc, gchar *journal)
+{
+  GtkWidget *dlg, *sw, *tv;
+  GSList *list = NULL;
+  gchar *taglist = NULL;
+
+  if (acc == NULL) return NULL;
+
+  load_tags (GTK_WINDOW (win), acc, journal, &list);
+  
+  dlg = gtk_dialog_new_with_buttons (_("Select tags"),
+                                     GTK_WINDOW (win),
+                                     GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+                                     GTK_STOCK_OK,
+                                     GTK_RESPONSE_OK,
+                                     GTK_STOCK_CLOSE,
+                                     GTK_RESPONSE_CLOSE,
+                                     NULL);
+
+  sw = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
+				       GTK_SHADOW_ETCHED_IN);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+				  GTK_POLICY_AUTOMATIC,
+				  GTK_POLICY_AUTOMATIC);
+  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), sw, TRUE, TRUE, 0);
+
+  tv = taglist_create (list);
+  gtk_container_add (GTK_CONTAINER (sw), tv);
+
+  gtk_window_resize(dlg, 60, 210);
+  gtk_widget_show_all (sw);
+
+  if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_OK)
+    {
+      taglist = g_strdup ("");
+      gtk_tree_model_foreach (gtk_tree_view_get_model (tv),
+			      create_tag_string,
+			      &taglist);
+      if (g_ascii_strcasecmp (taglist, "") == 0) 
+	{
+	  g_free (taglist);
+	  taglist = NULL;
+	}
+    }  
+
+  gtk_widget_destroy (dlg);
+  
+  return taglist;
+}
diff -up /dev/null logjam-4.5.3/src/tags.h
--- /dev/null	2008-03-11 09:22:57.310023055 -0400
+++ logjam-4.5.3/src/tags.h	2008-03-11 15:09:55.000000000 -0400
@@ -0,0 +1,6 @@
+#ifndef _TAGS_H_
+#define _TAGS_H_
+
+gchar* tags_dialog (GtkWidget *win, JamAccountLJ *acc, gchar *journal);
+
+#endif /* _TAGS_H_ */
diff -up logjam-4.5.3/src/Makefile.am.tags logjam-4.5.3/src/Makefile.am
--- logjam-4.5.3/src/Makefile.am.tags	2005-10-23 21:16:08.000000000 -0400
+++ logjam-4.5.3/src/Makefile.am	2008-03-11 15:09:55.000000000 -0400
@@ -59,6 +59,7 @@ src_gtk = gtk-all.h util-gtk.c util-gtk.
           undo.c undo.h \
           userlabel.c userlabel.h \
           get_cmd_out.c get_cmd_out.h \
+          tags.c tags.h \
           $(HTML_MARKUP)
 
 src_preview = $(PREVIEW)
diff -up logjam-4.5.3/src/jamview.c.tags logjam-4.5.3/src/jamview.c
--- logjam-4.5.3/src/jamview.c.tags	2005-06-19 14:05:40.000000000 -0400
+++ logjam-4.5.3/src/jamview.c	2008-03-11 15:09:55.000000000 -0400
@@ -408,11 +408,34 @@ music_store(JamView *view) {
 	jam_doc_set_music(view->doc, music);
 }
 
+static void tags_store(JamView *view);
+
+static void
+tags_select_cb(JamView *view) {
+  gchar *tags;
+  GtkWidget *toplevel = gtk_widget_get_toplevel(GTK_WIDGET(view));
+
+  tags = tags_dialog(toplevel,
+		     JAM_ACCOUNT_LJ(view->account), 
+		     jam_doc_get_usejournal(view->doc));
+
+  if (tags) {
+      gtk_entry_set_text(GTK_ENTRY(view->tags), tags);
+      tags_store(view);
+  }
+}
+
 static void
 tags_add(JamView *view) {
+	GtkWidget *tagbutton;
 	view->tags = gtk_entry_new();
 	view->tagsbar = labelled_box_new_sg(_("_Tags:"), view->tags, view->sizegroup);
 	gtk_box_pack_start(GTK_BOX(view), view->tagsbar, FALSE, FALSE, 0);
+	tagbutton = gtk_button_new_with_label("...");
+	g_signal_connect_swapped(G_OBJECT(tagbutton), "clicked",
+				 G_CALLBACK(tags_select_cb), view);
+	gtk_box_pack_start(GTK_BOX(view->tagsbar),
+			   tagbutton, FALSE, FALSE, 0);
 	gtk_box_reorder_child(GTK_BOX(view), view->tagsbar, view->musicbar ? 2 : 1);
 	gtk_widget_show_all(view->tagsbar);
 }

logjam-title.patch:

--- NEW FILE logjam-title.patch ---
diff --git logjam-4.5.3/src/html_markup.c logjam-4.5.3/src/html_markup.c
index 36ec4e7..9c5a796 100644
--- logjam-4.5.3/src/html_markup.c
+++ logjam-4.5.3/src/html_markup.c
@@ -74,3 +74,8 @@ void
 html_mark_monospaced(JamDoc *doc) {
 	html_mark_tag(doc, "tt");
 }
+
+void
+html_mark_blockquote(JamDoc *doc) {
+	html_mark_tag(doc, "blockquote");
+}
diff --git logjam-4.5.3/src/imagelink.c logjam-4.5.3/src/imagelink.c
index a9f296d..3048714 100644
--- logjam-4.5.3/src/imagelink.c
+++ logjam-4.5.3/src/imagelink.c
@@ -13,7 +13,7 @@
 
 typedef struct {
 	GtkWidget *dlg;
-	GtkWidget *url, *get, *width, *height;
+	GtkWidget *url, *get, *width, *height, *tit, *anchor;
 } ImageDlg;
 
 static void
@@ -87,7 +87,17 @@ make_dialog(ImageDlg *idlg, GtkWindow *win) {
 	gtk_box_pack_start(GTK_BOX(vbox),
 			labelled_box_new_sg(_("_URL:"), idlg->url, sg),
 			FALSE, FALSE, 0);
-
+			
+	//malwk
+    idlg->tit = gtk_entry_new();
+    gtk_box_pack_start(GTK_BOX(vbox),
+    		labelled_box_new_sg(_("Title:"), idlg->tit, sg),
+    		FALSE, FALSE, 0);
+    idlg->anchor = gtk_entry_new();
+    gtk_box_pack_start(GTK_BOX(vbox),
+    		labelled_box_new_sg(_("Link:"), idlg->anchor, sg),
+    		FALSE, FALSE, 0);
+    //malwk end
 	hbox = gtk_hbox_new(FALSE, 6);
 
 	dimbox = gtk_vbox_new(FALSE, 6);
@@ -131,7 +141,7 @@ image_dialog_run(GtkWindow *win, JamDoc *doc) {
 	STACK(ImageDlg, idlg);
 	GtkTextBuffer *buffer;
 	GtkTextIter start, end;
-	char *sel = NULL, *url = NULL;
+	char *sel = NULL, *url = NULL, *tit = NULL, *anch= NULL;
 	const char *data;
 	int width = -1, height = -1;
 
@@ -158,14 +168,20 @@ image_dialog_run(GtkWindow *win, JamDoc *doc) {
 		else
 			gtk_text_buffer_get_iter_at_mark(buffer, &start,
 					gtk_text_buffer_get_insert(buffer));
-
+		
 		url = g_strdup(gtk_entry_get_text(GTK_ENTRY(idlg->url)));
 		xml_escape(&url);
-		gtk_text_buffer_insert(buffer, &start, "<img src='", -1);
+		anch=g_strdup(gtk_entry_get_text(GTK_ENTRY(idlg->anchor)));
+		if (*anch!=NULL){
+			gtk_text_buffer_insert(buffer, &start, "<a href=\"", -1);
+			gtk_text_buffer_insert(buffer, &start, anch, -1);
+			gtk_text_buffer_insert(buffer, &start, "\">", -1);
+		}
+		gtk_text_buffer_insert(buffer, &start, "<img src=\"", -1);
 		gtk_text_buffer_insert(buffer, &start, url, -1);
-		gtk_text_buffer_insert(buffer, &start, "'", -1);
+		gtk_text_buffer_insert(buffer, &start, "\"", -1);
 		g_free(url);
-
+		
 		data = gtk_entry_get_text(GTK_ENTRY(idlg->width));
 		width = atoi(data);
 
@@ -182,7 +198,20 @@ image_dialog_run(GtkWindow *win, JamDoc *doc) {
 			gtk_text_buffer_insert(buffer, &start, data, -1);
 			g_free(data);
 		}
+		
+		tit=g_strdup(gtk_entry_get_text(GTK_ENTRY(idlg->tit)));
+		if (*tit!=NULL) {
+			gtk_text_buffer_insert(buffer, &start, " title=\"", -1);
+			gtk_text_buffer_insert(buffer, &start, tit, -1);
+			gtk_text_buffer_insert(buffer, &start, "\"", -1);
+		}
+		g_free(tit);
+		
 		gtk_text_buffer_insert(buffer, &start, " />", -1);
+		if (*anch!=NULL){
+			gtk_text_buffer_insert(buffer, &start, "</a>", -1); 
+		}
+		g_free(anch);
 	}
 
 	g_free(sel);
diff --git logjam-4.5.3/src/link.c logjam-4.5.3/src/link.c
index 0be2e98..a8dd465 100644
--- logjam-4.5.3/src/link.c
+++ logjam-4.5.3/src/link.c
@@ -17,6 +17,7 @@
 typedef struct {
 	GtkWidget *dlg;
 	GtkWidget *etext, *ruser, *euser, *rurl, *eurl;
+	GtkWidget *titl;
 	JamDoc *doc;
 	gint sel_type, clip_type;
 	gchar *sel_input, *clip_input;
@@ -98,7 +99,7 @@ link_magic(LinkRequest *lr) {
 static void
 make_link_dialog(LinkDialog *ld, GtkWindow *win, gboolean livejournal) {
 	GtkWidget *vbox;
-	GtkWidget *subbox;
+	GtkWidget *subbox, *hhr;
 	GSList *rgroup;
 
 	ld->dlg = gtk_dialog_new_with_buttons(_("Make Link"),
@@ -114,7 +115,10 @@ make_link_dialog(LinkDialog *ld, GtkWindow *win, gboolean livejournal) {
 	gtk_entry_set_activates_default(GTK_ENTRY(ld->etext), TRUE);
 	subbox = labelled_box_new(_("Link _Text:"), ld->etext);
 	gtk_box_pack_start(GTK_BOX(vbox), subbox, FALSE, FALSE, 0);
-
+    ld->titl = gtk_entry_new();
+    hhr = labelled_box_new(_("Link Title:"), ld->titl);
+    gtk_box_pack_start(GTK_BOX(vbox), hhr, FALSE, FALSE, 0);
+    
 	gtk_box_pack_start(GTK_BOX(vbox), 
 			radio_option(NULL, &ld->rurl, &ld->eurl, _("_URL:"), NULL, ""),
 			FALSE, FALSE, 0);
@@ -178,7 +182,7 @@ prepopulate_fields(LinkDialog *ld, char *bufsel) {
 
 static char*
 get_link(LinkDialog *ld, JamAccount *acc) {
-	char *url, *user, *text;
+	char *url, *user, *text, *title=NULL;
 	char *link = NULL;
 
 	url  = gtk_editable_get_chars(GTK_EDITABLE(ld->eurl),  0, -1);
@@ -187,10 +191,16 @@ get_link(LinkDialog *ld, JamAccount *acc) {
 	xml_escape(&user);
 	text = gtk_editable_get_chars(GTK_EDITABLE(ld->etext), 0, -1);
 	xml_escape(&text);
+	title = gtk_editable_get_chars(GTK_EDITABLE(ld->titl), 0, -1);
 
 	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ld->rurl))) {
 		/* build a "url" link. */
+		if (*title!=NULL){
+			link = g_strdup_printf("<a href=\"%s\" title=\"%s\">%s</a>", url, title, text);
+		}
+		else {
 		link = g_strdup_printf("<a href=\"%s\">%s</a>", url, text);
+		}
 	} else if (ld->ruser &&
 			gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ld->ruser))) {
 		/* build a "friends" link. */
@@ -204,6 +214,7 @@ get_link(LinkDialog *ld, JamAccount *acc) {
 	g_free(url);
 	g_free(user);
 	g_free(text);
+	g_free(title);
 	
 	return link;
 }
diff --git logjam-4.5.3/src/menu.c logjam-4.5.3/src/menu.c
index 53d1275..384ccce 100644
--- logjam-4.5.3/src/menu.c
+++ logjam-4.5.3/src/menu.c
@@ -315,6 +315,10 @@ static void
 menu_html_mark_monospaced(JamWin *jw) {
 	html_mark_monospaced(jw->doc);
 }
+static void
+menu_html_mark_blockquote(JamWin *jw) {
+	html_mark_blockquote(jw->doc);
+}
 
 void manager_dialog(GtkWidget *parent);
 
@@ -428,6 +432,7 @@ static GtkItemFactoryEntry menu_items[] = {
 { N_("/HTML/_Strikeout"),			"<ctl><alt>S", menu_html_mark_strikeout },
 { N_("/HTML/_Monospaced"),			"<ctl><alt>M", menu_html_mark_monospaced },
 { N_("/HTML/_Underline"),			"<ctl><alt>U", menu_html_mark_underline },
+{ N_("/HTML/_Blockquote"),			"<ctl><alt>Q", menu_html_mark_blockquote },
 
 { N_("/_Journal"),                      NULL,          NULL, ACTION_JOURNAL, "<Branch>" },
 { N_("/Journal/_Use Journal"),          NULL,          NULL, ACTION_JOURNAL_USE, NULL },


Index: logjam.spec
===================================================================
RCS file: /cvs/extras/rpms/logjam/F-8/logjam.spec,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- logjam.spec	23 Aug 2007 23:13:19 -0000	1.32
+++ logjam.spec	11 Mar 2008 19:53:10 -0000	1.33
@@ -2,7 +2,7 @@
 
 Name:		logjam
 Version:	4.5.3
-Release:	9%{?dist}.3
+Release:	13%{?dist}
 Epoch:		1
 Summary:	GTK2 client for LiveJournal
 License:	GPLv2+
@@ -28,6 +28,10 @@
 Patch8:		logjam-4.5.3-gtkspell.patch
 Patch9:		http://people.freebsd.org/~novel/patches/non-freebsd/logjam_docklet_context_menu.diff
 Patch10:	logjam-4.5.3-rhythmbox-fix.patch
+Patch12:	logjam-4.5.3-disable-threads.patch
+Patch13:	logjam-title.patch
+Patch14:	logjam-4.5.3-tags.patch
+Patch15:	logjam-4.5.3-default-spelllang-en-US.patch
 
 %description
 This is the new GTK2 client for LiveJournal (http://www.livejournal.com).
@@ -52,9 +56,13 @@
 %patch5 -p1 -b .manfix
 %patch6 -p1 -b .gtkhtml314
 %patch7 -p1 -b .ru.po
-#patch8 -p1 -b .bz186906
+%patch8 -p1 -b .bz186906
 %patch9 -p1 -b .docklet-context-menu
 %patch10 -p1 -b .rhythmboxfix
+%patch12 -p1 -b .disablethreads
+%patch13 -p1 -b .title
+%patch14 -p1 -b .tags
+%patch15 -p1 -b .default-spelllang-en-US
 
 %build
 autoconf
@@ -94,6 +102,12 @@
 rm -rf $RPM_BUILD_ROOT
 
 %changelog
+* Tue Mar 11 2008 Tom "spot" Callaway <tcallawa at redhat.com> - 4.5.3-13
+- disable unused threading on linux, resolves bz 435124
+- enable tags support (bz 434754)
+- add support for titles to links and images and links for images (bz 434754)
+- set default spellcheck lang to en_US (en was the old default, but didn't work)
+
 * Thu Aug 23 2007 Tom "spot" Callaway <tcallawa at redhat.com> 1:4.5.3-9.2
 - rebuild for BuildID, license fix (GPLv2+)
 




More information about the fedora-extras-commits mailing list