void
make_commands (FILE* filename, int (*get_next_byte) (void *), command_t* res)
{
  Separation_t m_sp[MAXLINE];
  makeSeparation(filename, m_sp, get_next_byte);
  if (!validate_all(m_sp)) return;
  else
  {
    int i = 0;
    while (m_sp[i]->m_line != -1)
    {
      // command_t cmd = checked_malloc(sizeof(struct command));
      command_t cmd[1];
      token_t *token_array = checked_malloc(sizeof(struct token)*128);
      tokenize(m_sp[i]->m_cmd, token_array, m_sp[i]->m_line);
      make_command(token_array, cmd);
      cmd[0]->line = m_sp[i]->m_line;
      res[i] = cmd[0];
      i++;
    }
    res[i] = NULL;
  }
}
Example #2
0
/* Handle "state changed" elements */
static void newstate(enum eid_vwr_states s) {
	GObject *open, *savexml, *savecsv, *print, *close, *pintest, *pinchg, *validate;
#define want_verify (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "validate_always"))))
	open = gtk_builder_get_object(builder, "mi_file_open");
	savexml = gtk_builder_get_object(builder, "mi_file_saveas_xml");
	savecsv = gtk_builder_get_object(builder, "mi_file_saveas_csv");
	print = gtk_builder_get_object(builder, "mi_file_print");
	close = gtk_builder_get_object(builder, "mi_file_close");
	pintest = gtk_builder_get_object(builder, "pintestbut");
	pinchg = gtk_builder_get_object(builder, "pinchangebut");
	validate = gtk_builder_get_object(builder, "validate_now");

	g_object_set_threaded(open, "sensitive", (void*)FALSE, NULL);
	g_object_set_threaded(close, "sensitive", (void*)FALSE, NULL);
	g_object_set_threaded(print, "sensitive", (void*)FALSE, NULL);
	g_object_set_threaded(savexml, "sensitive", (void*)FALSE, NULL);
	g_object_set_threaded(savecsv, "sensitive", (void*)FALSE, NULL);
	g_object_set_threaded(pintest, "sensitive", (void*)FALSE, NULL);
	g_object_set_threaded(pinchg, "sensitive", (void*)FALSE, NULL);
	g_object_set_threaded(validate, "sensitive", (void*)FALSE, NULL);
	g_object_set_data_threaded(validate, "want_active", (void*)FALSE, NULL);
	switch(s) {
		case STATE_LIBOPEN:
		case STATE_CALLBACKS:
			uistatus(TRUE, _("Initializing"));
			return;
		case STATE_READY:
			uistatus(FALSE, _("Ready to read identity card."));
			g_object_set_threaded(open, "sensitive", (void*)TRUE, NULL);
			disable_dnd();
			return;
		case STATE_NO_READER:
			uistatus(FALSE, _("No cardreader found."));
			return;
		case STATE_TOKEN:
			uistatus(TRUE, _("Card available"));
			return;
		case STATE_TOKEN_WAIT:
			uistatus(FALSE, "");
			g_object_set_threaded(print, "sensitive", (void*)TRUE, NULL);
			g_object_set_threaded(savexml, "sensitive", (void*)TRUE, NULL);
			g_object_set_threaded(savecsv, "sensitive", (void*)TRUE, NULL);
			g_object_set_threaded(pintest, "sensitive", (void*)TRUE, NULL);
			g_object_set_threaded(pinchg, "sensitive", (void*)TRUE, NULL);
			if(!data_verifies()) {
				uilog(EID_VWR_LOG_COARSE, "Cannot load card: data signature invalid!");
				eid_vwr_be_set_invalid();
			}
			g_object_set_data_threaded(validate, "want_active", (void*)TRUE, NULL);
			if(want_verify) {
				validate_all(NULL, NULL);
			} else {
				g_object_set_threaded(validate, "sensitive", (void*)TRUE, NULL);
			}
			setup_dnd();
			return;
		case STATE_TOKEN_ID:
			uistatus(TRUE, _("Reading identity."));
			return;
		case STATE_TOKEN_CERTS:
			uistatus(TRUE, _("Reading certificates from card"));
			return;
		case STATE_TOKEN_ERROR:
			uistatus(FALSE, _("Failed to read identity data."));
			return;
		case STATE_TOKEN_PINOP:
			uistatus(TRUE, _("Performing a PIN operation"));
			return;
		case STATE_FILE:
			uistatus(FALSE, "");
			g_object_set_threaded(print, "sensitive", (void*)TRUE, NULL);
			g_object_set_threaded(close, "sensitive", (void*)TRUE, NULL);
			g_object_set_data_threaded(validate, "want_active", (void*)TRUE, NULL);
			if(want_verify) {
				validate_all(NULL, NULL);
			} else {
				g_object_set_threaded(validate, "sensitive", (void*)TRUE, NULL);
			}
			setup_dnd();
		default:
			return;
	}
}