Prevent entering “/”, “\” and “:” in team and scheme names.
The name of teams and schems is saved in the file name itself, so these characters would cause trouble as they are used in path names in Linux and Windows.
#ifndef _FPCRTL_MISC_H_
#define _FPCRTL_MISC_H_
#include "pas2c.h"
#include <assert.h>
#include <stdbool.h>
#ifdef EMSCRIPTEN
#include <GL/gl.h>
#else
#include <GL/glew.h>
#endif
#define VA_NUM_ARGS(...) VA_NUM_ARGS_IMPL(__VA_ARGS__, 5,4,3,2,1)
#define VA_NUM_ARGS_IMPL(_1,_2,_3,_4,_5,N,...) N
#define macro_dispatcher(func, ...) macro_dispatcher_(func, VA_NUM_ARGS(__VA_ARGS__))
#define macro_dispatcher_(func, nargs) macro_dispatcher__(func, nargs)
#define macro_dispatcher__(func, nargs) func ## nargs
//#define FPCRTL_DEBUG
#define FIX_STRING(s) do { s.str[s.len == 255 ? 254 : s.len] = 0; } while (0)
#define FIX_STRINGA(s) do { s.str[s.len == MAX_ANSISTRING_LENGTH ? MAX_ANSISTRING_LENGTH - 1 : s.len] = 0; } while (0)
//#define fpcrtl_check_string(s) do{ if(strlen((s).str) != (s).len){ \
// printf("String %s internal inconsistency error. Length should be %d but actually is %d.\n", (s).str, strlen((s).str), (s).len); \
// assert(0);\
// }}while(0)
void fpcrtl_assert(int);
void fpcrtl_print_trace (void);
int fpcrtl_round(double number);
void fpcrtl_printf(const char* format, ...);
string255 fpcrtl_make_string(const char* s);
string255 fpcrtl_strconcat(string255 str1, string255 str2);
string255 fpcrtl_strappend(string255 s, char c);
string255 fpcrtl_strprepend(char c, string255 s);
string255 fpcrtl_chrconcat(char a, char b);
astring fpcrtl_strconcatA(astring str1, astring str2);
astring fpcrtl_strappendA(astring s, char c);
// return true if str1 == str2
bool fpcrtl_strcompare(string255 str1, string255 str2);
bool fpcrtl_strcomparec(string255 a, char b);
bool fpcrtl_strncompare(string255 a, string255 b);
bool fpcrtl_strncompareA(astring a, astring b);
#define fpcrtl__pchar(s) fpcrtl__pchar__vars(&(s))
#define fpcrtl__pcharA(s) fpcrtl__pcharA__vars(&(s))
char* fpcrtl__pchar__vars(const string255 * s);
char* fpcrtl__pcharA__vars(astring * s);
string255 fpcrtl_pchar2str(const char *s);
astring fpcrtl_pchar2astr(const char *s);
astring fpcrtl_str2astr(const string255 s);
string255 fpcrtl_astr2str(const astring s);
#define fpcrtl_TypeInfo sizeof // dummy
#ifdef EMSCRIPTEN
#define GLEW_OK 1
GLenum glewInit();
#endif
#endif