Remove B_COMMON*_DIRECTORY and kCommon*Directory constants

* This does intentionally break source compatibility, so that a review
  of concerned code is forced.
* Binary compatibility should be maintained in most cases. The values
  of the constants for the writable directories are now used for the
  writable system directories. The values for the non-writable
  directories are mapped to "/boot/system/data/empty/...", an empty or
  non-existent directory, so that they will simply be skipped in search
  paths. Only code that explicitly expects to find something in a
  B_COMMON_* directory, will fail.
This commit is contained in:
Ingo Weinhold
2013-10-04 02:30:30 +02:00
parent 8f83a0f831
commit 38fa81bf8f
40 changed files with 211 additions and 288 deletions
+5 -22
View File
@@ -33,32 +33,15 @@ typedef enum {
B_SYSTEM_PACKAGES_DIRECTORY, B_SYSTEM_PACKAGES_DIRECTORY,
B_SYSTEM_HEADERS_DIRECTORY, B_SYSTEM_HEADERS_DIRECTORY,
/* Common directories, shared among all users. */ B_SYSTEM_ETC_DIRECTORY = 2008,
B_COMMON_DIRECTORY = 2000, B_SYSTEM_SETTINGS_DIRECTORY = 2010,
B_COMMON_SYSTEM_DIRECTORY, B_SYSTEM_LOG_DIRECTORY = 2012,
B_COMMON_ADDONS_DIRECTORY,
B_COMMON_BOOT_DIRECTORY,
B_COMMON_FONTS_DIRECTORY,
B_COMMON_LIB_DIRECTORY,
B_COMMON_SERVERS_DIRECTORY,
B_COMMON_BIN_DIRECTORY,
B_SYSTEM_ETC_DIRECTORY,
B_COMMON_DOCUMENTATION_DIRECTORY,
B_SYSTEM_SETTINGS_DIRECTORY,
B_COMMON_DEVELOP_DIRECTORY,
B_SYSTEM_LOG_DIRECTORY,
B_SYSTEM_SPOOL_DIRECTORY, B_SYSTEM_SPOOL_DIRECTORY,
B_SYSTEM_TEMP_DIRECTORY, B_SYSTEM_TEMP_DIRECTORY,
B_SYSTEM_VAR_DIRECTORY, B_SYSTEM_VAR_DIRECTORY,
B_COMMON_TRANSLATORS_DIRECTORY, B_SYSTEM_CACHE_DIRECTORY = 2020,
B_COMMON_MEDIA_NODES_DIRECTORY,
B_COMMON_SOUNDS_DIRECTORY,
B_COMMON_DATA_DIRECTORY,
B_SYSTEM_CACHE_DIRECTORY,
B_COMMON_PACKAGES_DIRECTORY,
B_COMMON_HEADERS_DIRECTORY,
B_SYSTEM_NONPACKAGED_DIRECTORY, B_SYSTEM_NONPACKAGED_DIRECTORY = 2023,
B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY, B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY,
B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY, B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY,
B_SYSTEM_NONPACKAGED_MEDIA_NODES_DIRECTORY, B_SYSTEM_NONPACKAGED_MEDIA_NODES_DIRECTORY,
+7 -14
View File
@@ -39,20 +39,13 @@
#define kSystemPreferencesDirectory "/boot/system/preferences" #define kSystemPreferencesDirectory "/boot/system/preferences"
#define kSystemServersDirectory "/boot/system/servers" #define kSystemServersDirectory "/boot/system/servers"
#define kCommonDirectory "/boot/system" #define kSystemEtcDirectory "/boot/system/settings/etc"
#define kCommonAddonsDirectory "/boot/system/add-ons" #define kSystemTempDirectory "/boot/system/cache/tmp"
#define kCommonBinDirectory "/boot/system/bin" #define kSystemVarDirectory "/boot/system/var"
#define kCommonDevelopToolsBinDirectory "/boot/system/develop/tools/current/bin" #define kSystemLogDirectory "/boot/system/var/log"
#define kCommonEtcDirectory "/boot/system/settings/etc" #define kSystemNonpackagedAddonsDirectory "/boot/system/non-packaged/add-ons"
#define kCommonLibDirectory "/boot/system/lib" #define kSystemNonpackagedBinDirectory "/boot/system/non-packaged/bin"
#define kCommonPackagesDirectory "/boot/system/packages" #define kSystemNonpackagedLibDirectory "/boot/system/non-packaged/lib"
#define kCommonSettingsDirectory "/boot/system/settings"
#define kCommonTempDirectory "/boot/system/cache/tmp"
#define kCommonVarDirectory "/boot/system/var"
#define kCommonLogDirectory "/boot/system/var/log"
#define kCommonNonpackagedAddonsDirectory "/boot/system/non-packaged/add-ons"
#define kCommonNonpackagedBinDirectory "/boot/system/non-packaged/bin"
#define kCommonNonpackagedLibDirectory "/boot/system/non-packaged/lib"
#define kUserDirectory "/boot/home" #define kUserDirectory "/boot/home"
#define kUserConfigDirectory "/boot/home/config" #define kUserConfigDirectory "/boot/home/config"
@@ -260,17 +260,28 @@ KeyCommandMap::MessageReceived(BMessage* msg)
BString command; BString command;
if (msg.FindString("command", &command) == B_OK) { if (msg.FindString("command", &command) == B_OK) {
BPath path; BPath path;
if (find_directory(B_SYSTEM_ADDONS_DIRECTORY, &path) == B_OK) { if (find_directory(B_SYSTEM_ADDONS_DIRECTORY, &path)
== B_OK) {
path.Append("Tracker/"); path.Append("Tracker/");
if (command.FindFirst(path.Path()) != B_ERROR) if (command.FindFirst(path.Path()) != B_ERROR)
continue; continue;
} }
if (find_directory(B_COMMON_ADDONS_DIRECTORY, &path) == B_OK) { if (find_directory(
B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY,
&path) == B_OK) {
path.Append("Tracker/"); path.Append("Tracker/");
if (command.FindFirst(path.Path()) != B_ERROR) if (command.FindFirst(path.Path()) != B_ERROR)
continue; continue;
} }
if (find_directory(B_USER_ADDONS_DIRECTORY, &path) == B_OK) { if (find_directory(B_USER_ADDONS_DIRECTORY, &path)
== B_OK) {
path.Append("Tracker/");
if (command.FindFirst(path.Path()) != B_ERROR)
continue;
}
if (find_directory(
B_USER_NONPACKAGED_ADDONS_DIRECTORY, &path)
== B_OK) {
path.Append("Tracker/"); path.Append("Tracker/");
if (command.FindFirst(path.Path()) != B_ERROR) if (command.FindFirst(path.Path()) != B_ERROR)
continue; continue;
@@ -44,7 +44,7 @@
#if DEBUG > 0 #if DEBUG > 0
static const char *logfile = kCommonLogDirectory "/auich.log"; static const char *logfile = kSystemLogDirectory "/auich.log";
static sem_id loglock; static sem_id loglock;
#endif #endif
@@ -44,7 +44,7 @@
#if DEBUG > 0 #if DEBUG > 0
static const char *logfile = kCommonLogDirectory "/auvia.log"; static const char *logfile = kSystemLogDirectory "/auvia.log";
static sem_id loglock; static sem_id loglock;
#endif #endif
@@ -25,7 +25,7 @@
#if DEBUG > 0 #if DEBUG > 0
static const char *logfile = kCommonLogDirectory "/es1370.log"; static const char *logfile = kSystemLogDirectory "/es1370.log";
static sem_id loglock; static sem_id loglock;
#endif #endif
@@ -54,7 +54,7 @@ void debug_printf(const char *text,...)
#if DEBUG > 0 #if DEBUG > 0
static const char *logfile = kCommonLogDirectory "/ich_ac97.log"; static const char *logfile = kSystemLogDirectory "/ich_ac97.log";
static sem_id loglock; static sem_id loglock;
@@ -43,7 +43,7 @@
#if DEBUG > 0 #if DEBUG > 0
static const char *logfile = kCommonLogDirectory "/" DRIVER_NAME ".log"; static const char *logfile = kSystemLogDirectory "/" DRIVER_NAME ".log";
static sem_id loglock; static sem_id loglock;
#endif #endif
@@ -44,7 +44,7 @@
#if DEBUG > 0 #if DEBUG > 0
static const char *logfile = kCommonLogDirectory "/emuxki.log"; static const char *logfile = kSystemLogDirectory "/emuxki.log";
static sem_id loglock; static sem_id loglock;
#endif #endif
@@ -64,7 +64,7 @@ bug(const char *format, ...)
int i; int i;
int file; int file;
if ((file = open(kCommonLogDirectory "/sis900-driver.log", if ((file = open(kSystemLogDirectory "/sis900-driver.log",
O_RDWR | O_APPEND | O_CREAT)) >= 0) { O_RDWR | O_APPEND | O_CREAT)) >= 0) {
// time_t timer = time(NULL); // time_t timer = time(NULL);
// strftime(c, 2048, "%H:%M:S: ", localtime(&timer)); // strftime(c, 2048, "%H:%M:S: ", localtime(&timer));
@@ -27,7 +27,7 @@ bool gLogFunctionCalls = false;
bool gLogFunctionReturns = false; bool gLogFunctionReturns = false;
bool gLogFunctionResults = false; bool gLogFunctionResults = false;
static const char *sLogFilePath = kCommonLogDirectory "/" DRIVER_NAME ".log"; static const char *sLogFilePath = kSystemLogDirectory "/" DRIVER_NAME ".log";
static sem_id sLogLock; static sem_id sLogLock;
@@ -28,7 +28,7 @@ bool gLogFunctionCalls = true;
bool gLogFunctionReturns = true; bool gLogFunctionReturns = true;
bool gLogFunctionResults = true; bool gLogFunctionResults = true;
static const char *sLogFilePath = kCommonLogDirectory "/" DRIVER_NAME ".log"; static const char *sLogFilePath = kSystemLogDirectory "/" DRIVER_NAME ".log";
static sem_id sLogLock; static sem_id sLogLock;
@@ -32,7 +32,7 @@ bool b_log_funcres = false;
bool b_log_settings_loaded = false; bool b_log_settings_loaded = false;
static const char *private_log_path static const char *private_log_path
= kCommonLogDirectory "/" DRIVER_NAME ".log"; = kSystemLogDirectory "/" DRIVER_NAME ".log";
static sem_id loglock; static sem_id loglock;
void load_setting(void){ void load_setting(void){
+1 -1
View File
@@ -58,7 +58,7 @@ void debug_printf(const char *text,...)
#if DEBUG > 0 #if DEBUG > 0
static const char *logfile = kCommonLogDirectory "/mpu401.log"; static const char *logfile = kSystemLogDirectory "/mpu401.log";
static sem_id loglock; static sem_id loglock;
@@ -287,7 +287,9 @@ AGMSBayesianSpamFilter::_CheckForSpamServer()
BPath path; BPath path;
entry_ref ref; entry_ref ref;
directory_which places[] = {B_COMMON_BIN_DIRECTORY,B_BEOS_BIN_DIRECTORY}; directory_which places[] = {
B_SYSTEM_NONPACKAGED_BIN_DIRECTORY,
B_SYSTEM_BIN_DIRECTORY};
for (int32 i = 0; i < 2; i++) { for (int32 i = 0; i < 2; i++) {
find_directory(places[i],&path); find_directory(places[i],&path);
path.Append("spamdbm"); path.Append("spamdbm");
@@ -386,7 +386,10 @@ AGMSBayesianSpamFilterConfig::ShowSpamServerConfigurationWindow () {
if (errorCode != B_OK) { if (errorCode != B_OK) {
BPath path; BPath path;
entry_ref ref; entry_ref ref;
directory_which places[] = {B_COMMON_BIN_DIRECTORY,B_BEOS_BIN_DIRECTORY}; directory_which places[] = {
B_SYSTEM_NONPACKAGED_BIN_DIRECTORY,
B_SYSTEM_BIN_DIRECTORY
};
for (int32 i = 0; i < 2; i++) { for (int32 i = 0; i < 2; i++) {
find_directory(places[i],&path); find_directory(places[i],&path);
path.Append("spamdbm"); path.Append("spamdbm");
@@ -25,7 +25,7 @@ VSTAddOn::VSTAddOn(image_id image)
BPath addons_dir; BPath addons_dir;
fPluginsList.MakeEmpty(); fPluginsList.MakeEmpty();
find_directory(B_COMMON_ADDONS_DIRECTORY, &addons_dir); find_directory(B_USER_NONPACKAGED_ADDONS_DIRECTORY, &addons_dir);
addons_dir.Append(vst_subdir); addons_dir.Append(vst_subdir);
ScanPluginsFolders(addons_dir.Path(), true); ScanPluginsFolders(addons_dir.Path(), true);
@@ -33,7 +33,11 @@ VSTAddOn::VSTAddOn(image_id image)
addons_dir.Append(vst_subdir); addons_dir.Append(vst_subdir);
ScanPluginsFolders(addons_dir.Path() ,true); ScanPluginsFolders(addons_dir.Path() ,true);
find_directory(B_BEOS_ADDONS_DIRECTORY, &addons_dir); find_directory(B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY, &addons_dir);
addons_dir.Append(vst_subdir);
ScanPluginsFolders(addons_dir.Path());
find_directory(B_SYSTEM_ADDONS_DIRECTORY, &addons_dir);
addons_dir.Append(vst_subdir); addons_dir.Append(vst_subdir);
ScanPluginsFolders(addons_dir.Path()); ScanPluginsFolders(addons_dir.Path());
} }
@@ -212,9 +212,10 @@ Fonts::CollectFonts()
BPath path; BPath path;
directory_which * which_dir; directory_which * which_dir;
directory_which lookup_dirs[] = { directory_which lookup_dirs[] = {
B_BEOS_FONTS_DIRECTORY, B_SYSTEM_FONTS_DIRECTORY,
// B_COMMON_FONTS_DIRECTORY, // seem to be the same directory than B_USER_FONTS_DIRECTORY!!! B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY,
B_USER_FONTS_DIRECTORY, B_USER_FONTS_DIRECTORY,
B_USER_NONPACKAGED_FONTS_DIRECTORY,
(directory_which) -1 (directory_which) -1
}; };
+2 -1
View File
@@ -1723,8 +1723,9 @@ status_t
AboutView::_GetLicensePath(const char* license, BPath& path) AboutView::_GetLicensePath(const char* license, BPath& path)
{ {
static const directory_which directoryConstants[] = { static const directory_which directoryConstants[] = {
B_USER_NONPACKAGED_DATA_DIRECTORY,
B_USER_DATA_DIRECTORY, B_USER_DATA_DIRECTORY,
B_COMMON_DATA_DIRECTORY, B_SYSTEM_NONPACKAGED_DATA_DIRECTORY,
B_SYSTEM_DATA_DIRECTORY B_SYSTEM_DATA_DIRECTORY
}; };
static const int dirCount = 3; static const int dirCount = 3;
+7 -3
View File
@@ -2748,8 +2748,12 @@ status_t
DwarfFile::_GetDebugInfoPath(const char* debugFileName, DwarfFile::_GetDebugInfoPath(const char* debugFileName,
BString& _infoPath) const BString& _infoPath) const
{ {
const directory_which dirLocations[] = { B_USER_CONFIG_DIRECTORY, const directory_which dirLocations[] = {
B_COMMON_DIRECTORY, B_SYSTEM_DIRECTORY }; B_USER_NONPACKAGED_DEVELOP_DIRECTORY,
B_USER_DEVELOP_DIRECTORY,
B_SYSTEM_NONPACKAGED_DEVELOP_DIRECTORY,
B_SYSTEM_DEVELOP_DIRECTORY
};
// first, see if we have a relative match to our local directory // first, see if we have a relative match to our local directory
BPath basePath; BPath basePath;
@@ -2780,7 +2784,7 @@ DwarfFile::_GetDebugInfoPath(const char* debugFileName,
return result; return result;
if (strncmp(fName, basePath.Path(), strlen(basePath.Path())) == 0) { if (strncmp(fName, basePath.Path(), strlen(basePath.Path())) == 0) {
_infoPath.SetToFormat("%s/develop/debug/%s", basePath.Path(), _infoPath.SetToFormat("%s/debug/%s", basePath.Path(),
debugFileName); debugFileName);
entry.SetTo(_infoPath.String()); entry.SetTo(_infoPath.String());
result = entry.InitCheck(); result = entry.InitCheck();
+1 -1
View File
@@ -2693,7 +2693,7 @@ TMailWindow::TrainMessageAs(const char *CommandWord)
BPath path; BPath path;
entry_ref ref; entry_ref ref;
directory_which places[] directory_which places[]
= {B_COMMON_BIN_DIRECTORY, B_BEOS_BIN_DIRECTORY}; = {B_SYSTEM_NONPACKAGED_BIN_DIRECTORY, B_SYSTEM_BIN_DIRECTORY};
for (int32 i = 0; i < 2; i++) { for (int32 i = 0; i < 2; i++) {
find_directory(places[i],&path); find_directory(places[i],&path);
path.Append("spamdbm"); path.Append("spamdbm");
+1 -17
View File
@@ -51,30 +51,14 @@ directoryType directoryTypes[] = {
KEYVALUE_PAIR(B_SYSTEM_PACKAGES_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_PACKAGES_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_HEADERS_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_HEADERS_DIRECTORY),
// Common directories // Writable system directories
KEYVALUE_PAIR(B_COMMON_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_SYSTEM_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_ADDONS_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_BOOT_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_FONTS_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_LIB_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_SERVERS_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_BIN_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_ETC_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_ETC_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_DOCUMENTATION_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_SETTINGS_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_SETTINGS_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_DEVELOP_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_LOG_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_LOG_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_SPOOL_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_SPOOL_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_TEMP_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_TEMP_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_VAR_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_VAR_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_TRANSLATORS_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_MEDIA_NODES_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_SOUNDS_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_DATA_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_CACHE_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_CACHE_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_PACKAGES_DIRECTORY),
KEYVALUE_PAIR(B_COMMON_HEADERS_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_NONPACKAGED_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_NONPACKAGED_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY),
KEYVALUE_PAIR(B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY), KEYVALUE_PAIR(B_SYSTEM_NONPACKAGED_TRANSLATORS_DIRECTORY),
+4 -2
View File
@@ -90,8 +90,9 @@ DefaultCatalog::DefaultCatalog(const entry_ref &catalogOwner, const char *langua
// search in data folders // search in data folders
directory_which which[] = { directory_which which[] = {
B_USER_NONPACKAGED_DATA_DIRECTORY,
B_USER_DATA_DIRECTORY, B_USER_DATA_DIRECTORY,
B_COMMON_DATA_DIRECTORY, B_SYSTEM_NONPACKAGED_DATA_DIRECTORY,
B_SYSTEM_DATA_DIRECTORY B_SYSTEM_DATA_DIRECTORY
}; };
@@ -581,8 +582,9 @@ default_catalog_get_available_languages(BMessage* availableLanguages,
// search in data folders // search in data folders
directory_which which[] = { directory_which which[] = {
B_USER_NONPACKAGED_DATA_DIRECTORY,
B_USER_DATA_DIRECTORY, B_USER_DATA_DIRECTORY,
B_COMMON_DATA_DIRECTORY, B_SYSTEM_NONPACKAGED_DATA_DIRECTORY,
B_SYSTEM_DATA_DIRECTORY B_SYSTEM_DATA_DIRECTORY
}; };
+2 -1
View File
@@ -330,8 +330,9 @@ LocaleRosterData::_InitializeCatalogAddOns()
fCatalogAddOnInfos.AddItem((void*)defaultCatalogAddOnInfo); fCatalogAddOnInfos.AddItem((void*)defaultCatalogAddOnInfo);
directory_which folders[] = { directory_which folders[] = {
B_USER_NONPACKAGED_ADDONS_DIRECTORY,
B_USER_ADDONS_DIRECTORY, B_USER_ADDONS_DIRECTORY,
B_COMMON_ADDONS_DIRECTORY, B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY,
B_SYSTEM_ADDONS_DIRECTORY, B_SYSTEM_ADDONS_DIRECTORY,
}; };
BPath addOnPath; BPath addOnPath;
+1 -1
View File
@@ -159,7 +159,7 @@ sv_rewind(struct irs_sv *sv)
} }
char path[PATH_MAX]; char path[PATH_MAX];
if (find_directory(B_COMMON_DATA_DIRECTORY, -1, false, path, sizeof(path)) if (find_directory(B_SYSTEM_DATA_DIRECTORY, -1, false, path, sizeof(path))
== B_OK) { == B_OK) {
strlcat(path, "/network/services", sizeof(path)); strlcat(path, "/network/services", sizeof(path));
+3 -2
View File
@@ -326,9 +326,10 @@ get_named_icon(const char* name, uint8** _data, size_t* _size, type_code* _type)
return B_BAD_VALUE; return B_BAD_VALUE;
directory_which kWhich[] = { directory_which kWhich[] = {
B_USER_NONPACKAGED_DATA_DIRECTORY,
B_USER_DATA_DIRECTORY, B_USER_DATA_DIRECTORY,
B_COMMON_DATA_DIRECTORY, B_SYSTEM_NONPACKAGED_DATA_DIRECTORY,
B_BEOS_DATA_DIRECTORY, B_SYSTEM_DATA_DIRECTORY,
}; };
status_t status = B_ENTRY_NOT_FOUND; status_t status = B_ENTRY_NOT_FOUND;
+1 -9
View File
@@ -630,7 +630,6 @@ ConfirmChangeIfWellKnownDirectory(const BEntry* entry,
return false; return false;
if (!DirectoryMatchesOrContains(entry, B_SYSTEM_DIRECTORY) if (!DirectoryMatchesOrContains(entry, B_SYSTEM_DIRECTORY)
&& !DirectoryMatchesOrContains(entry, B_COMMON_DIRECTORY)
&& !DirectoryMatchesOrContains(entry, B_USER_DIRECTORY)) && !DirectoryMatchesOrContains(entry, B_USER_DIRECTORY))
// quick way out // quick way out
return true; return true;
@@ -645,12 +644,6 @@ ConfirmChangeIfWellKnownDirectory(const BEntry* entry,
"you want to do this?\n\nTo %toDoAction the system folder or its " "you want to do this?\n\nTo %toDoAction the system folder or its "
"contents anyway, hold down the Shift key and click " "contents anyway, hold down the Shift key and click "
"\"%toConfirmAction\".")); "\"%toConfirmAction\"."));
} else if (DirectoryMatches(entry, B_COMMON_DIRECTORY)) {
warning.SetTo(
B_TRANSLATE("If you %ifYouDoAction the common folder, %osName "
"may not behave properly!\n\nAre you sure you want to do this?"
"\n\nTo %toDoAction the common folder anyway, hold down the "
"Shift key and click \"%toConfirmAction\"."));
} else if (DirectoryMatches(entry, B_USER_DIRECTORY)) { } else if (DirectoryMatches(entry, B_USER_DIRECTORY)) {
warning .SetTo( warning .SetTo(
B_TRANSLATE("If you %ifYouDoAction the home folder, %osName " B_TRANSLATE("If you %ifYouDoAction the home folder, %osName "
@@ -3925,7 +3918,6 @@ WellKnowEntryList::WellKnowEntryList()
AddOne(B_USER_DIRECTORY, "home"); AddOne(B_USER_DIRECTORY, "home");
AddOne(B_BEOS_FONTS_DIRECTORY, "fonts"); AddOne(B_BEOS_FONTS_DIRECTORY, "fonts");
AddOne(B_COMMON_FONTS_DIRECTORY, "fonts");
AddOne(B_USER_FONTS_DIRECTORY, "fonts"); AddOne(B_USER_FONTS_DIRECTORY, "fonts");
AddOne(B_BEOS_APPS_DIRECTORY, "apps"); AddOne(B_BEOS_APPS_DIRECTORY, "apps");
@@ -3944,7 +3936,7 @@ WellKnowEntryList::WellKnowEntryList()
AddOne((directory_which)B_USER_QUERIES_DIRECTORY, B_USER_DIRECTORY, AddOne((directory_which)B_USER_QUERIES_DIRECTORY, B_USER_DIRECTORY,
"queries", "queries"); "queries", "queries");
AddOne(B_COMMON_DEVELOP_DIRECTORY, "develop"); AddOne(B_SYSTEM_DEVELOP_DIRECTORY, "develop");
AddOne((directory_which)B_USER_DESKBAR_DEVELOP_DIRECTORY, AddOne((directory_which)B_USER_DESKBAR_DEVELOP_DIRECTORY,
B_USER_DESKBAR_DIRECTORY, "Development", "develop"); B_USER_DESKBAR_DIRECTORY, "Development", "develop");
+5 -3
View File
@@ -680,9 +680,10 @@ IconCache::GetWellKnownIcon(AutoLock<SimpleIconCache>*,
resid = R_HomeDirIcon; resid = R_HomeDirIcon;
break; break;
case B_BEOS_FONTS_DIRECTORY: case B_SYSTEM_FONTS_DIRECTORY:
case B_COMMON_FONTS_DIRECTORY: case B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY:
case B_USER_FONTS_DIRECTORY: case B_USER_FONTS_DIRECTORY:
case B_USER_NONPACKAGED_FONTS_DIRECTORY:
resid = R_FontDirIcon; resid = R_FontDirIcon;
break; break;
@@ -706,7 +707,8 @@ IconCache::GetWellKnownIcon(AutoLock<SimpleIconCache>*,
resid = R_QueryDirIcon; resid = R_QueryDirIcon;
break; break;
case B_COMMON_DEVELOP_DIRECTORY: case B_SYSTEM_DEVELOP_DIRECTORY:
case B_SYSTEM_NONPACKAGED_DEVELOP_DIRECTORY:
case B_USER_DESKBAR_DEVELOP_DIRECTORY: case B_USER_DESKBAR_DEVELOP_DIRECTORY:
resid = R_DevelopDirIcon; resid = R_DevelopDirIcon;
break; break;
+1 -2
View File
@@ -2,8 +2,7 @@
B_TRANSLATE_MARK_ALL("apps", "B_APPS_DIRECTORY", ""); B_TRANSLATE_MARK_ALL("apps", "B_APPS_DIRECTORY", "");
B_TRANSLATE_MARK_ALL("common", "B_COMMON_DIRECTORY", ""); B_TRANSLATE_MARK_ALL("develop", "B_SYSTEM_DEVELOP_DIRECTORY", "");
B_TRANSLATE_MARK_ALL("develop", "B_COMMON_DEVELOP_DIRECTORY", "");
B_TRANSLATE_MARK_ALL("preferences", "B_PREFERENCES_DIRECTORY", ""); B_TRANSLATE_MARK_ALL("preferences", "B_PREFERENCES_DIRECTORY", "");
B_TRANSLATE_MARK_ALL("system", "B_SYSTEM_DIRECTORY", ""); B_TRANSLATE_MARK_ALL("system", "B_SYSTEM_DIRECTORY", "");
+3 -2
View File
@@ -558,9 +558,10 @@ void
KeymapWindow::_AddKeyboardLayouts(BMenu* menu) KeymapWindow::_AddKeyboardLayouts(BMenu* menu)
{ {
directory_which dataDirectories[] = { directory_which dataDirectories[] = {
B_USER_NONPACKAGED_DATA_DIRECTORY,
B_USER_DATA_DIRECTORY, B_USER_DATA_DIRECTORY,
B_COMMON_DATA_DIRECTORY, B_SYSTEM_NONPACKAGED_DATA_DIRECTORY,
B_BEOS_DATA_DIRECTORY B_SYSTEM_DATA_DIRECTORY,
}; };
for (uint32 i = 0; for (uint32 i = 0;
+29 -62
View File
@@ -331,73 +331,40 @@ HWindow::SetupMenuField()
menu->AddItem(new BMenuItem(path.Leaf(), msg), 0); menu->AddItem(new BMenuItem(path.Leaf(), msg), 0);
} }
BPath path; directory_which whichDirectories[] = {
BDirectory dir; B_SYSTEM_SOUNDS_DIRECTORY,
BEntry entry; B_SYSTEM_NONPACKAGED_SOUNDS_DIRECTORY,
BPath item_path; B_USER_SOUNDS_DIRECTORY,
B_USER_NONPACKAGED_SOUNDS_DIRECTORY,
};
status_t err = find_directory(B_BEOS_SOUNDS_DIRECTORY, &path); for (size_t i = 0;
if (err == B_OK) i < sizeof(whichDirectories) / sizeof(whichDirectories[0]); i++) {
err = dir.SetTo(path.Path()); BPath path;
while (err == B_OK) { BDirectory dir;
err = dir.GetNextEntry(&entry, true); BEntry entry;
if (entry.InitCheck() != B_NO_ERROR) BPath item_path;
break;
entry.GetPath(&item_path); status_t err = find_directory(whichDirectories[i], &path);
if (err == B_OK)
err = dir.SetTo(path.Path());
while (err == B_OK) {
err = dir.GetNextEntry(&entry, true);
if (entry.InitCheck() != B_NO_ERROR)
break;
if (menu->FindItem(item_path.Leaf())) entry.GetPath(&item_path);
continue;
BMessage* msg = new BMessage(M_ITEM_MESSAGE); if (menu->FindItem(item_path.Leaf()))
entry_ref ref; continue;
::get_ref_for_path(item_path.Path(), &ref);
msg->AddRef("refs", &ref); BMessage* msg = new BMessage(M_ITEM_MESSAGE);
menu->AddItem(new BMenuItem(item_path.Leaf(), msg), 0); entry_ref ref;
::get_ref_for_path(item_path.Path(), &ref);
msg->AddRef("refs", &ref);
menu->AddItem(new BMenuItem(item_path.Leaf(), msg), 0);
}
} }
err = find_directory(B_USER_SOUNDS_DIRECTORY, &path);
if (err == B_OK)
err = dir.SetTo(path.Path());
while (err == B_OK) {
err = dir.GetNextEntry(&entry, true);
if (entry.InitCheck() != B_NO_ERROR)
break;
entry.GetPath(&item_path);
if (menu->FindItem(item_path.Leaf()))
continue;
BMessage* msg = new BMessage(M_ITEM_MESSAGE);
entry_ref ref;
::get_ref_for_path(item_path.Path(), &ref);
msg->AddRef("refs", &ref);
menu->AddItem(new BMenuItem(item_path.Leaf(), msg), 0);
}
err = find_directory(B_COMMON_SOUNDS_DIRECTORY, &path);
if (err == B_OK)
err = dir.SetTo(path.Path());
while (err == B_OK) {
err = dir.GetNextEntry(&entry, true);
if (entry.InitCheck() != B_NO_ERROR)
break;
entry.GetPath(&item_path);
if (menu->FindItem(item_path.Leaf()))
continue;
BMessage* msg = new BMessage(M_ITEM_MESSAGE);
entry_ref ref;
::get_ref_for_path(item_path.Path(), &ref);
msg->AddRef("refs", &ref);
menu->AddItem(new BMenuItem(item_path.Leaf(), msg), 0);
}
} }
+2 -2
View File
@@ -528,12 +528,12 @@ void
FontManager::_AddSystemPaths() FontManager::_AddSystemPaths()
{ {
BPath path; BPath path;
if (find_directory(B_BEOS_FONTS_DIRECTORY, &path, true) == B_OK) if (find_directory(B_SYSTEM_FONTS_DIRECTORY, &path, true) == B_OK)
_AddPath(path.Path()); _AddPath(path.Path());
// We don't scan these in test mode to help shave off some startup time // We don't scan these in test mode to help shave off some startup time
#if !TEST_MODE #if !TEST_MODE
if (find_directory(B_COMMON_FONTS_DIRECTORY, &path, true) == B_OK) if (find_directory(B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, &path, true) == B_OK)
_AddPath(path.Path()); _AddPath(path.Path());
#endif #endif
} }
+3 -3
View File
@@ -48,9 +48,9 @@ static struct {
} sPredefinedLinks[] = { } sPredefinedLinks[] = {
{ kGlobalSystemDirectory, kSystemDirectory }, { kGlobalSystemDirectory, kSystemDirectory },
{ kGlobalBinDirectory, kSystemBinDirectory }, { kGlobalBinDirectory, kSystemBinDirectory },
{ kGlobalEtcDirectory, kCommonEtcDirectory }, { kGlobalEtcDirectory, kSystemEtcDirectory },
{ kGlobalTempDirectory, kCommonTempDirectory }, { kGlobalTempDirectory, kSystemTempDirectory },
{ kGlobalVarDirectory, kCommonVarDirectory }, { kGlobalVarDirectory, kSystemVarDirectory },
{ kGlobalPackageLinksDirectory, kSystemPackageLinksDirectory }, { kGlobalPackageLinksDirectory, kSystemPackageLinksDirectory },
{NULL} {NULL}
}; };
+52 -25
View File
@@ -39,9 +39,36 @@
*/ */
#define SYSTEM "system" #define SYSTEM "system"
#define COMMON SYSTEM #define COMMON "system/data/empty"
#define NON_PACKAGED "/non-packaged" #define NON_PACKAGED "/non-packaged"
enum {
// obsolete common directories
B_COMMON_DIRECTORY = 2000,
B_COMMON_SYSTEM_DIRECTORY,
B_COMMON_ADDONS_DIRECTORY,
B_COMMON_BOOT_DIRECTORY,
B_COMMON_FONTS_DIRECTORY,
B_COMMON_LIB_DIRECTORY,
B_COMMON_SERVERS_DIRECTORY,
B_COMMON_BIN_DIRECTORY,
_B_COMMON_ETC_DIRECTORY,
B_COMMON_DOCUMENTATION_DIRECTORY,
_B_COMMON_SETTINGS_DIRECTORY,
B_COMMON_DEVELOP_DIRECTORY,
_B_COMMON_LOG_DIRECTORY,
_B_COMMON_SPOOL_DIRECTORY,
_B_COMMON_TEMP_DIRECTORY,
_B_COMMON_VAR_DIRECTORY,
B_COMMON_TRANSLATORS_DIRECTORY,
B_COMMON_MEDIA_NODES_DIRECTORY,
B_COMMON_SOUNDS_DIRECTORY,
B_COMMON_DATA_DIRECTORY,
_B_COMMON_CACHE_DIRECTORY,
B_COMMON_PACKAGES_DIRECTORY,
B_COMMON_HEADERS_DIRECTORY,
};
/* Haiku system directories */ /* Haiku system directories */
@@ -55,7 +82,7 @@ static const char *kSystemDirectories[] = {
SYSTEM "/servers", SYSTEM "/servers",
SYSTEM "/apps", SYSTEM "/apps",
SYSTEM "/bin", SYSTEM "/bin",
COMMON "/settings/etc", SYSTEM "/settings/etc",
SYSTEM "/documentation", SYSTEM "/documentation",
SYSTEM "/preferences", SYSTEM "/preferences",
SYSTEM "/add-ons/Translators", SYSTEM "/add-ons/Translators",
@@ -78,33 +105,33 @@ static const char *kCommonDirectories[] = {
COMMON "/lib", COMMON "/lib",
COMMON "/servers", COMMON "/servers",
COMMON "/bin", COMMON "/bin",
COMMON "/settings/etc", SYSTEM "/settings/etc", // B_SYSTEM_ETC_DIRECTORY
COMMON "/documentation", COMMON "/documentation",
COMMON "/settings", SYSTEM "/settings", // B_SYSTEM_SETTINGS_DIRECTORY
COMMON "/develop", // B_COMMON_DEVELOP_DIRECTORY COMMON "/develop",
COMMON "/var/log", // B_SYSTEM_LOG_DIRECTORY SYSTEM "/var/log", // B_SYSTEM_LOG_DIRECTORY
COMMON "/var/spool", // B_SYSTEM_SPOOL_DIRECTORY SYSTEM "/var/spool", // B_SYSTEM_SPOOL_DIRECTORY
COMMON "/cache/tmp", // B_SYSTEM_TEMP_DIRECTORY SYSTEM "/cache/tmp", // B_SYSTEM_TEMP_DIRECTORY
COMMON "/var", // B_SYSTEM_VAR_DIRECTORY SYSTEM "/var", // B_SYSTEM_VAR_DIRECTORY
COMMON "/add-ons/Translators", COMMON "/add-ons/Translators",
COMMON "/add-ons/media", COMMON "/add-ons/media",
COMMON "/data/sounds", COMMON "/data/sounds",
COMMON "/data", COMMON "/data",
COMMON "/cache", // B_SYSTEM_CACHE_DIRECTORY SYSTEM "/cache", // B_SYSTEM_CACHE_DIRECTORY
COMMON "/packages", COMMON "/packages",
COMMON "/develop/headers", COMMON "/develop/headers",
COMMON NON_PACKAGED, SYSTEM NON_PACKAGED,
COMMON NON_PACKAGED "/add-ons", SYSTEM NON_PACKAGED "/add-ons",
COMMON NON_PACKAGED "/add-ons/Translators", SYSTEM NON_PACKAGED "/add-ons/Translators",
COMMON NON_PACKAGED "/add-ons/media", SYSTEM NON_PACKAGED "/add-ons/media",
COMMON NON_PACKAGED "/bin", SYSTEM NON_PACKAGED "/bin",
COMMON NON_PACKAGED "/data", SYSTEM NON_PACKAGED "/data",
COMMON NON_PACKAGED "/data/fonts", SYSTEM NON_PACKAGED "/data/fonts",
COMMON NON_PACKAGED "/data/sounds", SYSTEM NON_PACKAGED "/data/sounds",
COMMON NON_PACKAGED "/documentation", SYSTEM NON_PACKAGED "/documentation",
COMMON NON_PACKAGED "/lib", SYSTEM NON_PACKAGED "/lib",
COMMON NON_PACKAGED "/develop/headers", SYSTEM NON_PACKAGED "/develop/headers",
COMMON NON_PACKAGED "/develop", SYSTEM NON_PACKAGED "/develop",
}; };
/* User directories */ /* User directories */
@@ -274,7 +301,7 @@ find_directory(directory_which which, dev_t device, bool createIt,
templatePath = kSystemDirectories[which - B_SYSTEM_DIRECTORY]; templatePath = kSystemDirectories[which - B_SYSTEM_DIRECTORY];
break; break;
/* Common directories, shared among users */ /* Obsolete common directories and writable system directories */
case B_COMMON_DIRECTORY: case B_COMMON_DIRECTORY:
case B_COMMON_SYSTEM_DIRECTORY: case B_COMMON_SYSTEM_DIRECTORY:
case B_COMMON_ADDONS_DIRECTORY: case B_COMMON_ADDONS_DIRECTORY:
@@ -349,10 +376,10 @@ find_directory(directory_which which, dev_t device, bool createIt,
/* Global directories */ /* Global directories */
case B_APPS_DIRECTORY: case B_APPS_DIRECTORY:
templatePath = COMMON "/apps"; templatePath = SYSTEM "/apps";
break; break;
case B_PREFERENCES_DIRECTORY: case B_PREFERENCES_DIRECTORY:
templatePath = COMMON "/preferences"; templatePath = SYSTEM "/preferences";
break; break;
case B_UTILITIES_DIRECTORY: case B_UTILITIES_DIRECTORY:
templatePath = "utilities"; templatePath = "utilities";
+2 -2
View File
@@ -387,8 +387,8 @@ confstr(int name, char *buffer, size_t length)
switch (name) { switch (name) {
case _CS_PATH: case _CS_PATH:
string = kGlobalBinDirectory ":" kSystemAppsDirectory ":" string = kSystemNonpackagedBinDirectory ":" kGlobalBinDirectory ":"
kCommonBinDirectory ":" kCommonDevelopToolsBinDirectory; kSystemAppsDirectory ":" kSystemPreferencesDirectory;
break; break;
default: default:
__set_errno(EINVAL); __set_errno(EINVAL);
+10 -9
View File
@@ -30,6 +30,9 @@ search_path_for_type(image_type type)
{ {
const char *path = NULL; const char *path = NULL;
// TODO: The *PATH variables should not include the standard system paths.
// Instead those paths should always be used after the directories specified
// via the variables.
switch (type) { switch (type) {
case B_APP_IMAGE: case B_APP_IMAGE:
path = getenv("PATH"); path = getenv("PATH");
@@ -53,25 +56,23 @@ search_path_for_type(image_type type)
// Since the kernel does not set any variables, this is also needed // Since the kernel does not set any variables, this is also needed
// to start the root shell. // to start the root shell.
// TODO: The user specific paths should not be used by default.
switch (type) { switch (type) {
case B_APP_IMAGE: case B_APP_IMAGE:
return kUserBinDirectory return kUserNonpackagedBinDirectory
":" kUserBinDirectory
// TODO: Remove! // TODO: Remove!
":" kCommonBinDirectory ":" kSystemNonpackagedBinDirectory
":" kGlobalBinDirectory ":" kGlobalBinDirectory
":" kAppsDirectory
":" kPreferencesDirectory
":" kSystemAppsDirectory ":" kSystemAppsDirectory
":" kSystemPreferencesDirectory ":" kSystemPreferencesDirectory;
":" kCommonDevelopToolsBinDirectory;
case B_LIBRARY_IMAGE: case B_LIBRARY_IMAGE:
return kAppLocalLibDirectory return kAppLocalLibDirectory
":" kUserNonpackagedLibDirectory ":" kUserNonpackagedLibDirectory
":" kUserLibDirectory ":" kUserLibDirectory
// TODO: Remove! // TODO: Remove!
":" kCommonNonpackagedLibDirectory ":" kSystemNonpackagedLibDirectory
":" kCommonLibDirectory
":" kSystemLibDirectory; ":" kSystemLibDirectory;
case B_ADD_ON_IMAGE: case B_ADD_ON_IMAGE:
@@ -79,7 +80,7 @@ search_path_for_type(image_type type)
":" kUserNonpackagedAddonsDirectory ":" kUserNonpackagedAddonsDirectory
":" kUserAddonsDirectory ":" kUserAddonsDirectory
// TODO: Remove! // TODO: Remove!
":" kCommonNonpackagedAddonsDirectory ":" kSystemNonpackagedAddonsDirectory
":" kSystemAddonsDirectory; ":" kSystemAddonsDirectory;
default: default:
@@ -39,7 +39,7 @@ bool addUserToGroup(char *user, char *group)
{ {
char userPath[B_PATH_NAME_LENGTH], groupPath[B_PATH_NAME_LENGTH]; char userPath[B_PATH_NAME_LENGTH], groupPath[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, userPath, sizeof(userPath)); find_directory(B_SYSTEM_DIRECTORY, 0, false, userPath, sizeof(userPath));
strcpy(groupPath, userPath); strcpy(groupPath, userPath);
strcat(userPath, "/domains/default/users/"); strcat(userPath, "/domains/default/users/");
strcat(userPath, user); strcat(userPath, user);
@@ -68,7 +68,7 @@ bool removeUserFromGroup(char *user, char *group)
if (strcmp(group, "everyone") == 0) if (strcmp(group, "everyone") == 0)
return false; return false;
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, userPath, sizeof(userPath)); find_directory(B_SYSTEM_DIRECTORY, 0, false, userPath, sizeof(userPath));
strcat(userPath, "/domains/default/groups/"); strcat(userPath, "/domains/default/groups/");
strcat(userPath, group); strcat(userPath, group);
strcat(userPath, "/"); strcat(userPath, "/");
@@ -86,7 +86,7 @@ bool isUserInGroup(char *user, char *group)
strlwr(user); strlwr(user);
strlwr(group); strlwr(group);
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, userPath, sizeof(userPath)); find_directory(B_SYSTEM_DIRECTORY, 0, false, userPath, sizeof(userPath));
strcat(userPath, "/domains/default/groups/"); strcat(userPath, "/domains/default/groups/");
strcat(userPath, group); strcat(userPath, group);
strcat(userPath, "/"); strcat(userPath, "/");
@@ -103,7 +103,7 @@ bool createUser(char *user, char *password)
// All usernames are saved in lowercase. // All usernames are saved in lowercase.
strlwr(user); strlwr(user);
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
@@ -131,7 +131,7 @@ bool createGroup(char *group)
// All usernames are saved in lowercase. // All usernames are saved in lowercase.
strlwr(group); strlwr(group);
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/groups/"); strcat(path, "/domains/default/groups/");
strcat(path, group); strcat(path, group);
@@ -156,7 +156,7 @@ bool removeUser(char *user)
// All usernames are saved in lowercase. // All usernames are saved in lowercase.
strlwr(user); strlwr(user);
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
@@ -165,7 +165,7 @@ bool removeUser(char *user)
// Now remove all instances of this user from any groups to which // Now remove all instances of this user from any groups to which
// it belonged. // it belonged.
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/groups"); strcat(path, "/domains/default/groups");
// Scan the list of groups. For each group, use removeFiles() to remove // Scan the list of groups. For each group, use removeFiles() to remove
@@ -190,7 +190,7 @@ bool removeGroup(char *group)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/groups/"); strcat(path, "/domains/default/groups/");
strcat(path, group); strcat(path, group);
strlwr(path); strlwr(path);
@@ -205,7 +205,7 @@ bool setUserFullName(char *user, char *fullName)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -217,7 +217,7 @@ bool setUserDesc(char *user, char *desc)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -232,7 +232,7 @@ bool setUserPassword(char *user, char *password)
// Encrypt the password using MD5. // Encrypt the password using MD5.
md5EncodeString(password, code); md5EncodeString(password, code);
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -244,7 +244,7 @@ bool setUserFlags(char *user, uint32 flags)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -256,7 +256,7 @@ bool setUserDaysToExpire(char *user, uint32 days)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -268,7 +268,7 @@ bool setUserHome(char *user, char *home)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -283,7 +283,7 @@ bool setUserGroup(char *user, char *group)
if (!addUserToGroup(user, group)) if (!addUserToGroup(user, group))
return false; return false;
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -295,7 +295,7 @@ bool setGroupDesc(char *group, char *desc)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/groups/"); strcat(path, "/domains/default/groups/");
strcat(path, group); strcat(path, group);
strcat(path, "/.attrib"); strcat(path, "/.attrib");
@@ -308,7 +308,7 @@ bool getUserFullName(char *user, char *fullName, int bufSize)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -320,7 +320,7 @@ bool getUserDesc(char *user, char *desc, int bufSize)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -332,7 +332,7 @@ bool getUserPassword(char *user, char *password, int bufSize)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -344,7 +344,7 @@ bool getUserFlags(char *user, uint32 *flags)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -358,7 +358,7 @@ bool getUserDaysToExpire(char *user, uint32 *days)
days = 0; days = 0;
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -370,7 +370,7 @@ bool getUserHome(char *user, char *home, int bufSize)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -382,7 +382,7 @@ bool getUserGroup(char *user, char *group, int bufSize)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users/"); strcat(path, "/domains/default/users/");
strcat(path, user); strcat(path, user);
strlwr(path); strlwr(path);
@@ -397,7 +397,7 @@ bool getGroupDesc(char *group, char *desc, int bufSize)
// All usernames are saved in lowercase. // All usernames are saved in lowercase.
strlwr(group); strlwr(group);
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/groups/"); strcat(path, "/domains/default/groups/");
strcat(path, group); strcat(path, group);
strcat(path, "/.attrib"); strcat(path, "/.attrib");
@@ -471,7 +471,7 @@ DIR *OpenUsers()
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/users"); strcat(path, "/domains/default/users");
return opendir(path); return opendir(path);
@@ -507,7 +507,7 @@ DIR *OpenGroups()
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/groups"); strcat(path, "/domains/default/groups");
return opendir(path); return opendir(path);
@@ -543,7 +543,7 @@ DIR *OpenGroup(char *group)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/groups/"); strcat(path, "/domains/default/groups/");
strcat(path, group); strcat(path, group);
@@ -581,7 +581,7 @@ bool isServerRecordingLogins(char *server)
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
char buffer[20]; char buffer[20];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/servers/"); strcat(path, "/domains/default/servers/");
strcat(path, server); strcat(path, server);
strlwr(path); strlwr(path);
@@ -596,7 +596,7 @@ bool setServerRecordingLogins(char *server, bool recording)
{ {
char path[B_PATH_NAME_LENGTH]; char path[B_PATH_NAME_LENGTH];
find_directory(B_COMMON_SYSTEM_DIRECTORY, 0, false, path, sizeof(path)); find_directory(B_SYSTEM_DIRECTORY, 0, false, path, sizeof(path));
strcat(path, "/domains/default/servers/"); strcat(path, "/domains/default/servers/");
strcat(path, server); strcat(path, server);
strlwr(path); strlwr(path);
@@ -32,7 +32,6 @@
#define WSTAT_CRTIME 0x0040 #define WSTAT_CRTIME 0x0040
#define B_SYSTEM_SETTINGS_DIRECTORY ".\\" #define B_SYSTEM_SETTINGS_DIRECTORY ".\\"
#define B_COMMON_SYSTEM_DIRECTORY ".\\"
#define ENOTSUP 1 #define ENOTSUP 1
@@ -32,7 +32,6 @@
#define WSTAT_CRTIME 0x0040 #define WSTAT_CRTIME 0x0040
#define B_SYSTEM_SETTINGS_DIRECTORY ".\\" #define B_SYSTEM_SETTINGS_DIRECTORY ".\\"
#define B_COMMON_SYSTEM_DIRECTORY ".\\"
#define ENOTSUP 1 #define ENOTSUP 1
@@ -34,26 +34,12 @@ const directory_which directories[] = {
B_BEOS_TRANSLATORS_DIRECTORY, B_BEOS_TRANSLATORS_DIRECTORY,
B_BEOS_MEDIA_NODES_DIRECTORY, B_BEOS_MEDIA_NODES_DIRECTORY,
B_BEOS_SOUNDS_DIRECTORY, B_BEOS_SOUNDS_DIRECTORY,
// Common directories, shared among all users.
B_COMMON_DIRECTORY,
B_COMMON_SYSTEM_DIRECTORY,
B_COMMON_ADDONS_DIRECTORY,
B_COMMON_BOOT_DIRECTORY,
B_COMMON_FONTS_DIRECTORY,
B_COMMON_LIB_DIRECTORY,
B_COMMON_SERVERS_DIRECTORY,
B_COMMON_BIN_DIRECTORY,
B_SYSTEM_ETC_DIRECTORY, B_SYSTEM_ETC_DIRECTORY,
B_COMMON_DOCUMENTATION_DIRECTORY,
B_SYSTEM_SETTINGS_DIRECTORY, B_SYSTEM_SETTINGS_DIRECTORY,
B_COMMON_DEVELOP_DIRECTORY,
B_SYSTEM_LOG_DIRECTORY, B_SYSTEM_LOG_DIRECTORY,
B_SYSTEM_SPOOL_DIRECTORY, B_SYSTEM_SPOOL_DIRECTORY,
B_SYSTEM_TEMP_DIRECTORY, B_SYSTEM_TEMP_DIRECTORY,
B_SYSTEM_VAR_DIRECTORY, B_SYSTEM_VAR_DIRECTORY,
B_COMMON_TRANSLATORS_DIRECTORY,
B_COMMON_MEDIA_NODES_DIRECTORY,
B_COMMON_SOUNDS_DIRECTORY,
// User directories. These are interpreted in the context // User directories. These are interpreted in the context
// of the user making the find_directory call. // of the user making the find_directory call.
B_USER_DIRECTORY, B_USER_DIRECTORY,
@@ -224,43 +210,12 @@ test_find_directory(directory_which dir, BPath &path, dev_t device)
case B_BEOS_SOUNDS_DIRECTORY: case B_BEOS_SOUNDS_DIRECTORY:
error = path.SetTo("/boot/beos/etc/sounds"); error = path.SetTo("/boot/beos/etc/sounds");
break; break;
// Common directories, shared among all users.
case B_COMMON_DIRECTORY:
error = path.SetTo("/boot/home");
break;
case B_COMMON_SYSTEM_DIRECTORY:
error = path.SetTo("/boot/home/config");
break;
case B_COMMON_ADDONS_DIRECTORY:
error = path.SetTo("/boot/home/config/add-ons");
break;
case B_COMMON_BOOT_DIRECTORY:
error = path.SetTo("/boot/home/config/boot");
break;
case B_COMMON_FONTS_DIRECTORY:
error = path.SetTo("/boot/home/config/fonts");
break;
case B_COMMON_LIB_DIRECTORY:
error = path.SetTo("/boot/home/config/lib");
break;
case B_COMMON_SERVERS_DIRECTORY:
error = path.SetTo("/boot/home/config/servers");
break;
case B_COMMON_BIN_DIRECTORY:
error = path.SetTo("/boot/home/config/bin");
break;
case B_SYSTEM_ETC_DIRECTORY: case B_SYSTEM_ETC_DIRECTORY:
error = path.SetTo("/boot/home/config/etc"); error = path.SetTo("/boot/home/config/etc");
break; break;
case B_COMMON_DOCUMENTATION_DIRECTORY:
error = path.SetTo("/boot/home/config/documentation");
break;
case B_SYSTEM_SETTINGS_DIRECTORY: case B_SYSTEM_SETTINGS_DIRECTORY:
error = path.SetTo("/boot/home/config/settings"); error = path.SetTo("/boot/home/config/settings");
break; break;
case B_COMMON_DEVELOP_DIRECTORY:
error = path.SetTo("/boot/develop");
break;
case B_SYSTEM_LOG_DIRECTORY: case B_SYSTEM_LOG_DIRECTORY:
error = path.SetTo("/boot/var/log"); error = path.SetTo("/boot/var/log");
break; break;
@@ -273,15 +228,6 @@ test_find_directory(directory_which dir, BPath &path, dev_t device)
case B_SYSTEM_VAR_DIRECTORY: case B_SYSTEM_VAR_DIRECTORY:
error = path.SetTo("/boot/var"); error = path.SetTo("/boot/var");
break; break;
case B_COMMON_TRANSLATORS_DIRECTORY:
error = path.SetTo("/boot/home/config/add-ons/Translators");
break;
case B_COMMON_MEDIA_NODES_DIRECTORY:
error = path.SetTo("/boot/home/config/add-ons/media");
break;
case B_COMMON_SOUNDS_DIRECTORY:
error = path.SetTo("/boot/home/config/sounds");
break;
// User directories. These are interpreted in the context // User directories. These are interpreted in the context
// of the user making the find_directory call. // of the user making the find_directory call.
case B_USER_DIRECTORY: case B_USER_DIRECTORY: