diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-10-01 10:38:54 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-10-01 10:38:54 +0000 |
commit | d37e60bf0ba266368bea34b6b080d17d52d3d32c (patch) | |
tree | 2f90a9af87f1001d47190767a7b270a2bf9e985f /src | |
parent | 607b8ae3d15b2b60dfb33777d6d6c0fd817ed05e (diff) |
fix a warning caused by divide by zero on empty files
Diffstat (limited to 'src')
-rw-r--r-- | src/remote-exec.c | 2 | ||||
-rw-r--r-- | src/tfile.c | 9 | ||||
-rw-r--r-- | src/torrent.c | 9 | ||||
-rw-r--r-- | src/torrent.h | 3 | ||||
-rw-r--r-- | src/trg-cell-renderer-size.c | 2 | ||||
-rw-r--r-- | src/trg-remote-prefs-dialog.c | 2 |
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)); |