Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Strip dchub:// prefix from XML hublists.
[doldaconnect.git]
/
clients
/
gtk2
/
hublist-xml.c
diff --git
a/clients/gtk2/hublist-xml.c
b/clients/gtk2/hublist-xml.c
index
e67f717
..
fcd9d73
100644
(file)
--- a/
clients/gtk2/hublist-xml.c
+++ b/
clients/gtk2/hublist-xml.c
@@
-1,6
+1,6
@@
/*
* Dolda Connect - Modular multiuser Direct Connect-style client
/*
* Dolda Connect - Modular multiuser Direct Connect-style client
- * Copyright (C) 2007 Fredrik Tolf
(fredrik@dolda2000.com)
+ * Copyright (C) 2007 Fredrik Tolf
<fredrik@dolda2000.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-61,7
+61,7
@@
static int checkvalid(xmlNodePtr n)
int pubhubxmlhandler(int op, char *buf, size_t len)
{
static xmlParserCtxtPtr ctxt = NULL;
int pubhubxmlhandler(int op, char *buf, size_t len)
{
static xmlParserCtxtPtr ctxt = NULL;
- int i;
+ int i
, o
;
xmlNodePtr dr, r, cr, c, n;
int numcols, *cols, sortcol;
GType type, *types;
xmlNodePtr dr, r, cr, c, n;
int numcols, *cols, sortcol;
GType type, *types;
@@
-119,6
+119,8
@@
int pubhubxmlhandler(int op, char *buf, size_t len)
type = G_TYPE_STRING;
else if(!strcmp(stype, "int"))
type = G_TYPE_INT;
type = G_TYPE_STRING;
else if(!strcmp(stype, "int"))
type = G_TYPE_INT;
+ else if(!strcmp(stype, "percent"))
+ type = G_TYPE_INT;
else if(!strcmp(stype, "bytes"))
type = G_TYPE_INT64;
}
else if(!strcmp(stype, "bytes"))
type = G_TYPE_INT64;
}
@@
-142,14
+144,16
@@
int pubhubxmlhandler(int op, char *buf, size_t len)
}
for(i = 0; i < numcols; i++)
{
}
for(i = 0; i < numcols; i++)
{
- if(!strcmp(names[i], "Address"))
+ if(!strc
asec
mp(names[i], "Address"))
{
{
- name = names[0];
- names[0] = names[i];
- names[i] = name;
- type = types[0];
- types[0] = types[i];
- types[i] = type;
+ for(o = i; o > 0; o--) {
+ name = names[o];
+ type = types[o];
+ names[o] = names[o - 1];
+ types[o] = types[o - 1];
+ names[o - 1] = name;
+ types[o - 1] = type;
+ }
break;
}
}
break;
}
}
@@
-171,12
+175,18
@@
int pubhubxmlhandler(int op, char *buf, size_t len)
attr = (char *)xmlGetProp(n, (xmlChar *)names[i]);
if(attr != NULL)
{
attr = (char *)xmlGetProp(n, (xmlChar *)names[i]);
if(attr != NULL)
{
- if(types[i] == G_TYPE_STRING)
+ if(!strcmp(names[i], "Address")) {
+ if(!strncmp(attr, "dchub://", 8))
+ gtk_list_store_set(model, &iter, i, attr + 8, -1);
+ else
+ gtk_list_store_set(model, &iter, i, attr, -1);
+ } else if(types[i] == G_TYPE_STRING) {
gtk_list_store_set(model, &iter, i, attr, -1);
gtk_list_store_set(model, &iter, i, attr, -1);
- else if(types[i] == G_TYPE_INT)
+ } else if(types[i] == G_TYPE_INT) {
gtk_list_store_set(model, &iter, i, atoi(attr), -1);
gtk_list_store_set(model, &iter, i, atoi(attr), -1);
- else if(types[i] == G_TYPE_INT64)
+ } else if(types[i] == G_TYPE_INT64) {
gtk_list_store_set(model, &iter, i, strtoll(attr, NULL, 0), -1);
gtk_list_store_set(model, &iter, i, strtoll(attr, NULL, 0), -1);
+ }
xmlFree(attr);
}
}
xmlFree(attr);
}
}