ports/devel/hp48xgcc/files/patch-class+LKV+Str.cc
Alexey Dokuchaev 87044830c5 devel/hp48xgcc: whack the `register' storage class specifier
ISO C++17 does not allow it, thus breaking the port's build.

Reported by:	pkg-fallout
2023-12-12 11:59:08 +00:00

109 lines
2.2 KiB
C++

--- class/LKV/Str.cc.orig 1996-04-04 05:42:56 UTC
+++ class/LKV/Str.cc
@@ -331,8 +331,9 @@ long long Str::svall(void) const {
}
}
-Str Str::next_word(void) return res {
+Str Str::next_word(void) {
+ Str res;
char c;
unsigned long i;
unsigned long j;
@@ -379,8 +380,9 @@ Str Str::next_word(void) return res {
return res;
}
-Str Str::next_line(void) return res {
+Str Str::next_line(void) {
+ Str res;
unsigned long i = index(0x0a);
if (i == (unsigned long)~0) {
@@ -397,15 +399,18 @@ Str Str::next_line(void) return res {
}
len -= i+1;
+ return res;
}
-Str Str::operator+(const Str & rv) const return res(len+rv.len) {
+Str Str::operator+(const Str & rv) const {
+ Str res(len+rv.len);
if (len) bcopy(adr, res.adr, len);
if (rv.len) bcopy(rv.adr, res.adr+len, rv.len);
return res;
}
-Str Str::operator+(char rv) const return res(len+1) {
+Str Str::operator+(char rv) const {
+ Str res(len+1);
if (len) bcopy(adr, res.adr, len);
*(res.adr+len) = rv;
return res;
@@ -481,6 +486,26 @@ int Str::operator==(const Str & rv) const {
return -1;
}
+int Str::operator<(const char * p) const {
+
+ const char * a = adr;
+ unsigned long cnt = 0;
+
+ for (;;) {
+ char c = *p++;
+ if (len == cnt) {
+ if (c == 0)
+ return 0;
+ return -1;
+ }
+ if (c == 0)
+ return 0;
+ if (c != *a)
+ return (*a < c);
+ a++; cnt++;
+ }
+}
+
int Str::operator<(const Str & rv) const {
unsigned long p = (rv.len < len)? rv.len : len;
@@ -632,8 +657,8 @@ Str NtoStr(unsigned long val, short int width) {
char vbuf[20];
- register short p = 1;
- register char * a = vbuf+20;
+ short p = 1;
+ char * a = vbuf+20;
for (;; p++) {
*(--a) = (char)'0'+(val % 10);
@@ -726,8 +751,10 @@ Str & Str::to_lower(void) {
}
-Str LtoStr(long num) return res(4) {
+Str LtoStr(long num) {
+ Str res(4);
+
// if (res.fail) return Str();
char * c = (char *)res;
@@ -744,10 +771,12 @@ Str operator+(const char * lv, const Str & rv) {
return Str(lv)+rv;
}
-Str FtoStr(double val) return res; {
+Str FtoStr(double val) {
+ Str res;
static char buf[40];
sprintf(buf,"%1.*g",DBL_DIG,val);
res = Str(buf);
+ return res;
}
void Str::implode_escape_sequences(void) {