{"payload":{"allShortcutsEnabled":false,"fileTree":{"extras":{"items":[{"name":"PhysFS.NET","path":"extras/PhysFS.NET","contentType":"directory"},{"name":"physfs_rb","path":"extras/physfs_rb","contentType":"directory"},{"name":".cvsignore","path":"extras/.cvsignore","contentType":"file"},{"name":"Makefile.am","path":"extras/Makefile.am","contentType":"file"},{"name":"abs-file.h","path":"extras/abs-file.h","contentType":"file"},{"name":"globbing.c","path":"extras/globbing.c","contentType":"file"},{"name":"globbing.h","path":"extras/globbing.h","contentType":"file"},{"name":"ignorecase.c","path":"extras/ignorecase.c","contentType":"file"},{"name":"ignorecase.h","path":"extras/ignorecase.h","contentType":"file"},{"name":"physfshttpd.c","path":"extras/physfshttpd.c","contentType":"file"},{"name":"physfsrwops.c","path":"extras/physfsrwops.c","contentType":"file"},{"name":"physfsrwops.h","path":"extras/physfsrwops.h","contentType":"file"}],"totalCount":12},"":{"items":[{"name":"PBProjects","path":"PBProjects","contentType":"directory"},{"name":"archivers","path":"archivers","contentType":"directory"},{"name":"debian","path":"debian","contentType":"directory"},{"name":"extras","path":"extras","contentType":"directory"},{"name":"platform","path":"platform","contentType":"directory"},{"name":"test","path":"test","contentType":"directory"},{"name":"zlib121","path":"zlib121","contentType":"directory"},{"name":".cvsignore","path":".cvsignore","contentType":"file"},{"name":"CHANGELOG","path":"CHANGELOG","contentType":"file"},{"name":"CREDITS","path":"CREDITS","contentType":"file"},{"name":"CWProjects.sitx","path":"CWProjects.sitx","contentType":"file"},{"name":"Doxyfile","path":"Doxyfile","contentType":"file"},{"name":"INSTALL","path":"INSTALL","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"Makefile.am.newautomake","path":"Makefile.am.newautomake","contentType":"file"},{"name":"Makefile.am.oldautomake","path":"Makefile.am.oldautomake","contentType":"file"},{"name":"TODO","path":"TODO","contentType":"file"},{"name":"acconfig.h","path":"acconfig.h","contentType":"file"},{"name":"bootstrap","path":"bootstrap","contentType":"file"},{"name":"configure.in","path":"configure.in","contentType":"file"},{"name":"makeos2.cmd","path":"makeos2.cmd","contentType":"file"},{"name":"physfs.c","path":"physfs.c","contentType":"file"},{"name":"physfs.dsp","path":"physfs.dsp","contentType":"file"},{"name":"physfs.h","path":"physfs.h","contentType":"file"},{"name":"physfs.spec.in","path":"physfs.spec.in","contentType":"file"},{"name":"physfs.vcproj","path":"physfs.vcproj","contentType":"file"},{"name":"physfs_byteorder.c","path":"physfs_byteorder.c","contentType":"file"},{"name":"physfs_internal.h","path":"physfs_internal.h","contentType":"file"},{"name":"physfs_static.dsp","path":"physfs_static.dsp","contentType":"file"},{"name":"test_physfs.dsp","path":"test_physfs.dsp","contentType":"file"},{"name":"test_physfs.vcproj","path":"test_physfs.vcproj","contentType":"file"},{"name":"zlib_license_change.txt","path":"zlib_license_change.txt","contentType":"file"}],"totalCount":32}},"fileTreeProcessingTime":12.356979,"foldersToFetch":[],"repo":{"id":381228368,"defaultBranch":"main","name":"physfs","ownerLogin":"icculus","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-06-29T03:33:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/673562?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"24c8651f7f4738f18b70c80187b8c313d97d5647","listCacheKey":"v0:1664568821.563049","canEdit":false,"refType":"tree","currentOid":"24c8651f7f4738f18b70c80187b8c313d97d5647"},"path":"extras/ignorecase.h","currentUser":null,"blob":{"rawLines":["/** \\file ignorecase.h */","","/**"," * \\mainpage PhysicsFS ignorecase"," *"," * This is an extension to PhysicsFS to let you handle files in a"," * case-insensitive manner, regardless of what sort of filesystem or"," * archive they reside in. It does this by enumerating directories as"," * needed and manually locating matching entries."," *"," * Please note that this brings with it some caveats:"," * - On filesystems that are case-insensitive to start with, such as those"," * used on Windows or MacOS, you are adding extra overhead."," * - On filesystems that are case-sensitive, you might select the wrong dir"," * or file (which brings security considerations and potential bugs). This"," * code favours exact case matches, but you will lose access to otherwise"," * duplicate filenames, or you might go down a wrong directory tree, etc."," * In practive, this is rarely a problem, but you need to be aware of it."," * - This doesn't do _anything_ with the write directory; you're on your"," * own for opening the right files for writing. You can sort of get around"," * this by adding your write directory to the search path, but then the"," * interpolated directory tree can screw you up even more."," *"," * This code should be considered an aid for legacy code. New development"," * shouldn't do dumbass things that require this aid in the first place. :)"," *"," * Usage: Set up PhysicsFS as you normally would, then use"," * PHYSFSEXT_locateCorrectCase() to get a \"correct\" pathname to pass to"," * functions like PHYSFS_openRead(), etc."," *"," * License: this code is public domain. I make no warranty that it is useful,"," * correct, harmless, or environmentally safe."," *"," * This particular file may be used however you like, including copying it"," * verbatim into a closed-source project, exploiting it commercially, and"," * removing any trace of my name from the source (although I hope you won't"," * do that). I welcome enhancements and corrections to this file, but I do"," * not require you to send me patches if you make changes. This code has"," * NO WARRANTY."," *"," * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license."," * Please see LICENSE in the root of the source tree."," *"," * \\author Ryan C. Gordon."," */","","","/**"," * \\fn int PHYSFSEXT_locateCorrectCase(char *buf)"," * \\brief Find an existing filename with matching case."," *"," * This function will look for a path/filename that matches the passed in"," * buffer. Each element of the buffer's path is checked for a"," * case-insensitive match. The buffer must specify a null-terminated string"," * in platform-independent notation."," *"," * Please note results may be skewed differently depending on whether symlinks"," * are enabled or not."," *"," * Each element of the buffer is overwritten with the actual case of an"," * existing match. If there is no match, the search aborts and reports an"," * error. Exact matches are favored over case-insensitive matches."," *"," * THIS IS RISKY. Please do not use this function for anything but crappy"," * legacy code."," *"," * \\param buf Buffer with null-terminated string of path/file to locate."," * This buffer will be modified by this function."," * \\return zero if match was found, -1 if the final element (the file itself)"," * is missing, -2 if one of the parent directories is missing."," */","int PHYSFSEXT_locateCorrectCase(char *buf);","","/* end of ignorecase.h ... */"],"stylingDirectives":[[{"start":0,"end":25,"cssClass":"pl-c"}],[],[{"start":0,"end":3,"cssClass":"pl-c"}],[{"start":0,"end":33,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":65,"cssClass":"pl-c"}],[{"start":0,"end":69,"cssClass":"pl-c"}],[{"start":0,"end":70,"cssClass":"pl-c"}],[{"start":0,"end":50,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":53,"cssClass":"pl-c"}],[{"start":0,"end":75,"cssClass":"pl-c"}],[{"start":0,"end":62,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":74,"cssClass":"pl-c"}],[{"start":0,"end":61,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":58,"cssClass":"pl-c"}],[{"start":0,"end":72,"cssClass":"pl-c"}],[{"start":0,"end":42,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":47,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":74,"cssClass":"pl-c"}],[{"start":0,"end":74,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":75,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":16,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":79,"cssClass":"pl-c"}],[{"start":0,"end":54,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":27,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[],[],[{"start":0,"end":3,"cssClass":"pl-c"}],[{"start":0,"end":49,"cssClass":"pl-c"}],[{"start":0,"end":55,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":62,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":37,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":78,"cssClass":"pl-c"}],[{"start":0,"end":23,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":71,"cssClass":"pl-c"}],[{"start":0,"end":74,"cssClass":"pl-c"}],[{"start":0,"end":67,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":73,"cssClass":"pl-c"}],[{"start":0,"end":16,"cssClass":"pl-c"}],[{"start":0,"end":2,"cssClass":"pl-c"}],[{"start":0,"end":74,"cssClass":"pl-c"}],[{"start":0,"end":63,"cssClass":"pl-c"}],[{"start":0,"end":78,"cssClass":"pl-c"}],[{"start":0,"end":76,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-smi"},{"start":4,"end":31,"cssClass":"pl-en"},{"start":32,"end":36,"cssClass":"pl-smi"},{"start":37,"end":38,"cssClass":"pl-c1"},{"start":38,"end":41,"cssClass":"pl-s1"}],[],[{"start":0,"end":29,"cssClass":"pl-c"}],[]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/icculus/physfs/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"ignorecase.h","displayUrl":"https://github.com/icculus/physfs/blame/24c8651f7f4738f18b70c80187b8c313d97d5647/extras/ignorecase.h?raw=true","headerInfo":{"blobSize":"3.31 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"873202e","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Ficculus%2Fphysfs%2Fblame%2F24c8651f7f4738f18b70c80187b8c313d97d5647%2Fextras%2Fignorecase.h","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"75","truncatedSloc":"70"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"C","languageID":41,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/icculus/physfs/blame/24c8651f7f4738f18b70c80187b8c313d97d5647/extras/ignorecase.h","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/icculus/physfs/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/icculus/physfs/raw/24c8651f7f4738f18b70c80187b8c313d97d5647/extras/ignorecase.h","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"PHYSFSEXT_locateCorrectCase","kind":"function","ident_start":3320,"ident_end":3347,"extent_start":3320,"extent_end":3358,"fully_qualified_name":"PHYSFSEXT_locateCorrectCase","ident_utf16":{"start":{"line_number":71,"utf16_col":4},"end":{"line_number":71,"utf16_col":31}},"extent_utf16":{"start":{"line_number":71,"utf16_col":4},"end":{"line_number":71,"utf16_col":42}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"blame":{"ranges":{"1":{"start":1,"oldStart":1,"end":37,"oldEnd":37,"commitOid":"753f624be4c18b8a3abca65adb735fed9a3e1f40","reblamePath":null},"38":{"start":38,"oldStart":38,"end":39,"oldEnd":39,"commitOid":"025aef8a15a4aed8ec050815d46f22d5ff4da7a7","reblamePath":"extras/ignorecase.h"},"40":{"start":40,"oldStart":39,"end":40,"oldEnd":39,"commitOid":"753f624be4c18b8a3abca65adb735fed9a3e1f40","reblamePath":null},"41":{"start":41,"oldStart":41,"end":42,"oldEnd":42,"commitOid":"025aef8a15a4aed8ec050815d46f22d5ff4da7a7","reblamePath":"extras/ignorecase.h"},"43":{"start":43,"oldStart":42,"end":75,"oldEnd":74,"commitOid":"753f624be4c18b8a3abca65adb735fed9a3e1f40","reblamePath":null}},"commits":{"753f624be4c18b8a3abca65adb735fed9a3e1f40":{"oid":"753f624be4c18b8a3abca65adb735fed9a3e1f40","message":"Initial add.","shortMessageHtmlLink":"Initial add.","authorAvatarUrl":"https://avatars.githubusercontent.com/u/673562?s=80&v=4","committerName":"Ryan C. Gordon","committerEmail":"icculus@icculus.org","committedDate":"2003-03-30T20:44:57.000Z","firstParentOid":"ef16139d8ba9eab22de0e1df8596baeb9a15ab08"},"025aef8a15a4aed8ec050815d46f22d5ff4da7a7":{"oid":"025aef8a15a4aed8ec050815d46f22d5ff4da7a7","message":"Switched to zlib license.","shortMessageHtmlLink":"Switched to zlib license.","authorAvatarUrl":"https://avatars.githubusercontent.com/u/673562?s=80&v=4","committerName":"Ryan C. Gordon","committerEmail":"icculus@icculus.org","committedDate":"2003-07-20T20:57:55.000Z","firstParentOid":"33be461bcbab688a9fca387eb14676b124d81fe7"}},"ignoreRevs":{"path":".git-blame-ignore-revs","present":false,"timedOut":null}},"csrf_tokens":{"/icculus/physfs/branches":{"post":"RB1Hb0s6Bbel4C8_rYCAvXZqb_W1tIjFlxXjioon6ABxgx5pbNgOChTT7TKD5sPqRYHfWQA379vOUCa5WqjJQw"},"/repos/preferences":{"post":"cV--xeswFLZABzBap6Z3WvecWNGUOKyKQh2T96JXicqEio_OQQnhjyTO6l_e9wDjD4RervI8iO4nzubhS5CdVw"}}},"title":"Blaming physfs/extras/ignorecase.h at 24c8651f7f4738f18b70c80187b8c313d97d5647 ยท icculus/physfs"}