openbsd-ports/editors/scite/patches/patch-src_SciTEIO_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

171 lines
6.3 KiB
Plaintext

$OpenBSD: patch-src_SciTEIO_cxx,v 1.1.1.1 2003/08/14 18:27:28 sturm Exp $
--- src/SciTEIO.cxx.orig 2003-08-14 18:12:50.000000000 +0200
+++ src/SciTEIO.cxx 2003-08-14 18:14:14.000000000 +0200
@@ -146,10 +146,10 @@ const char *VMSToUnixStyle(const char *f
if (strstr (fileName, "//") == NULL) {
return fileName;
}
- strcpy(unixStyleFileName, fileName);
+ strlcpy(unixStyleFileName, fileName, sizeof(unixStyleFileName));
char *p;
while ((p = strstr (unixStyleFileName, "//")) != NULL) {
- strcpy (p, p + 1);
+ memmove(p, p + 1, strlen(p + 1)+1);
}
return unixStyleFileName;
}
@@ -159,10 +159,10 @@ const char *VMSToUnixStyle(const char *f
// o [dir.dir]file.type
if (fileName [0] == '/') {
- strcpy(unixStyleFileName, fileName);
+ strlcpy(unixStyleFileName, fileName, sizeof(unixStyleFileName));
} else {
unixStyleFileName [0] = '/';
- strcpy(unixStyleFileName + 1, fileName);
+ strlcpy(unixStyleFileName + 1, fileName, sizeof(unixStyleFileName));
char *p = strstr(unixStyleFileName, ":[");
if (p == NULL) {
// o logical:file.type
@@ -170,7 +170,7 @@ const char *VMSToUnixStyle(const char *f
*p = '/';
} else {
*p = '/';
- strcpy(p + 1, p + 2);
+ memmove(p + 1, p + 2, strlen(p + 2)+1);
char *end = strchr(unixStyleFileName, ']');
if (*end != NULL) {
*end = '/';
@@ -189,7 +189,7 @@ void SciTEBase::SetFileName(const char *
// openName is surrounded by double quotes
char pathCopy[MAX_PATH + 1];
pathCopy[0] = '\0';
- strncpy(pathCopy, openName + 1, MAX_PATH);
+ strlcpy(pathCopy, openName + 1, sizeof(pathCopy));
pathCopy[MAX_PATH] = '\0';
if (pathCopy[strlen(pathCopy) - 1] == '\"') {
pathCopy[strlen(pathCopy) - 1] = '\0';
@@ -206,9 +206,10 @@ void SciTEBase::SetFileName(const char *
char *cpDirEnd = strrchr(fullPath, pathSepChar);
if (IsAbsolutePath(fullPath)) {
// Absolute path
- strcpy(fileName, cpDirEnd + 1);
- strcpy(dirName, fullPath);
- dirName[cpDirEnd - fullPath] = '\0';
+ strlcpy(fileName, cpDirEnd + 1, sizeof(fileName));
+ strlcpy(dirName, fullPath, sizeof(dirName));
+ if ((size_t)(cpDirEnd - fullPath) < sizeof(dirName))
+ dirName[cpDirEnd - fullPath] = 0;
//Platform::DebugPrintf("SetFileName: <%s> <%s>\n", fileName, dirName);
} else {
// Relative path. Since we ran AbsolutePath, we probably are here because fullPath is empty.
@@ -216,20 +217,20 @@ void SciTEBase::SetFileName(const char *
//Platform::DebugPrintf("Working directory: <%s>\n", dirName);
if (cpDirEnd) {
// directories and file name
- strcpy(fileName, cpDirEnd + 1);
+ strlcpy(fileName, cpDirEnd + 1, sizeof(fileName));
*cpDirEnd = '\0';
- strncat(dirName, pathSepString, sizeof(dirName));
- strncat(dirName, fullPath, sizeof(dirName));
+ strlcat(dirName, pathSepString, sizeof(dirName));
+ strlcat(dirName, fullPath, sizeof(dirName));
} else {
// Just a file name
- strcpy(fileName, fullPath);
+ strlcpy(fileName, fullPath, sizeof(fileName));
}
}
// Rebuild fullPath from directory and name
- strcpy(fullPath, dirName);
- strcat(fullPath, pathSepString);
- strcat(fullPath, fileName);
+ strlcpy(fullPath, dirName, sizeof(fullPath));
+ strlcat(fullPath, pathSepString, sizeof(fullPath));
+ strlcat(fullPath, fileName, sizeof(fullPath));
//Platform::DebugPrintf("Path: <%s>\n", fullPath);
if (fixCase) {
@@ -237,11 +238,11 @@ void SciTEBase::SetFileName(const char *
}
char fileBase[MAX_PATH];
- strcpy(fileBase, fileName);
+ strlcpy(fileBase, fileName, sizeof(fileBase));
char *extension = strrchr(fileBase, '.');
if (extension) {
*extension = '\0';
- strcpy(fileExt, extension + 1);
+ strlcpy(fileExt, extension + 1, sizeof(fileExt));
} else { // No extension
fileExt[0] = '\0';
}
@@ -265,13 +266,13 @@ void SciTEBase::SetFileName(const char *
bool SciTEBase::Exists(const char *dir, const char *path, char *testPath) {
char copyPath[MAX_PATH];
if (IsAbsolutePath(path) || !dir) {
- strcpy(copyPath, path);
+ strlcpy(copyPath, path, sizeof(copyPath));
} else if (dir) {
if ((strlen(dir) + strlen(pathSepString) + strlen(path) + 1) > MAX_PATH)
return false;
- strcpy(copyPath, dir);
- strcat(copyPath, pathSepString);
- strcat(copyPath, path);
+ strlcpy(copyPath, dir, sizeof(copyPath));
+ strlcat(copyPath, pathSepString, sizeof(copyPath));
+ strlcat(copyPath, path, sizeof(copyPath));
}
FILE *fp = fopen(copyPath, fileRead);
if (!fp)
@@ -286,9 +287,9 @@ bool BuildPath(char *path, const char *d
unsigned int lenPath) {
*path = '\0';
if ((strlen(dir) + strlen(pathSepString) + strlen(fileName)) < lenPath) {
- strcpy(path, dir);
- strcat(path, pathSepString);
- strcat(path, fileName);
+ strlcpy(path, dir, lenPath);
+ strlcat(path, pathSepString, lenPath);
+ strlcat(path, fileName, lenPath);
return true;
}
return false;
@@ -455,7 +456,7 @@ bool SciTEBase::Open(const char *file, O
}
#ifdef __vms
static char fixedFileName [MAX_PATH];
- strcpy(fixedFileName, VMSToUnixStyle(file));
+ strlcpy(fixedFileName, VMSToUnixStyle(file), sizeof(fixedFileName));
file = fixedFileName;
#endif
@@ -527,7 +528,7 @@ bool SciTEBase::OpenSelected() {
unsigned long lineNumber = 0;
SString selName = SelectionFilename();
- strncpy(selectedFilename, selName.c_str(), MAX_PATH);
+ strlcpy(selectedFilename, selName.c_str(), sizeof(selectedFilename));
selectedFilename[MAX_PATH - 1] = '\0';
if (selectedFilename[0] == '\0') {
WarnUser(warnWrongFile);
@@ -544,7 +545,7 @@ bool SciTEBase::OpenSelected() {
strlen(fileName) + strlen(PROPERTIES_EXTENSION) < MAX_PATH) {
// We are in a properties file, we append the correct extension
// to open the include
- strcat(selectedFilename, PROPERTIES_EXTENSION);
+ strlcat(selectedFilename, PROPERTIES_EXTENSION, sizeof(selectedFilename));
} else {
// Check if we have a line number (error message or grep result)
// A bit of duplicate work with DecodeMessage, but we don't know
@@ -636,7 +637,7 @@ void SciTEBase::CheckReload() {
if (props.GetInt("load.on.activate")) {
// Make a copy of fullPath as otherwise it gets aliased in Open
char fullPathToCheck[MAX_PATH];
- strcpy(fullPathToCheck, fullPath);
+ strlcpy(fullPathToCheck, fullPath, sizeof(fullPathToCheck));
time_t newModTime = GetModTime(fullPathToCheck);
//Platform::DebugPrintf("Times are %d %d\n", fileModTime, newModTime);
if (newModTime > fileModTime) {