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

Function EditLoadFile

src/Edit.c:1100–1295  ·  view source on GitHub ↗

============================================================================= EditLoadFile()

Source from the content-addressed store, hash-verified

1098// EditLoadFile()
1099//
1100BOOL EditLoadFile (
1101 HWND hwnd,
1102 LPCWSTR pszFile,
1103 BOOL bSkipEncodingDetection,
1104 int *iEncoding,
1105 int *iEOLMode,
1106 BOOL *pbUnicodeErr,
1107 BOOL *pbFileTooBig )
1108{
1109 HANDLE hFile;
1110 DWORD dwFileSize;
1111 DWORD dwFileSizeLimit;
1112 DWORD dwBufSize;
1113 BOOL bReadSuccess;
1114 char *lpData;
1115 DWORD cbData;
1116 //char *cp;
1117 int _iDefaultEncoding;
1118 BOOL bBOM;
1119 BOOL bReverse = FALSE;
1120 *pbUnicodeErr = FALSE;
1121 *pbFileTooBig = FALSE;
1122 hFile = CreateFile ( pszFile,
1123 GENERIC_READ,
1124 FILE_SHARE_READ | FILE_SHARE_WRITE,
1125 NULL,
1126 OPEN_EXISTING,
1127 FILE_ATTRIBUTE_NORMAL,
1128 NULL );
1129 dwLastIOError = GetLastError();
1130 if ( hFile == INVALID_HANDLE_VALUE ) {
1131 iSrcEncoding = -1;
1132 iWeakSrcEncoding = -1;
1133 return FALSE;
1134 }
1135 // calculate buffer limit
1136 dwFileSize = GetFileSize ( hFile, NULL );
1137 dwBufSize = dwFileSize + 10;
1138 // Check if a warning message should be displayed for large files
1139 dwFileSizeLimit = IniGetInt ( L"Settings2", L"FileLoadWarningMB", 1 );
1140 if ( dwFileSizeLimit != 0 && dwFileSizeLimit * 1024 * 1024 < dwFileSize ) {
1141 if ( InfoBox ( MBYESNO, L"MsgFileSizeWarning", IDS_WARNLOADBIGFILE ) != IDYES ) {
1142 CloseHandle ( hFile );
1143 *pbFileTooBig = TRUE;
1144 iSrcEncoding = -1;
1145 iWeakSrcEncoding = -1;
1146 return FALSE;
1147 }
1148 }
1149 lpData = GlobalAlloc ( GPTR, dwBufSize );
1150 bReadSuccess = ReadFile ( hFile, lpData, ( DWORD ) GlobalSize ( lpData ) - 2, &cbData, NULL );
1151 dwLastIOError = GetLastError();
1152 CloseHandle ( hFile );
1153 if ( !bReadSuccess ) {
1154 GlobalFree ( lpData );
1155 iSrcEncoding = -1;
1156 iWeakSrcEncoding = -1;
1157 return FALSE;

Callers 1

FileIOFunction · 0.85

Calls 13

InfoBoxFunction · 0.85
Encoding_IsValidFunction · 0.85
FileVars_InitFunction · 0.85
EditSetNewTextFunction · 0.85
IsUnicodeFunction · 0.85
EditDetectEOLModeFunction · 0.85
FileVars_IsUTF8Function · 0.85
IsUTF8Function · 0.85
UTF8_mbslen_bytesFunction · 0.85
UTF8_mbslenFunction · 0.85
FileVars_IsNonUTF8Function · 0.85
FileVars_GetEncodingFunction · 0.85

Tested by

no test coverage detected