|
NMD
|

Go to the source code of this file.
Data Structures | |
| struct | NMD_string_ |
Functions | |
| static NMDErrorCode | NMDStringCreateOfSize (int n, NMD_string *r_str) |
| NMDErrorCode | NMDStringCreate (const char *txt, NMD_string *r_str) |
| NMDErrorCode | NMDStringDestroy (NMD_string str) |
| NMDErrorCode | NMDStringGetString (NMD_string str, const char **t) |
| NMDErrorCode | NMDStringConcat (char s1, NMD_string str1, char s2, NMD_string str2, char s3, NMD_string *r_str) |
| NMDErrorCode | NMDStringAppend (char s1, NMD_string *str1, char s2, NMD_string str2, char s3) |
| NMDErrorCode NMDStringAppend | ( | char | s1, |
| NMD_string * | str1, | ||
| char | s2, | ||
| NMD_string | str2, | ||
| char | s3 | ||
| ) |
A version of NMDStringConcat() that appends to string 1, rather than creating a new string.
Definition at line 121 of file nmdutil.c.
References CHECKHASNMDCOOKIE, NMDStringConcat(), and NMDStringDestroy().
Referenced by NMDObjectDumpToMySQL().
{
NMD_string nnew; NMDErrorCode ierr;
CHECKHASNMDCOOKIE(*str1);
CHECKHASNMDCOOKIE(str2);
ierr = NMDStringConcat(s1,*str1,s2,str2,s3,&nnew); NMD_ERR_RETURN(ierr);
ierr = NMDStringDestroy(*str1); NMD_ERR_RETURN(ierr);
*str1 = nnew;
return 0;
}

| NMDErrorCode NMDStringConcat | ( | char | s1, |
| NMD_string | str1, | ||
| char | s2, | ||
| NMD_string | str2, | ||
| char | s3, | ||
| NMD_string * | r_str | ||
| ) |
Concatenate string objects, with delimiter characters before, after, in between. All delimiters, and the second string, can be null.
Definition at line 74 of file nmdutil.c.
References CHECKHASNMDCOOKIE, NMD_string_::n, NMDStringCreateOfSize(), and NMD_string_::t.
Referenced by NMDObjectDumpToMySQL(), and NMDStringAppend().
{
NMD_string str; NMDErrorCode ierr; int l;
CHECKHASNMDCOOKIE(str1);
l = str1->n + ( str2 ? str2->n : 0 ) + (s1!=0) + (s2!=0) + (s3!=0);
ierr = NMDStringCreateOfSize(l,&str); NMD_ERR_RETURN(ierr);
l = 0;
if (s1) {
if (l+1>str->n) NMD_ERR_REPORT("string overflow");
memcpy(str->t+l,&s1,1);
}
l = strlen(str->t);
if (l+str1->n>str->n) NMD_ERR_REPORT("string overflow");
memcpy(str->t+l,str1->t,str1->n);
if (s2) {
CHECKHASNMDCOOKIE(str2);
l = strlen(str->t);
if (l+1>str->n) NMD_ERR_REPORT("string overflow");
memcpy(str->t+l,&s2,1);
}
if (str2) {
l = strlen(str->t);
if (l+str2->n>str->n) NMD_ERR_REPORT("string overflow");
memcpy(str->t+l,str2->t,str2->n);
}
if (s3) {
l = strlen(str->t);
if (l+1>str->n) NMD_ERR_REPORT("string overflow");
memcpy(str->t+l,&s3,1);
}
*r_str = str;
return 0;
}

| NMDErrorCode NMDStringCreate | ( | const char * | txt, |
| NMD_string * | r_str | ||
| ) |
Create a string object around a C string; the C string is copied, so it can be freed by the calling environment.
Definition at line 36 of file nmdutil.c.
References NMDStringCreateOfSize(), and NMD_string_::t.
Referenced by NMDObjectDumpToMySQL().
{
NMD_string str; NMDErrorCode ierr; int l;
l = strlen(txt);
ierr = NMDStringCreateOfSize(l,&str); NMD_ERR_RETURN(ierr);
if (l) memcpy(str->t,txt,l);
*r_str = str;
return 0;
}

| static NMDErrorCode NMDStringCreateOfSize | ( | int | n, |
| NMD_string * | r_str | ||
| ) | [static] |
Internal auxiliary function for creating a string object of a given length. Zero length is allowed.
Definition at line 21 of file nmdutil.c.
References NMD_string_::cookie, NMD_string_::n, NMD_MALLOC, NMDCOOKIE, and NMD_string_::t.
Referenced by NMDStringConcat(), and NMDStringCreate().
{
NMD_string str; char *t;
NMD_MALLOC(t,n+1,char,"nmd string");
NMD_MALLOC(str,1,struct NMD_string_,"string object");
str->n = n; str->t = t; str->cookie = NMDCOOKIE;
*r_str = str;
return 0;
}
Destroy a string object, and free the stored string.
Definition at line 49 of file nmdutil.c.
References CHECKHASNMDCOOKIE, NMD_FREE, and NMD_string_::t.
Referenced by NMDObjectDumpToMySQL(), and NMDStringAppend().
{
CHECKHASNMDCOOKIE(str);
NMD_FREE(str->t);
NMD_FREE(str);
return 0;
}
| NMDErrorCode NMDStringGetString | ( | NMD_string | str, |
| const char ** | t | ||
| ) |
Return a pointer to the string in a string object
Definition at line 60 of file nmdutil.c.
References CHECKHASNMDCOOKIE, and NMD_string_::t.
Referenced by NMDObjectDumpToMySQL().
{
CHECKHASNMDCOOKIE(str);
*t = str->t;
return 0;
}
1.7.6.1