mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-04-17 06:48:47 +02:00
268 lines
10 KiB
C
268 lines
10 KiB
C
/***************************************************************/
|
|
/* */
|
|
/* ERR.H */
|
|
/* */
|
|
/* Error definitions. */
|
|
/* */
|
|
/* This file is part of REMIND. */
|
|
/* Copyright (C) 1992-2025 by Dianne Skoll */
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/* */
|
|
/***************************************************************/
|
|
|
|
/* Note that not all of the "errors" are really errors - some are just
|
|
messages for information purposes. Constants beginning with M_ should
|
|
never be returned as error indicators - they should only be used to
|
|
index the ErrMsg array.
|
|
|
|
Some #defines are commented out; these are former error codes that are
|
|
no longer used. They are left as placeholders because renumbering
|
|
everything wouild be too tedious */
|
|
|
|
#define OK 0
|
|
#define E_MISS_END 1
|
|
#define E_MISS_QUOTE 2
|
|
#define E_OP_STK_OVER 3
|
|
/* #define E_VA_STK_OVER 4 */
|
|
#define E_MISS_RIGHT_PAREN 5
|
|
#define E_UNDEF_FUNC 6
|
|
#define E_ILLEGAL_CHAR 7
|
|
/* #define E_EXPECTING_BINOP 8 */
|
|
#define E_NO_MEM 9
|
|
#define E_BAD_NUMBER 10
|
|
/* #define E_OP_STK_UNDER 11 */
|
|
/* #define E_VA_STK_UNDER 12 */
|
|
#define E_CANT_COERCE 13
|
|
#define E_BAD_TYPE 14
|
|
#define E_DATE_OVER 15
|
|
/* #define E_STACK_ERR 16 */
|
|
#define E_DIV_ZERO 17
|
|
#define E_NOSUCH_VAR 18
|
|
#define E_EOLN 19
|
|
#define E_EOF 20
|
|
#define E_IO_ERR 21
|
|
/* #define E_LINE_2_LONG 22 */
|
|
#define E_SWERR 23
|
|
#define E_BAD_DATE 24
|
|
#define E_2FEW_ARGS 25
|
|
#define E_2MANY_ARGS 26
|
|
#define E_BAD_TIME 27
|
|
#define E_2HIGH 28
|
|
#define E_2LOW 29
|
|
#define E_CANT_OPEN 30
|
|
#define E_NESTED_INCLUDE 31
|
|
#define E_PARSE_ERR 32
|
|
#define E_CANT_TRIG 33
|
|
#define E_NESTED_IF 34
|
|
#define E_ELSE_NO_IF 35
|
|
#define E_ENDIF_NO_IF 36
|
|
#define E_2MANY_LOCALOMIT 37
|
|
#define E_EXTRANEOUS_TOKEN 38
|
|
#define E_POP_NO_PUSH 39
|
|
#define E_RUN_DISABLED 40
|
|
#define E_DOMAIN_ERR 41
|
|
#define E_BAD_ID 42
|
|
#define E_RECURSIVE 43
|
|
#define E_PARSE_AS_REM 44 /* Not really an error - just returned by
|
|
DoOmit to indicate line should be executed
|
|
as a REM statement, also. */
|
|
#define E_CANT_MODIFY 45
|
|
#define E_MKTIME_PROBLEM 46
|
|
#define E_REDEF_FUNC 47
|
|
#define E_CANTNEST_FDEF 48
|
|
#define E_REP_FULSPEC 49
|
|
#define E_YR_TWICE 50
|
|
#define E_MON_TWICE 51
|
|
#define E_DAY_TWICE 52
|
|
#define E_UNKNOWN_TOKEN 53
|
|
#define E_SPEC_MON 54
|
|
/* #define E_2MANY_PART 55 */
|
|
#define E_2MANY_FULL 56
|
|
#define E_PUSH_NOPOP 57
|
|
#define E_ERR_READING 58
|
|
#define E_EXPECTING_EOL 59
|
|
#define E_BAD_HEBDATE 60
|
|
#define E_IIF_ODD 61
|
|
#define E_MISS_ENDIF 62
|
|
#define E_EXPECT_COMMA 63
|
|
#define E_WD_TWICE 64
|
|
#define E_SKIP_ERR 65
|
|
#define E_CANT_NEST_RTYPE 66
|
|
#define E_REP_TWICE 67
|
|
#define E_DELTA_TWICE 68
|
|
#define E_BACK_TWICE 69
|
|
#define E_ONCE_TWICE 70
|
|
#define E_EXPECT_TIME 71
|
|
#define E_UNTIL_TWICE 72
|
|
#define E_INCOMPLETE 73
|
|
#define E_SCAN_TWICE 74
|
|
#define E_VAR 75
|
|
#define E_VAL 76
|
|
#define E_UNDEF 77
|
|
#define E_ENTER_FUN 78
|
|
#define E_LEAVE_FUN 79
|
|
#define E_EXPIRED 80
|
|
#define E_CANTFORK 81
|
|
#define E_CANTACCESS 82
|
|
#define M_BAD_SYS_DATE 83
|
|
#define M_BAD_DB_FLAG 84
|
|
#define M_BAD_OPTION 85
|
|
#define M_BAD_USER 86
|
|
#define M_NO_CHG_GID 87
|
|
#define M_NO_CHG_UID 88
|
|
#define M_NOMEM_ENV 89
|
|
#define E_MISS_EQ 90
|
|
#define E_MISS_VAR 91
|
|
#define E_MISS_EXPR 92
|
|
/* #define M_CANTSET_ACCESS 93 */
|
|
#define M_I_OPTION 94
|
|
#define E_NOREMINDERS 95
|
|
#define M_QUEUED 96
|
|
#define E_EXPECTING_NUMBER 97
|
|
#define M_BAD_WARN_FUNC 98
|
|
#define E_CANT_CONVERT_TZ 99
|
|
#define E_NO_MATCHING_REMS 100
|
|
#define E_STRING_TOO_LONG 101
|
|
#define E_TIME_TWICE 102
|
|
#define E_DURATION_NO_AT 103
|
|
#define E_EXPECTING_WEEKDAY 104
|
|
#define E_REPEATED_ARG 105
|
|
#define E_EXPR_DISABLED 106
|
|
#define E_TIME_EXCEEDED 107
|
|
|
|
#ifdef MK_GLOBALS
|
|
#undef EXTERN
|
|
#define EXTERN
|
|
#else
|
|
#undef EXTERN
|
|
#define EXTERN extern
|
|
#endif
|
|
|
|
#define STR(X) STR2(X)
|
|
#define STR2(X) #X
|
|
|
|
|
|
#ifndef L_ERR_OVERRIDE
|
|
EXTERN char *ErrMsg[]
|
|
|
|
#ifdef MK_GLOBALS
|
|
= {
|
|
/* OK */ "Ok",
|
|
/* E_MISS_END */ "Missing ']'",
|
|
/* E_MISS_QUOTE */ "Missing quote",
|
|
/* E_OP_STK_OVER */ "Expression too complex",
|
|
/* E_VA_STK_OVER */ "",
|
|
/* E_MISS_RIGHT_PAREN */ "Missing ')'",
|
|
/* E_UNDEF_FUNC */ "Undefined function",
|
|
/* E_ILLEGAL_CHAR */ "Illegal character",
|
|
/* E_EXPECTING_BINOP */ "Expecting binary operator",
|
|
/* E_NO_MEM */ "Out of memory",
|
|
/* E_BAD_NUMBER */ "Ill-formed number",
|
|
/* E_OP_STK_UNDER */ "",
|
|
/* E_VA_STK_UNDER */ "",
|
|
/* E_CANT_COERCE */ "Can't coerce",
|
|
/* E_BAD_TYPE */ "Type mismatch",
|
|
/* E_DATE_OVER */ "Date overflow",
|
|
/* E_STACK_ERR */ "",
|
|
/* E_DIV_ZERO */ "Division by zero",
|
|
/* E_NOSUCH_VAR */ "Undefined variable",
|
|
/* E_EOLN */ "Unexpected end of line",
|
|
/* E_EOF */ "Unexpected end of file",
|
|
/* E_IO_ERR */ "I/O error",
|
|
/* E_LINE_2_LONG */ "",
|
|
/* E_SWERR */ "Internal error",
|
|
/* E_BAD_DATE */ "Bad date specification",
|
|
/* E_2FEW_ARGS */ "Not enough arguments",
|
|
/* E_2MANY_ARGS */ "Too many arguments",
|
|
/* E_BAD_TIME */ "Ill-formed time",
|
|
/* E_2HIGH */ "Number too high",
|
|
/* E_2LOW */ "Number too low",
|
|
/* E_CANT_OPEN */ "Can't open file",
|
|
/* E_NESTED_INCLUDE */ "INCLUDE nested too deeply (max. " STR(INCLUDE_NEST) ")",
|
|
/* E_PARSE_ERR */ "Parse error",
|
|
/* E_CANT_TRIG */ "Can't compute trigger",
|
|
/* E_NESTED_IF */ "Too many nested IFs",
|
|
/* E_ELSE_NO_IF */ "ELSE with no matching IF",
|
|
/* E_ENDIF_NO_IF */ "ENDIF with no matching IF",
|
|
/* E_2MANY_LOCALOMIT */ "Can't OMIT every weekday",
|
|
/* E_EXTRANEOUS_TOKEN */ "Extraneous token(s) on line",
|
|
/* E_POP_NO_PUSH */ "POP-OMIT-CONTEXT without matching PUSH-OMIT-CONTEXT",
|
|
/* E_RUN_DISABLED */ "RUN disabled",
|
|
/* E_DOMAIN_ERR */ "Domain error",
|
|
/* E_BAD_ID */ "Invalid identifier",
|
|
/* E_RECURSIVE */ "Too many recursive function calls",
|
|
/* E_PARSE_AS_REM */ "",
|
|
/* E_CANT_MODIFY */ "Cannot modify system variable",
|
|
/* E_MKTIME_PROBLEM */ "C library function can't represent date/time",
|
|
/* E_REDEF_FUNC */ "Attempt to redefine built-in function",
|
|
/* E_CANTNEST_FDEF */ "Can't nest function definition in expression",
|
|
/* E_REP_FULSPEC */ "Must fully specify date to use repeat factor",
|
|
/* E_YR_TWICE */ "Year specified twice",
|
|
/* E_MON_TWICE */ "Month specified twice",
|
|
/* E_DAY_TWICE */ "Day specified twice",
|
|
/* E_UNKNOWN_TOKEN */ "Unknown token",
|
|
/* E_SPEC_MON */ "Must specify month in OMIT command",
|
|
/* E_2MANY_PART */ "",
|
|
/* E_2MANY_FULL */ "Too many full OMITs (max. " STR(MAX_FULL_OMITS) ")",
|
|
/* E_PUSH_NOPOP */ "Warning: PUSH-OMIT-CONTEXT without matching POP-OMIT-CONTEXT",
|
|
/* E_ERR_READING */ "Error reading",
|
|
/* E_EXPECTING_EOL */ "Expecting end-of-line",
|
|
/* E_BAD_HEBDATE */ "Invalid Hebrew date",
|
|
/* E_IIF_ODD */ "iif(): odd number of arguments required",
|
|
/* E_MISS_ENDIF */ "Warning: Missing ENDIF",
|
|
/* E_EXPECT_COMMA */ "Expecting comma",
|
|
/* E_WD_TWICE */ "Weekday specified twice",
|
|
/* E_SKIP_ERR */ "Only use one of BEFORE, AFTER or SKIP",
|
|
/* E_CANT_NEST_RTYPE */ "Can't nest MSG, MSF, RUN, etc. in expression",
|
|
/* E_REP_TWICE */ "Repeat value specified twice",
|
|
/* E_DELTA_TWICE */ "Delta value specified twice",
|
|
/* E_BACK_TWICE */ "Back value specified twice",
|
|
/* E_ONCE_TWICE */ "ONCE keyword used twice. (Hah.)",
|
|
/* E_EXPECT_TIME */ "Expecting time after AT",
|
|
/* E_UNTIL_TWICE */ "THROUGH/UNTIL keyword used twice",
|
|
/* E_INCOMPLETE */ "Incomplete date specification",
|
|
/* E_SCAN_TWICE */ "FROM/SCANFROM keyword used twice",
|
|
/* E_VAR */ "Variable",
|
|
/* E_VAL */ "Value",
|
|
/* E_UNDEF */ "*UNDEFINED*",
|
|
/* E_ENTER_FUN */ "Entering UserFN",
|
|
/* E_LEAVE_FUN */ "Leaving UserFN",
|
|
/* E_EXPIRED */ "Expired",
|
|
/* E_CANTFORK */ "fork() failed - can't do queued reminders",
|
|
/* E_CANTACCESS */ "Can't access file",
|
|
/* M_BAD_SYS_DATE */ "Illegal system date: Year is less than %d",
|
|
/* M_BAD_DB_FLAG */ "Unknown debug flag '%c'",
|
|
/* M_BAD_OPTION */ "Unknown option '%c'",
|
|
/* M_BAD_USER */ "Unknown user '%s'",
|
|
/* M_NO_CHG_GID */ "Could not change gid to %d",
|
|
/* M_NO_CHG_UID */ "Could not change uid to %d",
|
|
/* M_NOMEM_ENV */ "Out of memory for environment",
|
|
/* E_MISS_EQ */ "Missing '=' sign",
|
|
/* E_MISS_VAR */ "Missing variable name",
|
|
/* E_MISS_EXPR */ "Missing expression",
|
|
/* M_CANTSET_ACCESS */ "",
|
|
/* M_I_OPTION */ "Remind: '-i' option: %s",
|
|
/* E_NOREMINDERS */ "No reminders.",
|
|
/* M_QUEUED */ "%d reminder(s) queued for later today.",
|
|
/* E_EXPECTING_NUMBER */ "Expecting number",
|
|
/* M_BAD_WARN_FUNC */ "Undefined WARN function",
|
|
/* E_CANT_CONVERT_TZ */ "Can't convert between time zones",
|
|
/* E_NO_MATCHING_REMS */ "No files matching *.rem",
|
|
/* E_STRING_TOO_LONG */ "String too long",
|
|
/* E_TIME_TWICE */ "Time specified twice",
|
|
/* E_DURATION_NO_AT */ "Cannot specify DURATION without specifying AT",
|
|
/* E_EXPECTING_WEEKDAY */ "Expecting weekday name",
|
|
/* E_REPEATED_ARG */ "Duplicate argument name",
|
|
/* E_EXPR_DISABLED */ "Expression evaluation is disabled",
|
|
/* E_TIME_EXCEEDED */ "Time limit for expression evaluation exceeded",
|
|
}
|
|
#endif /* MK_GLOBALS */
|
|
;
|
|
#endif /* L_ERR_OVERRIDE */
|
|
|
|
EXTERN int NumErrs
|
|
#ifdef MK_GLOBALS
|
|
= sizeof(ErrMsg) / sizeof(ErrMsg[0])
|
|
#endif
|
|
;
|