Changeset 3232 for trunk


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
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/essentials/app-shells/bash/builtins/Makefile.in

    r3228 r3232  
    211211
    212212psize.aux:      psize.c
    213         $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(srcdir)/psize.c
     213        $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $(srcdir)/psize.c
    214214
    215215documentation: builtins.texi
  • trunk/essentials/app-shells/bash/findcmd.c

    r3231 r3232  
    235235     int flags;
    236236{
    237 #ifdef __WIN32__
     237#if defined __WIN32__ || defined __OS2__
    238238  char *res, *dotexe;
    239239
  • trunk/essentials/app-shells/bash/general.c

    r3231 r3232  
    663663     are handled OK by the `else' part of the if statement; an empty
    664664     string is returned in that case. */
     665#ifndef __OS2__
    665666  if (i && string[i] == ':')
    666667    i++;
     
    668669  for (start = i; string[i] && string[i] != ':'; i++)
    669670    ;
     671
     672#else /* __OS2__ */
     673  if (i && (string[i] == ':' || string[i] ==';'))
     674    i++;
     675
     676  /* In OS/2, interpret either `:' or `;' as separator, except when
     677     the `:' looks like part of a drive letter. */
     678  for (start = i;; i++)
     679    {
     680      if (!string[i])
     681          break;
     682      if (string[i] == ';')
     683          break;
     684      if (string[i] != ':')
     685          continue;
     686      if (i - start != 1)
     687          break;
     688      if (!isalpha (string[i - 1]))
     689          break;
     690    }
     691#endif /* __OS2__ */
    670692
    671693  *p_index = i;
  • trunk/essentials/app-shells/bash/jobs.c

    r3231 r3232  
    3232#if defined (HAVE_UNISTD_H)
    3333#  include <unistd.h>
     34#endif
     35
     36#ifdef __OS2__
     37extern int _setpgid(pid_t pid, pid_t pgid);
    3438#endif
    3539
     
    15621566  map_over_jobs (print_job, format, -1);
    15631567}
     1568
     1569#ifdef __OS2__
     1570/* Overrides the kLIBC setpgid() ENOSYS stub. This implements the
     1571   simple calls that requires no real work. */
     1572int
     1573setpgid (pid, pgid)
     1574    pid_t pid, pgid;
     1575{
     1576  /* FIXME: if ppid != getpid(), check that it exists. */
     1577  if (pid == pgid || pgid == getpid())
     1578    return 0;
     1579  return _setpgid (pid, pgid);
     1580}
     1581#endif
    15641582
    15651583/* Fork, handling errors.  Returns the pid of the newly made child, or 0.
  • 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.