/******************************************************************************* * Copyright (c) 2006, 2009 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation * Andrew Niefer *******************************************************************************/ #ifndef ECLIPSE_COMMON_H #define ECLIPSE_COMMON_H #include "eclipseUnicode.h" /* Variables and Methods that will be needed by both the executable and the library */ #define MAX_PATH_LENGTH 2000 #ifdef UNICODE #define run runW #define setInitialArgs setInitialArgsW #define RUN_METHOD _T_ECLIPSE("runW") #define SET_INITIAL_ARGS _T_ECLIPSE("setInitialArgsW") #else #define RUN_METHOD _T_ECLIPSE("run") #define SET_INITIAL_ARGS _T_ECLIPSE("setInitialArgs") #endif #define DEFAULT_EQUINOX_STARTUP _T_ECLIPSE("org.eclipse.equinox.launcher") #ifdef _WIN32 #define IS_ABSOLUTE(path) (path[0] == _T_ECLIPSE('/') || path[0] == _T_ECLIPSE('\\') || (path[0] != 0 && path[1] == _T_ECLIPSE(':'))) #define IS_DIR_SEPARATOR(c) (c == _T_ECLIPSE('/') || c == _T_ECLIPSE('\\')) #else #define IS_ABSOLUTE(path) (path[0] == dirSeparator) #define IS_DIR_SEPARATOR(c) (c == dirSeparator) #endif extern _TCHAR* osArg; extern _TCHAR* osArchArg; extern _TCHAR* wsArg; extern _TCHAR dirSeparator; /* '/' or '\\' */ extern _TCHAR pathSeparator; /* separator used in PATH variable */ extern _TCHAR* eclipseLibrary; /* path the the eclipse_.so shared library */ extern char *toNarrow(const _TCHAR* src); /* * Find the absolute pathname to where a command resides. * * The string returned by the function must be freed. * Symlinks are resolved */ extern _TCHAR* findCommand( _TCHAR* command ); /* * Same as findCommand but optionally resolve symlinks */ extern _TCHAR* findSymlinkCommand( _TCHAR* command, int resolve ); extern _TCHAR* findFile( _TCHAR* path, _TCHAR* prefix); extern _TCHAR* getProgramDir(); extern _TCHAR* getOfficialName(); extern void setOfficialName(_TCHAR * name); extern _TCHAR* getProgramPath(); extern void setProgramPath(_TCHAR* name); extern _TCHAR* resolveSymlinks( _TCHAR* path ); /** Display a Message * * This method is called to display an error message to the user before exiting. * The method should not return until the user has acknowledged * the message. This method may be called before the window * system has been initialized. The program should exit after calling this method. */ extern void displayMessage( _TCHAR* title, _TCHAR* message ); /* Load the specified shared library */ extern void * loadLibrary( _TCHAR * library ); /* Unload the shared library */ extern void unloadLibrary( void * handle ); /* Find the given symbol in the shared library */ extern void * findSymbol( void * handle, _TCHAR * symbol ); /* check the given path and attempt to make it absolute if it is relative */ extern _TCHAR* checkPath( _TCHAR* path, _TCHAR* programDir, int reverseOrder ); extern _TCHAR * lastDirSeparator(_TCHAR* str); extern _TCHAR * firstDirSeparator(_TCHAR* str); #endif