openbsd-ports/editors/scite/patches/patch-src_SciTEBuffers_cxx
sturm a0dfeaa0c2 Initial import of scite 1.54
SciTE is short for SCIntillla based Text Editor. It is a very
flexible but still small and fast editor providing block folding,
syntax highlighting, regular expression search & replace etc.

WWW: http://www.scintilla.org/SciTE.html

from Joerg Sonnenberger <joerg@bec.de> with patches from Andrew Dalgleish
2003-08-14 18:27:25 +00:00

248 lines
8.4 KiB
Plaintext

$OpenBSD: patch-src_SciTEBuffers_cxx,v 1.1.1.1 2003/08/14 18:27:28 sturm Exp $
--- src/SciTEBuffers.cxx.orig 2003-08-14 01:31:52.000000000 +1000
+++ src/SciTEBuffers.cxx 2003-08-14 01:31:52.000000000 +1000
@@ -273,14 +273,14 @@ void SciTEBase::InitialiseBuffers() {
}
}
-static void EnsureEndsWithPathSeparator(char *path) {
+static void EnsureEndsWithPathSeparator(char *path, size_t path_size) {
size_t pathLen = strlen(path);
if ((pathLen > 0) && path[pathLen - 1] != pathSepChar) {
- strcat(path, pathSepString);
+ strlcat(path, pathSepString, path_size);
}
}
-static void RecentFilePath(char *path, const char *name) {
+static void RecentFilePath(char *path, size_t path_size, const char *name) {
char *where = getenv("SciTE_HOME");
if (!where)
where = getenv("HOME");
@@ -296,16 +296,16 @@ static void RecentFilePath(char *path, c
#endif
} else {
- strcpy(path, where);
- EnsureEndsWithPathSeparator(path);
+ strlcpy(path, where, path_size);
+ EnsureEndsWithPathSeparator(path, path_size);
}
- strcat(path, configFileVisibilityString);
- strcat(path, name);
+ strlcat(path, configFileVisibilityString, path_size);
+ strlcat(path, name, path_size);
}
void SciTEBase::LoadRecentMenu() {
char recentPathName[MAX_PATH + 1];
- RecentFilePath(recentPathName, recentFileName);
+ RecentFilePath(recentPathName, sizeof(recentPathName), recentFileName);
FILE *recentFile = fopen(recentPathName, fileRead);
if (!recentFile) {
DeleteFileStackMenu();
@@ -325,7 +325,7 @@ void SciTEBase::LoadRecentMenu() {
void SciTEBase::SaveRecentStack() {
char recentPathName[MAX_PATH + 1];
- RecentFilePath(recentPathName, recentFileName);
+ RecentFilePath(recentPathName, sizeof(recentPathName), recentFileName);
FILE *recentFile = fopen(recentPathName, fileWrite);
if (!recentFile)
return;
@@ -346,9 +346,9 @@ void SciTEBase::SaveRecentStack() {
void SciTEBase::LoadSession(const char *sessionName) {
char sessionPathName[MAX_PATH + 1];
if (sessionName[0] == '\0') {
- RecentFilePath(sessionPathName, defaultSessionFileName);
+ RecentFilePath(sessionPathName, sizeof(sessionPathName), defaultSessionFileName);
} else {
- strcpy(sessionPathName, sessionName);
+ strlcpy(sessionPathName, sessionName, sizeof(sessionPathName));
}
FILE *sessionFile = fopen(sessionPathName, fileRead);
if (!sessionFile)
@@ -379,9 +379,9 @@ void SciTEBase::LoadSession(const char *
void SciTEBase::SaveSession(const char *sessionName) {
char sessionPathName[MAX_PATH + 1];
if (sessionName[0] == '\0') {
- RecentFilePath(sessionPathName, defaultSessionFileName);
+ RecentFilePath(sessionPathName, sizeof(sessionPathName), defaultSessionFileName);
} else {
- strcpy(sessionPathName, sessionName);
+ strlcpy(sessionPathName, sessionName, sizeof(sessionPathName));
}
FILE *sessionFile = fopen(sessionPathName, fileWrite);
if (!sessionFile)
@@ -615,15 +615,15 @@ void SciTEBase::BuffersMenu() {
#if PLAT_WIN
if (pos < 10) {
- sprintf(entry, "&%d ", (pos + 1) % 10 ); // hotkey 1..0
- sprintf(titleTab, "&%d ", (pos + 1) % 10); // add hotkey to the tabbar
+ snprintf(entry, sizeof(entry), "&%d ", (pos + 1) % 10 ); // hotkey 1..0
+ snprintf(titleTab, sizeof(entry), "&%d ", (pos + 1) % 10); // add hotkey to the tabbar
}
#endif
if (buffers.buffers[pos].IsUntitled()) {
SString untitled = LocaliseString("Untitled");
- strcat(entry, untitled.c_str());
- strcat(titleTab, untitled.c_str());
+ strlcat(entry, untitled.c_str(), sizeof(entry));
+ strlcat(titleTab, untitled.c_str(), sizeof(titleTab));
} else {
SString path = buffers.buffers[pos].FullPath();
#if PLAT_WIN
@@ -635,13 +635,13 @@ void SciTEBase::BuffersMenu() {
amp += 2;
}
#endif
- strcat(entry, path.c_str());
+ strlcat(entry, path.c_str(), sizeof(entry));
char *cpDirEnd = strrchr(entry, pathSepChar);
if (cpDirEnd) {
- strcat(titleTab, cpDirEnd + 1);
+ strlcat(titleTab, cpDirEnd + 1, sizeof(titleTab));
} else {
- strcat(titleTab, entry);
+ strlcat(titleTab, entry, sizeof(titleTab));
}
}
// For short file names:
@@ -649,8 +649,8 @@ void SciTEBase::BuffersMenu() {
//strcat(entry, cpDirEnd + 1);
if (buffers.buffers[pos].isDirty) {
- strcat(entry, " *");
- strcat(titleTab, " *");
+ strlcat(entry, " *", sizeof(entry));
+ strlcat(titleTab, " *", sizeof(titleTab));
}
SetMenuItem(menuBuffers, menuStart + pos + 1, itemID, entry);
@@ -712,10 +712,10 @@ void SciTEBase::SetFileStackMenu() {
entry[0] = '\0';
#if PLAT_WIN
- sprintf(entry, "&%d ", (stackPos + 1) % 10);
+ snprintf(entry, sizeof(entry), "&%d ", (stackPos + 1) % 10);
#endif
- strcat(entry, recentFileStack[stackPos].FullPath());
+ strlcat(entry, recentFileStack[stackPos].FullPath(), sizeof(entry));
SetMenuItem(menuFile, MRU_START + stackPos + 1, itemID, entry);
}
}
@@ -1015,8 +1015,7 @@ int DecodeMessage(char *cdoc, char *sour
char *endPath = strchr(startPath, '\"');
int length = endPath - startPath;
if (length > 0) {
- strncpy(sourcePath, startPath, length);
- sourcePath[length] = 0;
+ strlcpy(sourcePath, startPath, length);
}
endPath++;
while (*endPath && !isdigit(*endPath)) {
@@ -1036,8 +1035,7 @@ int DecodeMessage(char *cdoc, char *sour
}
int sourceNumber = atoi(cdoc + j) - 1;
if (j > 0) {
- strncpy(sourcePath, cdoc, j - 1);
- sourcePath[j - 1] = 0;
+ strlcpy(sourcePath, cdoc, j - 1);
}
return sourceNumber;
}
@@ -1049,8 +1047,7 @@ int DecodeMessage(char *cdoc, char *sour
char *endPath = strchr(cdoc, '(');
int length = endPath - cdoc;
if ((length > 0) && (length < MAX_PATH)) {
- strncpy(sourcePath, cdoc, length);
- sourcePath[length] = 0;
+ strlcpy(sourcePath, cdoc, length);
}
endPath++;
return atoi(endPath) - 1;
@@ -1071,8 +1068,7 @@ int DecodeMessage(char *cdoc, char *sour
char *space2 = strchr(space, ' ');
if (space2) {
unsigned int length = space2 - space;
- strncpy(sourcePath, space, length);
- sourcePath[length] = '\0';
+ strlcpy(sourcePath, space, length);
return atoi(space2) - 1;
}
}
@@ -1084,8 +1080,7 @@ int DecodeMessage(char *cdoc, char *sour
char *line = strstr(cdoc, " line ");
int length = line - (at + 4);
if (at && line && length > 0) {
- strncpy(sourcePath, at + 4, length);
- sourcePath[length] = 0;
+ strlcpy(sourcePath, at + 4, length);
line += 6;
return atoi(line) - 1;
}
@@ -1097,8 +1092,7 @@ int DecodeMessage(char *cdoc, char *sour
char *line = strstr(cdoc, ":line ");
if (in && line && (line > in)) {
in += 4;
- strncpy(sourcePath, in, line - in);
- sourcePath[line - in] = 0;
+ strlcpy(sourcePath, in, line - in);
line += 6;
return atoi(line) - 1;
}
@@ -1115,8 +1109,7 @@ int DecodeMessage(char *cdoc, char *sour
char *quote = strstr(file, "'");
size_t length = quote - (file + lenFile + 1);
if (quote && length > 0) {
- strncpy(sourcePath, file + lenFile + 1, length);
- sourcePath[length] = '\0';
+ strlcpy(sourcePath, file + lenFile + 1, length);
}
line += lenLine;
return atoi(line) - 1;
@@ -1140,8 +1133,7 @@ int DecodeMessage(char *cdoc, char *sour
if (strchr("\t\n\r \"$%'*,;<>?[]^`{|}", cdoc[j])) {
j++;
}
- strncpy(sourcePath, &cdoc[j], i - j);
- sourcePath[i - j] = 0;
+ strlcpy(sourcePath, &cdoc[j], i - j);
// Because usually the address is a searchPattern, lineNumber has to be evaluated later
return 0;
}
@@ -1158,8 +1150,7 @@ int DecodeMessage(char *cdoc, char *sour
if (line && file && (line > file)) {
file += lenFile;
size_t length = line - file;
- strncpy(sourcePath, file, length);
- sourcePath[length] = '\0';
+ strlcpy(sourcePath, file, length);
line += lenLine;
return atoi(line) - 1;
}
@@ -1182,8 +1173,7 @@ int DecodeMessage(char *cdoc, char *sour
file++;
}
size_t length = strlen(file);
- strncpy(sourcePath, file, length);
- sourcePath[length] = '\0';
+ strlcpy(sourcePath, file, length);
return atoi(line)-1;
}
}
@@ -1206,8 +1196,7 @@ int DecodeMessage(char *cdoc, char *sour
file++;
char *endfile = strchr(file, ')');
size_t length = endfile - file;
- strncpy(sourcePath, file, length);
- sourcePath[length] = '\0';
+ strlcpy(sourcePath, file, length);
line++;
return atoi(line) - 1;
}