/*
* Dolda Connect - Modular multiuser Direct Connect-style client
- * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com)
+ * Copyright (C) 2004 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
{
int i;
double b;
- char *sd;
static char ret[64];
+ static char pfx[] = {'k', 'M', 'G', 'T'};
b = bytes;
- for(i = 0; (b >= 1024) && (i < 4); i++)
+ for(i = 0; (b >= 1024) && (i < sizeof(pfx)); i++)
b /= 1024;
if(i == 0)
- sd = "B";
- else if(i == 1)
- sd = "kiB";
- else if(i == 2)
- sd = "MiB";
- else if(i == 3)
- sd = "GiB";
+ snprintf(ret, 64, "%.1f B", b);
else
- sd = "TiB";
- snprintf(ret, 64, "%.1f %s", b, sd);
+ snprintf(ret, 64, "%.1f %ciB", b, pfx[i - 1]);
return(ret);
}
gtk_text_tag_table_add(chattags, tag);
}
+#include "../dolda-icon.xpm"
+
int main(int argc, char **argv)
{
+ int c, connlocal;
GtkWidget *wnd;
PangoFontDescription *monospacefont;
GtkTreeModel *sortmodel;
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
gtk_init(&argc, &argv);
+ connlocal = 0;
+ while((c = getopt(argc, argv, "lhV")) != -1) {
+ switch(c) {
+ case 'l':
+ connlocal = 1;
+ break;
+ case 'h':
+ printf("usage: dolcon [-hlV]\n");
+ printf("\t-h\tDisplay this help message\n");
+ printf("\t-l\tConnect to the locally running daemon\n");
+ printf("\t-V\tDisplay version info and exit\n");
+ exit(0);
+ case 'V':
+ printf("%s", RELEASEINFO);
+ exit(0);
+ default:
+ fprintf(stderr, "usage: dolcon [-hlV]\n");
+ exit(1);
+ }
+ }
dc_init();
signal(SIGCHLD, SIG_IGN);
pubhubaddr = sstrdup("http://www.hublist.org/PublicHubList.xml.bz2");
exit(1);
}
connectas = sstrdup(pwent->pw_name);
+ gtk_window_set_default_icon(gdk_pixbuf_new_from_xpm_data((const char **)dolda_icon_xpm));
wnd = create_main_wnd();
create_reslist_wnd();
gtk_window_resize(GTK_WINDOW(reslist_wnd), 600, 400);
readconfigfile();
updatesbar(_("Disconnected"));
gtk_widget_show(wnd);
- if(autoconn)
+ if(connlocal)
+ dcconnect(dc_srv_local);
+ else if(autoconn)
dcconnect(dcserver);
g_timeout_add(500, srchstatupdatecb, NULL);
g_timeout_add(5000, ksupdatecb, NULL);