Mercurial > hg > xemacs-beta
comparison src/mule-ccl.c @ 241:f955c73f5258 r20-5b19
Import from CVS: tag r20-5b19
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:16:16 +0200 |
parents | 78f53ef88e17 |
children | f220cc83d72e |
comparison
equal
deleted
inserted
replaced
240:835e739f3c17 | 241:f955c73f5258 |
---|---|
965 int i; | 965 int i; |
966 | 966 |
967 CHECK_VECTOR (ccl_prog); | 967 CHECK_VECTOR (ccl_prog); |
968 CHECK_VECTOR (reg); | 968 CHECK_VECTOR (reg); |
969 if (XVECTOR_LENGTH (reg) != 8) | 969 if (XVECTOR_LENGTH (reg) != 8) |
970 error ("Invalid length of vector REGISTERS"); | 970 signal_simple_error ("Vector should be of length 8", reg); |
971 | 971 |
972 setup_ccl_program (&ccl, ccl_prog); | 972 setup_ccl_program (&ccl, ccl_prog); |
973 for (i = 0; i < 8; i++) | 973 for (i = 0; i < 8; i++) |
974 ccl.reg[i] = (INTP (XVECTOR_DATA (reg)[i]) | 974 ccl.reg[i] = (INTP (XVECTOR_DATA (reg)[i]) |
975 ? XINT (XVECTOR_DATA (reg)[i]) | 975 ? XINT (XVECTOR_DATA (reg)[i]) |
1010 struct gcpro gcpro1, gcpro2, gcpro3; | 1010 struct gcpro gcpro1, gcpro2, gcpro3; |
1011 | 1011 |
1012 CHECK_VECTOR (ccl_prog); | 1012 CHECK_VECTOR (ccl_prog); |
1013 CHECK_VECTOR (status); | 1013 CHECK_VECTOR (status); |
1014 if (XVECTOR_LENGTH (status) != 9) | 1014 if (XVECTOR_LENGTH (status) != 9) |
1015 error ("Invalid length of vector STATUS"); | 1015 signal_simple_error ("Vector should be of length 9", status); |
1016 CHECK_STRING (str); | 1016 CHECK_STRING (str); |
1017 GCPRO3 (ccl_prog, status, str); | 1017 GCPRO3 (ccl_prog, status, str); |
1018 | 1018 |
1019 setup_ccl_program (&ccl, ccl_prog); | 1019 setup_ccl_program (&ccl, ccl_prog); |
1020 for (i = 0; i < 8; i++) | 1020 for (i = 0; i < 8; i++) |
1038 XVECTOR_DATA (status)[i] = make_int(ccl.reg[i]); | 1038 XVECTOR_DATA (status)[i] = make_int(ccl.reg[i]); |
1039 XSETINT (XVECTOR_DATA (status)[8], ccl.ic); | 1039 XSETINT (XVECTOR_DATA (status)[8], ccl.ic); |
1040 UNGCPRO; | 1040 UNGCPRO; |
1041 | 1041 |
1042 val = make_string (Dynarr_atp (outbuf, 0), produced); | 1042 val = make_string (Dynarr_atp (outbuf, 0), produced); |
1043 free (outbuf); | 1043 Dynarr_free (outbuf); |
1044 QUIT; | 1044 QUIT; |
1045 if (ccl.status != CCL_STAT_SUCCESS | 1045 if (ccl.status != CCL_STAT_SUCCESS |
1046 && ccl.status != CCL_STAT_SUSPEND) | 1046 && ccl.status != CCL_STAT_SUSPEND) |
1047 error ("Error in CCL program at %dth code", ccl.ic); | 1047 error ("Error in CCL program at %dth code", ccl.ic); |
1048 | 1048 |