diff options
Diffstat (limited to 'src/interface.c')
| -rw-r--r-- | src/interface.c | 31 |
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); |
