summaryrefslogtreecommitdiff
path: root/src/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface.c')
-rw-r--r--src/interface.c31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/interface.c b/src/interface.c
index 709a3fa..5d23a5d 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -89,8 +89,25 @@ void get_sign_pos(int i, int *x0, int *y0, int *w, int *h)
if (strcmp(signs[i].text, "{t}")==0)
*w = textwidth("Temp: 0000.00");
+ if(sregexp(signs[i].text, "^{c:[0-9]*|.*}$")==0)
+ {
+ int sldr, startm;
+ char buff[256];
+ memset(buff, 0, sizeof(buff));
+ for(sldr=3; signs[i].text[sldr-1] != '|'; sldr++)
+ startm = sldr + 1;
+
+ sldr = startm;
+ while(signs[i].text[sldr] != '}')
+ {
+ buff[sldr - startm] = signs[i].text[sldr];
+ sldr++;
+ }
+ *w = textwidth(buff) + 5;
+ }
+
//Ususal width
- if (strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}"))
+ if (strcmp(signs[i].text, "{p}") && strcmp(signs[i].text, "{t}") && sregexp(signs[i].text, "^{c:[0-9]*|.*}$"))
*w = textwidth(signs[i].text) + 5;
*h = 14;
*x0 = (signs[i].ju == 2) ? signs[i].x - *w :
@@ -850,12 +867,20 @@ void login_ui(pixel *vid_buf)
if (res && !strncmp(res, "OK ", 3))
{
char *s_id,*u_e,*nres;
+ printf("\n{%s}\n", res);
s_id = strchr(res+3, ' ');
+ if (!s_id)
+ goto fail;
*(s_id++) = 0;
u_e = strchr(s_id, ' ');
- *(u_e++) = 0;
-
+ if (!u_e){
+ u_e = malloc(1);
+ memset(u_e, 0, 1);
+ }
+ else
+ *(u_e++) = 0;
+
strcpy(svf_user_id, res+3);
strcpy(svf_session_id, s_id);
nres = mystrdup(u_e);