blob: 57417137a0f9c0a3b0f88a7fc6040cfc55e930b4 [file] [log] [blame]
Bram Moolenaaredf3f972016-08-29 22:49:24 +02001/* vi:set ts=8 sts=4 sw=4 noet:
Bram Moolenaar071d4272004-06-13 20:20:40 +00002 *
3 * VIM - Vi IMproved by Bram Moolenaar
4 *
5 * Do ":help uganda" in Vim to read copying and usage conditions.
6 * Do ":help credits" in Vim to see a list of people who contributed.
7 */
8
9/*
10 * Amiga Machine-dependent things
11 */
12
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010013#define CASE_INSENSITIVE_FILENAME // ignore case when comparing file names
Bram Moolenaar071d4272004-06-13 20:20:40 +000014#define SPACE_IN_FILENAME
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010015#define USE_FNAME_CASE // adjust case of file names
Bram Moolenaar071d4272004-06-13 20:20:40 +000016#define USE_TERM_CONSOLE
17#define HAVE_AVAIL_MEM
18
19#ifndef HAVE_CONFIG_H
Bram Moolenaar5a6404c2006-11-01 17:12:57 +000020# if defined(AZTEC_C) || defined(__amigaos4__)
Bram Moolenaar071d4272004-06-13 20:20:40 +000021# define HAVE_STAT_H
22# endif
23# define HAVE_STDLIB_H
24# define HAVE_STRING_H
25# define HAVE_FCNTL_H
26# define HAVE_STRCSPN
27# define HAVE_STRICMP
28# define HAVE_STRNICMP
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010029# define HAVE_STRFTIME // guessed
Bram Moolenaar071d4272004-06-13 20:20:40 +000030# define HAVE_SETENV
31# define HAVE_MEMSET
32# define HAVE_QSORT
33# if defined(__DATE__) && defined(__TIME__)
34# define HAVE_DATE_TIME
35# endif
36
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010037#endif // HAVE_CONFIG_H
Bram Moolenaar071d4272004-06-13 20:20:40 +000038
Bram Moolenaar5a6404c2006-11-01 17:12:57 +000039#ifndef DFLT_ERRORFILE
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010040# define DFLT_ERRORFILE "AztecC.Err" // Should this change?
Bram Moolenaar5a6404c2006-11-01 17:12:57 +000041#endif
42
43#ifndef DFLT_RUNTIMEPATH
44# define DFLT_RUNTIMEPATH "home:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,home:vimfiles/after"
45#endif
Bram Moolenaar07268702018-03-01 21:57:32 +010046#ifndef CLEAN_RUNTIMEPATH
47# define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after"
48#endif
Bram Moolenaar5a6404c2006-11-01 17:12:57 +000049
50#ifndef BASENAMELEN
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010051# define BASENAMELEN 26 // Amiga
Bram Moolenaar5a6404c2006-11-01 17:12:57 +000052#endif
53
54#ifndef TEMPNAME
55# define TEMPNAME "t:v?XXXXXX"
56# define TEMPNAMELEN 12
57#endif
58
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010059// cproto fails on missing include files
Bram Moolenaar82881492012-11-20 16:53:39 +010060#ifndef PROTO
61
Bram Moolenaar071d4272004-06-13 20:20:40 +000062#include <exec/types.h>
63#include <libraries/dos.h>
64#include <libraries/dosextens.h>
65
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010066// Currently, all Amiga compilers except AZTEC C have these...
Bram Moolenaar071d4272004-06-13 20:20:40 +000067#ifndef AZTEC_C
68# include <proto/exec.h>
69# include <proto/dos.h>
70# include <proto/intuition.h>
71#endif
72
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010073#endif // PROTO
Bram Moolenaar82881492012-11-20 16:53:39 +010074
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010075#define FNAME_ILLEGAL ";*?`#%" // illegal characters in a file name
Bram Moolenaar071d4272004-06-13 20:20:40 +000076
77/*
78 * Manx doesn't have off_t, define it here.
79 */
80#ifdef AZTEC_C
81typedef long off_t;
82#endif
83
84#ifdef LATTICE
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010085# define USE_TMPNAM // use tmpnam() instead of mktemp()
Bram Moolenaar071d4272004-06-13 20:20:40 +000086#endif
87
88#ifdef __GNUC__
89# include <sys/stat.h>
90# include <unistd.h>
Bram Moolenaar8531dc62019-07-01 22:28:20 +020091# include <limits.h>
92# include <errno.h>
Bram Moolenaar5e8e9672019-09-27 13:38:56 +020093# include <pwd.h>
Bram Moolenaarf842cd92020-09-09 13:01:27 +020094# include <grp.h>
Bram Moolenaar8531dc62019-07-01 22:28:20 +020095# include <dirent.h>
Bram Moolenaar071d4272004-06-13 20:20:40 +000096#endif
97
Bram Moolenaar80edda12019-07-03 22:53:06 +020098#include <time.h> // for strftime() and others
99
Bram Moolenaar82881492012-11-20 16:53:39 +0100100#ifndef PROTO
Bram Moolenaar071d4272004-06-13 20:20:40 +0000101/*
102 * arpbase.h must be included before functions.h
103 */
104#ifdef FEAT_ARP
105# include <libraries/arpbase.h>
106#endif
107
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100108#endif // PROTO
Bram Moolenaar82881492012-11-20 16:53:39 +0100109
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110/*
111 * This won't be needed if you have a version of Lattice 4.01 without broken
112 * break signal handling.
113 */
114#include <signal.h>
115
116/*
117 * Names for the EXRC, HELP and temporary files.
118 * Some of these may have been defined in the makefile.
119 */
120#ifndef SYS_VIMRC_FILE
121# define SYS_VIMRC_FILE "$VIM/vimrc"
122#endif
123#ifndef SYS_GVIMRC_FILE
124# define SYS_GVIMRC_FILE "$VIM/gvimrc"
125#endif
126#ifndef SYS_MENU_FILE
127# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
128#endif
129#ifndef DFLT_HELPFILE
130# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
131#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132#ifndef SYNTAX_FNAME
133# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
134#endif
135
136#ifndef USR_EXRC_FILE
137# define USR_EXRC_FILE "s:.exrc"
138#endif
139#ifndef USR_EXRC_FILE2
140# define USR_EXRC_FILE2 "home:.exrc"
141#endif
142
143#ifndef USR_VIMRC_FILE
144# define USR_VIMRC_FILE "s:.vimrc"
145#endif
146#ifndef USR_VIMRC_FILE2
147# define USR_VIMRC_FILE2 "home:.vimrc"
148#endif
149#ifndef USR_VIMRC_FILE3
Bram Moolenaar22971aa2013-06-12 20:35:58 +0200150# define USR_VIMRC_FILE3 "home:vimfiles:vimrc"
151#endif
152#ifndef USR_VIMRC_FILE4
153# define USR_VIMRC_FILE4 "$VIM/.vimrc"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000154#endif
Bram Moolenaar8c08b5b2016-07-28 22:24:15 +0200155#ifndef VIM_DEFAULTS_FILE
156# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
157#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000158#ifndef EVIM_FILE
159# define EVIM_FILE "$VIMRUNTIME/evim.vim"
160#endif
161
162#ifndef USR_GVIMRC_FILE
163# define USR_GVIMRC_FILE "s:.gvimrc"
164#endif
165#ifndef USR_GVIMRC_FILE2
166# define USR_GVIMRC_FILE2 "home:.gvimrc"
167#endif
168#ifndef USR_GVIMRC_FILE3
Bram Moolenaar22971aa2013-06-12 20:35:58 +0200169# define USR_GVIMRC_FILE3 "home:vimfiles:gvimrc"
170#endif
171#ifndef USR_GVIMRC_FILE4
172# define USR_GVIMRC_FILE4 "$VIM/.gvimrc"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000173#endif
174
175#ifdef FEAT_VIMINFO
Bram Moolenaar5a6404c2006-11-01 17:12:57 +0000176# ifndef VIMINFO_FILE
177# define VIMINFO_FILE "s:.viminfo"
178# endif
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100179#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000180
181#ifndef EXRC_FILE
182# define EXRC_FILE ".exrc"
183#endif
184
185#ifndef VIMRC_FILE
186# define VIMRC_FILE ".vimrc"
187#endif
188
189#ifndef GVIMRC_FILE
190# define GVIMRC_FILE ".gvimrc"
191#endif
192
193#ifndef DFLT_BDIR
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100194# define DFLT_BDIR ".,t:" // default for 'backupdir'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000195#endif
196
197#ifndef DFLT_DIR
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100198# define DFLT_DIR ".,t:" // default for 'directory'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000199#endif
200
201#ifndef DFLT_VDIR
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100202# define DFLT_VDIR "$VIM/vimfiles/view" // default for 'viewdir'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000203#endif
204
205#ifndef DFLT_MAXMEM
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100206# define DFLT_MAXMEM 256 // use up to 256Kbyte for buffer
Bram Moolenaar071d4272004-06-13 20:20:40 +0000207#endif
208#ifndef DFLT_MAXMEMTOT
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100209# define DFLT_MAXMEMTOT 0 // decide in set_init
Bram Moolenaar071d4272004-06-13 20:20:40 +0000210#endif
211
212#if defined(SASC)
213int setenv(const char *, const char *);
214#endif
215
216#define mch_remove(x) remove((char *)(x))
217#define mch_rename(src, dst) rename(src, dst)
218#define mch_chdir(s) chdir(s)
219#define vim_mkdir(x, y) mch_mkdir(x)