695 lines
13 KiB
Plaintext
695 lines
13 KiB
Plaintext
|
/****************************************************************************
|
||
|
* Copyright (c) 1998 Free Software Foundation, Inc. *
|
||
|
* *
|
||
|
* Permission is hereby granted, free of charge, to any person obtaining a *
|
||
|
* copy of this software and associated documentation files (the *
|
||
|
* "Software"), to deal in the Software without restriction, including *
|
||
|
* without limitation the rights to use, copy, modify, merge, publish, *
|
||
|
* distribute, distribute with modifications, sublicense, and/or sell *
|
||
|
* copies of the Software, and to permit persons to whom the Software is *
|
||
|
* furnished to do so, subject to the following conditions: *
|
||
|
* *
|
||
|
* The above copyright notice and this permission notice shall be included *
|
||
|
* in all copies or substantial portions of the Software. *
|
||
|
* *
|
||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
||
|
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
||
|
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
||
|
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
||
|
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||
|
* *
|
||
|
* Except as contained in this notice, the name(s) of the above copyright *
|
||
|
* holders shall not be used in advertising or otherwise to promote the *
|
||
|
* sale, use or other dealings in this Software without prior written *
|
||
|
* authorization. *
|
||
|
****************************************************************************/
|
||
|
|
||
|
/****************************************************************************
|
||
|
* Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
|
||
|
****************************************************************************/
|
||
|
/* LINTLIBRARY */
|
||
|
|
||
|
/* ./fld_arg.c */
|
||
|
|
||
|
#include "form.priv.h"
|
||
|
|
||
|
#undef set_fieldtype_arg
|
||
|
int set_fieldtype_arg(
|
||
|
FIELDTYPE *typ,
|
||
|
void *(*const make_arg)(
|
||
|
va_list *p1),
|
||
|
void *(*const copy_arg)(
|
||
|
const void *p1),
|
||
|
void (*const free_arg)(
|
||
|
void *p1))
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_arg
|
||
|
void *field_arg(
|
||
|
const FIELD *field)
|
||
|
{ return(*(void **)0); }
|
||
|
|
||
|
/* ./fld_attr.c */
|
||
|
|
||
|
#undef set_field_fore
|
||
|
int set_field_fore(
|
||
|
FIELD *field,
|
||
|
chtype attr)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_fore
|
||
|
chtype field_fore(
|
||
|
const FIELD *field)
|
||
|
{ return(*(chtype *)0); }
|
||
|
|
||
|
#undef set_field_back
|
||
|
int set_field_back(
|
||
|
FIELD *field,
|
||
|
chtype attr)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_back
|
||
|
chtype field_back(
|
||
|
const FIELD *field)
|
||
|
{ return(*(chtype *)0); }
|
||
|
|
||
|
/* ./fld_current.c */
|
||
|
|
||
|
#undef set_current_field
|
||
|
int set_current_field(
|
||
|
FORM *form,
|
||
|
FIELD *field)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef current_field
|
||
|
FIELD *current_field(
|
||
|
const FORM *form)
|
||
|
{ return(*(FIELD **)0); }
|
||
|
|
||
|
#undef field_index
|
||
|
int field_index(
|
||
|
const FIELD *field)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_def.c */
|
||
|
|
||
|
#undef _nc_Default_Field
|
||
|
FIELD *_nc_Default_Field;
|
||
|
|
||
|
#undef _nc_Make_Argument
|
||
|
TypeArgument *_nc_Make_Argument(
|
||
|
const FIELDTYPE *typ,
|
||
|
va_list *ap,
|
||
|
int *err)
|
||
|
{ return(*(TypeArgument **)0); }
|
||
|
|
||
|
#undef _nc_Copy_Argument
|
||
|
TypeArgument *_nc_Copy_Argument(
|
||
|
const FIELDTYPE *typ,
|
||
|
const TypeArgument *argp,
|
||
|
int *err)
|
||
|
{ return(*(TypeArgument **)0); }
|
||
|
|
||
|
#undef _nc_Free_Argument
|
||
|
void _nc_Free_Argument(
|
||
|
const FIELDTYPE *typ,
|
||
|
TypeArgument *argp)
|
||
|
{ /* void */ }
|
||
|
|
||
|
#undef _nc_Copy_Type
|
||
|
bool _nc_Copy_Type(
|
||
|
FIELD *dst,
|
||
|
FIELD const *src)
|
||
|
{ return(*(bool *)0); }
|
||
|
|
||
|
#undef _nc_Free_Type
|
||
|
void _nc_Free_Type(
|
||
|
FIELD *field)
|
||
|
{ /* void */ }
|
||
|
|
||
|
#undef new_field
|
||
|
FIELD *new_field(
|
||
|
int rows,
|
||
|
int cols,
|
||
|
int frow,
|
||
|
int fcol,
|
||
|
int nrow,
|
||
|
int nbuf)
|
||
|
{ return(*(FIELD **)0); }
|
||
|
|
||
|
#undef free_field
|
||
|
int free_field(
|
||
|
FIELD *field)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_dup.c */
|
||
|
|
||
|
#undef dup_field
|
||
|
FIELD *dup_field(
|
||
|
FIELD *field,
|
||
|
int frow,
|
||
|
int fcol)
|
||
|
{ return(*(FIELD **)0); }
|
||
|
|
||
|
/* ./fld_ftchoice.c */
|
||
|
|
||
|
#undef set_fieldtype_choice
|
||
|
int set_fieldtype_choice(
|
||
|
FIELDTYPE *typ,
|
||
|
bool (*const next_choice)(
|
||
|
FIELD *p1,
|
||
|
const void *p2),
|
||
|
bool (*const prev_choice)(
|
||
|
FIELD *p1,
|
||
|
const void *p2))
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_ftlink.c */
|
||
|
|
||
|
#undef link_fieldtype
|
||
|
FIELDTYPE *link_fieldtype(
|
||
|
FIELDTYPE *type1,
|
||
|
FIELDTYPE *type2)
|
||
|
{ return(*(FIELDTYPE **)0); }
|
||
|
|
||
|
/* ./fld_info.c */
|
||
|
|
||
|
#undef field_info
|
||
|
int field_info(
|
||
|
const FIELD *field,
|
||
|
int *rows,
|
||
|
int *cols,
|
||
|
int *frow,
|
||
|
int *fcol,
|
||
|
int *nrow,
|
||
|
int *nbuf)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef dynamic_field_info
|
||
|
int dynamic_field_info(
|
||
|
const FIELD *field,
|
||
|
int *drows,
|
||
|
int *dcols,
|
||
|
int *maxgrow)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_just.c */
|
||
|
|
||
|
#undef set_field_just
|
||
|
int set_field_just(
|
||
|
FIELD *field,
|
||
|
int just)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_just
|
||
|
int field_just(
|
||
|
const FIELD *field)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_link.c */
|
||
|
|
||
|
#undef link_field
|
||
|
FIELD *link_field(
|
||
|
FIELD *field,
|
||
|
int frow,
|
||
|
int fcol)
|
||
|
{ return(*(FIELD **)0); }
|
||
|
|
||
|
/* ./fld_max.c */
|
||
|
|
||
|
#undef set_max_field
|
||
|
int set_max_field(
|
||
|
FIELD *field,
|
||
|
int maxgrow)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_move.c */
|
||
|
|
||
|
#undef move_field
|
||
|
int move_field(
|
||
|
FIELD *field,
|
||
|
int frow,
|
||
|
int fcol)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_newftyp.c */
|
||
|
|
||
|
#undef _nc_Default_FieldType
|
||
|
const FIELDTYPE *_nc_Default_FieldType = {0};
|
||
|
|
||
|
#undef new_fieldtype
|
||
|
FIELDTYPE *new_fieldtype(
|
||
|
bool (*const field_check)(
|
||
|
FIELD *p1,
|
||
|
const void *p2),
|
||
|
bool (*const char_check)(
|
||
|
int p1,
|
||
|
const void *p2))
|
||
|
{ return(*(FIELDTYPE **)0); }
|
||
|
|
||
|
#undef free_fieldtype
|
||
|
int free_fieldtype(
|
||
|
FIELDTYPE *typ)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_opts.c */
|
||
|
|
||
|
#undef set_field_opts
|
||
|
int set_field_opts(
|
||
|
FIELD *field,
|
||
|
Field_Options opts)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_opts
|
||
|
Field_Options field_opts(
|
||
|
const FIELD *field)
|
||
|
{ return(*(Field_Options *)0); }
|
||
|
|
||
|
#undef field_opts_on
|
||
|
int field_opts_on(
|
||
|
FIELD *field,
|
||
|
Field_Options opts)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_opts_off
|
||
|
int field_opts_off(
|
||
|
FIELD *field,
|
||
|
Field_Options opts)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_pad.c */
|
||
|
|
||
|
#undef set_field_pad
|
||
|
int set_field_pad(
|
||
|
FIELD *field,
|
||
|
int ch)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_pad
|
||
|
int field_pad(
|
||
|
const FIELD *field)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./fld_page.c */
|
||
|
|
||
|
#undef set_new_page
|
||
|
int set_new_page(
|
||
|
FIELD *field,
|
||
|
bool new_page_flag)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef new_page
|
||
|
bool new_page(
|
||
|
const FIELD *field)
|
||
|
{ return(*(bool *)0); }
|
||
|
|
||
|
/* ./fld_stat.c */
|
||
|
|
||
|
#undef set_field_status
|
||
|
int set_field_status(
|
||
|
FIELD *field,
|
||
|
bool status)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_status
|
||
|
bool field_status(
|
||
|
const FIELD *field)
|
||
|
{ return(*(bool *)0); }
|
||
|
|
||
|
/* ./fld_type.c */
|
||
|
|
||
|
#undef set_field_type
|
||
|
int set_field_type(
|
||
|
FIELD *field,
|
||
|
FIELDTYPE *type,
|
||
|
...)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_type
|
||
|
FIELDTYPE *field_type(
|
||
|
const FIELD *field)
|
||
|
{ return(*(FIELDTYPE **)0); }
|
||
|
|
||
|
/* ./fld_user.c */
|
||
|
|
||
|
#undef set_field_userptr
|
||
|
int set_field_userptr(
|
||
|
FIELD *field,
|
||
|
void *usrptr)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_userptr
|
||
|
void *field_userptr(
|
||
|
const FIELD *field)
|
||
|
{ return(*(void **)0); }
|
||
|
|
||
|
/* ./frm_cursor.c */
|
||
|
|
||
|
#undef pos_form_cursor
|
||
|
int pos_form_cursor(
|
||
|
FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./frm_data.c */
|
||
|
|
||
|
#undef data_behind
|
||
|
bool data_behind(
|
||
|
const FORM *form)
|
||
|
{ return(*(bool *)0); }
|
||
|
|
||
|
#undef data_ahead
|
||
|
bool data_ahead(
|
||
|
const FORM *form)
|
||
|
{ return(*(bool *)0); }
|
||
|
|
||
|
/* ./frm_def.c */
|
||
|
|
||
|
#undef _nc_Default_Form
|
||
|
FORM *_nc_Default_Form;
|
||
|
|
||
|
#undef new_form
|
||
|
FORM *new_form(
|
||
|
FIELD **fields)
|
||
|
{ return(*(FORM **)0); }
|
||
|
|
||
|
#undef free_form
|
||
|
int free_form(
|
||
|
FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef set_form_fields
|
||
|
int set_form_fields(
|
||
|
FORM *form,
|
||
|
FIELD **fields)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_fields
|
||
|
FIELD **form_fields(
|
||
|
const FORM *form)
|
||
|
{ return(*(FIELD ***)0); }
|
||
|
|
||
|
#undef field_count
|
||
|
int field_count(
|
||
|
const FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./frm_driver.c */
|
||
|
|
||
|
#undef _nc_Position_Form_Cursor
|
||
|
int _nc_Position_Form_Cursor(
|
||
|
FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef _nc_Refresh_Current_Field
|
||
|
int _nc_Refresh_Current_Field(
|
||
|
FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef _nc_Synchronize_Attributes
|
||
|
int _nc_Synchronize_Attributes(
|
||
|
FIELD *field)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef _nc_Synchronize_Options
|
||
|
int _nc_Synchronize_Options(
|
||
|
FIELD *field,
|
||
|
Field_Options newopts)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef _nc_Set_Current_Field
|
||
|
int _nc_Set_Current_Field(
|
||
|
FORM *form,
|
||
|
FIELD *newfield)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef _nc_Internal_Validation
|
||
|
bool _nc_Internal_Validation(
|
||
|
FORM *form)
|
||
|
{ return(*(bool *)0); }
|
||
|
|
||
|
#undef _nc_First_Active_Field
|
||
|
FIELD *_nc_First_Active_Field(
|
||
|
FORM *form)
|
||
|
{ return(*(FIELD **)0); }
|
||
|
|
||
|
#undef _nc_Set_Form_Page
|
||
|
int _nc_Set_Form_Page(
|
||
|
FORM *form,
|
||
|
int page,
|
||
|
FIELD *field)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
typedef struct {
|
||
|
int keycode;
|
||
|
int (*cmd)(FORM *);
|
||
|
} Binding_Info;
|
||
|
|
||
|
#undef form_driver
|
||
|
int form_driver(
|
||
|
FORM *form,
|
||
|
int c)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef set_field_buffer
|
||
|
int set_field_buffer(
|
||
|
FIELD *field,
|
||
|
int buffer,
|
||
|
const char *value)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_buffer
|
||
|
char *field_buffer(
|
||
|
const FIELD *field,
|
||
|
int buffer)
|
||
|
{ return(*(char **)0); }
|
||
|
|
||
|
/* ./frm_hook.c */
|
||
|
|
||
|
#undef set_field_init
|
||
|
int set_field_init(
|
||
|
FORM *form,
|
||
|
Form_Hook func)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_init
|
||
|
Form_Hook field_init(
|
||
|
const FORM *form)
|
||
|
{ return(*(Form_Hook *)0); }
|
||
|
|
||
|
#undef set_field_term
|
||
|
int set_field_term(
|
||
|
FORM *form,
|
||
|
Form_Hook func)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef field_term
|
||
|
Form_Hook field_term(
|
||
|
const FORM *form)
|
||
|
{ return(*(Form_Hook *)0); }
|
||
|
|
||
|
#undef set_form_init
|
||
|
int set_form_init(
|
||
|
FORM *form,
|
||
|
Form_Hook func)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_init
|
||
|
Form_Hook form_init(
|
||
|
const FORM *form)
|
||
|
{ return(*(Form_Hook *)0); }
|
||
|
|
||
|
#undef set_form_term
|
||
|
int set_form_term(
|
||
|
FORM *form,
|
||
|
Form_Hook func)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_term
|
||
|
Form_Hook form_term(
|
||
|
const FORM *form)
|
||
|
{ return(*(Form_Hook *)0); }
|
||
|
|
||
|
/* ./frm_opts.c */
|
||
|
|
||
|
#undef set_form_opts
|
||
|
int set_form_opts(
|
||
|
FORM *form,
|
||
|
Form_Options opts)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_opts
|
||
|
Form_Options form_opts(
|
||
|
const FORM *form)
|
||
|
{ return(*(Form_Options *)0); }
|
||
|
|
||
|
#undef form_opts_on
|
||
|
int form_opts_on(
|
||
|
FORM *form,
|
||
|
Form_Options opts)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_opts_off
|
||
|
int form_opts_off(
|
||
|
FORM *form,
|
||
|
Form_Options opts)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./frm_page.c */
|
||
|
|
||
|
#undef set_form_page
|
||
|
int set_form_page(
|
||
|
FORM *form,
|
||
|
int page)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_page
|
||
|
int form_page(
|
||
|
const FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./frm_post.c */
|
||
|
|
||
|
#undef post_form
|
||
|
int post_form(
|
||
|
FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef unpost_form
|
||
|
int unpost_form(
|
||
|
FORM *form)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./frm_req_name.c */
|
||
|
|
||
|
#undef form_request_name
|
||
|
const char *form_request_name(
|
||
|
int request)
|
||
|
{ return(*(const char **)0); }
|
||
|
|
||
|
#undef form_request_by_name
|
||
|
int form_request_by_name(
|
||
|
const char *str)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./frm_scale.c */
|
||
|
|
||
|
#undef scale_form
|
||
|
int scale_form(
|
||
|
const FORM *form,
|
||
|
int *rows,
|
||
|
int *cols)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
/* ./frm_sub.c */
|
||
|
|
||
|
#undef set_form_sub
|
||
|
int set_form_sub(
|
||
|
FORM *form,
|
||
|
WINDOW *win)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_sub
|
||
|
WINDOW *form_sub(
|
||
|
const FORM *form)
|
||
|
{ return(*(WINDOW **)0); }
|
||
|
|
||
|
/* ./frm_user.c */
|
||
|
|
||
|
#undef set_form_userptr
|
||
|
int set_form_userptr(
|
||
|
FORM *form,
|
||
|
void *usrptr)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_userptr
|
||
|
void *form_userptr(
|
||
|
const FORM *form)
|
||
|
{ return(*(void **)0); }
|
||
|
|
||
|
/* ./frm_win.c */
|
||
|
|
||
|
#undef set_form_win
|
||
|
int set_form_win(
|
||
|
FORM *form,
|
||
|
WINDOW *win)
|
||
|
{ return(*(int *)0); }
|
||
|
|
||
|
#undef form_win
|
||
|
WINDOW *form_win(
|
||
|
const FORM *form)
|
||
|
{ return(*(WINDOW **)0); }
|
||
|
|
||
|
/* ./fty_alnum.c */
|
||
|
|
||
|
typedef struct {
|
||
|
int width;
|
||
|
} alnumARG;
|
||
|
|
||
|
#undef TYPE_ALNUM
|
||
|
FIELDTYPE *TYPE_ALNUM;
|
||
|
|
||
|
/* ./fty_alpha.c */
|
||
|
|
||
|
typedef struct {
|
||
|
int width;
|
||
|
} alphaARG;
|
||
|
|
||
|
#undef TYPE_ALPHA
|
||
|
FIELDTYPE *TYPE_ALPHA;
|
||
|
|
||
|
/* ./fty_enum.c */
|
||
|
|
||
|
typedef struct {
|
||
|
char **kwds;
|
||
|
int count;
|
||
|
bool checkcase;
|
||
|
bool checkunique;
|
||
|
} enumARG;
|
||
|
|
||
|
#undef TYPE_ENUM
|
||
|
FIELDTYPE *TYPE_ENUM;
|
||
|
|
||
|
/* ./fty_int.c */
|
||
|
|
||
|
typedef struct {
|
||
|
int precision;
|
||
|
long low;
|
||
|
long high;
|
||
|
} integerARG;
|
||
|
|
||
|
#undef TYPE_INTEGER
|
||
|
FIELDTYPE *TYPE_INTEGER;
|
||
|
|
||
|
/* ./fty_ipv4.c */
|
||
|
#undef TYPE_IPV4
|
||
|
FIELDTYPE *TYPE_IPV4;
|
||
|
|
||
|
/* ./fty_num.c */
|
||
|
|
||
|
#include <locale.h>
|
||
|
|
||
|
typedef struct {
|
||
|
int precision;
|
||
|
double low;
|
||
|
double high;
|
||
|
struct lconv* L;
|
||
|
} numericARG;
|
||
|
|
||
|
#undef TYPE_NUMERIC
|
||
|
FIELDTYPE *TYPE_NUMERIC;
|
||
|
|
||
|
/* ./fty_regex.c */
|
||
|
|
||
|
#include <regex.h>
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
regex_t *pRegExp;
|
||
|
unsigned long *refCount;
|
||
|
} RegExp_Arg;
|
||
|
|
||
|
#undef TYPE_REGEXP
|
||
|
FIELDTYPE *TYPE_REGEXP;
|