freebsd-ports/games/ioquake3/files/patch-code-sys-sys_main.c
Dominic Fandrey 9ab41ffb0e Update and clean up the ioquake3 family of ports.
The following maintenance operations were performed:

- Recreate all patches with `make makepatch`
- Add LICENSE
- Update MAINTAINER to kami@freebsd.org
- games/ioquake3
  - Replace a lot of `.if ${PORT_OPTIONS:MFOO}` with `bsd.options.mk` fu
  - Add support for slaves using different SDL versions
- games/ioquake3-devel
  - Update to GIT revision 2808
  - Use SDL2
- games/iourbanterror
  - Change treatment of patches so `make makepatch` doesn't screw the patches in ${MASTERDIR}/files over
  - Update 4.2.018 to 4.2.023
- games/urbanterror-data
  - Update 4.2.018 to 4.2.023
  - Fix install without DOCS

Reviewed by:	cs
Approved by:	cs
Differential Revision:	https://reviews.freebsd.org/D5816
2016-04-25 22:43:23 +00:00

94 lines
2.4 KiB
C

--- code/sys/sys_main.c.orig 2009-03-02 22:26:36 UTC
+++ code/sys/sys_main.c
@@ -49,6 +49,7 @@ Foundation, Inc., 51 Franklin St, Fifth
static char binaryPath[ MAX_OSPATH ] = { 0 };
static char installPath[ MAX_OSPATH ] = { 0 };
+static char libPath[ MAX_OSPATH ] = { 0 };
/*
=================
@@ -95,6 +96,30 @@ char *Sys_DefaultInstallPath(void)
/*
=================
+Sys_SetDefaultLibPath
+=================
+*/
+void Sys_SetDefaultLibPath(const char *path)
+{
+ Q_strncpyz(libPath, path, sizeof(libPath));
+}
+
+/*
+=================
+Sys_DefaultLibPath
+=================
+*/
+char *Sys_DefaultLibPath(void)
+{
+ if (*libPath)
+ return libPath;
+ else
+ return Sys_Cwd();
+}
+
+
+/*
+=================
Sys_DefaultAppPath
=================
*/
@@ -384,6 +409,7 @@ Used to load a development dll instead o
#1 look down current path
#2 look in fs_homepath
#3 look in fs_basepath
+#4 look in fs_libpath
=================
*/
void *Sys_LoadDll( const char *name, char *fqpath ,
@@ -394,6 +420,7 @@ void *Sys_LoadDll( const char *name, cha
void (*dllEntry)( intptr_t (*syscallptr)(intptr_t, ...) );
char fname[MAX_OSPATH];
char *basepath;
+ char *libpath;
char *homepath;
char *pwdpath;
char *gamedir;
@@ -405,6 +432,7 @@ void *Sys_LoadDll( const char *name, cha
// TODO: use fs_searchpaths from files.c
pwdpath = Sys_Cwd();
basepath = Cvar_VariableString( "fs_basepath" );
+ libpath = Cvar_VariableString( "fs_libpath" );
homepath = Cvar_VariableString( "fs_homepath" );
gamedir = Cvar_VariableString( "fs_game" );
@@ -413,6 +441,9 @@ void *Sys_LoadDll( const char *name, cha
if(!libHandle && homepath)
libHandle = Sys_TryLibraryLoad(homepath, gamedir, fname, fqpath);
+ if(!libHandle && libpath)
+ libHandle = Sys_TryLibraryLoad(libpath, gamedir, fname, fqpath);
+
if(!libHandle && basepath)
libHandle = Sys_TryLibraryLoad(basepath, gamedir, fname, fqpath);
@@ -469,6 +500,10 @@ void Sys_ParseArgs( int argc, char **arg
# endif
#endif
+#ifndef DEFAULT_LIBDIR
+# define DEFAULT_LIBDIR DEFAULT_BASEDIR
+#endif
+
/*
=================
Sys_SigHandler
@@ -540,6 +575,7 @@ int main( int argc, char **argv )
Sys_ParseArgs( argc, argv );
Sys_SetBinaryPath( Sys_Dirname( argv[ 0 ] ) );
Sys_SetDefaultInstallPath( DEFAULT_BASEDIR );
+ Sys_SetDefaultLibPath( DEFAULT_LIBDIR );
// Concatenate the command line for passing to Com_Init
for( i = 1; i < argc; i++ )