diff options
author | Ole Loots <ole@monochrom.net> | 2013-01-17 01:18:27 +0100 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2013-01-17 01:18:27 +0100 |
commit | 13f22099ce9877a90caf376d626771beea7395c3 (patch) | |
tree | fdd46cc87641f235f33dd003a2acbefc751e6428 /atari/gemtk/objc.c | |
parent | 4f0ae4e12868ddf26e7018e0a3dec4badaa1b1b6 (diff) | |
download | netsurf-13f22099ce9877a90caf376d626771beea7395c3.tar.gz netsurf-13f22099ce9877a90caf376d626771beea7395c3.tar.bz2 |
Search is functional.
Diffstat (limited to 'atari/gemtk/objc.c')
-rw-r--r-- | atari/gemtk/objc.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/atari/gemtk/objc.c b/atari/gemtk/objc.c index 3bf8ebbe0..3221fdae6 100644 --- a/atari/gemtk/objc.c +++ b/atari/gemtk/objc.c @@ -21,6 +21,7 @@ *
*/ +#include <assert.h> #include "gemtk.h"
char *get_text(OBJECT * tree, short idx) @@ -49,6 +50,47 @@ char *get_text(OBJECT * tree, short idx) return (p); } +static void set_text(OBJECT *obj, short idx, char * text, int len)
+{
+ char spare[255];
+
+ if( len > 254 )
+ len = 254;
+ if( text != NULL ){
+ strncpy(spare, text, 254);
+ } else {
+ strcpy(spare, "");
+ } +
+ set_string(obj, idx, spare);
+} + +char gemtk_obj_set_str_safe(OBJECT * tree, short idx, char *txt) +{ + char spare[204]; + short type = 0; + short maxlen = 0; + TEDINFO *ted; + + + type = (tree[idx].ob_type & 0xFF); + if (type == G_FTEXT || type == G_FBOXTEXT) { + TEDINFO *ted = ((TEDINFO *)get_obspec(tree, idx)); + maxlen = ted->te_txtlen+1; + if (maxlen > 200) { + maxlen = 200; + } + else if (maxlen < 0) { + maxlen = 0; + } + } else { + assert((type == G_FTEXT) || (type == G_FBOXTEXT)); + } + + snprintf(spare, maxlen, "%s", txt); + set_string(tree, idx, spare); +} + OBJECT *get_tree(int idx) {
|