Commit 14e89689d1464c09da42cb912f7c67d6c5139348

Authored by perry.werneck@gmail.com
1 parent 12b3b7bc

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
src/lib3270/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  
... ...
src/lib3270/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);
... ...