a0dfeaa0c2
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
193 lines
7.5 KiB
Plaintext
193 lines
7.5 KiB
Plaintext
$OpenBSD: patch-src_SciTEProps_cxx,v 1.1.1.1 2003/08/14 18:27:28 sturm Exp $
|
|
--- src/SciTEProps.cxx.orig 2003-08-14 01:31:52.000000000 +1000
|
|
+++ src/SciTEProps.cxx 2003-08-14 01:31:53.000000000 +1000
|
|
@@ -116,9 +116,9 @@ bool PropSetFile::ReadLine(const char *l
|
|
ifIsTrue = GetInt(expr);
|
|
} else if (isprefix(lineBuffer, "import ") && directoryForImports) {
|
|
char importPath[1024];
|
|
- strcpy(importPath, directoryForImports);
|
|
- strcat(importPath, lineBuffer + strlen("import") + 1);
|
|
- strcat(importPath, ".properties");
|
|
+ strlcpy(importPath, directoryForImports, sizeof(importPath));
|
|
+ strlcat(importPath, lineBuffer + strlen("import") + 1, sizeof(importPath));
|
|
+ strlcat(importPath, ".properties", sizeof(importPath));
|
|
if (Read(importPath, directoryForImports, imports, sizeImports)) {
|
|
if (imports) {
|
|
for (int i = 0; i < sizeImports; i++) {
|
|
@@ -170,7 +170,7 @@ bool PropSetFile::Read(const char *filen
|
|
|
|
void PropSetFile::SetInteger(const char *key, sptr_t i) {
|
|
char tmp[32];
|
|
- sprintf(tmp, "%d", static_cast<int>(i));
|
|
+ snprintf(tmp, sizeof(tmp), "%d", static_cast<int>(i));
|
|
Set(key, tmp);
|
|
}
|
|
|
|
@@ -251,12 +251,12 @@ void SciTEBase::ReadGlobalPropFile() {
|
|
char propdir[MAX_PATH + 20];
|
|
propsBase.Clear();
|
|
if (GetDefaultPropertiesFileName(propfile, propdir, sizeof(propfile))) {
|
|
- strcat(propdir, pathSepString);
|
|
+ strlcat(propdir, pathSepString, sizeof(propdir));
|
|
propsBase.Read(propfile, propdir, importFiles, importMax);
|
|
}
|
|
propsUser.Clear();
|
|
if (GetUserPropertiesFileName(propfile, propdir, sizeof(propfile))) {
|
|
- strcat(propdir, pathSepString);
|
|
+ strlcat(propdir, pathSepString, sizeof(propdir));
|
|
propsUser.Read(propfile, propdir, importFiles, importMax);
|
|
}
|
|
if (!localisationRead) {
|
|
@@ -269,7 +269,7 @@ void SciTEBase::ReadAbbrevPropFile() {
|
|
char propdir[MAX_PATH + 20];
|
|
propsAbbrev.Clear();
|
|
if (GetAbbrevPropertiesFileName(propfile, propdir, sizeof(propfile))) {
|
|
- strcat(propdir, pathSepString);
|
|
+ strlcat(propdir, pathSepString, sizeof(propdir));
|
|
propsAbbrev.Read(propfile, propdir, importFiles, importMax);
|
|
}
|
|
}
|
|
@@ -283,8 +283,7 @@ void ChopTerminalSlash(char *path) {
|
|
|
|
void SciTEBase::GetDocumentDirectory(char *docDir, int len) {
|
|
if (dirName[0]) {
|
|
- strncpy(docDir, dirName, len);
|
|
- docDir[len - 1] = '\0';
|
|
+ strlcpy(docDir, dirName, len);
|
|
} else {
|
|
getcwd(docDir, len);
|
|
docDir[len - 1] = '\0';
|
|
@@ -298,14 +297,14 @@ void SciTEBase::ReadLocalPropFile() {
|
|
char propdir[MAX_PATH + 20];
|
|
GetDocumentDirectory(propdir, sizeof(propdir));
|
|
char propfile[MAX_PATH + 20];
|
|
- strcpy(propfile, propdir);
|
|
+ strlcpy(propfile, propdir, sizeof(propfile));
|
|
#ifndef __vms
|
|
|
|
- strcat(propdir, pathSepString);
|
|
- strcat(propfile, pathSepString);
|
|
+ strlcat(propdir, pathSepString, sizeof(propdir));
|
|
+ strlcat(propfile, pathSepString, sizeof(propfile));
|
|
#endif
|
|
|
|
- strcat(propfile, propFileName);
|
|
+ strlcat(propfile, propFileName, sizeof(propfile));
|
|
propsLocal.Clear();
|
|
propsLocal.Read(propfile, propdir);
|
|
//Platform::DebugPrintf("Reading local properties from %s\n", propfile);
|
|
@@ -370,8 +369,7 @@ const char *SciTEBase::GetNextPropItem(
|
|
}
|
|
pNext++;
|
|
}
|
|
- strncpy(pPropItem, pStart, size);
|
|
- pPropItem[size] = '\0';
|
|
+ strlcpy(pPropItem, pStart, size);
|
|
return pNext;
|
|
}
|
|
|
|
@@ -502,7 +500,7 @@ void SciTEBase::SetStyleFor(Window &win,
|
|
for (int style = 0; style <= STYLE_MAX; style++) {
|
|
if (style != STYLE_DEFAULT) {
|
|
char key[200];
|
|
- sprintf(key, "style.%s.%0d", lang, style);
|
|
+ snprintf(key, sizeof(key), "style.%s.%0d", lang, style);
|
|
SString sval = props.GetExpanded(key);
|
|
SetOneStyle(win, style, sval.c_str());
|
|
}
|
|
@@ -522,7 +520,7 @@ SString SciTEBase::ExtensionFileName() {
|
|
else if (fileName[0]) {
|
|
// Force extension to lower case
|
|
char fileNameWithLowerCaseExtension[MAX_PATH];
|
|
- strcpy(fileNameWithLowerCaseExtension, fileName);
|
|
+ strlcpy(fileNameWithLowerCaseExtension, fileName, sizeof(fileNameWithLowerCaseExtension));
|
|
char *extension = strrchr(fileNameWithLowerCaseExtension, '.');
|
|
if (extension) {
|
|
LowerCaseString(extension);
|
|
@@ -786,7 +784,7 @@ void SciTEBase::ReadProperties() {
|
|
}
|
|
|
|
char bracesStyleKey[200];
|
|
- sprintf(bracesStyleKey, "braces.%s.style", language.c_str());
|
|
+ snprintf(bracesStyleKey, sizeof(bracesStyleKey), "braces.%s.style", language.c_str());
|
|
bracesStyle = props.GetInt(bracesStyleKey, 0);
|
|
|
|
char key[200];
|
|
@@ -800,13 +798,13 @@ void SciTEBase::ReadProperties() {
|
|
|
|
calltipEndDefinition = FindLanguageProperty("calltip.*.end.definition");
|
|
|
|
- sprintf(key, "autocomplete.%s.start.characters", language.c_str());
|
|
+ snprintf(key, sizeof(key), "autocomplete.%s.start.characters", language.c_str());
|
|
autoCompleteStartCharacters = props.GetExpanded(key);
|
|
if (autoCompleteStartCharacters == "")
|
|
autoCompleteStartCharacters = props.GetExpanded("autocomplete.*.start.characters");
|
|
// "" is a quite reasonable value for this setting
|
|
|
|
- sprintf(key, "autocomplete.%s.fillups", language.c_str());
|
|
+ snprintf(key, sizeof(key), "autocomplete.%s.fillups", language.c_str());
|
|
autoCompleteFillUpCharacters = props.GetExpanded(key);
|
|
if (autoCompleteFillUpCharacters == "")
|
|
autoCompleteFillUpCharacters =
|
|
@@ -814,10 +812,10 @@ void SciTEBase::ReadProperties() {
|
|
SendEditorString(SCI_AUTOCSETFILLUPS, 0,
|
|
autoCompleteFillUpCharacters.c_str());
|
|
|
|
- sprintf(key, "autocomplete.%s.ignorecase", "*");
|
|
+ snprintf(key, sizeof(key), "autocomplete.%s.ignorecase", "*");
|
|
sval = props.GetNewExpand(key);
|
|
autoCompleteIgnoreCase = sval == "1";
|
|
- sprintf(key, "autocomplete.%s.ignorecase", language.c_str());
|
|
+ snprintf(key, sizeof(key), "autocomplete.%s.ignorecase", language.c_str());
|
|
sval = props.GetNewExpand(key);
|
|
if (sval != "")
|
|
autoCompleteIgnoreCase = sval == "1";
|
|
@@ -835,12 +833,12 @@ void SciTEBase::ReadProperties() {
|
|
SendEditor(SCI_STYLERESETDEFAULT, 0, 0);
|
|
SendOutput(SCI_STYLERESETDEFAULT, 0, 0);
|
|
|
|
- sprintf(key, "style.%s.%0d", "*", STYLE_DEFAULT);
|
|
+ snprintf(key, sizeof(key), "style.%s.%0d", "*", STYLE_DEFAULT);
|
|
sval = props.GetNewExpand(key);
|
|
SetOneStyle(wEditor, STYLE_DEFAULT, sval.c_str());
|
|
SetOneStyle(wOutput, STYLE_DEFAULT, sval.c_str());
|
|
|
|
- sprintf(key, "style.%s.%0d", language.c_str(), STYLE_DEFAULT);
|
|
+ snprintf(key, sizeof(key), "style.%s.%0d", language.c_str(), STYLE_DEFAULT);
|
|
sval = props.GetNewExpand(key);
|
|
SetOneStyle(wEditor, STYLE_DEFAULT, sval.c_str());
|
|
|
|
@@ -851,7 +849,7 @@ void SciTEBase::ReadProperties() {
|
|
|
|
SendOutput(SCI_STYLECLEARALL, 0, 0);
|
|
|
|
- sprintf(key, "style.%s.%0d", "errorlist", STYLE_DEFAULT);
|
|
+ snprintf(key, sizeof(key), "style.%s.%0d", "errorlist", STYLE_DEFAULT);
|
|
sval = props.GetNewExpand(key);
|
|
SetOneStyle(wOutput, STYLE_DEFAULT, sval.c_str());
|
|
|
|
@@ -1171,7 +1169,7 @@ void SciTEBase::ReadLocalisation() {
|
|
}
|
|
if (GetSciteDefaultHome(propdir, sizeof propdir)
|
|
&& BuildPath(propfile, propdir, title, sizeof propfile)) {
|
|
- strcat(propdir, pathSepString);
|
|
+ strlcat(propdir, pathSepString, sizeof(propdir));
|
|
propsUI.Read(propfile, propdir, importFiles, importMax);
|
|
}
|
|
localisationRead = true;
|
|
@@ -1288,11 +1286,11 @@ void SciTEBase::OpenProperties(int props
|
|
GetDocumentDirectory(propfile, sizeof(propfile));
|
|
#ifdef __vms
|
|
|
|
- strcpy(propfile, VMSToUnixStyle(propfile));
|
|
+ strlcpy(propfile, VMSToUnixStyle(propfile), sizeof(propfile));
|
|
#endif
|
|
|
|
- strcat(propfile, pathSepString);
|
|
- strcat(propfile, propFileName);
|
|
+ strlcat(propfile, pathSepString, sizeof(propfile));
|
|
+ strlcat(propfile, propFileName, sizeof(propfile));
|
|
Open(propfile, ofQuiet);
|
|
} else if (propsFile == IDM_OPENUSERPROPERTIES) {
|
|
if (GetUserPropertiesFileName(propfile, propdir, sizeof(propfile))) {
|