// Common definitions for the GNU Pascal Compiler and the Run Time System
//
// Each group of flags must consist of distinct bits.
//
// This file is also included in some source files of the compiler
// to keep the definitions unique. It defines only decimal numeric
// macros using `RTS_CONSTANT', and uses `//' comments so it can be
// included in both C and Pascal files.
//
// Copyright (C) 1991-2005 Free Software Foundation, Inc.
//
// This file is part of GNU Pascal.
//
// GNU Pascal is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
//
// GNU Pascal is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with GNU Pascal; see the file COPYING. If not, write to the
// Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
//
// As a special exception, if you link this file with files compiled
// with a GNU compiler to produce an executable, this does not cause
// the resulting executable to be covered by the GNU General Public
// License. This exception does not however invalidate any other
// reasons why the executable file might be covered by the GNU General
// Public License.

// RTS options
RTS_CONSTANT (ro_SP_EOLn, 1)

// File kind: fourth parameter to InitFDR
RTS_CONSTANT (fkind_TEXT,      1)
RTS_CONSTANT (fkind_UNTYPED,   2)
RTS_CONSTANT (fkind_EXTERN,    4)
RTS_CONSTANT (fkind_FILENAME,  8)
RTS_CONSTANT (fkind_BINDABLE, 16)

// Input masks
RTS_CONSTANT (READ_STRING_MASK,           1) // ReadStr
RTS_CONSTANT (VAL_MASK,                   2) // Val
RTS_CONSTANT (INT_READ_BASE_SPEC_MASK,    4) // allow the base specifier (`n#') (integer)
RTS_CONSTANT (INT_READ_HEX_MASK,          8) // allow the hex specifier (`$') (integer)
RTS_CONSTANT (NUM_READ_CHK_WHITE_MASK,   16) // require whitespace after the number (integer, real)
RTS_CONSTANT (REAL_READ_SP_ONLY_MASK,    32) // do not accept Extended Pascal real number format extension (real)

// Output masks
RTS_CONSTANT (WRITE_STRING_MASK,          1) // WriteStr or FormatString
RTS_CONSTANT (FORMAT_STRING_MASK,         2) // FormatString
RTS_CONSTANT (WRITE_FIXED_STRING_MASK,    4) // array of Char as target, blank pad
RTS_CONSTANT (NEG_ZERO_WIDTH_ERROR_MASK,  8) // give an error when field width <= 0
RTS_CONSTANT (NEG_WIDTH_ERROR_MASK,      16) // give an error when field width < 0
RTS_CONSTANT (NEG_WIDTH_LEFT_MASK,       32) // left adjusted output when the field width < 0
RTS_CONSTANT (NEG_WIDTH_CENTER_MASK,     64) // centered output when field width < 0
RTS_CONSTANT (REAL_NOBLANK_MASK,        128) // output without a leading blank (real)
RTS_CONSTANT (REAL_CAPITAL_EXP_MASK,    256) // write a capital `E' rather than `e' for the exponent (real)
RTS_CONSTANT (CLIP_STRING_MASK,         512) // clip strings that exceed the given width
RTS_CONSTANT (TRUNCATE_STRING_MASK,    1024) // truncate output that exceeds capacity rather than generating an error (for WriteStr)
