Ignore:
Timestamp:
Apr 29, 2007, 10:43:43 PM (18 years ago)
Author:
bird
Message:

Applied Brendan's patches.

Location:
trunk/essentials/app-shells/bash/lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/essentials/app-shells/bash/lib/readline/input.c

    r3231 r3232  
    443443  unsigned char c;
    444444
     445#if defined (__OS2__)
     446  if (isatty (fileno (stream)) )
     447    {
     448      static const char *esq_seq[] =
     449           { "\033[A", "\033[B", "\033[C", "\033[D"
     450           , "\033[H", "\033[F"
     451           , "\033[4h" };
     452      static const char *esq = NULL;
     453      if (esq)
     454        {
     455          c = *esq++;
     456          if (*esq == '\0')
     457            esq = NULL;
     458        }
     459      else
     460        {
     461          for (;;)
     462            {
     463              result = _read_kbd (0, 1, 0);
     464              if (result == 0)
     465                {
     466                   int no;
     467                   result = _read_kbd (0, 1, 0);
     468                   switch (result)
     469                     {
     470                       case 'H': no = 0; break; // Arrow Up
     471                       case 'P': no = 1; break; // Arrow Down
     472                       case 'M': no = 2; break; // Arrow Left
     473                       case 'K': no = 3; break; // Arrow Right
     474                       case 'G': no = 4; break; // Home key
     475                       case 'O': no = 5; break; // End key
     476                       case 'R': no = 6; break; // Insert key
     477                       default: continue;
     478                     }
     479                   esq = esq_seq[no];
     480                   c = *esq++;
     481                   break;
     482                }
     483              else
     484                {
     485                  if (result == 0x1A)
     486                    return (EOF); // Ctrl-Z
     487                  c = result;
     488                  break;
     489                }
     490            }
     491        }
     492      return (c);
     493    }
     494#endif
     495 
    445496  while (1)
    446497    {
  • trunk/essentials/app-shells/bash/lib/readline/readline.c

    r3231 r3232  
    172172   and the attributes include `echo'.  Look at rltty.c:prepare_terminal_settings
    173173   for the code that sets it. */
     174#if defined (__OS2__)
     175int readline_echoing_p = 1;
     176#else
    174177int readline_echoing_p = 0;
     178#endif
    175179
    176180/* Current prompt. */
     
    10881092  rl_bind_keyseq_if_unbound ("\033[H", rl_beg_of_line);
    10891093  rl_bind_keyseq_if_unbound ("\033[F", rl_end_of_line);
     1094#if defined (__OS2__)
     1095  rl_bind_keyseq_if_unbound ("\033[4h", rl_overwrite_mode);
     1096#endif
    10901097
    10911098  rl_bind_keyseq_if_unbound ("\033OA", rl_get_previous_history);
  • trunk/essentials/app-shells/bash/lib/sh/netconn.c

    r3231 r3232  
    3939#if defined (HAVE_SYS_SOCKET_H) && defined (HAVE_GETPEERNAME) && !defined (SVR4_2)
    4040#  include <sys/socket.h>
     41#endif
     42
     43#ifdef __OS2__
     44typedef __socklen_t socklen_t;
    4145#endif
    4246
Note: See TracChangeset for help on using the changeset viewer.