summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-01 10:38:54 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-01 10:38:54 +0000
commitd37e60bf0ba266368bea34b6b080d17d52d3d32c (patch)
tree2f90a9af87f1001d47190767a7b270a2bf9e985f
parent607b8ae3d15b2b60dfb33777d6d6c0fd817ed05e (diff)
fix a warning caused by divide by zero on empty files
-rw-r--r--src/remote-exec.c2
-rw-r--r--src/tfile.c9
-rw-r--r--src/torrent.c9
-rw-r--r--src/torrent.h3
-rw-r--r--src/trg-cell-renderer-size.c2
-rw-r--r--src/trg-remote-prefs-dialog.c2
6 files changed, 21 insertions, 6 deletions
diff --git a/src/remote-exec.c b/src/remote-exec.c
index 91bf867..56e4316 100644
--- a/src/remote-exec.c
+++ b/src/remote-exec.c
@@ -108,6 +108,8 @@ gchar *build_remote_exec_cmd(TrgPrefs *prefs, JsonObject * torrent,
if (replacement && JSON_NODE_HOLDS_VALUE(replacement)) {
valuestr = dump_json_value(replacement);
+ } else if (!g_strcmp0(id, "full-dir")) {
+ valuestr = torrent_get_full_dir(torrent);
} else if (!g_strcmp0(id, "full-path")) {
valuestr = torrent_get_full_path(torrent);
}
diff --git a/src/tfile.c b/src/tfile.c
index 0dca0a4..cc92c34 100644
--- a/src/tfile.c
+++ b/src/tfile.c
@@ -24,8 +24,13 @@
gdouble file_get_progress(JsonObject * f)
{
- return ((gdouble) file_get_bytes_completed(f) /
- (gdouble) file_get_length(f)) * 100.0;
+ gint64 length = file_get_length(f);
+ if (length > 0) {
+ return ((gdouble) file_get_bytes_completed(f) /
+ (gdouble) length) * 100.0;
+ } else {
+ return 0.0;
+ }
}
gint64 file_get_length(JsonObject * f)
diff --git a/src/torrent.c b/src/torrent.c
index 8717998..947d890 100644
--- a/src/torrent.c
+++ b/src/torrent.c
@@ -456,7 +456,14 @@ const gchar *tracker_stats_get_host(JsonObject *t)
return json_object_get_string_member(t, FIELD_HOST);
}
-gchar *torrent_get_full_path(JsonObject * obj) {
+gchar *torrent_get_full_path(JsonObject *obj)
+{
+ const gchar *location = json_object_get_string_member(obj, FIELD_DOWNLOAD_DIR);
+ const gchar *name = json_object_get_string_member(obj, FIELD_NAME);
+ return g_strdup_printf("%s/%s", location, name);
+}
+
+gchar *torrent_get_full_dir(JsonObject * obj) {
gchar *containing_path, *name, *delim;
const gchar *location;
JsonArray *files = torrent_get_files(obj);
diff --git a/src/torrent.h b/src/torrent.h
index 75262ed..3925fc6 100644
--- a/src/torrent.h
+++ b/src/torrent.h
@@ -86,7 +86,8 @@ gint64 torrent_get_peer_limit(JsonObject * t);
gboolean torrent_has_tracker(JsonObject * t, GRegex * rx, gchar * search);
gint64 torrent_get_queue_position(JsonObject *args);
gint64 torrent_get_activity_date(JsonObject *t);
-gchar *torrent_get_full_path(JsonObject * obj);
+gchar *torrent_get_full_dir(JsonObject * obj);
+gchar *torrent_get_full_path(JsonObject *obj);
/* outer response object */
diff --git a/src/trg-cell-renderer-size.c b/src/trg-cell-renderer-size.c
index 2271d2e..20ba43d 100644
--- a/src/trg-cell-renderer-size.c
+++ b/src/trg-cell-renderer-size.c
@@ -67,7 +67,7 @@ trg_cell_renderer_size_set_property(GObject * object, guint property_id,
trg_strlsize(sizeString, priv->size_value);
g_object_set(object, "text", sizeString, NULL);
} else {
- g_object_set(object, "text", "", NULL);
+ g_object_set(object, "text", "0", NULL);
}
} else {
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
diff --git a/src/trg-remote-prefs-dialog.c b/src/trg-remote-prefs-dialog.c
index 7f357c5..47124cb 100644
--- a/src/trg-remote-prefs-dialog.c
+++ b/src/trg-remote-prefs-dialog.c
@@ -315,7 +315,7 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win,
hig_workarea_add_wide_control(t, &row, w);
w = trg_json_widget_check_new(&priv->widgets, s, SGET_LPD_ENABLED, _("Local peer discovery"), NULL);
- hig_workarea_add_wide_control(t, &row, w);
+ hig_workarea_add_wide_control(t, &row, w);
stringValue = g_strdup_printf(_("Blocklist (%ld entries)"),
session_get_blocklist_size(s));