Commit 493a6480755ed4d6b30ca35c946eeac924e48ab0

Authored by perry.werneck@gmail.com
1 parent 320b3075

Melhorando retornos de erro nas funções que obtem strings da tela

Showing 1 changed file with 13 additions and 7 deletions   Show diff stats
src/plugins/hllapi/calls.c
@@ -219,7 +219,7 @@ @@ -219,7 +219,7 @@
219 219
220 if(!ptr) 220 if(!ptr)
221 { 221 {
222 - trace(stderr,"Can´t load \"%s\"\n",entry_point[f].name); 222 + trace("Can´t load \"%s\"\n",entry_point[f].name);
223 hllapi_deinit(); 223 hllapi_deinit();
224 return -ENOENT; 224 return -ENOENT;
225 } 225 }
@@ -359,15 +359,18 @@ @@ -359,15 +359,18 @@
359 359
360 trace(" text=%p errno=%d %s\n",text,errno,strerror(errno)); 360 trace(" text=%p errno=%d %s\n",text,errno,strerror(errno));
361 361
362 - if(!text)  
363 - return HLLAPI_STATUS_SYSTEM_ERROR; 362 + if(!text)
  363 + {
  364 + int rc = hllapi_get_state();
  365 + return rc == HLLAPI_STATUS_SUCCESS ? -1 : rc;
  366 + }
364 367
365 strncpy(buffer,text,len); 368 strncpy(buffer,text,len);
366 release_memory(text); 369 release_memory(text);
367 370
368 trace("text:\n%s\n",buffer); 371 trace("text:\n%s\n",buffer);
369 372
370 - return 0; 373 + return HLLAPI_STATUS_SUCCESS;
371 } 374 }
372 375
373 __declspec (dllexport) DWORD __stdcall hllapi_enter(void) 376 __declspec (dllexport) DWORD __stdcall hllapi_enter(void)
@@ -439,7 +442,7 @@ @@ -439,7 +442,7 @@
439 __declspec (dllexport) DWORD __stdcall hllapi_getcursor() 442 __declspec (dllexport) DWORD __stdcall hllapi_getcursor()
440 { 443 {
441 if(!(getcursor && hSession)) 444 if(!(getcursor && hSession))
442 - return -EINVAL; 445 + return HLLAPI_STATUS_SYSTEM_ERROR;
443 return getcursor(hSession)+1; 446 return getcursor(hSession)+1;
444 } 447 }
445 448
@@ -453,13 +456,16 @@ @@ -453,13 +456,16 @@
453 456
454 text = hllapi_get_string(offset, szBuffer); 457 text = hllapi_get_string(offset, szBuffer);
455 if(!text) 458 if(!text)
456 - return HLLAPI_STATUS_SYSTEM_ERROR; 459 + {
  460 + int rc = hllapi_get_state();
  461 + return rc == HLLAPI_STATUS_SUCCESS ? -1 : rc;
  462 + }
457 463
458 memcpy(buffer,text,len); 464 memcpy(buffer,text,len);
459 465
460 hllapi_free(text); 466 hllapi_free(text);
461 467
462 - return 0; 468 + return HLLAPI_STATUS_SUCCESS;
463 } 469 }
464 470
465 __declspec (dllexport) DWORD __stdcall hllapi_emulate_input(LPSTR buffer, WORD len, WORD pasting) 471 __declspec (dllexport) DWORD __stdcall hllapi_emulate_input(LPSTR buffer, WORD len, WORD pasting)