00001 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases 00002 * Copyright (C) 2010 Craig A. Berry craigberry@mac.com 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Library General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public 00015 * License along with this library; if not, write to the 00016 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 * Boston, MA 02111-1307, USA. 00018 00019 /* 00020 * Definitions used by the VMSARG parsing and mapping routines. 00021 * 00022 * Based on VMSARG Version 2.0 by Tom Wade <t.wade@vms.eurokom.ei> 00023 * 00024 * Extensively revised for inclusion in FreeTDS by Craig A. Berry. 00025 * 00026 * From the VMSARG 2.0 documentation: 00027 * 00028 * The product is aimed at . . . people who are porting a package from 00029 * Unix to VMS. This software is made freely available for inclusion in 00030 * such products, whether they are freeware, public domain or commercial. 00031 * No licensing is required. 00032 */ 00033 00034 #if __CRTL_VER >= 70302000 && !defined(__VAX) 00035 #define QUAL_LENGTH (4000+1) 00036 #define S_LENGTH (4096+1) 00037 #else 00038 #define QUAL_LENGTH (255+1) 00039 #define S_LENGTH (1024+1) 00040 #endif 00041 00042 #define MAX_ARGS 255 00043 00044 /* bit fields for arg flags. 00045 */ 00046 00047 #define VARG_M_AFFIRM 1 00048 #define VARG_M_NEGATIVE 2 00049 #define VARG_M_KEYWORDS 4 00050 #define VARG_M_SEPARATOR 8 00051 #define VARG_M_DATE 16 00052 #define VARG_M_APPEND 32 00053 #define VARG_M_HELP 64 00054 00055 /* bit fields for action flags. 00056 */ 00057 00058 #define VARGACT_M_UPPER 1 00059 #define VARGACT_M_LOWER 2 00060 #define VARGACT_M_SPECIAL 4 00061 #define VARGACT_M_ESCAPE 8 00062 #define VARGACT_M_DOUBLE 16 00063 #define VARGACT_M_IMAGE 32 00064 #define VARGACT_M_SYMBOL 64 00065 #define VARGACT_M_COMMAND 128 00066 #define VARGACT_M_RETURN 256 00067 #define VARGACT_M_PROTECT 512 00068 #define VARGACT_M_UNIXARG 1024 00069 00070 #define VARGACT_M_PROTMASK 1+2+4+8+16