summaryrefslogtreecommitdiff
path: root/src/trg-file-parser.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-11 15:06:01 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-12-11 15:06:01 +0000
commit0d08a471f9ebfdfadded6c92abc700c706475644 (patch)
tree2c49e445ccca81f5af70244e89a15585757798d6 /src/trg-file-parser.c
parent24195d0013f81933578afa14a44a10e4b75817dd (diff)
run GNU indent everything. not done this for a while because it was producing weird results. seems ok now.
Diffstat (limited to 'src/trg-file-parser.c')
-rw-r--r--src/trg-file-parser.c158
1 files changed, 80 insertions, 78 deletions
diff --git a/src/trg-file-parser.c b/src/trg-file-parser.c
index ac3d0ce..f98b677 100644
--- a/src/trg-file-parser.c
+++ b/src/trg-file-parser.c
@@ -28,8 +28,8 @@
static trg_torrent_file_node
* trg_torrent_file_node_insert(trg_torrent_file_node * top,
- be_node * file_node, guint index,
- gint64 * total_length)
+ be_node * file_node, guint index,
+ gint64 * total_length)
{
int i;
trg_torrent_file_node *path_el_parent = top;
@@ -37,45 +37,45 @@ static trg_torrent_file_node
be_node *file_path_node = be_dict_find(file_node, "path", BE_LIST);
if (!file_path_node || !file_length_node)
- return NULL;
+ return NULL;
/* Iterate over the path list which contains each file/directory
* component of the path in order.
*/
for (i = 0;;) {
- be_node *path_el_node = file_path_node->val.l[i];
-
- trg_torrent_file_node *target_node = NULL;
- GList *li;
-
- /* Does this element exist already? */
- for (li = path_el_parent->children; li != NULL;
- li = g_list_next(li)) {
- trg_torrent_file_node *x = (trg_torrent_file_node *) li->data;
- if (!g_strcmp0(x->name, path_el_node->val.s)) {
- target_node = x;
- break;
- }
- }
-
- if (!target_node) {
- /* Create a new node and add it as a child of the parent from the
- * last iteration. */
- target_node = g_new0(trg_torrent_file_node, 1);
- target_node->name = g_strdup(path_el_node->val.s);
- path_el_parent->children =
- g_list_append(path_el_parent->children, target_node);
- }
-
- path_el_parent = target_node;
-
- /* Is this the last component of the path (the file)? */
- if (!file_path_node->val.l[++i]) {
- *total_length += (target_node->length =
- (gint64) (file_length_node->val.i));
- target_node->index = index;
- return target_node;
- }
+ be_node *path_el_node = file_path_node->val.l[i];
+
+ trg_torrent_file_node *target_node = NULL;
+ GList *li;
+
+ /* Does this element exist already? */
+ for (li = path_el_parent->children; li != NULL;
+ li = g_list_next(li)) {
+ trg_torrent_file_node *x = (trg_torrent_file_node *) li->data;
+ if (!g_strcmp0(x->name, path_el_node->val.s)) {
+ target_node = x;
+ break;
+ }
+ }
+
+ if (!target_node) {
+ /* Create a new node and add it as a child of the parent from the
+ * last iteration. */
+ target_node = g_new0(trg_torrent_file_node, 1);
+ target_node->name = g_strdup(path_el_node->val.s);
+ path_el_parent->children =
+ g_list_append(path_el_parent->children, target_node);
+ }
+
+ path_el_parent = target_node;
+
+ /* Is this the last component of the path (the file)? */
+ if (!file_path_node->val.l[++i]) {
+ *total_length += (target_node->length =
+ (gint64) (file_length_node->val.i));
+ target_node->index = index;
+ return target_node;
+ }
}
return NULL;
@@ -85,7 +85,7 @@ static void trg_torrent_file_node_free(trg_torrent_file_node * node)
{
GList *li;
for (li = node->children; li != NULL; li = g_list_next(li))
- trg_torrent_file_node_free((trg_torrent_file_node *) li->data);
+ trg_torrent_file_node_free((trg_torrent_file_node *) li->data);
g_list_free(node->children);
g_free(node->name);
g_free(node);
@@ -99,9 +99,9 @@ void trg_torrent_file_free(trg_torrent_file * t)
}
static trg_torrent_file_node *trg_parse_torrent_file_nodes(be_node *
- info_node,
- gint64 *
- total_length)
+ info_node,
+ gint64 *
+ total_length)
{
be_node *files_node = be_dict_find(info_node, "files", BE_LIST);
trg_torrent_file_node *top_node = g_new0(trg_torrent_file_node, 1);
@@ -109,25 +109,25 @@ static trg_torrent_file_node *trg_parse_torrent_file_nodes(be_node *
/* Probably means single file mode. */
if (!files_node)
- return NULL;
+ return NULL;
for (i = 0; files_node->val.l[i]; ++i) {
- be_node *file_node = files_node->val.l[i];
-
- if (be_validate_node(file_node, BE_DICT) ||
- !trg_torrent_file_node_insert(top_node, file_node, i,
- total_length)) {
- /* Unexpected format. Throw away everything, file indexes need to
- * be correct. */
- trg_torrent_file_node_free(top_node);
- return NULL;
- }
+ be_node *file_node = files_node->val.l[i];
+
+ if (be_validate_node(file_node, BE_DICT) ||
+ !trg_torrent_file_node_insert(top_node, file_node, i,
+ total_length)) {
+ /* Unexpected format. Throw away everything, file indexes need to
+ * be correct. */
+ trg_torrent_file_node_free(top_node);
+ return NULL;
+ }
}
return top_node;
}
-trg_torrent_file *trg_parse_torrent_file(const gchar *filename)
+trg_torrent_file *trg_parse_torrent_file(const gchar * filename)
{
GError *error = NULL;
GMappedFile *mf;
@@ -135,57 +135,59 @@ trg_torrent_file *trg_parse_torrent_file(const gchar *filename)
trg_torrent_file *ret = NULL;
if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
- g_message("%s does not exist", filename);
- return NULL;
+ g_message("%s does not exist", filename);
+ return NULL;
}
mf = g_mapped_file_new(filename, FALSE, &error);
if (error) {
- g_error("%s",error->message);
- g_error_free(error);
- g_mapped_file_unref(mf);
- return NULL;
+ g_error("%s", error->message);
+ g_error_free(error);
+ g_mapped_file_unref(mf);
+ return NULL;
} else {
- top_node = be_decoden(g_mapped_file_get_contents(mf), g_mapped_file_get_length(mf));
+ top_node =
+ be_decoden(g_mapped_file_get_contents(mf),
+ g_mapped_file_get_length(mf));
}
g_mapped_file_unref(mf);
if (!top_node) {
- return NULL;
+ return NULL;
} else if (be_validate_node(top_node, BE_DICT)) {
- goto out;
+ goto out;
}
info_node = be_dict_find(top_node, "info", BE_DICT);
if (!info_node)
- goto out;
+ goto out;
name_node = be_dict_find(info_node, "name", BE_STR);
if (!name_node)
- goto out;
+ goto out;
ret = g_new0(trg_torrent_file, 1);
ret->name = g_strdup(name_node->val.s);
ret->top_node =
- trg_parse_torrent_file_nodes(info_node, &(ret->total_length));
+ trg_parse_torrent_file_nodes(info_node, &(ret->total_length));
if (!ret->top_node) {
- trg_torrent_file_node *file_node;
- be_node *length_node = be_dict_find(info_node, "length", BE_INT);
-
- if (!length_node) {
- g_free(ret);
- ret = NULL;
- goto out;
- }
-
- file_node = g_new0(trg_torrent_file_node, 1);
- file_node->length = ret->total_length =
- (gint64) (length_node->val.i);
- file_node->name = g_strdup(ret->name);
- ret->top_node = file_node;
+ trg_torrent_file_node *file_node;
+ be_node *length_node = be_dict_find(info_node, "length", BE_INT);
+
+ if (!length_node) {
+ g_free(ret);
+ ret = NULL;
+ goto out;
+ }
+
+ file_node = g_new0(trg_torrent_file_node, 1);
+ file_node->length = ret->total_length =
+ (gint64) (length_node->val.i);
+ file_node->name = g_strdup(ret->name);
+ ret->top_node = file_node;
}
out: