projects
/
oweals
/
cde.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Convert uses of XKeycodeToKeysym (deprecated) to XkbKeycodeToKeysym
[oweals/cde.git]
/
cde
/
programs
/
dtinfo
/
dtinfo
/
src
/
UAS
/
DtSR
/
TextParser.C
diff --git
a/cde/programs/dtinfo/dtinfo/src/UAS/DtSR/TextParser.C
b/cde/programs/dtinfo/dtinfo/src/UAS/DtSR/TextParser.C
index 021b954b8fff709dfdf6238f89fb59ff0118bef3..eca1c9c31d356f16d0a764554f670c93cd8d45df 100644
(file)
--- a/
cde/programs/dtinfo/dtinfo/src/UAS/DtSR/TextParser.C
+++ b/
cde/programs/dtinfo/dtinfo/src/UAS/DtSR/TextParser.C
@@
-16,7
+16,7
@@
* details.
*
* You should have received a copy of the GNU Lesser General Public
* details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with these librar
ar
ies and programs; if not, write
+ * License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
@@
-29,7
+29,8
@@
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>
-#include <strstream.h>
+#include <sstream>
+using namespace std;
#include "TextParser.hh"
#include "TextParser.hh"
@@
-40,7
+41,7
@@
#define True 1
#endif
#define True 1
#endif
-char *
+c
onst c
har *
StringParser::brute_force(const char* text_in, int n_of_pats,
const char* patterns, int sensitive)
{
StringParser::brute_force(const char* text_in, int n_of_pats,
const char* patterns, int sensitive)
{
@@
-49,24
+50,25
@@
StringParser::brute_force(const char* text_in, int n_of_pats,
else if (patterns == NULL || *patterns == '\0')
return NULL;
else if (patterns == NULL || *patterns == '\0')
return NULL;
- if (!
n_of_pats > 0
)
+ if (!
(n_of_pats > 0)
)
return NULL;
char** pat_tbl = new char*[n_of_pats + 1];
char** pat_tbl_end = pat_tbl + n_of_pats;
return NULL;
char** pat_tbl = new char*[n_of_pats + 1];
char** pat_tbl_end = pat_tbl + n_of_pats;
- int npat;
+ int npat
, len
;
for (npat = 0; *patterns && n_of_pats > 0; npat++, n_of_pats--) {
for (npat = 0; *patterns && n_of_pats > 0; npat++, n_of_pats--) {
- char* del = strchr(patterns, '\n');
+ char* del =
(char *)
strchr(patterns, '\n');
if (del != NULL) { // more pattern specified
if (del != NULL) { // more pattern specified
-
pat_tbl[npat] = new char[del - patterns + 1]
;
-
strncpy(pat_tbl[npat], patterns, del - patterns)
;
-
pat_tbl[npat][del - patterns]
= '\0';
+
len = del - patterns
;
+
pat_tbl[npat] = new char[len + 1]
;
+
*((char *) memcpy(pat_tbl[npat], patterns, len) + len)
= '\0';
patterns = del + 1;
}
else {
patterns = del + 1;
}
else {
- pat_tbl[npat] = new char[strlen(patterns) + 1];
- strcpy(pat_tbl[npat], patterns);
+ int len = strlen(patterns);
+ pat_tbl[npat] = new char[len + 1];
+ *((char *) memcpy(pat_tbl[npat], patterns, len) + len) = '\0';
patterns += strlen(patterns);
assert( *patterns == '\0' );
}
patterns += strlen(patterns);
assert( *patterns == '\0' );
}
@@
-87,7
+89,7
@@
StringParser::brute_force(const char* text_in, int n_of_pats,
// remove null and too long patterns
int i;
for (i = 0 ; pat_tbl[i]; i++) {
// remove null and too long patterns
int i;
for (i = 0 ; pat_tbl[i]; i++) {
- if (*(pat_tbl[i]) == '\0' || text_len < strlen(pat_tbl[i])) {
+ if (*(pat_tbl[i]) == '\0' || text_len <
(int)
strlen(pat_tbl[i])) {
delete[] pat_tbl[i];
pat_tbl[i] = NULL;
npat--;
delete[] pat_tbl[i];
pat_tbl[i] = NULL;
npat--;
@@
-151,6
+153,7
@@
StringParser::brute_force(const char* text_in, int n_of_pats,
#endif
char* caped_text = NULL;
#endif
char* caped_text = NULL;
+ string capstr;
if (sensitive == False) { // case-insensitive search
unsigned char *p;
if (sensitive == False) { // case-insensitive search
unsigned char *p;
@@
-160,18
+163,18
@@
StringParser::brute_force(const char* text_in, int n_of_pats,
*p = *p - 0x20;
}
}
*p = *p - 0x20;
}
}
- ostrstream capitalized;
+ ostr
ing
stream capitalized;
for (p = (unsigned char*)text_in; *p; p++) {
if (*p < 0x7B && *p > 0x60) // a ... z
capitalized << (char)(*p - 0x20); // capitalize
else
capitalized << *p;
}
for (p = (unsigned char*)text_in; *p; p++) {
if (*p < 0x7B && *p > 0x60) // a ... z
capitalized << (char)(*p - 0x20); // capitalize
else
capitalized << *p;
}
-
text_in = caped_text
= capitalized.str();
-
*(char*)(text_in + capitalized.pcount()) = '\0'
;
+
capstr
= capitalized.str();
+
text_in = caped_text = (char *)capstr.c_str()
;
}
}
- ostrstream text_run;
+ ostr
ing
stream text_run;
for (int index = 0; index < text_len;) {
unsigned int candidate = (1 << npat) - 1;
for (int index = 0; index < text_len;) {
unsigned int candidate = (1 << npat) - 1;
@@
-230,31
+233,26
@@
StringParser::brute_force(const char* text_in, int n_of_pats,
for (i = 0; i < npat; i++)
free (pat_tbl[i]);
for (i = 0; i < npat; i++)
free (pat_tbl[i]);
-
free (pat_tbl)
;
+
delete[] pat_tbl
;
if (caped_text)
delete[] caped_text;
if (caped_text)
delete[] caped_text;
-
char* ret_text
= text_run.str();
+
static string trunstr
= text_run.str();
- if (ret_text == NULL)
- return NULL;
- else if (*ret_text == '\0') {
- delete[] ret_text;
- return NULL;
- }
- else
- return ret_text;
+ if (!trunstr.size())
+ return NULL;
+ return trunstr.c_str();
}
}
-char *
+c
onst c
har *
StringParser::project_textrun(const char* org_textrun)
{
if (org_textrun == NULL || *org_textrun == '\0')
return NULL;
StringParser::project_textrun(const char* org_textrun)
{
if (org_textrun == NULL || *org_textrun == '\0')
return NULL;
- istrstream textrun(org_textrun);
+ istr
ing
stream textrun(org_textrun);
char line[128];
textrun.get(line, 128, '\n');
char line[128];
textrun.get(line, 128, '\n');
@@
-279,7
+277,7
@@
StringParser::project_textrun(const char* org_textrun)
return NULL;
}
return NULL;
}
- ostrstream ret_text;
+ ostr
ing
stream ret_text;
while (textrun.get(line, 128, '\n')) {
if (textrun.get() != '\n') {
while (textrun.get(line, 128, '\n')) {
if (textrun.get() != '\n') {
@@
-321,21
+319,19
@@
StringParser::project_textrun(const char* org_textrun)
ret_text << off << '\t' << len << '\n' << '\0';
ret_text << off << '\t' << len << '\n' << '\0';
- return ret_text.str();
+ static string rettstr = ret_text.str();
+ return rettstr.c_str();
}
}
-char *
+c
onst c
har *
StringParser::hilite(const char* text, int n, const char* pats)
{
StringParser::hilite(const char* text, int n, const char* pats)
{
- char* textrun = brute_force(text, n, pats);
+ c
onst c
har* textrun = brute_force(text, n, pats);
if (textrun == NULL)
return NULL;
if (textrun == NULL)
return NULL;
- char* prjed_textrun = project_textrun(textrun);
- delete[] textrun;
-
- return prjed_textrun;
+ return project_textrun(textrun);
}
}