rem: ECI_DEBUG_1("(ecasoundc_sa) rettype-content validated: <<< %s >>>\n", parser->buffer_repp);
context: void eci_impl_update_state(struct eci_parser* parser, char c){  char* msg_buffer = parser->buffer_repp;  switch(parser->state_rep)    {    case ECI_STATE_INIT:      if (c >= 0x30 && c <= 0x39) {	parser->token_phase_rep = ECI_TOKEN_PHASE_READING;	parser->buffer_current_rep = 0;	parser->state_rep = ECI_STATE_LOGLEVEL;      }      else {	parser->token_phase_rep = ECI_TOKEN_PHASE_NONE;      }      break;    case ECI_STATE_LOGLEVEL:      if (c == ' ') {	parser->buffer_repp[parser->buffer_current_rep] = 0;	parser->loglevel_rep = atoi(parser->buffer_repp);	if (parser->loglevel_rep == ECI_RETURN_TYPE_LOGLEVEL) {	  /* ECI_DEBUG_3("\n(ecasoundc_sa) found rettype loglevel '%s' (i=%d,len=%d).\n", parser->buffer_repp, parser->loglevel_rep, parser->buffer_current_rep); */	  parser->state_msg_rep = ECI_STATE_MSG_RETURN;	}	else {	  /* ECI_DEBUG_3("\n(ecasoundc_sa) found loglevel '%s' (i=%d,parser->buffer_current_rep=%d).\n", buf, parser->loglevel_rep, parser->buffer_current_rep); */	  parser->state_msg_rep = ECI_STATE_MSG_GEN;	}	  	parser->state_rep = ECI_STATE_MSGSIZE;	parser->token_phase_rep =  ECI_TOKEN_PHASE_NONE;      }      else if (c < 0x30 && c > 0x39) {	parser->state_rep = ECI_STATE_SEEK_TO_LF;      }      break;    case ECI_STATE_MSGSIZE:      if ((c == ' ' && parser->state_msg_rep == ECI_STATE_MSG_RETURN) ||	  (c == 0x0d && parser->state_msg_rep == ECI_STATE_MSG_GEN)) {	parser->buffer_repp[parser->buffer_current_rep] = 0;	parser->msgsize_rep = atoi(parser->buffer_repp);	/* ECI_DEBUG_3("(ecasoundc_sa) found msgsize '%s' (i=%d,len=%d).\n", parser->buffer_repp, parser->msgsize_rep, parser->buffer_current_rep); */	if (parser->state_msg_rep == ECI_STATE_MSG_GEN) {	  parser->state_rep = ECI_STATE_COMMON_LF_1;	}	else {	  parser->state_rep = ECI_STATE_RET_TYPE;	}	parser->token_phase_rep =  ECI_TOKEN_PHASE_NONE;        }      else if (c < 0x30 && c > 0x39) {	parser->state_rep = ECI_STATE_SEEK_TO_LF;      }      else if (parser->token_phase_rep == ECI_TOKEN_PHASE_NONE) {	parser->token_phase_rep =  ECI_TOKEN_PHASE_READING;	parser->buffer_current_rep = 0;      }      break;    case ECI_STATE_COMMON_CR_1:       if (c == 0x0d) 	parser->state_rep = ECI_STATE_COMMON_LF_1;      else	parser->state_rep = ECI_STATE_INIT;      break;    case ECI_STATE_COMMON_LF_1:      if (c == 0x0a) {	parser->state_rep = ECI_STATE_COMMON_CONTENT;      }      else	parser->state_rep = ECI_STATE_INIT;      break;    case ECI_STATE_RET_TYPE:      if (c == 0x0d) {	/* parse return type */	/* set 'parser->last_type_repp' */	int len = (parser->buffer_current_rep < ECI_MAX_RETURN_TYPE_SIZE) ? parser->buffer_current_rep : (ECI_MAX_RETURN_TYPE_SIZE - 1);	parser->buffer_repp[parser->buffer_current_rep] = 0;	memcpy(parser->last_type_repp, parser->buffer_repp, len);	parser->last_type_repp[ECI_MAX_RETURN_TYPE_SIZE - 1] = 0;		/* ECI_DEBUG_2("(ecasoundc_sa) found rettype '%s' (len=%d).\n", parser->last_type_repp, parser->buffer_current_rep); */	parser->state_rep = ECI_STATE_COMMON_LF_1;	parser->token_phase_rep =  ECI_TOKEN_PHASE_NONE;      }      else if (parser->token_phase_rep == ECI_TOKEN_PHASE_NONE) {	parser->token_phase_rep =  ECI_TOKEN_PHASE_READING;	parser->buffer_current_rep = 0;      }      break;    case ECI_STATE_COMMON_CONTENT:      if (c == 0x0d) {	/* parse return type */	/* set 'parser->last_xxx_yyy' */	parser->buffer_repp[parser->buffer_current_rep] = 0;#if 0	ECI_DEBUG_2("(ecasoundc_sa) found content, loglevel=%d, msgsize=%d", parser->loglevel_rep, parser->msgsize_rep);	if (parser->state_msg_rep == ECI_STATE_MSG_GEN)	  ECI_DEBUG(".\n");	else	  ECI_DEBUG_1(" type='%s'.\n", parser->last_type_repp);#endif	parser->state_rep = ECI_STATE_COMMON_LF_2;	parser->token_phase_rep =  ECI_TOKEN_PHASE_VALIDATE;      }      else if (parser->token_phase_rep == ECI_TOKEN_PHASE_NONE) {	parser->token_phase_rep = ECI_TOKEN_PHASE_READING;	parser->buffer_current_rep = 0;      }      break;    case ECI_STATE_COMMON_CR_2:      if (c == 0x0d)	parser->state_rep = ECI_STATE_COMMON_LF_2;       else	parser->state_rep = ECI_STATE_COMMON_CONTENT;      break;	    case ECI_STATE_COMMON_LF_2:      if (c == 0x0a)	parser->state_rep = ECI_STATE_COMMON_CR_3;       else	parser->state_rep = ECI_STATE_COMMON_CONTENT;      break;    case ECI_STATE_COMMON_CR_3:      if (c == 0x0d)	parser->state_rep = ECI_STATE_COMMON_LF_3;       else	parser->state_rep = ECI_STATE_COMMON_CONTENT;      break;    case ECI_STATE_COMMON_LF_3:      if (c == 0x0a) {	if (parser->state_msg_rep == ECI_STATE_MSG_RETURN) {	  ECI_DEBUG_1("(ecasoundc_sa) rettype-content validated: <<< %s >>>\n", parser->buffer_repp);	  eci_impl_set_last_values(parser);	  parser->last_counter_rep++;	}	else {	  /* ECI_DEBUG_1("(ecasoundc_sa) gen-content validated: <<< %s >>>\n", parser->buffer_repp); */	}	parser->state_rep = ECI_STATE_INIT;       }      else	parser->state_rep = ECI_STATE_COMMON_CONTENT;      break;    case ECI_STATE_SEEK_TO_LF:       if (c == 0x0a) {	parser->token_phase_rep = ECI_TOKEN_PHASE_NONE;	parser->state_rep = ECI_STATE_INIT;      }      break;    default: {}    } /* end of switch() */  if (parser->token_phase_rep == ECI_TOKEN_PHASE_READING) {    msg_buffer[parser->buffer_current_rep] = c;    if (++parser->buffer_current_rep == ECI_MAX_PARSER_BUF_SIZE) {      fprintf(stderr, "\n(ecasoundc_sa) WARNING! Parsing buffer overflowed!\n\n");    }  }}