diff options
author | Akira TAGOH <akira@tagoh.org> | 2006-08-17 16:31:13 +0000 |
---|---|---|
committer | Akira TAGOH <akira@tagoh.org> | 2006-08-17 16:31:13 +0000 |
commit | 1f8528e407eb596a47ba91ec3f4b0d38ca39b30f (patch) | |
tree | 29117b92608963ae5e225e44e30e0112bd09e65d | |
parent | 798cde5c7e10cbb9df54172bfdff907d95c6e33e (diff) |
2006-08-18 Akira TAGOH <at@gclab.org>
* hieroglyph/operator.c (_hg_operator_op_for): check the executeonly
flag.
(_hg_operator_op_forall): likewise.
(_hg_operator_op_if): likewise.
(_hg_operator_op_ifelse): likewise.
(_hg_operator_op_loop): likewise.
(_hg_operator_op_repeat): likewise.
(_hg_operator_op_stopped): likewise.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | hieroglyph/operator.c | 24 | ||||
-rw-r--r-- | hieroglyph/version.h.in | 2 |
3 files changed, 28 insertions, 9 deletions
@@ -1,3 +1,14 @@ +2006-08-18 Akira TAGOH <at@gclab.org> + + * hieroglyph/operator.c (_hg_operator_op_for): check the executeonly + flag. + (_hg_operator_op_forall): likewise. + (_hg_operator_op_if): likewise. + (_hg_operator_op_ifelse): likewise. + (_hg_operator_op_loop): likewise. + (_hg_operator_op_repeat): likewise. + (_hg_operator_op_stopped): likewise. + 2006-08-16 Akira TAGOH <at@gclab.org> * hieroglyph/operator.c (_hg_operator_op_search): implemented. diff --git a/hieroglyph/operator.c b/hieroglyph/operator.c index 8cc8445..8d931bf 100644 --- a/hieroglyph/operator.c +++ b/hieroglyph/operator.c @@ -3187,7 +3187,8 @@ G_STMT_START break; } if (!hg_object_is_executable((HgObject *)nproc) || - !hg_object_is_readable((HgObject *)nproc)) { + (!hg_object_is_readable((HgObject *)nproc) && + !hg_object_is_executeonly((HgObject *)nproc))) { _hg_operator_set_error(vm, op, VM_e_invalidaccess); break; } @@ -3271,7 +3272,8 @@ G_STMT_START break; } if (!hg_object_is_executable((HgObject *)nproc) || - !hg_object_is_readable((HgObject *)nproc) || + (!hg_object_is_readable((HgObject *)nproc) && + !hg_object_is_executeonly((HgObject *)nproc)) || !hg_object_is_readable((HgObject *)nval)) { _hg_operator_set_error(vm, op, VM_e_invalidaccess); break; @@ -3708,7 +3710,8 @@ G_STMT_START break; } if (!hg_object_is_executable((HgObject *)nif) || - !hg_object_is_readable((HgObject *)nif)) { + (!hg_object_is_readable((HgObject *)nif) && + !hg_object_is_executeonly((HgObject *)nif))) { _hg_operator_set_error(vm, op, VM_e_invalidaccess); break; } @@ -3755,8 +3758,10 @@ G_STMT_START } if (!hg_object_is_executable((HgObject *)nif) || !hg_object_is_executable((HgObject *)nelse) || - !hg_object_is_readable((HgObject *)nif) || - !hg_object_is_readable((HgObject *)nelse)) { + (!hg_object_is_readable((HgObject *)nif) && + !hg_object_is_executeonly((HgObject *)nif)) || + (!hg_object_is_readable((HgObject *)nelse) && + !hg_object_is_executeonly((HgObject *)nelse))) { _hg_operator_set_error(vm, op, VM_e_invalidaccess); break; } @@ -4154,7 +4159,8 @@ G_STMT_START break; } if (!hg_object_is_executable((HgObject *)nproc) || - !hg_object_is_readable((HgObject *)nproc)) { + (!hg_object_is_readable((HgObject *)nproc) && + !hg_object_is_executeonly((HgObject *)nproc))) { _hg_operator_set_error(vm, op, VM_e_invalidaccess); break; } @@ -5222,7 +5228,8 @@ G_STMT_START break; } if (!hg_object_is_executable((HgObject *)nproc) || - !hg_object_is_readable((HgObject *)nproc)) { + (!hg_object_is_readable((HgObject *)nproc) && + !hg_object_is_executeonly((HgObject *)nproc))) { _hg_operator_set_error(vm, op, VM_e_invalidaccess); break; } @@ -6151,7 +6158,8 @@ G_STMT_START break; } node = hg_stack_index(ostack, 0); - if (!hg_object_is_readable((HgObject *)node)) { + if (!hg_object_is_readable((HgObject *)node) && + !hg_object_is_executeonly((HgObject *)node)) { _hg_operator_set_error(vm, op, VM_e_invalidaccess); break; } diff --git a/hieroglyph/version.h.in b/hieroglyph/version.h.in index 09b9073..a4d0e53 100644 --- a/hieroglyph/version.h.in +++ b/hieroglyph/version.h.in @@ -29,7 +29,7 @@ G_BEGIN_DECLS #define HIEROGLYPH_VERSION "@VERSION@" -#define HIEROGLYPH_UUID "6d555f05-c156-4255-8a61-9185be8e59b3" +#define HIEROGLYPH_UUID "75924ba9-fa1b-47b1-a2dc-ac40e1676a63" const char *__hg_rcsid G_GNUC_UNUSED = "$Rev$"; |