int FileIgnore( DIRINFO PASPTR *dir, int fattr ) /*********************************************/ { int ignore_matches; char *p; int len; char far *envname; char *name; if( fattr != 0 && !( dir->attrFile & fattr ) ) return( 1 ); name = dir->achName; if( PathCurr != 0 ) { #ifdef DOS envname = ".COM.EXE.BAT"; #else envname = ".COM.EXE.CMD.BAT"; #endif } else { envname = GetEnv( MATCH_NAME, sizeof( MATCH_NAME ) - 1 ); if( envname == (char far *)0 ) return( FALSE ); } if( *envname == '~' ) { ++envname; ignore_matches = TRUE; } else { ignore_matches = FALSE; } while( !_null( *name ) && *name != '.' ) ++name; #ifndef DOS if( *name == '.' ) { /* consider: a.b.c .c is the extension */ name += strlen( name ) - 1; while( *name != '.' ) --name; } #endif len = 0; for( p = name; !_null( *p ); ++p ) ++len; for( ;; ) { for( ;; ) { if( *envname == '.' ) break; if( _null( *envname ) ) return( !ignore_matches ); ++envname; } if( len == 0 ) { if( envname[1] == '.' || _null( envname[1] ) ) { return( ignore_matches ); } } else { if( Equal( envname, name, len ) ) { if( _null( envname[len] ) || envname[len] == '.' ) { return( ignore_matches ); } } } ++envname; } }
/* * Unsigned integer, possibly in hexadecimal. */ explicit CarlaString(const unsigned int value, const bool hexadecimal = false) noexcept : fBuffer(_null()), fBufferLen(0) { char strBuf[0xff+1]; std::snprintf(strBuf, 0xff, hexadecimal ? "0x%x" : "%u", value); strBuf[0xff] = '\0'; _dup(strBuf); }
/* * Integer. */ explicit CarlaString(const int value) noexcept : fBuffer(_null()), fBufferLen(0) { char strBuf[0xff+1]; std::snprintf(strBuf, 0xff, "%d", value); strBuf[0xff] = '\0'; _dup(strBuf); }
/* * Simple character. */ explicit CarlaString(const char c) noexcept : fBuffer(_null()), fBufferLen(0) { char ch[2]; ch[0] = c; ch[1] = '\0'; _dup(ch); }
/* * Simple const char string. */ explicit CarlaString(const char* const strBuf) noexcept : fBuffer(_null()), fBufferLen(0) { _dup(strBuf); }
/* * Empty string. */ explicit CarlaString() noexcept : fBuffer(_null()), fBufferLen(0) {}
/* * Create string from another string. */ CarlaString(const CarlaString& str) noexcept : fBuffer(_null()), fBufferLen(0) { _dup(str.fBuffer); }