Changeset f85ca3f in mainline for uspace/app/bithenge/script.c
- Timestamp:
- 2012-07-28T21:25:49Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 84e8a70
- Parents:
- 32eb01b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/bithenge/script.c
r32eb01b rf85ca3f 119 119 } 120 120 121 /** Note that an error has occurred . */121 /** Note that an error has occurred if error is not EOK. */ 122 122 static void error_errno(state_t *state, int error) 123 123 { 124 124 // Don't overwrite a previous error. 125 if (state->error == EOK ) {125 if (state->error == EOK && error != EOK) { 126 126 done_with_token(state); 127 127 state->token = TOKEN_ERROR; … … 220 220 int rc = bithenge_parse_int(state->buffer + 221 221 state->old_buffer_pos, &state->token_int); 222 if (rc != EOK) 223 error_errno(state, rc); 222 error_errno(state, rc); 224 223 } else if (ch == '<') { 225 224 state->token = ch; … … 368 367 369 368 next_token(state); 369 370 return expr; 371 } else if (state->token == '.') { 372 next_token(state); 373 374 const char *id = expect_identifier(state); 375 bithenge_node_t *key = NULL; 376 bithenge_expression_t *expr = NULL; 377 int rc = bithenge_current_node_expression(&expr); 378 error_errno(state, rc); 379 380 if (state->error == EOK) { 381 rc = bithenge_new_string_node(&key, id, true); 382 id = NULL; 383 error_errno(state, rc); 384 } 385 386 if (state->error == EOK) { 387 rc = bithenge_member_expression(&expr, expr, key); 388 key = NULL; 389 if (rc != EOK) 390 expr = NULL; 391 error_errno(state, rc); 392 } 393 394 if (state->error != EOK) { 395 free((char *)id); 396 bithenge_node_dec_ref(key); 397 bithenge_expression_dec_ref(expr); 398 return NULL; 399 } 370 400 371 401 return expr; … … 588 618 done_with_token(state); 589 619 state->token = TOKEN_ERROR; 590 fclose(state->file); 620 if (state->file) 621 fclose(state->file); 591 622 transform_list_t *entry = state->transform_list; 592 623 while (entry) {
Note:
See TracChangeset
for help on using the changeset viewer.