Exemplo n.º 1
0
TCHAR *amx_gets(TCHAR *string,int size)
{
  int c=-1,num=0;

  if (createconsole(0, NULL)) {
    while (num+1<size && !(c==__T('\r') || c==__T('\n'))) {
      c=amx_getch();
      if (c<0)
        break;
      if (c==__T('\r'))
        c=__T('\n');    /* translate carriage return to newline */
      if (c==__T('\b')) {
        if (num>0)
          string[--num]=__T(' ');
      } else {
        string[num++]=(TCHAR)c;
      } /* if */
      amx_putchar(c);   /* echo the character read */
    } /* while */
    if (num<size)
      string[num]=__T('\0');
    return string;
  } /* if */

  return 0;
}
Exemplo n.º 2
0
int amx_getch(void)
{
  int c=-1;

  if (createconsole(0, NULL)) {
    int cursor=0;
    if (keyq_start==keyq_end) {
      amx_putchar(__T('_'));         /* must wait for character, so put pseudo-cursor */
      cursor=1;
    } /* if */
    while (keyq_start==keyq_end && app!=NULL) {
      wait_event(app);
      do_event(app);
    } /* while */
    c=(int)keyqueue[keyq_start];
    if (c=='\n')
      c='\r';                       /* enter key must be '\r' for Pawn */
    keyq_start=(keyq_start+1)%KEYQUEUE_SIZE;
    if (cursor)
      amx_putchar(__T('\b'));        /* remove speudo-cursor */
  } /* if */
  return c;
}