blob: 611555e3ed51dc92e6f060a79ac907700baf430d [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 Moolenaar8531dc62019-07-01 22:28:20 +020094# include <dirent.h>
Bram Moolenaar071d4272004-06-13 20:20:40 +000095#endif
96
Bram Moolenaar80edda12019-07-03 22:53:06 +020097#include <time.h> // for strftime() and others
98
Bram Moolenaar82881492012-11-20 16:53:39 +010099#ifndef PROTO
Bram Moolenaar071d4272004-06-13 20:20:40 +0000100/*
101 * arpbase.h must be included before functions.h
102 */
103#ifdef FEAT_ARP
104# include <libraries/arpbase.h>
105#endif
106
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100107#endif // PROTO
Bram Moolenaar82881492012-11-20 16:53:39 +0100108
Bram Moolenaar071d4272004-06-13 20:20:40 +0000109/*
110 * This won't be needed if you have a version of Lattice 4.01 without broken
111 * break signal handling.
112 */
113#include <signal.h>
114
115/*
116 * Names for the EXRC, HELP and temporary files.
117 * Some of these may have been defined in the makefile.
118 */
119#ifndef SYS_VIMRC_FILE
120# define SYS_VIMRC_FILE "$VIM/vimrc"
121#endif
122#ifndef SYS_GVIMRC_FILE
123# define SYS_GVIMRC_FILE "$VIM/gvimrc"
124#endif
125#ifndef SYS_MENU_FILE
126# define SYS_MENU_FILE "$VIMRUNTIME/menu.vim"
127#endif
128#ifndef DFLT_HELPFILE
129# define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt"
130#endif
131#ifndef FILETYPE_FILE
132# define FILETYPE_FILE "filetype.vim"
133#endif
134#ifndef FTPLUGIN_FILE
135# define FTPLUGIN_FILE "ftplugin.vim"
136#endif
137#ifndef INDENT_FILE
138# define INDENT_FILE "indent.vim"
139#endif
140#ifndef FTOFF_FILE
141# define FTOFF_FILE "ftoff.vim"
142#endif
143#ifndef FTPLUGOF_FILE
144# define FTPLUGOF_FILE "ftplugof.vim"
145#endif
146#ifndef INDOFF_FILE
147# define INDOFF_FILE "indoff.vim"
148#endif
149#ifndef SYNTAX_FNAME
150# define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim"
151#endif
152
153#ifndef USR_EXRC_FILE
154# define USR_EXRC_FILE "s:.exrc"
155#endif
156#ifndef USR_EXRC_FILE2
157# define USR_EXRC_FILE2 "home:.exrc"
158#endif
159
160#ifndef USR_VIMRC_FILE
161# define USR_VIMRC_FILE "s:.vimrc"
162#endif
163#ifndef USR_VIMRC_FILE2
164# define USR_VIMRC_FILE2 "home:.vimrc"
165#endif
166#ifndef USR_VIMRC_FILE3
Bram Moolenaar22971aa2013-06-12 20:35:58 +0200167# define USR_VIMRC_FILE3 "home:vimfiles:vimrc"
168#endif
169#ifndef USR_VIMRC_FILE4
170# define USR_VIMRC_FILE4 "$VIM/.vimrc"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000171#endif
Bram Moolenaar8c08b5b2016-07-28 22:24:15 +0200172#ifndef VIM_DEFAULTS_FILE
173# define VIM_DEFAULTS_FILE "$VIMRUNTIME/defaults.vim"
174#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000175#ifndef EVIM_FILE
176# define EVIM_FILE "$VIMRUNTIME/evim.vim"
177#endif
178
179#ifndef USR_GVIMRC_FILE
180# define USR_GVIMRC_FILE "s:.gvimrc"
181#endif
182#ifndef USR_GVIMRC_FILE2
183# define USR_GVIMRC_FILE2 "home:.gvimrc"
184#endif
185#ifndef USR_GVIMRC_FILE3
Bram Moolenaar22971aa2013-06-12 20:35:58 +0200186# define USR_GVIMRC_FILE3 "home:vimfiles:gvimrc"
187#endif
188#ifndef USR_GVIMRC_FILE4
189# define USR_GVIMRC_FILE4 "$VIM/.gvimrc"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000190#endif
191
192#ifdef FEAT_VIMINFO
Bram Moolenaar5a6404c2006-11-01 17:12:57 +0000193# ifndef VIMINFO_FILE
194# define VIMINFO_FILE "s:.viminfo"
195# endif
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100196#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000197
198#ifndef EXRC_FILE
199# define EXRC_FILE ".exrc"
200#endif
201
202#ifndef VIMRC_FILE
203# define VIMRC_FILE ".vimrc"
204#endif
205
206#ifndef GVIMRC_FILE
207# define GVIMRC_FILE ".gvimrc"
208#endif
209
210#ifndef DFLT_BDIR
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100211# define DFLT_BDIR ".,t:" // default for 'backupdir'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000212#endif
213
214#ifndef DFLT_DIR
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100215# define DFLT_DIR ".,t:" // default for 'directory'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000216#endif
217
218#ifndef DFLT_VDIR
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100219# define DFLT_VDIR "$VIM/vimfiles/view" // default for 'viewdir'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000220#endif
221
222#ifndef DFLT_MAXMEM
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100223# define DFLT_MAXMEM 256 // use up to 256Kbyte for buffer
Bram Moolenaar071d4272004-06-13 20:20:40 +0000224#endif
225#ifndef DFLT_MAXMEMTOT
Bram Moolenaar9bf703d2019-11-30 19:44:38 +0100226# define DFLT_MAXMEMTOT 0 // decide in set_init
Bram Moolenaar071d4272004-06-13 20:20:40 +0000227#endif
228
229#if defined(SASC)
230int setenv(const char *, const char *);
231#endif
232
233#define mch_remove(x) remove((char *)(x))
234#define mch_rename(src, dst) rename(src, dst)
235#define mch_chdir(s) chdir(s)
236#define vim_mkdir(x, y) mch_mkdir(x)