diff options
author | Ian C <ianc@noddybox.co.uk> | 2016-03-07 15:00:21 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2016-03-07 15:00:21 +0000 |
commit | 77e8708934c5c792b1435fa11dfe3c0a6f636a8c (patch) | |
tree | 8c68ecddaf2c2c0730ba310b8d1b9e0f1bd16132 /src/varchar.h | |
parent | 6e9c9c9205d6eec1ff1cfb3fa407c6714854145a (diff) |
Updated README and copied latest version in.
Diffstat (limited to 'src/varchar.h')
-rw-r--r-- | src/varchar.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/varchar.h b/src/varchar.h new file mode 100644 index 0000000..7dd15e3 --- /dev/null +++ b/src/varchar.h @@ -0,0 +1,79 @@ +/* + + casm - Simple, portable assembler + + Copyright (C) 2003-2015 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + ------------------------------------------------------------------------- + + Simple dynamic variable length string. + +*/ + +#ifndef CASM_VARCHAR_H +#define CASM_VARCHAR_H + +typedef struct varchar Varchar; + +/* ---------------------------------------- INTERFACES +*/ + +/* Create a new string. Initial contents set to pointer if not NULL. +*/ +Varchar *VarcharCreate(const char *initial); + + +/* Add a character to a string. Returns the passed Varchar. +*/ +Varchar *VarcharAddChar(Varchar *str, int c); + + +/* Add a string to the string. Returns the passed Varchar. +*/ +Varchar *VarcharAdd(Varchar *str, const char *c); + + +/* Adds a formatted string to the string. The formatted string must be less + than 1024 character or it will be truncated. Returns the passed Varchar. +*/ +Varchar *VarcharPrintf(Varchar *str, const char *fmt, ...); + + +/* Get the contents of a string, keeping ownership of it +*/ +const char *VarcharContents(Varchar *str); + + +/* Transfer the contents of a string, so that the returned string can be + freed. The Varchar container is destroyed and should not be used again. +*/ +char *VarcharTransfer(Varchar *str); + + +/* Clear a Varchar back to an empty string. +*/ +void VarcharClear(Varchar *str); + + +/* Release the string and the container. +*/ +void VarcharFree(Varchar *str); + +#endif + +/* +vim: ai sw=4 ts=8 expandtab +*/ |