# HG changeset patch # User Paul Boddie # Date 1488153352 -3600 # Node ID 5a69a5a45afbb7391e7be1a4a8085cd684435226 # Parent 89173ad54ae5d6b87b458ba9e43e063c99125a08 Replaced "__pos_attrname" with "__ATTRPOS(attrname)" in native functions. diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/buffer.c --- a/templates/native/buffer.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/buffer.c Mon Feb 27 00:55:52 2017 +0100 @@ -37,7 +37,7 @@ /* Calculate the size of the string. */ for (i = 0; i < data->size; i++) - size += __load_via_object(data->attrs[i].value, __pos___size__).intvalue; + size += __load_via_object(data->attrs[i].value, __ATTRPOS(__size__)).intvalue; /* Reserve space for a new string. */ s = (char *) __ALLOCATE(size + 1, sizeof(char)); @@ -45,8 +45,8 @@ /* Build a single string from the buffer contents. */ for (i = 0, j = 0; i < data->size; i++) { - o = __load_via_object(data->attrs[i].value, __pos___data__); - n = __load_via_object(data->attrs[i].value, __pos___size__).intvalue; + o = __load_via_object(data->attrs[i].value, __ATTRPOS(__data__)); + n = __load_via_object(data->attrs[i].value, __ATTRPOS(__size__)).intvalue; memcpy(s + j, o.strvalue, n); /* does not null terminate but final byte should be zero */ j += n; } diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/common.c --- a/templates/native/common.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/common.c Mon Feb 27 00:55:52 2017 +0100 @@ -30,7 +30,7 @@ { /* Create a new integer and mutate the __data__ attribute. */ __attr attr = __NEWINSTANCE(__builtins___int_int); - attr.value->attrs[__pos___data__].intvalue = i; + attr.value->attrs[__ATTRPOS(__data__)].intvalue = i; return attr; } @@ -38,9 +38,9 @@ { /* Create a new string and mutate the __data__, __size__ and __key__ attributes. */ __attr attr = __NEWINSTANCE(__builtins___str_string); - attr.value->attrs[__pos___data__].strvalue = s; - attr.value->attrs[__pos___size__].intvalue = size; - attr.value->attrs[__pos___key__] = __NULL; + attr.value->attrs[__ATTRPOS(__data__)].strvalue = s; + attr.value->attrs[__ATTRPOS(__size__)].intvalue = size; + attr.value->attrs[__ATTRPOS(__key__)] = __NULL; return attr; } @@ -48,7 +48,7 @@ { /* Create a new list and mutate the __data__ attribute. */ __attr attr = __NEWINSTANCE(__builtins___list_list); - attr.value->attrs[__pos___data__].seqvalue = f; + attr.value->attrs[__ATTRPOS(__data__)].seqvalue = f; return attr; } diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/iconv.c --- a/templates/native/iconv.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/iconv.c Mon Feb 27 00:55:52 2017 +0100 @@ -57,13 +57,13 @@ /* cd interpreted as iconv_t */ iconv_t c = (iconv_t) cd->datavalue; /* state.__data__ interpreted as list */ - __fragment *f = __load_via_object(state->value, __pos___data__).seqvalue; + __fragment *f = __load_via_object(state->value, __ATTRPOS(__data__)).seqvalue; /* Obtain the string, start position, and remaining bytes from the state. */ - char *inbuf = __load_via_object(f->attrs[0].value, __pos___data__).strvalue; - int start = __load_via_object(f->attrs[1].value, __pos___data__).intvalue; - int remaining = __load_via_object(f->attrs[2].value, __pos___data__).intvalue; + char *inbuf = __load_via_object(f->attrs[0].value, __ATTRPOS(__data__)).strvalue; + int start = __load_via_object(f->attrs[1].value, __ATTRPOS(__data__)).intvalue; + int remaining = __load_via_object(f->attrs[2].value, __ATTRPOS(__data__)).intvalue; /* Allocate a string for the output buffer using the remaining input size as a guide. */ @@ -142,9 +142,9 @@ __attr * const tocode = &__args[1]; __attr * const fromcode = &__args[2]; /* tocode.__data__ interpreted as string */ - char *t = __load_via_object(tocode->value, __pos___data__).strvalue; + char *t = __load_via_object(tocode->value, __ATTRPOS(__data__)).strvalue; /* fromcode.__data__ interpreted as string */ - char *f = __load_via_object(fromcode->value, __pos___data__).strvalue; + char *f = __load_via_object(fromcode->value, __ATTRPOS(__data__)).strvalue; iconv_t result; __attr attr; diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/introspection.c --- a/templates/native/introspection.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/introspection.c Mon Feb 27 00:55:52 2017 +0100 @@ -32,7 +32,7 @@ __attr * const name = &__args[2]; __attr * const _default = &__args[3]; /* name.__data__ interpreted as string */ - __attr key = __load_via_object(name->value, __pos___key__); + __attr key = __load_via_object(name->value, __ATTRPOS(__key__)); __attr out; if ((key.code == 0) && (key.pos == 0)) diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/io.c --- a/templates/native/io.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/io.c Mon Feb 27 00:55:52 2017 +0100 @@ -62,9 +62,9 @@ __attr * const filename = &__args[1]; __attr * const mode = &__args[2]; /* filename.__data__ interpreted as string */ - char *fn = __load_via_object(filename->value, __pos___data__).strvalue; + char *fn = __load_via_object(filename->value, __ATTRPOS(__data__)).strvalue; /* mode.__data__ interpreted as string */ - char *s = __load_via_object(mode->value, __pos___data__).strvalue; + char *s = __load_via_object(mode->value, __ATTRPOS(__data__)).strvalue; FILE *f; __attr attr; @@ -94,9 +94,9 @@ __attr * const fd = &__args[1]; __attr * const mode = &__args[2]; /* fd.__data__ interpreted as int */ - int i = __load_via_object(fd->value, __pos___data__).intvalue; + int i = __load_via_object(fd->value, __ATTRPOS(__data__)).intvalue; /* mode.__data__ interpreted as string */ - char *s = __load_via_object(mode->value, __pos___data__).strvalue; + char *s = __load_via_object(mode->value, __ATTRPOS(__data__)).strvalue; FILE *f; __attr attr; @@ -128,7 +128,7 @@ /* fp interpreted as FILE reference */ FILE *f = (FILE *) fp->datavalue; /* size.__data__ interpreted as int */ - int to_read = __load_via_object(size->value, __pos___data__).intvalue; + int to_read = __load_via_object(size->value, __ATTRPOS(__data__)).intvalue; char buf[to_read]; size_t have_read; int error; @@ -158,9 +158,9 @@ /* fp interpreted as FILE reference */ FILE *f = (FILE *) fp->datavalue; /* str.__data__ interpreted as string */ - char *s = __load_via_object(str->value, __pos___data__).strvalue; + char *s = __load_via_object(str->value, __ATTRPOS(__data__)).strvalue; /* str.__size__ interpreted as int */ - int to_write = __load_via_object(str->value, __pos___size__).intvalue; + int to_write = __load_via_object(str->value, __ATTRPOS(__size__)).intvalue; size_t have_written = fwrite(s, sizeof(char), to_write, f); int error; @@ -179,7 +179,7 @@ { __attr * const fd = &__args[1]; /* fd.__data__ interpreted as int */ - int i = __load_via_object(fd->value, __pos___data__).intvalue; + int i = __load_via_object(fd->value, __ATTRPOS(__data__)).intvalue; errno = 0; if (close(i) == -1) @@ -193,9 +193,9 @@ __attr * const fd = &__args[1]; __attr * const n = &__args[2]; /* fd.__data__ interpreted as int */ - int i = __load_via_object(fd->value, __pos___data__).intvalue; + int i = __load_via_object(fd->value, __ATTRPOS(__data__)).intvalue; /* n.__data__ interpreted as int */ - int to_read = __load_via_object(n->value, __pos___data__).intvalue; + int to_read = __load_via_object(n->value, __ATTRPOS(__data__)).intvalue; char buf[to_read]; ssize_t have_read; char *s; @@ -218,11 +218,11 @@ __attr * const fd = &__args[1]; __attr * const str = &__args[2]; /* fd.__data__ interpreted as int */ - int i = __load_via_object(fd->value, __pos___data__).intvalue; + int i = __load_via_object(fd->value, __ATTRPOS(__data__)).intvalue; /* str.__data__ interpreted as string */ - char *s = __load_via_object(str->value, __pos___data__).strvalue; + char *s = __load_via_object(str->value, __ATTRPOS(__data__)).strvalue; /* str.__size__ interpreted as int */ - int size = __load_via_object(str->value, __pos___size__).intvalue; + int size = __load_via_object(str->value, __ATTRPOS(__size__)).intvalue; ssize_t have_written; errno = 0; diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/list.c --- a/templates/native/list.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/list.c Mon Feb 27 00:55:52 2017 +0100 @@ -1,6 +1,6 @@ /* Native functions for list operations. -Copyright (C) 2016 Paul Boddie +Copyright (C) 2016, 2017 Paul Boddie 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 @@ -31,7 +31,7 @@ { __attr * const size = &__args[1]; /* size.__data__ interpreted as int */ - unsigned int n = __load_via_object(size->value, __pos___data__).intvalue; + unsigned int n = __load_via_object(size->value, __ATTRPOS(__data__)).intvalue; __attr attr = {.seqvalue=__new_fragment(n)}; /* Return the __data__ attribute. */ @@ -45,7 +45,7 @@ /* _data interpreted as list */ __fragment *data = _data->seqvalue; /* size.__data__ interpreted as int */ - unsigned int n = __load_via_object(size->value, __pos___data__).intvalue; + unsigned int n = __load_via_object(size->value, __ATTRPOS(__data__)).intvalue; data->size = n; return __builtins___none_None; @@ -56,12 +56,12 @@ __attr * const self = &__args[1]; __attr * const value = &__args[2]; /* self.__data__ interpreted as list */ - __fragment *data = __load_via_object(self->value, __pos___data__).seqvalue; + __fragment *data = __load_via_object(self->value, __ATTRPOS(__data__)).seqvalue; __fragment *newdata = __fragment_append(data, value); /* Replace the __data__ attribute if appropriate. */ if (newdata != data) - __store_via_object(self->value, __pos___data__, ((__attr) {.seqvalue=newdata})); + __store_via_object(self->value, __ATTRPOS(__data__), ((__attr) {.seqvalue=newdata})); return __builtins___none_None; } @@ -70,7 +70,7 @@ __attr * const self = &__args[1]; __attr * const other = &__args[2]; /* self.__data__, other interpreted as list */ - __fragment *data = __load_via_object(self->value, __pos___data__).seqvalue; + __fragment *data = __load_via_object(self->value, __ATTRPOS(__data__)).seqvalue; __fragment *other_data = other->seqvalue; __fragment *newdata = data; unsigned int size = data->size, capacity = data->capacity; @@ -92,7 +92,7 @@ /* Replace the __data__ attribute if appropriate. */ if (newdata != data) - __store_via_object(self->value, __pos___data__, ((__attr) {.seqvalue=newdata})); + __store_via_object(self->value, __ATTRPOS(__data__), ((__attr) {.seqvalue=newdata})); return __builtins___none_None; } @@ -120,7 +120,7 @@ /* _data interpreted as fragment */ __attr *elements = _data->seqvalue->attrs; /* index.__data__ interpreted as int */ - int i = __load_via_object(index->value, __pos___data__).intvalue; + int i = __load_via_object(index->value, __ATTRPOS(__data__)).intvalue; return elements[i]; } @@ -133,7 +133,7 @@ /* _data interpreted as fragment */ __attr *elements = _data->seqvalue->attrs; /* index.__data__ interpreted as int */ - int i = __load_via_object(index->value, __pos___data__).intvalue; + int i = __load_via_object(index->value, __ATTRPOS(__data__)).intvalue; /* Set the element. */ elements[i] = *value; diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/locale.c --- a/templates/native/locale.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/locale.c Mon Feb 27 00:55:52 2017 +0100 @@ -1,6 +1,6 @@ /* Native functions for locale handling. -Copyright (C) 2016 Paul Boddie +Copyright (C) 2016, 2017 Paul Boddie 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 @@ -33,7 +33,7 @@ { __attr * const category = &__args[1]; /* category.__data__ interpreted as int */ - int cat = __load_via_object(category->value, __pos___data__).intvalue; + int cat = __load_via_object(category->value, __ATTRPOS(__data__)).intvalue; char *result, *out; size_t length; @@ -54,9 +54,9 @@ __attr * const category = &__args[1]; __attr * const value = &__args[2]; /* category.__data__ interpreted as int */ - int cat = __load_via_object(category->value, __pos___data__).intvalue; + int cat = __load_via_object(category->value, __ATTRPOS(__data__)).intvalue; /* value.__data__ interpreted as string */ - char *s = __load_via_object(value->value, __pos___data__).strvalue; + char *s = __load_via_object(value->value, __ATTRPOS(__data__)).strvalue; char *result, *out; size_t length; diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/str.c --- a/templates/native/str.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/str.c Mon Feb 27 00:55:52 2017 +0100 @@ -113,11 +113,11 @@ /* _data interpreted as string */ char *s = _data->strvalue, *sub; /* start.__data__ interpreted as int */ - int istart = __load_via_object(start->value, __pos___data__).intvalue; + int istart = __load_via_object(start->value, __ATTRPOS(__data__)).intvalue; /* end.__data__ interpreted as int */ - int iend = __load_via_object(end->value, __pos___data__).intvalue; + int iend = __load_via_object(end->value, __ATTRPOS(__data__)).intvalue; /* step.__data__ interpreted as int */ - int istep = __load_via_object(step->value, __pos___data__).intvalue; + int istep = __load_via_object(step->value, __ATTRPOS(__data__)).intvalue; /* Calculate the size of the substring. */ size_t resultsize = ((iend - istart - (istep > 0 ? 1 : -1)) / istep) + 1; diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/system.c --- a/templates/native/system.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/system.c Mon Feb 27 00:55:52 2017 +0100 @@ -1,6 +1,6 @@ /* Native functions for system operations. -Copyright (C) 2016 Paul Boddie +Copyright (C) 2016, 2017 Paul Boddie 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 @@ -31,7 +31,7 @@ { __attr * const status = &__args[1]; - exit(__load_via_object(status->value, __pos___data__).intvalue); + exit(__load_via_object(status->value, __ATTRPOS(__data__)).intvalue); return __builtins___none_None; } diff -r 89173ad54ae5 -r 5a69a5a45afb templates/native/unicode.c --- a/templates/native/unicode.c Sun Feb 26 21:47:56 2017 +0100 +++ b/templates/native/unicode.c Mon Feb 27 00:55:52 2017 +0100 @@ -135,11 +135,11 @@ /* _size interpreted as int */ int ss = _size->intvalue; /* start.__data__ interpreted as int */ - int istart = __load_via_object(start->value, __pos___data__).intvalue; + int istart = __load_via_object(start->value, __ATTRPOS(__data__)).intvalue; /* end.__data__ interpreted as int */ - int iend = __load_via_object(end->value, __pos___data__).intvalue; + int iend = __load_via_object(end->value, __ATTRPOS(__data__)).intvalue; /* step.__data__ interpreted as int */ - int istep = __load_via_object(step->value, __pos___data__).intvalue; + int istep = __load_via_object(step->value, __ATTRPOS(__data__)).intvalue; /* Calculate the number of characters. */ size_t nchar = ((iend - istart - (istep > 0 ? 1 : -1)) / istep) + 1;