MCPcopy Create free account
hub / github.com/ProgerXP/Notepad2e / PathAbsoluteFromApp

Function PathAbsoluteFromApp

src/Helpers.c:928–957  ·  view source on GitHub ↗

============================================================================= PathAbsoluteFromApp()

Source from the content-addressed store, hash-verified

926// PathAbsoluteFromApp()
927//
928void PathAbsoluteFromApp ( LPWSTR lpszSrc, LPWSTR lpszDest, int cchDest, BOOL bExpandEnv )
929{
930 WCHAR wchPath[MAX_PATH];
931 WCHAR wchResult[MAX_PATH];
932 if ( StrCmpNI ( lpszSrc, L"%CSIDL:MYDOCUMENTS%", CSTRLEN ( "%CSIDL:MYDOCUMENTS%" ) ) == 0 ) {
933 SHGetFolderPath ( NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, wchPath );
934 PathAppend ( wchPath, lpszSrc + CSTRLEN ( "%CSIDL:MYDOCUMENTS%" ) );
935 } else {
936 lstrcpyn ( wchPath, lpszSrc, COUNTOF ( wchPath ) );
937 }
938 if ( bExpandEnv ) {
939 ExpandEnvironmentStringsEx ( wchPath, COUNTOF ( wchPath ) );
940 }
941 if ( PathIsRelative ( wchPath ) ) {
942 GetModuleFileName ( NULL, wchResult, COUNTOF ( wchResult ) );
943 PathRemoveFileSpec ( wchResult );
944 PathAppend ( wchResult, wchPath );
945 } else {
946 lstrcpyn ( wchResult, wchPath, COUNTOF ( wchResult ) );
947 }
948 PathCanonicalizeEx ( wchResult );
949 if ( PathGetDriveNumber ( wchResult ) != -1 ) {
950 CharUpperBuff ( wchResult, 1 );
951 }
952 if ( lpszDest == NULL || lpszSrc == lpszDest ) {
953 lstrcpyn ( lpszSrc, wchResult, ( cchDest == 0 ) ? MAX_PATH : cchDest );
954 } else {
955 lstrcpyn ( lpszDest, wchResult, ( cchDest == 0 ) ? MAX_PATH : cchDest );
956 }
957}
958
959
960///////////////////////////////////////////////////////////////////////////////

Callers 6

MRU_AddFileFunction · 0.85
MRU_DeleteFileFromStoreFunction · 0.85
MRU_MergeSaveFunction · 0.85
HL_OpenMRU_LastFunction · 0.85
FileMRUDlgProcFunction · 0.85
LoadSettingsFunction · 0.85

Calls 2

PathCanonicalizeExFunction · 0.85

Tested by

no test coverage detected