mirror of https://github.com/yasm/yasm.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.0 KiB
65 lines
1.0 KiB
#include <string.h> |
|
#include "tools/re2c/substr.h" |
|
#include "tools/re2c/globals.h" |
|
|
|
void |
|
SubStr_out(const SubStr *s, FILE *o) |
|
{ |
|
unsigned int i; |
|
fwrite(s->str, s->len, 1, o); |
|
for (i=0; i<s->len; i++) |
|
if (s->str[i] == '\n') |
|
oline++; |
|
} |
|
|
|
int |
|
SubStr_eq(const SubStr *s1, const SubStr *s2) |
|
{ |
|
return (s1->len == s2->len && memcmp(s1->str, s2->str, s1->len) == 0); |
|
} |
|
|
|
void |
|
Str_init(Str *r, const SubStr* s) |
|
{ |
|
SubStr_init(r, malloc(sizeof(char)*s->len), s->len); |
|
memcpy(r->str, s->str, s->len); |
|
} |
|
|
|
Str * |
|
Str_new(const SubStr* s) |
|
{ |
|
Str *r = SubStr_new(malloc(sizeof(char)*s->len), s->len); |
|
memcpy(r->str, s->str, s->len); |
|
return r; |
|
} |
|
|
|
void |
|
Str_copy(Str *r, Str* s) |
|
{ |
|
SubStr_init(r, s->str, s->len); |
|
s->str = NULL; |
|
s->len = 0; |
|
} |
|
|
|
Str * |
|
Str_new_copy(Str* s) |
|
{ |
|
Str *r = SubStr_new(s->str, s->len); |
|
s->str = NULL; |
|
s->len = 0; |
|
return r; |
|
} |
|
|
|
Str * |
|
Str_new_empty(void) |
|
{ |
|
return SubStr_new(NULL, 0); |
|
} |
|
|
|
|
|
void Str_delete(Str *s) { |
|
free(s->str); |
|
s->str = (char*)-1; |
|
s->len = (unsigned int)-1; |
|
free(s); |
|
}
|
|
|