Commit 12770c709043b5747cc7ce206be5508c7169fe05
1 parent
29eec146
Exists in
master
and in
3 other branches
Delimitando buffer com <form> </form> quando forem gerados campos input para fac…
…ilitar o tratamento pelo javascript android
Showing
2 changed files
with
20 additions
and
1 deletions
Show diff stats
html.c
| ... | ... | @@ -99,6 +99,7 @@ |
| 99 | 99 | struct html_info |
| 100 | 100 | { |
| 101 | 101 | int szText; |
| 102 | + int form; | |
| 102 | 103 | |
| 103 | 104 | enum mode |
| 104 | 105 | { |
| ... | ... | @@ -182,6 +183,8 @@ |
| 182 | 183 | { |
| 183 | 184 | char name[30]; |
| 184 | 185 | |
| 186 | + info->form = 1; | |
| 187 | + | |
| 185 | 188 | snprintf(name,29,"F%04d",addr); |
| 186 | 189 | |
| 187 | 190 | append_string(info,"<input type=\""); |
| ... | ... | @@ -388,9 +391,25 @@ |
| 388 | 391 | if(info.fg != 0xFF) |
| 389 | 392 | append_string(&info,element_text[HTML_ELEMENT_END_COLOR]); |
| 390 | 393 | |
| 394 | + | |
| 391 | 395 | if(option & LIB3270_HTML_OPTION_HEADERS) |
| 392 | 396 | append_element(&info,HTML_ELEMENT_FOOTER); |
| 393 | 397 | |
| 398 | + if(info.form) | |
| 399 | + { | |
| 400 | + static const char * prefix = "<form name=\"" PACKAGE_NAME "\">"; | |
| 401 | + static const char * suffix = "</form>"; | |
| 402 | + char *text = info.text; | |
| 403 | + | |
| 404 | + info.text = lib3270_malloc(strlen(prefix)+strlen(suffix)+strlen(text)+4); | |
| 405 | + | |
| 406 | + strcpy(info.text,prefix); | |
| 407 | + strcat(info.text,text); | |
| 408 | + strcat(info.text,suffix); | |
| 409 | + | |
| 410 | + lib3270_free(text); | |
| 411 | + } | |
| 412 | + | |
| 394 | 413 | return lib3270_realloc(info.text,strlen(info.text)+2); |
| 395 | 414 | } |
| 396 | 415 | ... | ... |
util.c
| ... | ... | @@ -179,7 +179,7 @@ char * lib3270_vsprintf(const char *fmt, va_list args) |
| 179 | 179 | char buf[16384]; |
| 180 | 180 | int nc; |
| 181 | 181 | |
| 182 | - nc = vsprintf(buf, fmt, args); | |
| 182 | + nc = vsnprintf(buf, sizeof(buf), fmt, args); | |
| 183 | 183 | if (nc > sizeof(buf)) |
| 184 | 184 | Error(NULL,"Internal buffer overflow"); |
| 185 | 185 | r = lib3270_malloc(nc + 1); | ... | ... |