44# include <mach-o/dyld.h>
45# import <Foundation/NSFileManager.h>
46# import <Foundation/NSPathUtilities.h>
47# import <Foundation/NSString.h>
112 bool anythingChanged =
false;
114 for (
int i = 1;
i < toks.
size(); ++
i)
118 if (
t ==
".." && toks[
i - 1] !=
"..")
120 anythingChanged =
true;
126 anythingChanged =
true;
152 String testpath (
"Z:" + path);
167 carla_safe_assert(testpath.
toRawUTF8(), __FILE__, __LINE__);
182 carla_safe_assert(path.
toRawUTF8(), __FILE__, __LINE__);
192 wassert ((!
p.containsChar (
'\\')) || (
p.indexOfChar (
'/') >= 0 &&
p.indexOfChar (
'/') <
p.indexOfChar (
'\\')));
198 if (path[1] ==
separator || path[1] == 0)
209 if (
struct passwd*
const pw = getpwnam (userName.
toUTF8()))
232#if ! (defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN))
233 #define NAMES_ARE_CASE_SENSITIVE 1
238 #if NAMES_ARE_CASE_SENSITIVE
247 #if NAMES_ARE_CASE_SENSITIVE
248 return name1.compare (name2);
250 return name1.compareIgnoreCase (name2);
266 std::vector<File> subFiles;
269 for (ssize_t
i = subFiles.size(); --
i >= 0;)
270 worked = subFiles[
i].deleteRecursively() && worked;
284 #if ! NAMES_ARE_CASE_SENSITIVE
285 if (*
this != newFile)
295 return (*
this == newFile)
318 std::vector<File> subFiles;
321 for (
size_t i = 0;
i < subFiles.size(); ++
i)
323 const File& src (subFiles[
i]);
341 for (
size_t i = 0;
i < subFiles.size(); ++
i)
357 return fullPath.substring (0, lastSlash);
381 const int lastDot =
fullPath.lastIndexOfChar (
'.');
383 if (lastDot > lastSlash)
384 return fullPath.substring (lastSlash, lastDot);
386 return fullPath.substring (lastSlash);
412 || (firstChar != 0 && path.
text[1] ==
':');
437 if (secondChar ==
'.')
441 if (thirdChar ==
separator || thirdChar == 0)
456 else if (secondChar ==
separator || secondChar == 0)
484 if (bytes == 1) { suffix =
" byte"; }
485 else if (bytes < 1024) { suffix =
" bytes"; }
486 else if (bytes < 1024 * 1024) { suffix =
" KB"; divisor = 1024.0; }
487 else if (bytes < 1024 * 1024 * 1024) { suffix =
" MB"; divisor = 1024.0 * 1024.0; }
488 else { suffix =
" GB"; divisor = 1024.0 * 1024.0 * 1024.0; }
490 return (divisor > 0 ?
String (bytes / divisor, 1) :
String (bytes)) + suffix;
501 if (parentDir == *
this)
522 if (parentDir == *
this)
562 return in.openedOk() &&
getSize() == (
int64)
in.readIntoMemoryBlock (destBlock);
571 return in.openedOk() ?
in.readEntireStreamAsString()
582 const int whatToLookFor,
583 const bool searchRecursively,
584 const String& wildCardPattern)
const
590 results.push_back (di.getFile());
619 bool putNumbersInBrackets)
const
626 String prefix (suggestedPrefix);
631 putNumbersInBrackets =
true;
637 && closeBracks > openBracks
641 prefix = prefix.
substring (0, openBracks);
649 if (putNumbersInBrackets)
651 newName <<
'(' << ++number <<
')';
663 }
while (
f.exists());
676 putNumbersInBrackets);
682 const int indexOfDot =
fullPath.lastIndexOfChar (
'.');
685 return fullPath.substring (indexOfDot);
701 if (
fullPath.endsWithIgnoreCase (possibleSuffix))
703 if (possibleSuffix.
text[0] ==
'.')
706 const int dotPos =
fullPath.length() - possibleSuffix.
length() - 1;
738 return fin.release();
753 const size_t numberOfBytes)
const
755 wassert (((ssize_t) numberOfBytes) >= 0);
757 if (numberOfBytes == 0)
761 return out.openedOk() &&
out.write (dataToAppend, numberOfBytes);
765 const size_t numberOfBytes)
const
767 if (numberOfBytes == 0)
776 const bool asUnicode,
777 const bool writeUnicodeHeaderBytes)
const
782 out.writeText (
text, asUnicode, writeUnicodeHeaderBytes);
787 const bool asUnicode,
788 const bool writeUnicodeHeaderBytes)
const
804 if (in1.openedOk() && in2.
openedOk())
806 const int bufferSize = 4096;
814 const int num1 = in1.read (buffer1, bufferSize);
815 const int num2 = in2.
read (buffer2, bufferSize);
823 if (memcmp (buffer1, buffer2, (
size_t) num1) != 0)
838 if (
s.isNotEmpty() &&
s[1] ==
':')
840 start =
s.substring (0, 2);
844 return start +
s.removeCharacters (
"\"#@,;:<>*^|?")
845 .substring (0, 1024);
852 const int maxLength = 128;
853 const int len =
s.length();
857 const int lastDot =
s.lastIndexOfChar (
'.');
859 if (lastDot >
jmax (0, len - 12))
861 s =
s.substring (0, maxLength - (len - lastDot))
862 +
s.substring (lastDot);
866 s =
s.substring (0, maxLength);
902 int commonBitLength = 0;
915 #if NAMES_ARE_CASE_SENSITIVE
927 thisPathAfterCommon = thisPathIter;
928 dirPathAfterCommon = dirPathIter;
935 if (commonBitLength == 0 || (commonBitLength == 1 && thisPath[1] ==
separator))
940 if (numUpDirectoriesNeeded == 0)
941 return thisPathAfterCommon;
948 s.appendCharPointer (thisPathAfterCommon);
967 if (linkFileToCreate.
exists())
973 if (overwriteExisting)
978 carla_stderr(
"File::createSymbolicLink failed, unsupported");
988namespace WindowsFileHelpers
992 return GetFileAttributesW (path.toUTF16().c_str());
997#ifdef CARLA_PROPER_CPP11_SUPPORT
1004 File getSpecialFolderPath (
int type)
1008 if (SHGetSpecialFolderPathW (
nullptr, wpath,
type,
FALSE))
1012 if (WideCharToMultiByte (CP_UTF8, 0, wpath, -1, apath, numElementsInArray (apath),
nullptr,
nullptr))
1013 return File (String (apath));
1019 File getModuleFileName (
HINSTANCE moduleHandle)
1024 GetModuleFileNameW (moduleHandle, wdest, (
DWORD) numElementsInArray (wdest));
1026 if (WideCharToMultiByte (CP_UTF8, 0, wdest, -1, adest, numElementsInArray (adest),
nullptr,
nullptr))
1027 return File (String (adest));
1051 && (WindowsFileHelpers::getAtts (
fullPath) & FILE_ATTRIBUTE_DIRECTORY) == 0;
1065 || (attr & FILE_ATTRIBUTE_DIRECTORY) != 0
1066 || (attr & FILE_ATTRIBUTE_READONLY) == 0;
1071 WIN32_FILE_ATTRIBUTE_DATA attributes;
1073 if (GetFileAttributesExW (
fullPath.toUTF16().c_str(), GetFileExInfoStandard, &attributes))
1074 return (((
int64) attributes.nFileSizeHigh) << 32) | attributes.nFileSizeLow;
1081 using namespace WindowsFileHelpers;
1082 WIN32_FILE_ATTRIBUTE_DATA attributes;
1084 if (GetFileAttributesExW (
fullPath.toUTF16().c_str(), GetFileExInfoStandard, &attributes))
1086 modificationTime = fileTimeToTime (&attributes.ftLastWriteTime);
1087 creationTime = fileTimeToTime (&attributes.ftCreationTime);
1088 accessTime = fileTimeToTime (&attributes.ftLastAccessTime);
1092 creationTime = accessTime = modificationTime = 0;
1102 : DeleteFileW (
fullPath.toUTF16().c_str()) != 0;
1122 void* lpExclude = 0;
1123 void* lpReserved = 0;
1127 0, REPLACEFILE_IGNORE_MERGE_ERRORS, lpExclude, lpReserved) != 0;
1132 return CreateDirectoryW (fileName.toUTF16().c_str(), 0) ?
Result::ok()
1133 : getResultForLastError();
1143 if (WideCharToMultiByte (CP_UTF8, 0, wdest, -1, adest,
numElementsInArray (adest),
nullptr,
nullptr))
1144 return File (String (adest));
1156 return (GetFileAttributesW (
fullPath.toUTF16().c_str()) & FILE_ATTRIBUTE_REPARSE_POINT) != 0;
1166 csidlType = CSIDL_PROFILE;
1176 if (WideCharToMultiByte (CP_UTF8, 0, wdest, -1, adest,
numElementsInArray (adest),
nullptr,
nullptr))
1177 return File (String (adest));
1183 return WindowsFileHelpers::getModuleFileName (water::getCurrentModuleInstanceHandle());
1186 return WindowsFileHelpers::getModuleFileName (
nullptr);
1189 csidlType = CSIDL_APPDATA;
1193 csidlType = CSIDL_PROGRAM_FILES;
1197 csidlType = CSIDL_PROGRAM_FILES_COMMON;
1201 csidlType = CSIDL_MYDOCUMENTS;
1209 return WindowsFileHelpers::getSpecialFolderPath (csidlType);
1217 : directoryWithWildCard (directory.getFullPathName().isNotEmpty() ? File::addTrailingSeparator (directory.getFullPathName()) +
wildCard : String()),
1218 handle (INVALID_HANDLE_VALUE)
1224 if (handle != INVALID_HANDLE_VALUE)
1228 bool next (String& filenameFound,
bool*
const isDir,
int64*
const fileSize,
bool*
const isReadOnly)
1230 using namespace WindowsFileHelpers;
1231 WIN32_FIND_DATAW findData;
1233 if (handle == INVALID_HANDLE_VALUE)
1235 handle = FindFirstFileW (directoryWithWildCard.toUTF16().c_str(), &findData);
1237 if (handle == INVALID_HANDLE_VALUE)
1242 if (FindNextFileW (handle, &findData) == 0)
1248 if (WideCharToMultiByte (CP_UTF8, 0, findData.cFileName, -1, apath,
numElementsInArray (apath),
nullptr,
nullptr))
1249 filenameFound = apath;
1251 if (isDir !=
nullptr) *isDir = ((findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0);
1252 if (isReadOnly !=
nullptr) *isReadOnly = ((findData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0);
1253 if (fileSize !=
nullptr) *fileSize = findData.nFileSizeLow + (((
int64) findData.nFileSizeHigh) << 32);
1259 const String directoryWithWildCard;
1269 typedef struct stat64 water_statStruct;
1270 #define WATER_STAT stat64
1272 typedef struct stat water_statStruct;
1273 #define WATER_STAT stat
1276 bool water_stat (
const String& fileName, water_statStruct&
info)
1282 void updateStatInfoForFile (
const String& path,
bool*
const isDir,
int64*
const fileSize,
bool*
const isReadOnly)
1284 if (isDir !=
nullptr || fileSize !=
nullptr)
1286 water_statStruct
info;
1287 const bool statOk = water_stat (path,
info);
1289 if (isDir !=
nullptr) *isDir = statOk && ((
info.st_mode & S_IFDIR) != 0);
1290 if (fileSize !=
nullptr) *fileSize = statOk ? (
int64)
info.st_size : 0;
1293 if (isReadOnly !=
nullptr)
1294 *isReadOnly = access (path.
toUTF8(), W_OK) != 0;
1299 return value == -1 ? getResultForErrno() :
Result::ok();
1308 water_statStruct
info;
1317 && access (
fullPath.toUTF8(), F_OK) == 0;
1328 return access (
fullPath.toUTF8(), W_OK) == 0;
1338 water_statStruct
info;
1342 modificationTime = (
int64)
info.st_mtime * 1000;
1343 accessTime = (
int64)
info.st_atime * 1000;
1344 creationTime = (
int64)
info.st_ctime * 1000;
1348 modificationTime = accessTime = creationTime = 0;
1354 water_statStruct
info;
1364 return rmdir (
fullPath.toUTF8()) == 0;
1366 return remove (
fullPath.toUTF8()) == 0;
1392 return getResultForReturnValue (mkdir (fileName.
toUTF8(), 0777));
1399 char localBuffer [1024];
1400 char* cwd = getcwd (localBuffer,
sizeof (localBuffer) - 1);
1402 size_t bufferSize = 4096;
1403 while (cwd ==
nullptr && errno == ERANGE)
1407 cwd = getcwd (heapBuffer, bufferSize - 1);
1424 static String getFilename()
1428 dladdr (localSymbol, &exeInfo);
1440 if (
const char*
const envpath =
::getenv (
"PATH"))
1444 for (
int i=paths.
size(); --
i>=0;)
1464static NSString* getFileLink (
const String& path)
1466 return [[NSFileManager defaultManager] destinationOfSymbolicLinkAtPath: waterStringToNS (path)
error: nil];
1471 return getFileLink (
fullPath) != nil;
1476 if (NSString* dest = getFileLink (
fullPath))
1484 const AutoNSAutoreleasePool arpool;
1486 NSFileManager* fm = [NSFileManager defaultManager];
1488 return [fm fileExistsAtPath: waterStringToNS (
fullPath)]
1489 #if defined (MAC_OS_X_VERSION_10_6) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
1490 && [fm copyItemAtPath: waterStringToNS (
fullPath)
1494 && [fm copyPath: waterStringToNS (
fullPath)
1502 const AutoNSAutoreleasePool arpool;
1509 resultPath = nsStringToWater (NSHomeDirectory());
1515 tmp.createDirectory();
1516 return File (tmp.getFullPathName());
1524 unsigned int size = 8192;
1528 _NSGetExecutablePath (
buffer.getData(), &
size);
1538 return File (resultPath.convertToPrecomposedUnicode());
1546 Pimpl (
const File& directory,
const String& wildCard_)
1547 :
parentDir (File::addTrailingSeparator (directory.getFullPathName())),
1551 const AutoNSAutoreleasePool arpool;
1553 enumerator = [[[NSFileManager defaultManager] enumeratorAtPath: waterStringToNS (directory.
getFullPathName())] retain];
1558 [enumerator release];
1561 bool next (String& filenameFound,
bool*
const isDir,
int64*
const fileSize,
bool*
const isReadOnly)
1563 const AutoNSAutoreleasePool arpool;
1565 const char* wildcardUTF8 =
nullptr;
1570 if (enumerator == nil || (
file = [enumerator nextObject]) == nil)
1573 [enumerator skipDescendents];
1574 filenameFound = nsStringToWater (
file).convertToPrecomposedUnicode();
1576 if (wildcardUTF8 ==
nullptr)
1579 if (fnmatch (wildcardUTF8, filenameFound.
toUTF8(), FNM_CASEFOLD) != 0)
1582 const String fullPath (
parentDir + filenameFound);
1583 updateStatInfoForFile (fullPath, isDir, fileSize, isReadOnly);
1591 NSDirectoryEnumerator* enumerator;
1601 const int numBytes = (
int) readlink (
file.toRawUTF8(), buffer, 8192);
1629 if (
out.failedToOpen())
1648 if (
const char* homeDir =
getenv (
"HOME"))
1651 if (
struct passwd*
const pw = getpwuid (getuid()))
1659 File tmp (
"/var/tmp");
1677 const File f (
"/proc/self/exe");
1693 :
parentDir (
File::addTrailingSeparator (directory.getFullPathName())),
1694 wildCard (wc),
dir (opendir (directory.getFullPathName().toUTF8()))
1704 bool next (
String& filenameFound,
bool*
const isDir,
int64*
const fileSize,
bool*
const isReadOnly)
1708 const char* wildcardUTF8 =
nullptr;
1712 struct dirent*
const de = readdir (
dir);
1717 if (wildcardUTF8 ==
nullptr)
1720 if (fnmatch (wildcardUTF8, de->d_name, FNM_CASEFOLD) == 0)
1724 updateStatInfoForFile (
parentDir + filenameFound, isDir, fileSize, isReadOnly);
1752 return pimpl->next (filenameFound, isDir, fileSize, isReadOnly);
#define CARLA_SAFE_ASSERT_RETURN(cond, ret)
Definition CarlaDefines.h:190
unsigned int uint
Definition CarlaDefines.h:327
#define CARLA_DECLARE_NON_COPYABLE(ClassName)
Definition CarlaDefines.h:242
#define noexcept
Definition DistrhoDefines.h:72
#define nullptr
Definition DistrhoDefines.h:75
#define WATER_STAT
Definition File.cpp:1273
uint8_t a
Definition Spc_Cpu.h:141
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
int64_t int64
Definition basics.h:91
static File getCurrentWorkingDirectory()
Definition File.cpp:1395
const String & getFullPathName() const noexcept
Definition File.h:152
CharPointer_UTF8 toUTF8() const
Definition String.cpp:1906
bool isNotEmpty() const noexcept
Definition String.h:244
Definition CharPointer_UTF8.h:45
int indexOf(const CharPointer stringToFind) const noexcept
Definition CharPointer_UTF8.h:441
water_uchar getAndAdvance() noexcept
Definition CharPointer_UTF8.h:157
static bool isDigit(char character) noexcept
Definition CharacterFunctions.cpp:73
static water_uchar toLowerCase(water_uchar character) noexcept
Definition CharacterFunctions.cpp:39
Pimpl(const File &directory, const String &wc)
Definition File.cpp:1692
bool next(String &filenameFound, bool *const isDir, int64 *const fileSize, bool *const isReadOnly)
Definition File.cpp:1704
String wildCard
Definition File.cpp:1735
DIR * dir
Definition File.cpp:1736
~Pimpl()
Definition File.cpp:1698
String parentDir
Definition File.cpp:1735
~NativeIterator()
Definition File.cpp:1748
bool next(String &filenameFound, bool *isDirectory, int64 *fileSize, bool *isReadOnly)
Definition File.cpp:1750
CarlaScopedPointer< Pimpl > pimpl
Definition DirectoryIterator.h:134
NativeIterator(const File &directory, const String &wildCard)
Definition File.cpp:1743
friend class DirectoryIterator
Definition DirectoryIterator.h:133
Definition DirectoryIterator.h:50
bool next()
Definition DirectoryIterator.cpp:70
bool copyInternal(const File &) const
Definition File.cpp:1620
static const water_uchar separator
Definition File.h:691
bool hasFileExtension(StringRef extensionToTest) const
Definition File.cpp:690
bool hasIdenticalContentTo(const File &other) const
Definition File.cpp:795
bool existsAsFile() const
Definition File.cpp:1320
bool copyDirectoryTo(const File &newDirectory) const
Definition File.cpp:314
int64 getLastAccessTime() const
Definition File.cpp:541
File & operator=(const String &newAbsolutePath)
Definition File.cpp:77
File withFileExtension(StringRef newExtension) const
Definition File.cpp:715
static File createFileWithoutCheckingPath(const String &absolutePath) noexcept
Definition File.cpp:65
static File getCurrentWorkingDirectory()
Definition File.cpp:1395
static File createTempFile(StringRef fileNameEnding)
Definition File.cpp:953
bool deleteFile() const
Definition File.cpp:1358
int64 getCreationTime() const
Definition File.cpp:548
bool moveFileTo(const File &targetLocation) const
Definition File.cpp:276
uint getNumberOfChildFiles(int whatToLookFor, const String &wildCardPattern="*") const
Definition File.cpp:597
String fullPath
Definition File.h:767
String getFileExtension() const
Definition File.cpp:680
String getRelativePathFrom(const File &directoryToBeRelativeTo) const
Definition File.cpp:892
int64 getLastModificationTime() const
Definition File.cpp:534
String getPathUpToLastSlash() const
Definition File.cpp:352
File() noexcept
Definition File.cpp:55
bool operator<(const File &) const
Definition File.cpp:256
bool replaceWithData(const void *dataToWrite, size_t numberOfBytes) const
Definition File.cpp:764
static String parseAbsolutePath(const String &)
Definition File.cpp:138
static bool isAbsolutePath(StringRef path)
Definition File.cpp:406
@ findDirectories
Definition File.h:461
@ findFiles
Definition File.h:462
@ findFilesAndDirectories
Definition File.h:463
static String createLegalFileName(const String &fileNameToFix)
Definition File.cpp:848
static const String separatorString
Definition File.h:696
void getFileTimesInternal(int64 &m, int64 &a, int64 &c) const
Definition File.cpp:1336
FileInputStream * createInputStream() const
Definition File.cpp:733
File getNonexistentSibling(bool putNumbersInBrackets=true) const
Definition File.cpp:669
bool deleteRecursively() const
Definition File.cpp:260
bool isAChildOf(const File &potentialParentDirectory) const
Definition File.cpp:389
bool moveInternal(const File &) const
Definition File.cpp:1369
bool appendText(const String &textToAppend, bool asUnicode=false, bool writeUnicodeHeaderBytes=false) const
Definition File.cpp:775
SpecialLocationType
Definition File.h:633
@ winProgramFiles
Definition File.h:655
@ currentExecutableFile
Definition File.h:649
@ userHomeDirectory
Definition File.h:635
@ tempDirectory
Definition File.h:640
@ hostApplicationPath
Definition File.h:652
@ winMyDocuments
Definition File.h:655
@ winAppData
Definition File.h:655
@ winCommonProgramFiles
Definition File.h:655
static String addTrailingSeparator(const String &path)
Definition File.cpp:225
void readLines(StringArray &destLines) const
Definition File.cpp:575
Result create() const
Definition File.cpp:494
bool loadFileAsData(MemoryBlock &result) const
Definition File.cpp:556
Result createDirectory() const
Definition File.cpp:515
File getChildFile(StringRef relativeOrAbsolutePath) const
Definition File.cpp:418
bool setAsCurrentWorkingDirectory() const
Definition File.cpp:1414
bool replaceWithText(const String &textToWrite, bool asUnicode=false, bool writeUnicodeHeaderBytes=false) const
Definition File.cpp:786
String getFileNameWithoutExtension() const
Definition File.cpp:378
bool containsSubDirectories() const
Definition File.cpp:607
bool isNotNull() const
Definition File.cpp:94
bool replaceFileIn(const File &targetLocation) const
Definition File.cpp:299
bool isNull() const
Definition File.cpp:89
bool createSymbolicLink(const File &linkFileToCreate, bool overwriteExisting) const
Definition File.cpp:965
bool exists() const
Definition File.cpp:1314
File getLinkedTarget() const
Definition File.cpp:1610
static bool areFileNamesCaseSensitive()
Definition File.cpp:236
bool isDirectory() const
Definition File.cpp:1306
const String & getFullPathName() const noexcept
Definition File.h:152
int64 getSize() const
Definition File.cpp:1352
bool operator>(const File &) const
Definition File.cpp:257
bool operator==(const File &) const
Definition File.cpp:254
FileOutputStream * createOutputStream(size_t bufferSize=0x8000) const
Definition File.cpp:743
String getFileName() const
Definition File.cpp:373
bool operator!=(const File &) const
Definition File.cpp:255
bool copyFileTo(const File &targetLocation) const
Definition File.cpp:293
static String descriptionOfSizeInBytes(int64 bytes)
Definition File.cpp:479
File getSiblingFile(StringRef siblingFileName) const
Definition File.cpp:473
bool replaceInternal(const File &) const
Definition File.cpp:1385
String loadFileAsString() const
Definition File.cpp:565
static String createLegalPathName(const String &pathNameToFix)
Definition File.cpp:833
Result createDirectoryInternal(const String &) const
Definition File.cpp:1390
File getParentDirectory() const
Definition File.cpp:365
bool appendData(const void *dataToAppend, size_t numberOfBytes) const
Definition File.cpp:752
static File getSpecialLocation(const SpecialLocationType type)
Definition File.cpp:1642
File getNonexistentChildFile(const String &prefix, const String &suffix, bool putNumbersInBrackets=true) const
Definition File.cpp:617
bool isSymbolicLink() const
Definition File.cpp:1605
uint findChildFiles(std::vector< File > &results, int whatToLookFor, bool searchRecursively, const String &wildCardPattern="*") const
Definition File.cpp:581
bool hasWriteAccess() const
Definition File.cpp:1325
Definition FileOutputStream.h:42
const Result & getStatus() const noexcept
Definition FileOutputStream.h:77
Definition HeapBlock.h:77
bool malloc(const size_t newNumElements, const size_t elementSize=sizeof(ElementType)) noexcept
Definition HeapBlock.h:171
Definition MemoryBlock.h:39
static Random & getSystemRandom() noexcept
Definition Random.cpp:66
static Result ok() noexcept
Definition Result.h:68
static Result fail(const std::string &errorMessage) noexcept
Definition Result.cpp:58
Definition StringArray.h:41
int size() const noexcept
Definition StringArray.h:97
static StringArray fromTokens(StringRef stringToTokenise, bool preserveQuotedStrings)
Definition StringArray.cpp:369
String joinIntoString(StringRef separatorString, int startIndex=0, int numberOfElements=-1) const
Definition StringArray.cpp:270
int addTokens(StringRef stringToTokenise, bool preserveQuotedStrings)
Definition StringArray.cpp:311
int addLines(StringRef stringToBreakUp)
Definition StringArray.cpp:340
void remove(int index)
Definition StringArray.cpp:181
void removeRange(int startIndex, int numberToRemove)
Definition StringArray.cpp:202
String fromFirstOccurrenceOf(StringRef substringToStartFrom, bool includeSubStringInResult, bool ignoreCase) const
Definition String.cpp:1439
bool startsWithChar(water_uchar character) const noexcept
Definition String.cpp:1276
String trimEnd() const
Definition String.cpp:1572
bool containsChar(water_uchar character) const noexcept
Definition String.cpp:921
static String toHexString(int number)
Definition String.cpp:1830
String upToFirstOccurrenceOf(StringRef substringToEndWith, bool includeSubStringInResult, bool ignoreCase) const
Definition String.cpp:1463
CharPointer_UTF8 toUTF8() const
Definition String.cpp:1906
bool isNotEmpty() const noexcept
Definition String.h:244
int length() const noexcept
Definition String.cpp:451
String substring(int startIndex, int endIndex) const
Definition String.cpp:1373
bool endsWithChar(water_uchar character) const noexcept
Definition String.cpp:1284
String trim() const
Definition String.cpp:1540
static String repeatedString(StringRef stringToRepeat, int numberOfTimesToRepeat)
Definition String.cpp:1028
void appendCharPointer(const CharPointer_UTF8 startOfTextToAppend, const CharPointer_UTF8 endOfTextToAppend)
Definition String.cpp:639
String dropLastCharacters(int numberToDrop) const
Definition String.cpp:1429
const char * toRawUTF8() const
Definition String.cpp:1925
int getIntValue() const noexcept
Definition String.cpp:1781
int lastIndexOfChar(water_uchar character) const noexcept
Definition String.cpp:776
water_uchar getLastCharacter() const noexcept
Definition String.cpp:1368
bool containsOnly(StringRef charactersItMightContain) const noexcept
Definition String.cpp:1681
static String fromUTF8(const char *utf8buffer, int bufferSizeBytes=-1)
Definition String.cpp:1961
bool isEmpty() const noexcept
Definition String.h:238
bool contains(StringRef text) const noexcept
Definition String.cpp:916
String removeCharacters(StringRef charactersToRemove) const
Definition String.cpp:1642
CharPointer_UTF8 getCharPointer() const noexcept
Definition String.h:982
Definition StringRef.h:67
bool isEmpty() const noexcept
Definition StringRef.h:99
int length() const noexcept
Definition StringRef.h:103
CharPointer_UTF8 text
Definition StringRef.h:120
bool isNotEmpty() const noexcept
Definition StringRef.h:101
Definition TemporaryFile.h:73
const File & getFile() const noexcept
Definition TemporaryFile.h:134
@ useHiddenFile
Definition TemporaryFile.h:78
bool overwriteTargetFileWithTemporary() const
Definition TemporaryFile.cpp:82
unsigned * m
Definition inflate.c:1559
struct huft * t
Definition inflate.c:943
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned f
Definition inflate.c:1572
static char filename[]
Definition features.c:5
static void c2(register WDL_FFT_COMPLEX *a)
Definition fft.c:270
#define _(msgid)
Definition getopt.c:86
static PuglViewHint int value
Definition pugl.h:1708
virtual ASIOError start()=0
struct backing_store_struct * info
Definition jmemsys.h:183
#define static_wassert(expression)
#define wassert(expression)
#define INVALID_FILE_ATTRIBUTES
Definition juce_win32_Files.cpp:27
float in
Definition lilv_test.c:1460
float out
Definition lilv_test.c:1461
JOCTET * buffer
Definition juce_JPEGLoader.cpp:302
Definition AudioSampleBuffer.h:33
File water_getExecutableFile()
Definition File.cpp:1420
long long int64
Definition water.h:100
static String getLinkedFile(const String &file)
Definition File.cpp:1596
static String removeEllipsis(const String &path)
Definition File.cpp:100
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
static int countNumberOfSeparators(CharPointer_UTF8 s)
Definition File.cpp:874
static int compareFilenames(const String &name1, const String &name2) noexcept
Definition File.cpp:245
size_t numElementsInArray(Type(&array)[N])
Definition MathsFunctions.h:257
uint32 water_uchar
Definition CharacterFunctions.h:38
Definition swell-types.h:242
const char * text
Definition swell-functions.h:167
void * HINSTANCE
Definition swell-types.h:212
unsigned int DWORD
Definition swell-types.h:164
void * HANDLE
Definition swell-types.h:212
char CHAR
Definition swell-types.h:188
Definition swell-types.h:196
unsigned long long QuadPart
Definition swell-types.h:197
uch * p
Definition crypt.c:594
while passwd
Definition crypt.c:195
return c
Definition crypt.c:175
int r
Definition crypt.c:458
void handler(int signal)
Definition fileio.c:1632
#define dirent
Definition unix.c:70
closedir((DIR *) G.wild_dir)
typedef int(UZ_EXP MsgFn)()
#define FALSE
Definition unzpriv.h:1298
struct zdirent * file
Definition win32.c:1500