view src/s/ptx4.h @ 28203:c10ee0e6982b

(RE_STRING_CHAR): New macro. (GET_CHAR_AFER_2): Remove. (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h. (enum re_opcode_t): Remove on_failure_jump_exclusive. (print_partial_compiled_pattern, re_compile_fastmap) (re_match_2_internal): Remove on_failure_jump_exclusive. (regex_compile): Turn optimizable P+ loops into PP*, so that the optimization only need to work for * (ie. can use of_keep_string_jump). Remove the special case for .*\n since it is now covered by the general optimization. (re_search_2): Don't bother with `room'. (skip_one_char): New function. (skip_noops): Simplify since `memory' is not needed any more. (mutually_exclusive_p): Restructure slightly to use `switch' and add handling for "all" remaining cases. (re_match_2_internal): Change on_failure_jump_smart to use on_failure_keep_string_jump (and redirect the end-of-loop jump) rather than on_failure_jump_exclusive.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 19 Mar 2000 23:22:06 +0000
parents 566fd2a966aa
children 695cf19ef79e
line wrap: on
line source

/* s/ file for Sequent "ptx 4", which is a modified SVR5.4.  */

/* Tell usg5-4.h not to include filio.h.  */
#define NO_FILIO_H

#include "usg5-4.h"

/* Marcus Daniels <marcus@sysc.pdx.edu> says that SIGINFO is defined
   on ptx4 but it is not a signal.  Prevent process.c from doing the
   wrong thing.  */
#define BROKEN_SIGINFO

/* pae@dim.com (Phil Ernhardt) says this correction to
   the definition in usg5-4.h is needed to prevent
   all asynchronous subprocesses from exiting right away.  */

/* James Youngman <jay@gnu.org> found that on "DYNIX/ptx ARNIE 4.0
 * V4.4.2 i386", the push of the ttcompat module would fail.  It seems
 * that PTX 4.4.2 doesn't have that module, so if the push fails we
 * don't kill ourselves.  While this version lacks ttcompat, it also
 * has ptem, but the manual page for ptem indicates that it should
 * be pushed onto the slave side before the line discipline module.
 * See also the streampty manual page, if you're curious (and have
 * a ptx system).
 */

/* rms: I hope that older versions which do have ttcompat
   will not get confused by the code to use ptem.  */

#undef SETUP_SLAVE_PTY
#define SETUP_SLAVE_PTY \
  if (ioctl (xforkin, I_PUSH, "ptem") == -1 && errno != EINVAL) \
    fatal ("ioctl I_PUSH ptem", errno);     \
  if (ioctl (xforkin, I_PUSH, "ldterm") == -1)	\
    fatal ("ioctl I_PUSH ldterm", errno);	\
  if (ioctl (xforkin, I_PUSH, "ttcompat") == -1 && errno != EINVAL) \
    fatal ("ioctl I_PUSH ttcompat", errno);