Пример #1
0
void close_file(file_t * file) {
	clean_term(file->term);
	clean_renderer(file->rend);
	clean_buff(file->buff);
	clean_buff(file->modbuff);
	clean_keys();
}
Пример #2
0
int		main(int ac, char **av)
{
  int		yes;
  int		beg;
  char		**map;

  yes = 0;
  beg = 0;
  clean_term();
  while (!yes)
    {
      map = recup_maps();
      if (!(map[0]))
        return (0);
      if (beg != 0)
        aff_delim();
      bt_check_grids(map, 0);
      aff_grids(map);
      beg++;
    }
  return (0);
}
Пример #3
0
// Task odbioru i analizy znakow z konsoli
void vConsoleRxTask (void *pvparameters) {


    char special=0;
    char i = 0;

    char command_buffer[CMD_MAX_LEN];
    char *ptr_cmd_buf = command_buffer;
    char onechar;

    //utworz kolejke znakow
    RxQueue = xQueueCreate(100, sizeof( portCHAR ) );


    for (;;)
    {

        //vTaskDelay(10 / portTICK_RATE_MS);
        while(xQueueReceive(RxQueue,&onechar,portMAX_DELAY))
        {

            // sprawdzamy wstepnie czy to znak specjalny (wszelkie strzalki, delete)
            if (onechar == 0x5b ||onechar == 0x1b) {
                special = 1;
            }
            //sprawdz czy to byla strzalka w gore
            else if (special && onechar == 0x41 )
            {
                //skasuj wyswietlona z historii komende i przygotuj dla poprzedniej
                clean_term(ptr_cmd_buf);
                //wczytaj poprzednia komende
                przewinwtyl(com_cmd_hist, ptr_cmd_buf);

                //wyswietla te komnde na rs
                print_console(ptr_cmd_buf);

                //print_char(0, user.prom(&user));
                i= (char)strlen(ptr_cmd_buf);

                // deaktywacja sekwencji sterujacej
                special = 0;

            }

            //przyjmuj tylko znaki z przedzialu a-z 0-9 spacja, enter, backspace,itd.
            //uwaga na strzalki, wysylaja po 2 znaki: A+costam oraz B+costam
            else if(( (onechar >= 'a' && onechar <= 'z') ||
                      (onechar >= 'A' && onechar <= 'Z') ||
                      (onechar >= '0' && onechar <= '9') ||
                      onechar == ' ' || onechar == '.'   ||
                      onechar == '-' || onechar == '_'   ||
                      onechar == '+' || onechar == '?' ||
                      onechar == '@' )&&(!special)  )
            {
                //echo dla wpisanego znaku
                usart_put_char(onechar);

                //zabezpieczenie przed przekroczeniem tablicy
                if(i < CMD_MAX_LEN)
                {
                    *(ptr_cmd_buf + i) = onechar;
                    i++;
                }
            }

            //sprawdz czy to byl backspace
            else if (onechar == BS) //backspace
            {
                //sprawdz czy index jest jeszcze w dopuszczlnym obszarze,
                //z lewej i z prawej strony
                if(i > 0 && i < CMD_MAX_LEN)
                {
                    usart_put_char(BS);

                    //wyczysc ostatni znak
                    *(ptr_cmd_buf + i) = 0x0;
                    //przesun o 1 do tylu aktualny indeks bufora
                    i--;

                }
            }
            //jesli jakikolwiek inny klawisz ze znakow specjalnych
            else if(special)	special = 0;

            //sprawdz czy to byl enter lub koniec transmisji
            else if (onechar == EOT || onechar ==LF ||
                     onechar ==CR_CM || onechar==ETB)
            {
                //usart_put_string("\r\n");
                //usart_put_char((char*)LF);
                //usart_put_char((char*)CMD_PRMT);
                //zakoncz c-stringa znakiem konca= '\0'
                *(ptr_cmd_buf + i) = '\0';

                //skopiuj te komende do kolejki przyjetych komend
                //add_to_history_cmd(com_cmd_hist, ptr_cmd_buf);
                //interpretacja komend
                interpreter(ptr_cmd_buf, i, NULL,ptr_cmd_buf);


                //przygotuj indeks pod nastepna komende na poczatek bufora
                i= 0;

                //byl ENTER, wiec ustaw ze nie kasuje nic STRZALKA W GORE wypisujaca z historii
                was_hist = 0;
            }
        }
    }


}