summaryrefslogtreecommitdiff
path: root/source/luametatex/source/mp/mpc/mp.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/luametatex/source/mp/mpc/mp.c')
-rw-r--r--source/luametatex/source/mp/mpc/mp.c1492
1 files changed, 745 insertions, 747 deletions
diff --git a/source/luametatex/source/mp/mpc/mp.c b/source/luametatex/source/mp/mpc/mp.c
index 993bf98fb..beb836de6 100644
--- a/source/luametatex/source/mp/mpc/mp.c
+++ b/source/luametatex/source/mp/mpc/mp.c
@@ -54,9 +54,9 @@
# define max_num_knot_nodes 1000
# define max_num_value_nodes 1000
# define max_num_symbolic_nodes 1000
-# define mp_link(A) (A)->link
-# define mp_type(A) (A)->type
-# define mp_name_type(A) (A)->name_type
+//define mp_link(A) (A)->link
+//define mp_type(A) (A)->type
+//define mp_name_type(A) (A)->name_type
# define mp_set_link(A,B) (A)->link = (mp_node) (B)
# define mp_max_command_code mp_stop
# define mp_max_pre_command mp_etex_command
@@ -143,8 +143,6 @@
# define one_third_inf_t mp->math->md_one_third_inf_t
# define mp_copy_pen(mp,A) mp_make_pen(mp, mp_copy_path(mp, (A)),0)
# define mp_pen_is_elliptical(A) ((A)==mp_next_knot((A)))
-# define mp_fraction mp_number
-# define mp_angle mp_number
# define new_number(A) mp->math->md_allocate(mp, &(A), mp_scaled_type)
# define new_fraction(A) mp->math->md_allocate(mp, &(A), mp_fraction_type)
# define new_angle(A) mp->math->md_allocate(mp, &(A), mp_angle_type)
@@ -243,8 +241,8 @@
# define mp_line_cap(A) ((mp_shape_node) (A))->linecap
# define mp_line_join(A) ((mp_shape_node) (A))->linejoin
# define mp_miterlimit(A) ((mp_shape_node) (A))->miterlimit
-# define mp_set_linecap(A,B) ((mp_shape_node) (A))->linecap = (short) (B)
-# define mp_set_linejoin(A,B) ((mp_shape_node) (A))->linejoin = (short) (B)
+# define mp_set_linecap(A,B) ((mp_shape_node) (A))->linecap = (unsigned char) (B)
+# define mp_set_linejoin(A,B) ((mp_shape_node) (A))->linejoin = (unsigned char) (B)
# define mp_pre_script(A) ((mp_shape_node) (A))->pre_script
# define mp_post_script(A) ((mp_shape_node) (A))->post_script
# define mp_color_model(A) ((mp_shape_node) (A))->color_model
@@ -259,11 +257,11 @@
# define mp_blue_color(A) ((mp_shape_node) (A))->blue
# define mp_gray_color(A) ((mp_shape_node) (A))->grey
# define mp_grey_color(A) ((mp_shape_node) (A))->grey
-# define mp_has_color(A) (mp_type((A))<mp_start_clip_node_type)
-# define mp_has_script(A) (mp_type((A))<=mp_start_bounds_node_type)
-# define mp_has_pen(A) (mp_type((A))<=mp_stroked_node_type)
-# define mp_is_start_or_stop(A) (mp_type((A))>=mp_start_clip_node_type)
-# define mp_is_stop(A) (mp_type((A))>=mp_stop_clip_node_type)
+# define mp_has_color(A) ((A)->type < mp_start_clip_node_type)
+# define mp_has_script(A) ((A)->type <= mp_start_bounds_node_type)
+# define mp_has_pen(A) ((A)->type <= mp_stroked_node_type)
+# define mp_is_start_or_stop(A) ((A)->type >= mp_start_clip_node_type)
+# define mp_is_stop(A) ((A)->type >= mp_stop_clip_node_type)
# define mp_get_dash_list(A) (mp_dash_node) (((mp_dash_node) (A))->link)
# define mp_set_dash_list(A,B) ((mp_dash_node) (A))->link = (mp_node) ((B))
# define mp_bblast(A) ((mp_edge_header_node) (A))->bblast
@@ -413,7 +411,7 @@
if (mp_has_color(cp)) { \
break; \
} else { \
- cp = mp_link(cp); \
+ cp = cp->link; \
} \
} \
} while (0)
@@ -458,13 +456,13 @@
# define gr_dash_ptr(A) (A)->dash
# define mp_gr_export_color(q,p) \
if (mp_color_model(p) == mp_uninitialized_model) { \
- gr_color_model(q) = number_to_scaled(internal_value(mp_default_color_model_internal))/65536; \
+ gr_color_model(q) = (unsigned char) (number_to_scaled(internal_value(mp_default_color_model_internal))/65536); \
gr_cyan_val(q) = 0; \
gr_magenta_val(q) = 0; \
gr_yellow_val(q) = 0; \
gr_black_val(q) = gr_color_model(q) == mp_cmyk_model ? (number_to_scaled(unity_t)/65536.0) : 0; \
} else { \
- gr_color_model(q) = mp_color_model(p); \
+ gr_color_model(q) = (unsigned char) mp_color_model(p); \
gr_cyan_val(q) = number_to_double(p->cyan); \
gr_magenta_val(q) = number_to_double(p->magenta); \
gr_yellow_val(q) = number_to_double(p->yellow); \
@@ -1655,7 +1653,7 @@ static void mp_free_node (MP mp, mp_node p, size_t siz)
if (p->hasnumber == 2 && is_number(((mp_value_node) p)->subscript)) {
free_number(((mp_value_node) p)->subscript);
}
- if (mp_type(p) == mp_dash_node_type) {
+ if (p->type == mp_dash_node_type) {
free_number(((mp_dash_node) p)->start_x);
free_number(((mp_dash_node) p)->stop_x);
free_number(((mp_dash_node) p)->dash_y);
@@ -2211,8 +2209,8 @@ static void mp_flush_token_list (MP mp, mp_node p)
{
while (p != NULL) {
mp_node q = p;
- p = mp_link(p);
- switch (mp_type(q)) {
+ p = p->link;
+ switch (q->type) {
case mp_symbol_node_type:
mp_free_symbolic_node(mp, q);
continue;
@@ -2255,9 +2253,9 @@ void mp_show_token_list (MP mp, mp_node p, mp_node q)
(void) q;
while (p != NULL) {
int c = mp_letter_class;
- if (mp_type(p) != mp_symbol_node_type) {
- if (mp_name_type(p) == mp_token_operation) {
- if (mp_type(p) == mp_known_type) {
+ if (p->type != mp_symbol_node_type) {
+ if (p->name_type == mp_token_operation) {
+ if (p->type == mp_known_type) {
if (cclass == mp_digit_class) {
mp_print_chr(mp, ' ');
}
@@ -2273,7 +2271,7 @@ void mp_show_token_list (MP mp, mp_node p, mp_node q)
print_number(mp_get_value_number(p));
c = mp_digit_class;
}
- } else if (mp_type(p) == mp_string_type) {
+ } else if (p->type == mp_string_type) {
mp_print_chr(mp, '"');
mp_print_mp_str(mp, mp_get_value_str(p));
mp_print_chr(mp, '"');
@@ -2281,17 +2279,17 @@ void mp_show_token_list (MP mp, mp_node p, mp_node q)
} else {
mp_print_str(mp, " BAD");
}
- } else if ((mp_name_type(p) != mp_capsule_operation) || (mp_type(p) < mp_vacuous_type) || (mp_type(p) > mp_independent_type)) {
+ } else if ((p->name_type != mp_capsule_operation) || (p->type < mp_vacuous_type) || (p->type > mp_independent_type)) {
mp_print_str(mp, " BAD");
} else {
mp_print_capsule(mp, p);
c = mp_right_parenthesis_class;
}
- } else if (mp_name_type(p) == mp_expr_operation || mp_name_type(p) == mp_suffix_operation || mp_name_type(p) == mp_text_operation) {
+ } else if (p->name_type == mp_expr_operation || p->name_type == mp_suffix_operation || p->name_type == mp_text_operation) {
int r = mp_get_sym_info(p);
- if (mp_name_type(p) == mp_expr_operation) {
+ if (p->name_type == mp_expr_operation) {
mp_print_str(mp, "(EXPR");
- } else if (mp_name_type(p) == mp_suffix_operation) {
+ } else if (p->name_type == mp_suffix_operation) {
mp_print_str(mp, "(SUFFIX");
} else {
mp_print_str(mp, "(TEXT");
@@ -2333,7 +2331,7 @@ void mp_show_token_list (MP mp, mp_node p, mp_node q)
}
}
cclass = c;
- p = mp_link(p);
+ p = p->link;
}
return;
}
@@ -2342,9 +2340,9 @@ void mp_show_token_list_space (MP mp, mp_node p, mp_node q)
{
(void) q;
while (p != NULL) {
- if (mp_type(p) != mp_symbol_node_type) {
- if (mp_name_type(p) == mp_token_operation) {
- if (mp_type(p) == mp_known_type) {
+ if (p->type != mp_symbol_node_type) {
+ if (p->name_type == mp_token_operation) {
+ if (p->type == mp_known_type) {
if (number_negative(mp_get_value_number(p))) {
mp_print_str(mp, "[ ");
print_number(mp_get_value_number(p));
@@ -2352,23 +2350,23 @@ void mp_show_token_list_space (MP mp, mp_node p, mp_node q)
} else {
print_number(mp_get_value_number(p));
}
- } else if (mp_type(p) == mp_string_type) {
+ } else if (p->type == mp_string_type) {
mp_print_chr(mp, '"');
mp_print_mp_str(mp, mp_get_value_str(p));
mp_print_chr(mp, '"');
} else {
mp_print_str(mp, "BAD");
}
- } else if ((mp_name_type(p) != mp_capsule_operation) || (mp_type(p) < mp_vacuous_type) || (mp_type(p) > mp_independent_type)) {
+ } else if ((p->name_type != mp_capsule_operation) || (p->type < mp_vacuous_type) || (p->type > mp_independent_type)) {
mp_print_str(mp, "BAD");
} else {
mp_print_capsule(mp, p);
}
- } else if (mp_name_type(p) == mp_expr_operation || mp_name_type(p) == mp_suffix_operation || mp_name_type(p) == mp_text_operation) {
+ } else if (p->name_type == mp_expr_operation || p->name_type == mp_suffix_operation || p->name_type == mp_text_operation) {
int r = mp_get_sym_info(p);
- if (mp_name_type(p) == mp_expr_operation) {
+ if (p->name_type == mp_expr_operation) {
mp_print_str(mp, "(EXPR ");
- } else if (mp_name_type(p) == mp_suffix_operation) {
+ } else if (p->name_type == mp_suffix_operation) {
mp_print_str(mp, "(SUFFIX ");
} else {
mp_print_str(mp, "(TEXT ");
@@ -2388,7 +2386,7 @@ void mp_show_token_list_space (MP mp, mp_node p, mp_node q)
}
}
}
- p = mp_link(p);
+ p = p->link;
if (p) {
mp_print_chr(mp, ' ');
}
@@ -2407,12 +2405,12 @@ static void mp_delete_mac_ref (MP mp, mp_node p)
static void mp_show_macro (MP mp, mp_node p, mp_node q)
{
- p = mp_link(p);
- while (mp_name_type(p) != mp_macro_operation) {
- mp_node r = mp_link(p);
- mp_link(p) = NULL;
+ p = p->link;
+ while (p->name_type != mp_macro_operation) {
+ mp_node r = p->link;
+ p->link = NULL;
mp_show_token_list(mp, p, NULL);
- mp_link(p) = r;
+ p->link = r;
p = r;
}
switch (mp_get_sym_info(p)) {
@@ -2439,7 +2437,7 @@ static void mp_show_macro (MP mp, mp_node p, mp_node q)
mp_print_str(mp, "<text> -> ");
break;
}
- mp_show_token_list(mp, mp_link(p), q);
+ mp_show_token_list(mp, p->link, q);
}
static mp_node mp_do_get_attribute_head (MP mp, mp_value_node A)
@@ -2480,7 +2478,7 @@ static mp_node mp_new_value_node (MP mp)
new_number(p->subscript);
p->hasnumber = 2;
}
- mp_type(p) = mp_value_node_type;
+ p->type = mp_value_node_type;
return (mp_node) p;
}
@@ -2492,14 +2490,14 @@ static mp_node mp_new_value_node (MP mp)
static mp_value_node mp_get_attribute_node (MP mp)
{
mp_value_node p = (mp_value_node) mp_new_value_node(mp);
- mp_type(p) = mp_attribute_node_type;
+ p->type = mp_attribute_node_type;
return p;
}
static mp_value_node mp_get_subscr_node (MP mp)
{
mp_value_node p = (mp_value_node) mp_new_value_node(mp);
- mp_type(p) = mp_subscript_node_type;
+ p->type = mp_subscript_node_type;
return p;
}
@@ -2514,7 +2512,7 @@ static mp_node mp_get_pair_node (MP mp)
} else {
p = mp_allocate_node(mp, sizeof(mp_pair_node_data));
}
- mp_type(p) = mp_pair_node_type;
+ p->type = mp_pair_node_type;
return (mp_node) p;
}
@@ -2535,97 +2533,96 @@ static void mp_free_pair_node (MP mp, mp_node p)
static void mp_init_pair_node (MP mp, mp_node p)
{
mp_node q;
- mp_type(p) = mp_pair_type;
+ p->type = mp_pair_type;
q = mp_get_pair_node(mp);
mp_y_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_y_part(q));
- mp_name_type(mp_y_part(q)) = mp_y_part_operation;
- mp_link(mp_y_part(q)) = p;
+ mp_y_part(q)->name_type = mp_y_part_operation;
+ mp_y_part(q)->link = p;
mp_x_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_x_part(q));
- mp_name_type(mp_x_part(q)) = mp_x_part_operation;
- mp_link(mp_x_part(q)) = p;
+ mp_x_part(q)->name_type = mp_x_part_operation;
+ mp_x_part(q)->link = p;
mp_set_value_node(p, q);
}
static mp_node mp_get_transform_node (MP mp)
{
mp_transform_node p = (mp_transform_node) mp_allocate_node(mp, sizeof(mp_transform_node_data));
- mp_type(p) = mp_transform_node_type;
+ p->type = mp_transform_node_type;
return (mp_node) p;
}
static void mp_init_transform_node (MP mp, mp_node p)
{
mp_node q;
- mp_type(p) = mp_transform_type;
+ p->type = mp_transform_type;
q = mp_get_transform_node(mp);
mp_yy_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_yy_part(q));
- mp_name_type(mp_yy_part(q)) = mp_yy_part_operation;
- mp_link(mp_yy_part(q)) = p;
+ mp_yy_part(q)->name_type = mp_yy_part_operation;
+ mp_yy_part(q)->link = p;
mp_yx_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_yx_part(q));
- mp_name_type(mp_yx_part(q)) = mp_yx_part_operation;
- mp_link(mp_yx_part(q)) = p;
+ mp_yx_part(q)->name_type = mp_yx_part_operation;
+ mp_yx_part(q)->link = p;
mp_xy_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_xy_part(q));
- mp_name_type(mp_xy_part(q)) = mp_xy_part_operation;
- mp_link(mp_xy_part(q)) = p;
+ mp_xy_part(q)->name_type = mp_xy_part_operation;
+ mp_xy_part(q)->link = p;
mp_xx_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_xx_part(q));
- mp_name_type(mp_xx_part(q)) = mp_xx_part_operation;
- mp_link(mp_xx_part(q)) = p;
+ mp_xx_part(q)->name_type = mp_xx_part_operation;
+ mp_xx_part(q)->link = p;
mp_ty_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_ty_part(q));
- mp_name_type(mp_ty_part(q)) = mp_y_part_operation;
- mp_link(mp_ty_part(q)) = p;
+ mp_ty_part(q)->name_type = mp_y_part_operation;
+ mp_ty_part(q)->link = p;
mp_tx_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_tx_part(q));
- mp_name_type(mp_tx_part(q)) = mp_x_part_operation;
- mp_link(mp_tx_part(q)) = p;
+ mp_tx_part(q)->name_type = mp_x_part_operation;
+ mp_tx_part(q)->link = p;
mp_set_value_node(p, q);
}
static void mp_init_color_node (MP mp, mp_node p, int type)
{
mp_node q = (mp_node) mp_allocate_node(mp, sizeof(mp_color_node_data));
- q->link = NULL;
- mp_type(p) = type;
+ p->type = type;
switch (type) {
case mp_color_type:
- mp_type(q) = mp_color_node_type;
+ q->type = mp_color_node_type;
mp_red_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_red_part(q));
- mp_name_type(mp_red_part(q)) = mp_red_part_operation;
- mp_link(mp_red_part(q)) = p;
+ mp_red_part(q)->name_type = mp_red_part_operation;
+ mp_red_part(q)->link = p;
mp_green_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_green_part(q));
- mp_name_type(mp_green_part(q)) = mp_green_part_operation;
- mp_link(mp_green_part(q)) = p;
+ mp_green_part(q)->name_type = mp_green_part_operation;
+ mp_green_part(q)->link = p;
mp_blue_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_blue_part(q));
- mp_name_type(mp_blue_part(q)) = mp_blue_part_operation;
- mp_link(mp_blue_part(q)) = p;
+ mp_blue_part(q)->name_type = mp_blue_part_operation;
+ mp_blue_part(q)->link = p;
break;
case mp_cmykcolor_type:
- mp_type(q) = mp_cmykcolor_node_type;
+ q->type = mp_cmykcolor_node_type;
mp_cyan_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_cyan_part(q));
- mp_name_type(mp_cyan_part(q)) = mp_cyan_part_operation;
- mp_link(mp_cyan_part(q)) = p;
+ mp_cyan_part(q)->name_type = mp_cyan_part_operation;
+ mp_cyan_part(q)->link = p;
mp_magenta_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_magenta_part(q));
- mp_name_type(mp_magenta_part(q)) = mp_magenta_part_operation;
- mp_link(mp_magenta_part(q)) = p;
+ mp_magenta_part(q)->name_type = mp_magenta_part_operation;
+ mp_magenta_part(q)->link = p;
mp_yellow_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_yellow_part(q));
- mp_name_type(mp_yellow_part(q)) = mp_yellow_part_operation;
- mp_link(mp_yellow_part(q)) = p;
+ mp_yellow_part(q)->name_type = mp_yellow_part_operation;
+ mp_yellow_part(q)->link = p;
mp_black_part(q) = mp_new_value_node(mp);
mp_new_indep(mp, mp_black_part(q));
- mp_name_type(mp_black_part(q)) = mp_black_part_operation;
- mp_link(mp_black_part(q)) = p;
+ mp_black_part(q)->name_type = mp_black_part_operation;
+ mp_black_part(q)->link = p;
break;
}
mp_set_value_node(p, q);
@@ -2635,21 +2632,21 @@ static mp_node mp_id_transform (MP mp)
{
mp_node q;
mp_node p = mp_new_value_node(mp);
- mp_name_type(p) = mp_capsule_operation;
+ p->name_type = mp_capsule_operation;
mp_set_value_number(p, zero_t);
mp_init_transform_node(mp, p);
q = mp_get_value_node(p);
- mp_type(mp_tx_part(q)) = mp_known_type;
+ mp_tx_part(q)->type = mp_known_type;
mp_set_value_number(mp_tx_part(q), zero_t);
- mp_type(mp_ty_part(q)) = mp_known_type;
+ mp_ty_part(q)->type = mp_known_type;
mp_set_value_number(mp_ty_part(q), zero_t);
- mp_type(mp_xy_part(q)) = mp_known_type;
+ mp_xy_part(q)->type = mp_known_type;
mp_set_value_number(mp_xy_part(q), zero_t);
- mp_type(mp_yx_part(q)) = mp_known_type;
+ mp_yx_part(q)->type = mp_known_type;
mp_set_value_number(mp_yx_part(q), zero_t);
- mp_type(mp_xx_part(q)) = mp_known_type;
+ mp_xx_part(q)->type = mp_known_type;
mp_set_value_number(mp_xx_part(q), unity_t);
- mp_type(mp_yy_part(q)) = mp_known_type;
+ mp_yy_part(q)->type = mp_known_type;
mp_set_value_number(mp_yy_part(q), unity_t);
return p;
}
@@ -2657,8 +2654,8 @@ static mp_node mp_id_transform (MP mp)
static void mp_new_root (MP mp, mp_sym x)
{
mp_node p = mp_new_value_node(mp);
- mp_type(p) = mp_undefined_type;
- mp_name_type(p) = mp_root_operation;
+ p->type = mp_undefined_type;
+ p->name_type = mp_root_operation;
mp_set_value_sym(p, x);
set_equiv_node(x, p);
}
@@ -2667,8 +2664,8 @@ void mp_print_variable_name (MP mp, mp_node p)
{
mp_node q = NULL;
mp_node r = NULL;
- while (mp_name_type(p) >= mp_x_part_operation) {
- switch (mp_name_type(p)) {
+ while (p->name_type >= mp_x_part_operation) {
+ switch (p->name_type) {
case mp_x_part_operation : mp_print_str(mp, "xpart "); break;
case mp_y_part_operation : mp_print_str(mp, "ypart "); break;
case mp_xx_part_operation : mp_print_str(mp, "xxpart "); break;
@@ -2686,18 +2683,18 @@ void mp_print_variable_name (MP mp, mp_node p)
case mp_capsule_operation : mp_print_fmt(mp, "%%CAPSULE%p", p); return;
default : break;
}
- p = mp_link(p);
+ p = p->link;
}
- while (mp_name_type(p) > mp_saved_root_operation) {
- if (mp_name_type(p) == mp_subscript_operation) {
+ while (p->name_type > mp_saved_root_operation) {
+ if (p->name_type == mp_subscript_operation) {
r = mp_new_num_tok(mp, &(mp_subscript(p)));
do {
- p = mp_link(p);
- } while (mp_name_type(p) != mp_attribute_operation);
- } else if (mp_name_type(p) == mp_structured_root_operation) {
- p = mp_link(p);
+ p = p->link;
+ } while (p->name_type != mp_attribute_operation);
+ } else if (p->name_type == mp_structured_root_operation) {
+ p = p->link;
goto FOUND;
- } else if (mp_name_type(p) != mp_attribute_operation) {
+ } else if (p->name_type != mp_attribute_operation) {
mp_confusion(mp, "variable");
} else {
r = mp_new_symbolic_node(mp);
@@ -2710,8 +2707,8 @@ void mp_print_variable_name (MP mp, mp_node p)
}
r = mp_new_symbolic_node(mp);
mp_set_sym_sym(r, mp_get_value_sym(p));
- mp_link(r) = q;
- if (mp_name_type(p) == mp_saved_root_operation) {
+ r->link = q;
+ if (p->name_type == mp_saved_root_operation) {
mp_print_str(mp, "(SAVED)");
}
mp_show_token_list(mp, r, NULL);
@@ -2723,25 +2720,25 @@ static int mp_interesting (MP mp, mp_node p)
if (number_positive(internal_value(mp_tracing_capsules_internal))) {
return 1;
} else {
- mp_name_type_type t = mp_name_type(p);
+ mp_name_type_type t = p->name_type;
if (t >= mp_x_part_operation && t != mp_capsule_operation) {
- mp_node tt = mp_get_value_node(mp_link(p));
+ mp_node tt = mp_get_value_node(p->link);
switch (t) {
- case mp_x_part_operation: t = mp_name_type(mp_x_part (tt)); break;
- case mp_y_part_operation: t = mp_name_type(mp_y_part (tt)); break;
- case mp_xx_part_operation: t = mp_name_type(mp_xx_part (tt)); break;
- case mp_xy_part_operation: t = mp_name_type(mp_xy_part (tt)); break;
- case mp_yx_part_operation: t = mp_name_type(mp_yx_part (tt)); break;
- case mp_yy_part_operation: t = mp_name_type(mp_yy_part (tt)); break;
- case mp_red_part_operation: t = mp_name_type(mp_red_part (tt)); break;
- case mp_green_part_operation: t = mp_name_type(mp_green_part (tt)); break;
- case mp_blue_part_operation: t = mp_name_type(mp_blue_part (tt)); break;
- case mp_cyan_part_operation: t = mp_name_type(mp_cyan_part (tt)); break;
- case mp_magenta_part_operation: t = mp_name_type(mp_magenta_part(tt)); break;
- case mp_yellow_part_operation: t = mp_name_type(mp_yellow_part (tt)); break;
- case mp_black_part_operation: t = mp_name_type(mp_black_part (tt)); break;
- case mp_grey_part_operation: t = mp_name_type(mp_grey_part (tt)); break;
- default: break;
+ case mp_x_part_operation: t = mp_x_part (tt)->name_type; break;
+ case mp_y_part_operation: t = mp_y_part (tt)->name_type; break;
+ case mp_xx_part_operation: t = mp_xx_part (tt)->name_type; break;
+ case mp_xy_part_operation: t = mp_xy_part (tt)->name_type; break;
+ case mp_yx_part_operation: t = mp_yx_part (tt)->name_type; break;
+ case mp_yy_part_operation: t = mp_yy_part (tt)->name_type; break;
+ case mp_red_part_operation: t = mp_red_part (tt)->name_type; break;
+ case mp_green_part_operation: t = mp_green_part (tt)->name_type; break;
+ case mp_blue_part_operation: t = mp_blue_part (tt)->name_type; break;
+ case mp_cyan_part_operation: t = mp_cyan_part (tt)->name_type; break;
+ case mp_magenta_part_operation: t = mp_magenta_part(tt)->name_type; break;
+ case mp_yellow_part_operation: t = mp_yellow_part (tt)->name_type; break;
+ case mp_black_part_operation: t = mp_black_part (tt)->name_type; break;
+ case mp_grey_part_operation: t = mp_grey_part (tt)->name_type; break;
+ default: break;
}
}
return (t != mp_capsule_operation);
@@ -2751,7 +2748,7 @@ static int mp_interesting (MP mp, mp_node p)
static mp_node mp_new_structure (MP mp, mp_node p)
{
mp_node r = NULL;
- switch (mp_name_type(p)) {
+ switch (p->name_type) {
case mp_root_operation:
{
mp_sym q = mp_get_value_sym(p);
@@ -2764,14 +2761,14 @@ static mp_node mp_new_structure (MP mp, mp_node p)
mp_node q_new;
mp_node q = p;
do {
- q = mp_link(q);
- } while (mp_name_type(q) != mp_attribute_operation);
+ q = q->link;
+ } while (q->name_type != mp_attribute_operation);
q = mp_get_parent((mp_value_node) q);
r = mp->temp_head;
mp_set_link(r, mp_get_subscr_head(q));
do {
q_new = r;
- r = mp_link(r);
+ r = r->link;
} while (r != p);
r = (mp_node) mp_get_subscr_node(mp);
if (q_new == mp->temp_head) {
@@ -2789,7 +2786,7 @@ static mp_node mp_new_structure (MP mp, mp_node p)
r = mp_get_attribute_head(q);
do {
q = r;
- r = mp_link(r);
+ r = r->link;
} while (r != p);
rr = mp_get_attribute_node(mp);
r = (mp_node) rr;
@@ -2799,8 +2796,8 @@ static mp_node mp_new_structure (MP mp, mp_node p)
if (mp_get_hashloc(p) == mp_collective_subscript) {
q = mp->temp_head;
mp_set_link(q, mp_get_subscr_head(mp_get_parent((mp_value_node) p)));
- while (mp_link(q) != p) {
- q = mp_link(q);
+ while (q->link != p) {
+ q = q->link;
}
if (q == mp->temp_head) {
mp_set_subscr_head(mp_get_parent((mp_value_node) p), (mp_node) rr);
@@ -2816,18 +2813,18 @@ static mp_node mp_new_structure (MP mp, mp_node p)
}
if (r) {
mp_value_node q;
- mp_set_link(r, mp_link(p));
+ mp_set_link(r, p->link);
mp_set_value_sym(r, mp_get_value_sym(p));
- mp_type(r) = mp_structured_type;
- mp_name_type(r) = mp_name_type(p);
+ r->type = mp_structured_type;
+ r->name_type = p->name_type;
mp_set_attribute_head(r, p);
- mp_name_type(p) = mp_structured_root_operation;
+ p->name_type = mp_structured_root_operation;
q = mp_get_attribute_node(mp);
mp_set_link(p, q);
mp_set_subscr_head(r, (mp_node) q);
mp_set_parent(q, r);
- mp_type(q) = mp_undefined_type;
- mp_name_type(q) = mp_attribute_operation;
+ q->type = mp_undefined_type;
+ q->name_type = mp_attribute_operation;
mp_set_link(q, mp->end_attr);
mp_set_hashloc(q, mp_collective_subscript);
}
@@ -2843,15 +2840,15 @@ static mp_node mp_find_variable (MP mp, mp_node t)
} else {
mp_node p, q, r, s;
mp_node pp, qq, rr, ss;
- t = mp_link(t);
+ t = t->link;
if (equiv_node(p_sym) == NULL) {
mp_new_root (mp, p_sym);
}
p = equiv_node(p_sym);
pp = p;
while (t != NULL) {
- if (mp_type(pp) != mp_structured_type) {
- if (mp_type(pp) > mp_structured_type) {
+ if (pp->type != mp_structured_type) {
+ if (pp->type > mp_structured_type) {
return NULL;
} else {
ss = mp_new_structure(mp, pp);
@@ -2861,21 +2858,21 @@ static mp_node mp_find_variable (MP mp, mp_node t)
pp = ss;
}
}
- if (mp_type(p) != mp_structured_type) {
+ if (p->type != mp_structured_type) {
p = mp_new_structure(mp, p);
}
- if (mp_type(t) != mp_symbol_node_type) {
+ if (t->type != mp_symbol_node_type) {
mp_number nn, save_subscript;
new_number_clone(nn, mp_get_value_number(t));
- pp = mp_link(mp_get_attribute_head(pp));
- q = mp_link(mp_get_attribute_head(p));
+ pp = mp_get_attribute_head(pp)->link;
+ q = mp_get_attribute_head(p)->link;
new_number_clone(save_subscript, mp_subscript(q));
set_number_to_inf(mp_subscript(q));
s = mp->temp_head;
mp_set_link(s, mp_get_subscr_head(p));
do {
r = s;
- s = mp_link(s);
+ s = s->link;
} while (number_greater(nn, mp_subscript(s)));
if (number_equal(nn, mp_subscript(s))) {
p = s;
@@ -2888,8 +2885,8 @@ static mp_node mp_find_variable (MP mp, mp_node t)
}
mp_set_link(p1, s);
number_clone(mp_subscript(p1), nn);
- mp_name_type(p1) = mp_subscript_operation;
- mp_type(p1) = mp_undefined_type;
+ p1->name_type = mp_subscript_operation;
+ p1->type = mp_undefined_type;
p = (mp_node) p1;
}
number_clone(mp_subscript(q), save_subscript);
@@ -2900,15 +2897,15 @@ static mp_node mp_find_variable (MP mp, mp_node t)
ss = mp_get_attribute_head(pp);
do {
rr = ss;
- ss = mp_link(ss);
+ ss = ss->link;
} while (nn1 > mp_get_hashloc(ss));
if (nn1 < mp_get_hashloc(ss)) {
qq = (mp_node) mp_get_attribute_node(mp);
mp_set_link(rr, qq);
mp_set_link(qq, ss);
mp_set_hashloc(qq, nn1);
- mp_name_type(qq) = mp_attribute_operation;
- mp_type(qq) = mp_undefined_type;
+ qq->name_type = mp_attribute_operation;
+ qq->type = mp_undefined_type;
mp_set_parent((mp_value_node) qq, pp);
ss = qq;
}
@@ -2920,7 +2917,7 @@ static mp_node mp_find_variable (MP mp, mp_node t)
s = mp_get_attribute_head(p);
do {
r = s;
- s = mp_link(s);
+ s = s->link;
} while (nn1 > mp_get_hashloc(s));
if (nn1 == mp_get_hashloc(s)) {
p = s;
@@ -2929,31 +2926,31 @@ static mp_node mp_find_variable (MP mp, mp_node t)
mp_set_link(r, q);
mp_set_link(q, s);
mp_set_hashloc(q, nn1);
- mp_name_type(q) = mp_attribute_operation;
- mp_type(q) = mp_undefined_type;
+ q->name_type = mp_attribute_operation;
+ q->type = mp_undefined_type;
mp_set_parent((mp_value_node) q, p);
p = q;
}
}
}
- t = mp_link(t);
+ t = t->link;
}
- if (mp_type(pp) >= mp_structured_type) {
- if (mp_type(pp) == mp_structured_type) {
+ if (pp->type >= mp_structured_type) {
+ if (pp->type == mp_structured_type) {
pp = mp_get_attribute_head(pp);
} else {
return NULL;
}
}
- if (mp_type(p) == mp_structured_type) {
+ if (p->type == mp_structured_type) {
p = mp_get_attribute_head(p);
}
- if (mp_type(p) == mp_undefined_type) {
- if (mp_type(pp) == mp_undefined_type) {
- mp_type(pp) = mp_numeric_type;
+ if (p->type == mp_undefined_type) {
+ if (pp->type == mp_undefined_type) {
+ pp->type = mp_numeric_type;
mp_set_value_number(pp, zero_t);
}
- mp_type(p) = mp_type(pp);
+ p->type = pp->type;
mp_set_value_number(p, zero_t);
}
return p;
@@ -2963,34 +2960,34 @@ static mp_node mp_find_variable (MP mp, mp_node t)
static void mp_flush_variable (MP mp, mp_node p, mp_node t, int discard_suffixes)
{
while (t != NULL) {
- if (mp_type(p) != mp_structured_type) {
+ if (p->type != mp_structured_type) {
return;
} else {
mp_sym n = mp_get_sym_sym(t);
- t = mp_link(t);
+ t = t->link;
if (n == mp_collective_subscript) {
mp_node q = mp_get_subscr_head(p);
mp_node r = NULL;
- while (mp_name_type(q) == mp_subscript_operation) {
+ while (q->name_type == mp_subscript_operation) {
mp_flush_variable(mp, q, t, discard_suffixes);
if (t != NULL) {
r = q;
- } else if (mp_type(q) == mp_structured_type) {
+ } else if (q->type == mp_structured_type) {
r = q;
} else {
if (r == NULL) {
- mp_set_subscr_head(p, mp_link(q));
+ mp_set_subscr_head(p, q->link);
} else {
- mp_set_link(r, mp_link(q));
+ mp_set_link(r, q->link);
}
mp_free_value_node(mp, q);
}
- q = r == NULL ? mp_get_subscr_head(p) : mp_link(r);
+ q = r == NULL ? mp_get_subscr_head(p) : r->link;
}
}
p = mp_get_attribute_head(p);
do {
- p = mp_link(p);
+ p = p->link;
} while (mp_get_hashloc(p) < n);
if (mp_get_hashloc(p) != n) {
return;
@@ -3000,7 +2997,7 @@ static void mp_flush_variable (MP mp, mp_node p, mp_node t, int discard_suffixes
if (discard_suffixes) {
mp_flush_below_variable(mp, p);
} else {
- if (mp_type(p) == mp_structured_type) {
+ if (p->type == mp_structured_type) {
p = mp_get_attribute_head(p);
}
mp_recycle_value(mp, p);
@@ -3009,35 +3006,35 @@ static void mp_flush_variable (MP mp, mp_node p, mp_node t, int discard_suffixes
void mp_flush_below_variable (MP mp, mp_node p)
{
- if (mp_type(p) != mp_structured_type) {
+ if (p->type != mp_structured_type) {
mp_recycle_value(mp, p);
} else {
mp_node r;
mp_node q = mp_get_subscr_head(p);
- while (mp_name_type(q) == mp_subscript_operation) {
+ while (q->name_type == mp_subscript_operation) {
mp_flush_below_variable(mp, q);
r = q;
- q = mp_link(q);
+ q = q->link;
mp_free_value_node(mp, r);
}
r = mp_get_attribute_head(p);
- q = mp_link(r);
+ q = r->link;
mp_recycle_value(mp, r);
mp_free_value_node(mp, r);
do {
mp_flush_below_variable(mp, q);
r = q;
- q = mp_link(q);
+ q = q->link;
mp_free_value_node(mp, r);
} while (q != mp->end_attr);
- mp_type(p) = mp_undefined_type;
+ p->type = mp_undefined_type;
}
}
static int mp_und_type (MP mp, mp_node p)
{
(void) mp;
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_vacuous_type:
return mp_undefined_type;
case mp_boolean_type:
@@ -3063,7 +3060,7 @@ static int mp_und_type (MP mp, mp_node p)
case mp_cmykcolor_type:
case mp_pair_type:
case mp_numeric_type:
- return mp_type(p);
+ return p->type;
case mp_known_type:
case mp_dependent_type:
case mp_proto_dependent_type:
@@ -3092,7 +3089,7 @@ static void mp_clear_symbol (MP mp, mp_sym p, int saving)
case mp_tag_command:
if (q != NULL) {
if (saving) {
- mp_name_type(q) = mp_saved_root_operation;
+ q->name_type = mp_saved_root_operation;
} else {
mp_flush_below_variable(mp, q);
mp_free_value_node(mp, q);
@@ -3147,7 +3144,7 @@ static void mp_unsave_variable (MP mp)
if (eq_type(q) == mp_tag_command) {
mp_node pp = q->v.data.node;
if (pp != NULL) {
- mp_name_type(pp) = mp_root_operation;
+ pp->name_type = mp_root_operation;
}
}
}
@@ -5809,9 +5806,9 @@ void mp_move_knot (MP mp, mp_knot p, mp_knot q)
static void mp_find_offset (MP mp, mp_number *x_orig, mp_number *y_orig, mp_knot h)
{
if (mp_pen_is_elliptical(h)) {
- mp_fraction xx, yy;
+ mp_number xx, yy;
mp_number wx, wy, hx, hy;
- mp_fraction d;
+ mp_number d;
new_fraction(xx);
new_fraction(yy);
new_number(wx);
@@ -5970,7 +5967,7 @@ static void mp_pen_bbox (MP mp, mp_knot h)
static mp_node mp_new_shape_node (MP mp, mp_knot p, int type)
{
mp_shape_node t = mp_allocate_node(mp, sizeof(mp_shape_node_data));
- mp_type(t) = type;
+ t->type = type;
mp_path_ptr(t) = p;
mp_pen_ptr(t) = NULL;
mp_dash_ptr(t) = NULL;
@@ -6114,9 +6111,8 @@ static mp_node mp_new_bounds_node (MP mp, mp_knot p, int c)
case mp_start_bounds_node_type:
{
mp_start_node t = (mp_start_node) mp_allocate_node(mp, sizeof(mp_start_node_data));
- mp_type(t) = c;
+ t->type = c;
t->path = p;
- t->link = NULL;
t->stacking = round_unscaled(internal_value(mp_stacking_internal));
mp_pre_script(t) = NULL;
mp_post_script(t) = NULL;
@@ -6128,8 +6124,7 @@ static mp_node mp_new_bounds_node (MP mp, mp_knot p, int c)
case mp_stop_bounds_node_type:
{
mp_stop_node t = (mp_stop_node) mp_allocate_node(mp, sizeof(mp_stop_node_data));
- mp_type(t) = c;
- t->link = NULL;
+ t->type = c;
t->stacking = round_unscaled(internal_value(mp_stacking_internal));
return (mp_node) t;
}
@@ -6164,7 +6159,7 @@ static mp_dash_node mp_get_dash_node (MP mp)
new_number(p->start_x);
new_number(p->stop_x);
new_number(p->dash_y);
- mp_type(p) = mp_dash_node_type;
+ p->type = mp_dash_node_type;
return p;
}
@@ -6182,7 +6177,7 @@ static void mp_init_bbox (MP mp, mp_edge_header_node h)
static mp_edge_header_node mp_get_edge_header_node (MP mp)
{
mp_edge_header_node p = (mp_edge_header_node) mp_allocate_node(mp, sizeof(mp_edge_header_node_data));
- mp_type(p) = mp_edge_header_node_type;
+ p->type = mp_edge_header_node_type;
new_number(p->start_x);
new_number(p->stop_x);
new_number(p->dash_y);
@@ -6198,7 +6193,7 @@ static void mp_init_edges (MP mp, mp_edge_header_node h)
{
mp_set_dash_list(h, mp->null_dash);
mp_obj_tail(h) = mp_edge_list(h);
- mp_link(mp_edge_list(h)) = NULL;
+ mp_edge_list(h)->link = NULL;
mp_edge_ref_count(h) = 0;
mp_init_bbox(mp, h);
}
@@ -6208,10 +6203,10 @@ void mp_toss_edges (MP mp, mp_edge_header_node h)
mp_node q;
mp_edge_header_node r;
mp_flush_dash_list(mp, h);
- q = mp_link(mp_edge_list(h));
+ q = mp_edge_list(h)->link;
while (q != NULL) {
mp_node p = q;
- q = mp_link(q);
+ q = q->link;
r = mp_toss_gr_object(mp, p);
if (r != NULL) {
mp_delete_edge_ref(mp, r);
@@ -6233,7 +6228,7 @@ void mp_flush_dash_list (MP mp, mp_edge_header_node h)
mp_dash_node q = mp_get_dash_list(h);
while (q != mp->null_dash) {
mp_dash_node p = q;
- q = (mp_dash_node) mp_link(q);
+ q = (mp_dash_node) q->link;
mp_free_node(mp, (mp_node) p, sizeof(mp_dash_node_data));
}
mp_set_dash_list(h, mp->null_dash);
@@ -6241,7 +6236,7 @@ void mp_flush_dash_list (MP mp, mp_edge_header_node h)
mp_edge_header_node mp_toss_gr_object (MP mp, mp_node p)
{
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
return mp_free_shape_node(mp, (mp_shape_node) p);
@@ -6268,17 +6263,17 @@ static mp_edge_header_node mp_private_edges (MP mp, mp_edge_header_node h)
mp_edge_header_node hh;
mp_dash_node p, pp;
mp_edge_ref_count(h) -= 1;
- hh = (mp_edge_header_node) mp_copy_objects (mp, mp_link(mp_edge_list(h)), NULL);
+ hh = (mp_edge_header_node) mp_copy_objects (mp, mp_edge_list(h)->link, NULL);
pp = (mp_dash_node) hh;
p = mp_get_dash_list(h);
while ((p != mp->null_dash)) {
- mp_link(pp) = (mp_node) mp_get_dash_node(mp);
- pp = (mp_dash_node) mp_link(pp);
+ pp->link = (mp_node) mp_get_dash_node(mp);
+ pp = (mp_dash_node) pp->link;
number_clone(pp->start_x, p->start_x);
number_clone(pp->stop_x, p->stop_x);
- p = (mp_dash_node) mp_link(p);
+ p = (mp_dash_node) p->link;
}
- mp_link(pp) = (mp_node) mp->null_dash;
+ pp->link = (mp_node) mp->null_dash;
number_clone(hh->dash_y, h->dash_y);
number_clone(hh->minx, h->minx);
@@ -6292,8 +6287,8 @@ static mp_edge_header_node mp_private_edges (MP mp, mp_edge_header_node h)
if (p == NULL) {
mp_confusion(mp, "boundingbox last");
} else {
- p = (mp_dash_node) mp_link(p);
- pp = (mp_dash_node) mp_link(pp);
+ p = (mp_dash_node) p->link;
+ pp = (mp_dash_node) pp->link;
}
}
mp_bblast(hh) = (mp_node) pp;
@@ -6344,12 +6339,12 @@ static mp_dash_object *mp_export_dashes (MP mp, mp_shape_node q, mp_number *w)
set_number_from_subtraction(arg1, p->stop_x, p->start_x);
take_scaled(ret, arg1, scf);
dashes[(num_dashes - 1)] = number_to_double(ret);
- set_number_from_subtraction(arg1, ((mp_dash_node) mp_link(p))->start_x, p->stop_x);
+ set_number_from_subtraction(arg1, ((mp_dash_node) p->link)->start_x, p->stop_x);
take_scaled(ret, arg1, scf);
dashes[(num_dashes)] = number_to_double(ret);
dashes[(num_dashes + 1)] = -1.0;
num_dashes += 2;
- p = (mp_dash_node) mp_link(p);
+ p = (mp_dash_node) p->link;
}
d->array = dashes;
mp_dash_offset(mp, &dashoff, h);
@@ -6373,7 +6368,7 @@ mp_edge_header_node mp_copy_objects (MP mp, mp_node p, mp_node q) {
pp = mp_edge_list(hh);
while (p != q) {
{
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
k = sizeof(mp_shape_node_data);
@@ -6391,11 +6386,11 @@ mp_edge_header_node mp_copy_objects (MP mp, mp_node p, mp_node q) {
default:
break;
}
- mp_link(pp) = mp_allocate_node(mp, (size_t) k);
- pp = mp_link(pp);
+ pp->link = mp_allocate_node(mp, (size_t) k);
+ pp = pp->link;
memcpy(pp, p, (size_t) k);
pp->link = NULL;
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
{
@@ -6444,11 +6439,11 @@ mp_edge_header_node mp_copy_objects (MP mp, mp_node p, mp_node q) {
default:
break;
}
- p = mp_link(p);
+ p = p->link;
}
}
mp_obj_tail(hh) = pp;
- mp_link(pp) = NULL;
+ pp->link = NULL;
return hh;
}
@@ -6464,7 +6459,7 @@ static mp_node mp_skip_1component (MP mp, mp_node p)
++lev;
}
}
- p = mp_link(p);
+ p = p->link;
} while (lev != 0);
return p;
}
@@ -6475,10 +6470,10 @@ void mp_print_edges (MP mp, mp_node h, const char *s, int nuline)
mp_number scf;
new_number(scf);
mp_print_diagnostic(mp, "Edge structure", s, nuline);
- while (mp_link(p) != NULL) {
- p = mp_link(p);
+ while (p->link != NULL) {
+ p = p->link;
mp_print_ln(mp);
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_fill_node_type:
mp_print_str(mp, "Filled contour ");
mp_print_obj_color (mp, p);
@@ -6539,10 +6534,10 @@ void mp_print_edges (MP mp, mp_node h, const char *s, int nuline)
take_scaled(ret, arg1, scf);
print_number( ret);
mp_print_str(mp, " off ");
- set_number_from_subtraction(arg1, ((mp_dash_node) mp_link(ppd))->start_x, ppd->stop_x);
+ set_number_from_subtraction(arg1, ((mp_dash_node) ppd->link)->start_x, ppd->stop_x);
take_scaled(ret, arg1, scf);
print_number(ret);
- ppd = (mp_dash_node) mp_link(ppd);
+ ppd = (mp_dash_node) ppd->link;
if (ppd != mp->null_dash) {
mp_print_chr(mp, ' ');
}
@@ -6711,9 +6706,9 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
new_number(y0);
p0 = NULL;
- p = mp_link(mp_edge_list(h));
+ p = mp_edge_list(h)->link;
while (p != NULL) {
- if (mp_type(p) != mp_stroked_node_type) {
+ if (p->type != mp_stroked_node_type) {
mp_back_error(
mp,
"Picture is too complicated to use as a dash pattern",
@@ -6812,17 +6807,17 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
}
number_clone(mp->null_dash->start_x, d->stop_x);
dd = (mp_dash_node) h;
- while (number_less(((mp_dash_node) mp_link(dd))->start_x, d->stop_x)) {
- dd = (mp_dash_node) mp_link(dd);
+ while (number_less(((mp_dash_node) dd->link)->start_x, d->stop_x)) {
+ dd = (mp_dash_node) dd->link;
}
if ((dd != (mp_dash_node) h) && number_greater(dd->stop_x, d->start_x)) {
mp_x_retrace_error(mp);
goto NOT_FOUND;
}
- mp_link(d) = mp_link(dd);
- mp_link(dd) = (mp_node) d;
+ d->link = dd->link;
+ dd->link = (mp_node) d;
- p = mp_link(p);
+ p = p->link;
}
if (mp_get_dash_list(h) == mp->null_dash) {
goto NOT_FOUND;
@@ -6831,10 +6826,10 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
mp_number hsf;
new_number(hsf);
d = (mp_dash_node) h;
- while (mp_link(d) != (mp_node) mp->null_dash) {
- ds = mp_dash_info(mp_link(d));
+ while (d->link != (mp_node) mp->null_dash) {
+ ds = mp_dash_info(d->link);
if (ds == NULL) {
- d = (mp_dash_node) mp_link(d);
+ d = (mp_dash_node) d->link;
} else {
hh = (mp_edge_header_node) mp_dash_ptr(ds);
number_clone(hsf, ((mp_shape_node) ds)->dashscale);
@@ -6842,7 +6837,7 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
mp_confusion(mp, "dash pattern");
return NULL;
} else if (number_zero(((mp_dash_node) hh)->dash_y )) {
- d = (mp_dash_node) mp_link(d);
+ d = (mp_dash_node) d->link;
} else if (mp_get_dash_list (hh) == NULL) {
mp_confusion(mp, "dash list");
return NULL;
@@ -6852,7 +6847,7 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
mp_number r1, r2;
new_number(r1);
new_number(r2);
- dln = (mp_dash_node) mp_link(d);
+ dln = (mp_dash_node) d->link;
dd = mp_get_dash_list(hh);
new_number(xoff);
new_number(dashoff);
@@ -6872,7 +6867,7 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
take_scaled(r1, hsf, dd->stop_x);
number_add(r1, xoff);
while (number_less(r1, dln->start_x)) {
- dd = (mp_dash_node) mp_link(dd);
+ dd = (mp_dash_node) dd->link;
take_scaled(r1, hsf, dd->stop_x);
number_add(r1, xoff);
}
@@ -6893,9 +6888,9 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
take_scaled(r1, hsf, dd->start_x);
number_add(r1, xoff);
if (number_lessequal(r1, dln->stop_x)) {
- mp_link(d) = (mp_node) mp_get_dash_node(mp);
- d = (mp_dash_node) mp_link(d);
- mp_link(d) = (mp_node) dln;
+ d->link = (mp_node) mp_get_dash_node(mp);
+ d = (mp_dash_node) d->link;
+ d->link = (mp_node) dln;
take_scaled(r1, hsf, dd->start_x );
number_add(r1, xoff);
if (number_greater(dln->start_x, r1)) {
@@ -6913,14 +6908,14 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
}
free_number(r1);
}
- dd = (mp_dash_node) mp_link(dd);
+ dd = (mp_dash_node) dd->link;
take_scaled(r1, hsf, dd->start_x);
set_number_from_addition(dln->start_x , xoff, r1);
}
free_number(xoff);
free_number(r1);
free_number(r2);
- mp_link(d) = mp_link(dln);
+ d->link = dln->link;
mp_free_node(mp, (mp_node) dln, sizeof(mp_dash_node_data));
}
}
@@ -6928,8 +6923,8 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
free_number(hsf);
}
d = mp_get_dash_list(h);
- while (mp_link(d) != (mp_node) mp->null_dash) {
- d = (mp_dash_node) mp_link(d);
+ while (d->link != (mp_node) mp->null_dash) {
+ d = (mp_dash_node) d->link;
}
dd = mp_get_dash_list(h);
set_number_from_subtraction(h->dash_y, d->stop_x, dd->start_x);
@@ -6940,7 +6935,7 @@ static mp_edge_header_node mp_make_dashes (MP mp, mp_edge_header_node h)
if (number_greater(absval, h->dash_y) ) {
number_clone(h->dash_y, absval);
} else if (d != dd) {
- mp_set_dash_list(h, mp_link(dd));
+ mp_set_dash_list(h, dd->link);
set_number_from_addition(d->stop_x, dd->stop_x, h->dash_y);
mp_free_node(mp, (mp_node) dd, sizeof(mp_dash_node_data));
}
@@ -6987,7 +6982,7 @@ static void mp_adjust_bbox (MP mp, mp_edge_header_node h)
static void mp_box_ends (MP mp, mp_knot p, mp_knot pp, mp_edge_header_node h)
{
if (mp_right_type(p) != mp_endpoint_knot) {
- mp_fraction dx, dy;
+ mp_number dx, dy;
mp_number d;
mp_number z;
mp_number xx, yy;
@@ -7108,10 +7103,10 @@ void mp_set_bbox (MP mp, mp_edge_header_node h, int top_level)
}
break;
}
- while (mp_link(mp_bblast(h)) != NULL) {
- mp_node p = mp_link(mp_bblast(h));
+ while (mp_bblast(h)->link != NULL) {
+ mp_node p = mp_bblast(h)->link;
mp_bblast(h) = p;
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_stop_clip_node_type:
if (top_level) {
mp_confusion(mp, "clip");
@@ -7129,13 +7124,13 @@ void mp_set_bbox (MP mp, mp_edge_header_node h, int top_level)
{
int lev = 1;
while (lev != 0) {
- if (mp_link(p) == NULL) {
+ if (p->link == NULL) {
mp_confusion(mp, "bounds");
} else {
- p = mp_link(p);
- if (mp_type(p) == mp_start_bounds_node_type) {
+ p = p->link;
+ if (p->type == mp_start_bounds_node_type) {
++lev;
- } else if (mp_type(p) == mp_stop_bounds_node_type) {
+ } else if (p->type == mp_stop_bounds_node_type) {
--lev;
}
}
@@ -8015,7 +8010,7 @@ static mp_knot mp_make_envelope (MP mp, mp_knot c, mp_knot h, int linejoin, int
mp_knot w, w0;
int k, k0;
mp_number qx, qy;
- mp_fraction dxin, dyin, dxout, dyout;
+ mp_number dxin, dyin, dxout, dyout;
int join_type = 0;
mp_number tmp;
mp_number max_ht;
@@ -9074,7 +9069,7 @@ static void mp_new_indep (MP mp, mp_node p)
if (mp->serial_no >= max_integer) {
mp_fatal_error(mp, "Variable instance identifiers exhausted");
}
- mp_type(p) = mp_independent_type;
+ p->type = mp_independent_type;
mp->serial_no = mp->serial_no + 1;
mp_set_indep_scale(p, 0);
mp_set_indep_value(p, mp->serial_no);
@@ -9098,7 +9093,7 @@ inline static void do_set_dep_value (MP mp, mp_value_node p, mp_number *q)
static mp_value_node mp_get_dep_node (MP mp)
{
mp_value_node p = (mp_value_node) mp_new_value_node(mp);
- mp_type(p) = mp_dep_node_type;
+ p->type = mp_dep_node_type;
return p;
}
@@ -9136,7 +9131,7 @@ void mp_print_dependency (MP mp, mp_value_node p, int t)
if (! number_equal(v, unity_t)) {
print_number(v);
}
- if (mp_type(q) != mp_independent_type) {
+ if (q->type != mp_independent_type) {
mp_confusion(mp, "dependency");
} else {
mp_print_variable_name(mp, q);
@@ -9145,14 +9140,14 @@ void mp_print_dependency (MP mp, mp_value_node p, int t)
mp_print_str(mp, "*4");
number_add_scaled(v, -2);
}
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
}
}
}
static void mp_max_coef (MP mp, mp_number *x, mp_value_node p)
{
- mp_number(absv);
+ mp_number absv;
new_number(absv);
set_number_to_zero(*x);
while (mp_get_dep_info(p) != NULL) {
@@ -9160,7 +9155,7 @@ static void mp_max_coef (MP mp, mp_number *x, mp_value_node p)
if (number_greater(absv, *x)) {
number_clone(*x, absv);
}
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
}
free_number(absv);
}
@@ -9206,13 +9201,13 @@ static mp_value_node mp_p_plus_fq (MP mp,
free_number(r1);
mp_set_dep_value(p, v);
s = p;
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
number_abs_clone(absv, v);
if (number_less(absv, threshold)) {
mp_free_dep_node(mp, s);
} else {
if (number_greaterequal(absv, coef_bound_k) && mp->watch_coefs) {
- mp_type(qq) = independent_needing_fix;
+ qq->type = independent_needing_fix;
mp->fix_needed = 1;
}
mp_set_link(r, s);
@@ -9220,20 +9215,20 @@ static mp_value_node mp_p_plus_fq (MP mp,
}
free_number(absv);
pp = mp_get_dep_info(p);
- q = (mp_value_node) mp_link(q);
+ q = (mp_value_node) q->link;
qq = mp_get_dep_info(q);
}
} else {
if (pp == NULL) {
set_number_to_negative_inf(v);
- } else if (mp_type(pp) == mp_independent_type || (mp_type(pp) == independent_needing_fix && mp->fix_needed)) {
+ } else if (pp->type == mp_independent_type || (pp->type == independent_needing_fix && mp->fix_needed)) {
set_number_from_scaled(v, mp_get_indep_value(pp));
} else {
number_clone(v, mp_get_value_number(pp));
}
if (qq == NULL) {
set_number_to_negative_inf(vv);
- } else if (mp_type(qq) == mp_independent_type || (mp_type(qq) == independent_needing_fix && mp->fix_needed)) {
+ } else if (qq->type == mp_independent_type || (qq->type == independent_needing_fix && mp->fix_needed)) {
set_number_from_scaled(vv, mp_get_indep_value(qq));
} else {
number_clone(vv, mp_get_value_number(qq));
@@ -9262,19 +9257,19 @@ static mp_value_node mp_p_plus_fq (MP mp,
mp_set_dep_info(s, qq);
mp_set_dep_value(s, v);
if (number_greaterequal(absv, coef_bound_k) && mp->watch_coefs) {
- mp_type(qq) = independent_needing_fix;
+ qq->type = independent_needing_fix;
mp->fix_needed = 1;
}
mp_set_link(r, s);
r = s;
}
- q = (mp_value_node) mp_link(q);
+ q = (mp_value_node) q->link;
qq = mp_get_dep_info(q);
free_number(absv);
} else {
mp_set_link(r, p);
r = p;
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
pp = mp_get_dep_info(p);
}
}
@@ -9304,7 +9299,7 @@ static mp_value_node mp_p_plus_fq (MP mp,
free_number(half_threshold);
free_number(v);
free_number(vv);
- return (mp_value_node) mp_link(mp->temp_head);
+ return (mp_value_node) mp->temp_head->link;
}
static mp_value_node mp_p_plus_q (MP mp, mp_value_node p, mp_value_node q, mp_variable_type t)
@@ -9335,34 +9330,34 @@ static mp_value_node mp_p_plus_q (MP mp, mp_value_node p, mp_value_node q, mp_va
set_number_from_addition(v, mp_get_dep_value(p), mp_get_dep_value(q));
mp_set_dep_value(p, v);
s = p;
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
pp = mp_get_dep_info(p);
number_abs_clone(test, v);
if (number_less(test, threshold)) {
mp_free_dep_node(mp, s);
} else {
if (number_greaterequal(test, coef_bound_k) && mp->watch_coefs) {
- mp_type(qq) = independent_needing_fix;
+ qq->type = independent_needing_fix;
mp->fix_needed = 1;
}
mp_set_link(r, s);
r = s;
}
free_number(test);
- q = (mp_value_node) mp_link(q);
+ q = (mp_value_node) q->link;
qq = mp_get_dep_info(q);
}
} else {
if (pp == NULL) {
set_number_to_zero(v);
- } else if (mp_type(pp) == mp_independent_type || (mp_type(pp) == independent_needing_fix && mp->fix_needed)) {
+ } else if (pp->type == mp_independent_type || (pp->type == independent_needing_fix && mp->fix_needed)) {
set_number_from_scaled(v, mp_get_indep_value(pp));
} else {
number_clone(v, mp_get_value_number(pp));
}
if (qq == NULL) {
set_number_to_zero(vv);
- } else if (mp_type(qq) == mp_independent_type || (mp_type(qq) == independent_needing_fix && mp->fix_needed)) {
+ } else if (qq->type == mp_independent_type || (qq->type == independent_needing_fix && mp->fix_needed)) {
set_number_from_scaled(vv, mp_get_indep_value(qq));
} else {
number_clone(vv, mp_get_value_number(qq));
@@ -9371,14 +9366,14 @@ static mp_value_node mp_p_plus_q (MP mp, mp_value_node p, mp_value_node q, mp_va
s = mp_get_dep_node(mp);
mp_set_dep_info(s, qq);
mp_set_dep_value(s, mp_get_dep_value(q));
- q = (mp_value_node) mp_link(q);
+ q = (mp_value_node) q->link;
qq = mp_get_dep_info(q);
mp_set_link(r, s);
r = s;
} else {
mp_set_link(r, p);
r = p;
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
pp = mp_get_dep_info(p);
}
}
@@ -9395,7 +9390,7 @@ static mp_value_node mp_p_plus_q (MP mp, mp_value_node p, mp_value_node q, mp_va
free_number(v);
free_number(vv);
free_number(threshold);
- return (mp_value_node) mp_link(mp->temp_head);
+ return (mp_value_node) mp->temp_head->link;
}
static mp_value_node mp_p_times_v (MP mp, mp_value_node p, mp_number *v, int t0, int t1, int v_is_scaled)
@@ -9422,18 +9417,18 @@ static mp_value_node mp_p_times_v (MP mp, mp_value_node p, mp_number *v, int t0,
}
number_abs_clone(test, w);
if (number_lessequal(test, threshold)) {
- s = (mp_value_node) mp_link(p);
+ s = (mp_value_node) p->link;
mp_free_dep_node(mp, p);
p = s;
} else {
if (number_greaterequal(test, coef_bound_k)) {
mp->fix_needed = 1;
- mp_type(mp_get_dep_info(p)) = independent_needing_fix;
+ mp_get_dep_info(p)->type = independent_needing_fix;
}
mp_set_link(r, p);
r = p;
mp_set_dep_value(p, w);
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
}
free_number(test);
}
@@ -9451,7 +9446,7 @@ static mp_value_node mp_p_times_v (MP mp, mp_value_node p, mp_number *v, int t0,
}
free_number(w);
free_number(threshold);
- return (mp_value_node) mp_link(mp->temp_head);
+ return (mp_value_node) mp->temp_head->link;
}
mp_value_node mp_p_over_v (MP mp, mp_value_node p, mp_number *v_orig, int t0, int t1)
@@ -9493,18 +9488,18 @@ mp_value_node mp_p_over_v (MP mp, mp_value_node p, mp_number *v_orig, int t0, in
new_number(test);
number_abs_clone(test, w);
if (number_lessequal(test, threshold)) {
- s = (mp_value_node) mp_link(p);
+ s = (mp_value_node) p->link;
mp_free_dep_node(mp, p);
p = s;
} else {
if (number_greaterequal(test, coef_bound_k)) {
mp->fix_needed = 1;
- mp_type(mp_get_dep_info(p)) = independent_needing_fix;
+ mp_get_dep_info(p)->type = independent_needing_fix;
}
mp_set_link(r, p);
r = p;
mp_set_dep_value(p, w);
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
}
free_number(test);
}
@@ -9520,7 +9515,7 @@ mp_value_node mp_p_over_v (MP mp, mp_value_node p, mp_number *v_orig, int t0, in
free_number(v);
free_number(w);
free_number(threshold);
- return (mp_value_node) mp_link(mp->temp_head);
+ return (mp_value_node) mp->temp_head->link;
}
static mp_value_node mp_p_with_x_becoming_q (MP mp, mp_value_node p, mp_node x, mp_node q, int t)
@@ -9530,7 +9525,7 @@ static mp_value_node mp_p_with_x_becoming_q (MP mp, mp_value_node p, mp_node x,
int sx = mp_get_indep_value(x);
while (mp_get_dep_info(s) != NULL && mp_get_indep_value(mp_get_dep_info(s)) > sx) {
r = s;
- s = (mp_value_node) mp_link(s);
+ s = (mp_value_node) s->link;
}
if (mp_get_dep_info(s) == NULL || mp_get_dep_info(s) != x) {
return p;
@@ -9538,10 +9533,10 @@ static mp_value_node mp_p_with_x_becoming_q (MP mp, mp_value_node p, mp_node x,
mp_value_node ret;
mp_number v1;
mp_set_link(mp->temp_head, p);
- mp_set_link(r, mp_link(s));
+ mp_set_link(r, s->link);
new_number_clone(v1, mp_get_dep_value(s));
mp_free_dep_node(mp, s);
- ret = mp_p_plus_fq(mp, (mp_value_node) mp_link(mp->temp_head), &v1, (mp_value_node) q, t, mp_dependent_type);
+ ret = mp_p_plus_fq(mp, (mp_value_node) mp->temp_head->link, &v1, (mp_value_node) q, t, mp_dependent_type);
free_number(v1);
return ret;
}
@@ -9564,12 +9559,12 @@ static void mp_val_too_big (MP mp, mp_number *x)
void mp_make_known (MP mp, mp_value_node p, mp_value_node q)
{
- mp_variable_type t = mp_type(p);
+ mp_variable_type t = p->type;
mp_number absp;
new_number(absp);
- mp_set_prev_dep(mp_link(q), mp_get_prev_dep(p));
- mp_set_link(mp_get_prev_dep(p), mp_link(q));
- mp_type(p) = mp_known_type;
+ mp_set_prev_dep(q->link, mp_get_prev_dep(p));
+ mp_set_link(mp_get_prev_dep(p), q->link);
+ p->type = mp_known_type;
mp_set_value_number(p, mp_get_dep_value(q));
mp_free_dep_node(mp, q);
number_abs_clone(absp, mp_get_value_number(p));
@@ -9594,7 +9589,7 @@ void mp_make_known (MP mp, mp_value_node p, mp_value_node q)
static void mp_fix_dependencies (MP mp)
{
- mp_value_node r = (mp_value_node) mp_link(mp->dep_head);
+ mp_value_node r = (mp_value_node) mp->dep_head->link;
mp_value_node s = NULL;
while (r != mp->dep_head) {
mp_value_node t = r;
@@ -9604,40 +9599,40 @@ static void mp_fix_dependencies (MP mp)
if (t == r) {
q = (mp_value_node) mp_get_dep_list(t);
} else {
- q = (mp_value_node) mp_link(r);
+ q = (mp_value_node) r->link;
}
x = mp_get_dep_info(q);
if (x == NULL) {
break;
- } else if (mp_type(x) <= independent_being_fixed) {
- if (mp_type(x) < independent_being_fixed) {
+ } else if (x->type <= independent_being_fixed) {
+ if (x->type < independent_being_fixed) {
mp_value_node p = mp_get_dep_node(mp);
mp_set_link(p, s);
s = p;
mp_set_dep_info(s, x);
- mp_type(x) = independent_being_fixed;
+ x->type = independent_being_fixed;
}
mp_set_dep_value(q, mp_get_dep_value(q));
number_divide_int(mp_get_dep_value(q), 4);
if (number_zero(mp_get_dep_value(q))) {
- mp_set_link(r, mp_link(q));
+ mp_set_link(r, q->link);
mp_free_dep_node(mp, q);
q = r;
}
}
r = q;
}
- r = (mp_value_node) mp_link(q);
+ r = (mp_value_node) q->link;
if (q == (mp_value_node) mp_get_dep_list(t)) {
mp_make_known(mp, t, q);
}
}
while (s != NULL) {
- mp_value_node p = (mp_value_node) mp_link(s);
+ mp_value_node p = (mp_value_node) s->link;
mp_node x = mp_get_dep_info(s);
mp_free_dep_node(mp, s);
s = p;
- mp_type(x) = mp_independent_type;
+ x->type = mp_independent_type;
mp_set_indep_scale(x, mp_get_indep_scale(x) + 2);
}
mp->fix_needed = 0;
@@ -9646,10 +9641,10 @@ static void mp_fix_dependencies (MP mp)
static void mp_new_dep (MP mp, mp_node q, mp_variable_type newtype, mp_value_node p)
{
mp_node r;
- mp_type(q) = newtype;
+ q->type = newtype;
mp_set_dep_list(q, p);
mp_set_prev_dep(q, (mp_node) mp->dep_head);
- r = mp_link(mp->dep_head);
+ r = mp->dep_head->link;
mp_set_link(mp->dep_final, r);
mp_set_prev_dep(r, (mp_node) mp->dep_final);
mp_set_link(mp->dep_head, q);
@@ -9692,8 +9687,8 @@ static mp_value_node mp_copy_dep_list (MP mp, mp_value_node p)
break;
} else {
mp_set_link(mp->dep_final, mp_get_dep_node(mp));
- mp->dep_final = (mp_value_node) mp_link(mp->dep_final);
- p = (mp_value_node) mp_link(p);
+ mp->dep_final = (mp_value_node) mp->dep_final->link;
+ p = (mp_value_node) p->link;
}
}
return q;
@@ -9730,20 +9725,20 @@ static void mp_linear_eq (MP mp, mp_value_node p, int t)
display_new_dependency(mp, p, (mp_node) x, n);
}
prev_r = (mp_value_node) mp->dep_head;
- r = (mp_value_node) mp_link(mp->dep_head);
+ r = (mp_value_node) mp->dep_head->link;
while (r != mp->dep_head) {
mp_value_node s = (mp_value_node) mp_get_dep_list(r);
- mp_value_node q = mp_p_with_x_becoming_q(mp, s, x, (mp_node) p, mp_type(r));
+ mp_value_node q = mp_p_with_x_becoming_q(mp, s, x, (mp_node) p, r->type);
if (mp_get_dep_info(q) == NULL) {
mp_make_known(mp, r, q);
} else {
mp_set_dep_list(r, q);
do {
- q = (mp_value_node) mp_link(q);
+ q = (mp_value_node) q->link;
} while (mp_get_dep_info(q) != NULL);
prev_r = q;
}
- r = (mp_value_node) mp_link(prev_r);
+ r = (mp_value_node) prev_r->link;
}
if (n > 0) {
p = divide_p_by_2_n(mp, p, n);
@@ -9760,7 +9755,7 @@ static mp_value_node find_node_with_largest_coefficient (MP mp, mp_value_node p,
mp_number vabs;
mp_number rabs;
mp_value_node q = p;
- mp_value_node r = (mp_value_node) mp_link(p);
+ mp_value_node r = (mp_value_node) p->link;
new_number(vabs);
new_number(rabs);
number_clone(*v, mp_get_dep_value(q));
@@ -9771,7 +9766,7 @@ static mp_value_node find_node_with_largest_coefficient (MP mp, mp_value_node p,
q = r;
number_clone(*v, mp_get_dep_value(r));
}
- r = (mp_value_node) mp_link(r);
+ r = (mp_value_node) r->link;
}
free_number(vabs);
free_number(rabs);
@@ -9788,7 +9783,7 @@ static mp_value_node divide_p_by_minusv_removing_q (MP mp,
mp_set_link(s, p);
do {
if (r == q) {
- mp_set_link(s, mp_link(r));
+ mp_set_link(s, r->link);
mp_free_dep_node(mp, r);
} else {
mp_number w;
@@ -9798,7 +9793,7 @@ static mp_value_node divide_p_by_minusv_removing_q (MP mp,
make_fraction(w, mp_get_dep_value(r), *v);
number_abs_clone(absw, w);
if (number_lessequal(absw, half_fraction_threshold_k)) {
- mp_set_link(s, mp_link(r));
+ mp_set_link(s, r->link);
mp_free_dep_node(mp, r);
} else {
number_negate(w);
@@ -9808,7 +9803,7 @@ static mp_value_node divide_p_by_minusv_removing_q (MP mp,
free_number(w);
free_number(absw);
}
- r = (mp_value_node) mp_link(s);
+ r = (mp_value_node) s->link;
} while (mp_get_dep_info(r) != NULL);
if (t == mp_proto_dependent_type) {
mp_number ret;
@@ -9826,7 +9821,7 @@ static mp_value_node divide_p_by_minusv_removing_q (MP mp,
free_number(ret);
}
*final_node = r;
- return (mp_value_node) mp_link(mp->temp_head);
+ return (mp_value_node) mp->temp_head->link;
}
static void display_new_dependency (MP mp, mp_value_node p, mp_node x, int n)
@@ -9867,15 +9862,15 @@ static mp_value_node divide_p_by_2_n (MP mp, mp_value_node p, int n)
}
number_abs_clone(absw, w);
if (number_lessequal(absw, half_fraction_threshold_k) && (mp_get_dep_info(r) != NULL)) {
- mp_set_link(s, mp_link(r));
+ mp_set_link(s, r->link);
mp_free_dep_node(mp, r);
} else {
mp_set_dep_value(r, w);
s = r;
}
- r = (mp_value_node) mp_link(s);
+ r = (mp_value_node) s->link;
} while (mp_get_dep_info(s) != NULL);
- pp = (mp_value_node) mp_link(mp->temp_head);
+ pp = (mp_value_node) mp->temp_head->link;
free_number(absw);
free_number(w);
}
@@ -9887,7 +9882,7 @@ static void change_to_known (MP mp, mp_value_node p, mp_node x, mp_value_node fi
(void) n;
if (mp_get_dep_info(p) == NULL) {
mp_number absx;
- mp_type(x) = mp_known_type;
+ x->type = mp_known_type;
mp_set_value_number(x, mp_get_dep_value(p));
new_number_abs(absx, mp_get_value_number(x));
if (number_greaterequal(absx, warning_limit_t)) {
@@ -9912,8 +9907,8 @@ static void change_to_known (MP mp, mp_value_node p, mp_node x, mp_value_node fi
static mp_node mp_new_ring_entry (MP mp, mp_node p)
{
mp_node q = mp_new_value_node(mp);
- mp_name_type(q) = mp_capsule_operation;
- mp_type(q) = mp_type(p);
+ q->name_type = mp_capsule_operation;
+ q->type = p->type;
if (mp_get_value_node(p) == NULL) {
mp_set_value_node(q, p);
} else {
@@ -9937,16 +9932,16 @@ void mp_ring_delete (MP mp, mp_node p)
static void mp_nonlinear_eq (MP mp, mp_value v, mp_node p, int flush_p)
{
- mp_variable_type t = mp_type(p) - unknown_tag;
+ mp_variable_type t = p->type - unknown_tag;
mp_node q = mp_get_value_node(p);
if (flush_p) {
- mp_type(p) = mp_vacuous_type;
+ p->type = mp_vacuous_type;
} else {
p = q;
}
do {
mp_node r = mp_get_value_node(q);
- mp_type(q) = t;
+ q->type = t;
switch (t) {
case mp_boolean_type:
mp_set_value_number(q, v.data.n);
@@ -10215,7 +10210,7 @@ static void mp_show_cmd_mod (MP mp, int c, int m)
mp_print_cmd_mod(mp, mp_macro_def_command, c);
mp_print_str(mp, "'d macro:");
mp_print_ln(mp);
- mp_show_token_list(mp, mp_link(mp_link(cur_mod_node)),0);
+ mp_show_token_list(mp, cur_mod_node->link->link,0);
break;
default:
mp_print_cmd_mod(mp, c, m);
@@ -10302,7 +10297,7 @@ void mp_show_context (MP mp)
mp_node pp = mp->param_stack[param_start];
mp_print_nl(mp, "<for(");
if (pp != NULL) {
- if (mp_link(pp) == MP_VOID) {
+ if (pp->link == MP_VOID) {
mp_print_exp(mp, pp, 0);
} else {
mp_show_token_list(mp, pp, NULL);
@@ -10332,12 +10327,12 @@ void mp_show_context (MP mp)
mp_show_token_list(mp, mp->param_stack[param_start + 1], NULL);
} else {
mp_node qq = pp;
- while (mp_link(qq) != NULL) {
- qq = mp_link(qq);
+ while (qq->link != NULL) {
+ qq = qq->link;
}
- mp_link(qq) = mp->param_stack[param_start + 1];
+ qq->link = mp->param_stack[param_start + 1];
mp_show_token_list(mp, pp, NULL);
- mp_link(qq) = NULL;
+ qq->link = NULL;
}
}
}
@@ -10419,7 +10414,7 @@ static void mp_end_token_list (MP mp)
--mp->param_ptr;
p = mp->param_stack[mp->param_ptr];
if (p != NULL) {
- if (mp_link(p) == MP_VOID) {
+ if (p->link == MP_VOID) {
mp_recycle_value(mp, p);
mp_free_value_node(mp, p);
} else {
@@ -10434,33 +10429,33 @@ static void mp_end_token_list (MP mp)
static void mp_encapsulate (MP mp, mp_value_node p)
{
mp_node q = mp_new_value_node(mp);
- mp_name_type(q) = mp_capsule_operation;
+ q->name_type = mp_capsule_operation;
mp_new_dep(mp, q, mp->cur_exp.type, p);
mp_set_cur_exp_node(mp, q);
}
static void mp_install (MP mp, mp_node r, mp_node q)
{
- if (mp_type(q) == mp_known_type) {
- mp_type(r) = mp_known_type;
+ if (q->type == mp_known_type) {
+ r->type = mp_known_type;
mp_set_value_number(r, mp_get_value_number(q));
- } else if (mp_type(q) == mp_independent_type) {
+ } else if (q->type == mp_independent_type) {
mp_value_node p = mp_single_dependency(mp, q);
if (p == mp->dep_final) {
- mp_type(r) = mp_known_type;
+ r->type = mp_known_type;
mp_set_value_number(r, zero_t);
mp_free_dep_node(mp, p);
} else {
mp_new_dep(mp, r, mp_dependent_type, p);
}
} else {
- mp_new_dep(mp, r, mp_type(q), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list((mp_value_node) q)));
+ mp_new_dep(mp, r, q->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list((mp_value_node) q)));
}
}
static void mp_make_exp_copy (MP mp, mp_node p)
{
RESTART:
- mp->cur_exp.type = mp_type(p);
+ mp->cur_exp.type = p->type;
switch (mp->cur_exp.type) {
case mp_vacuous_type:
case mp_boolean_type:
@@ -10500,7 +10495,7 @@ static void mp_make_exp_copy (MP mp, mp_node p)
mp_node t;
mp_value_node q;
if (mp_get_value_node(p) == NULL) {
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_pair_type:
mp_init_pair_node(mp, p);
break;
@@ -10518,7 +10513,7 @@ static void mp_make_exp_copy (MP mp, mp_node p)
}
}
t = mp_new_value_node(mp);
- mp_name_type(t) = mp_capsule_operation;
+ t->name_type = mp_capsule_operation;
q = (mp_value_node) mp_get_value_node(p);
switch (mp->cur_exp.type) {
case mp_pair_type:
@@ -10594,25 +10589,25 @@ static mp_node mp_cur_tok (MP mp)
number_clone(save_exp_num, cur_exp_value_number);
mp_make_exp_copy(mp, cur_mod_node);
p = mp_stash_cur_exp(mp);
- mp_link(p) = NULL;
+ p->link = NULL;
mp->cur_exp = save_exp;
number_clone(mp->cur_exp.data.n, save_exp_num);
free_number(save_exp_num);
} else {
p = mp_new_token_node(mp);
- mp_name_type(p) = mp_token_operation;
+ p->name_type = mp_token_operation;
if (cur_cmd == mp_numeric_command) {
mp_set_value_number(p, cur_mod_number);
- mp_type(p) = mp_known_type;
+ p->type = mp_known_type;
} else {
mp_set_value_str(p, cur_mod_str);
- mp_type(p) = mp_string_type;
+ p->type = mp_string_type;
}
}
} else {
p = mp_new_symbolic_node(mp);
mp_set_sym_sym(p, cur_sym);
- mp_name_type(p) = cur_sym_mod;
+ p->name_type = cur_sym_mod;
}
return p;
}
@@ -10809,7 +10804,7 @@ void mp_runaway (MP mp)
break;
}
mp_print_ln(mp);
- mp_show_token_list(mp, mp_link(mp->hold_head), NULL);
+ mp_show_token_list(mp, mp->hold_head->link, NULL);
}
}
@@ -10875,7 +10870,7 @@ void mp_get_next (MP mp)
);
goto RESTART;
}
- mp_str_room(mp, (size_t) (loc - k));
+ mp_str_room(mp, loc - k);
do {
mp_append_char(mp, mp->buffer[k]);
++k;
@@ -10914,12 +10909,12 @@ void mp_get_next (MP mp)
FOUND:
set_cur_sym(mp_id_lookup(mp, (char *) (mp->buffer + k), (size_t) (loc - k), 1));
} else {
- if (nloc != NULL && mp_type(nloc) == mp_symbol_node_type) {
- int cur_sym_mod_ = mp_name_type(nloc);
+ if (nloc != NULL && nloc->type == mp_symbol_node_type) {
+ int cur_sym_mod_ = nloc->name_type;
int cur_info = mp_get_sym_info(nloc);
set_cur_sym(mp_get_sym_sym(nloc));
set_cur_sym_mod(cur_sym_mod_);
- nloc = mp_link(nloc);
+ nloc = nloc->link;
if (cur_sym_mod_ == mp_expr_operation) {
set_cur_cmd(mp_capsule_command);
set_cur_mod_node(mp->param_stack[param_start + cur_info]);
@@ -10931,8 +10926,8 @@ void mp_get_next (MP mp)
goto RESTART;
}
} else if (nloc != NULL) {
- if (mp_name_type(nloc) == mp_token_operation) {
- if (mp_type(nloc) == mp_known_type) {
+ if (nloc->name_type == mp_token_operation) {
+ if (nloc->type == mp_known_type) {
set_cur_mod_number(mp_get_value_number(nloc));
set_cur_cmd(mp_numeric_command);
} else {
@@ -10944,7 +10939,7 @@ void mp_get_next (MP mp)
set_cur_mod_node(nloc);
set_cur_cmd(mp_capsule_command);
}
- nloc = mp_link(nloc);
+ nloc = nloc->link;
return;
} else {
mp_end_token_list(mp);
@@ -11153,7 +11148,7 @@ static mp_node mp_scan_toks (MP mp, mp_command_code terminator, mp_subst_list_it
int cur_data_mod = 0;
mp_node p = mp->hold_head;
int balance = 1;
- mp_link(mp->hold_head) = NULL;
+ mp->hold_head->link = NULL;
while (1) {
get_t_next(mp);
cur_data = -1;
@@ -11190,20 +11185,20 @@ static mp_node mp_scan_toks (MP mp, mp_command_code terminator, mp_subst_list_it
if (cur_data != -1) {
mp_node pp = mp_new_symbolic_node(mp);
mp_set_sym_info(pp, cur_data);
- mp_name_type(pp) = cur_data_mod;
- mp_link(p) = pp;
+ pp->name_type = cur_data_mod;
+ p->link = pp;
} else {
- mp_link(p) = mp_cur_tok(mp);
+ p->link = mp_cur_tok(mp);
}
- p = mp_link(p);
+ p = p->link;
}
- mp_link(p) = tail_end;
+ p->link = tail_end;
while (subst_list) {
mp_subst_list_item *q = subst_list->link;
mp_memory_free(subst_list);
subst_list = q;
}
- return mp_link(mp->hold_head);
+ return mp->hold_head->link;
}
static void mp_get_symbol (MP mp)
@@ -11280,10 +11275,10 @@ static void mp_make_op_def (MP mp, int code)
q = mp_new_symbolic_node(mp);
mp_set_ref_count(q, 0);
r = mp_new_symbolic_node(mp);
- mp_link(q) = r;
+ q->link = r;
mp_set_sym_info(r, mp_general_macro);
- mp_name_type(r) = mp_macro_operation;
- mp_link(r) = mp_scan_toks(mp, mp_macro_def_command, qn, NULL, 0);
+ r->name_type = mp_macro_operation;
+ r->link = mp_scan_toks(mp, mp_macro_def_command, qn, NULL, 0);
mp->scanner_status = mp_normal_state;
set_eq_type(mp->warning_info, m);
set_equiv_node(mp->warning_info, q);
@@ -11301,7 +11296,7 @@ static void mp_scan_def (MP mp, int code)
int sym_type;
mp_sym l_delim, r_delim;
int c = mp_general_macro;
- mp_link(mp->hold_head) = NULL;
+ mp->hold_head->link = NULL;
q = mp_new_symbolic_node(mp);
mp_set_ref_count(q, 0);
r = NULL;
@@ -11315,7 +11310,7 @@ static void mp_scan_def (MP mp, int code)
set_equiv_node(mp->warning_info, q);
} else {
p = mp_scan_declared_variable(mp);
- mp_flush_variable(mp, equiv_node(mp_get_sym_sym(p)), mp_link(p), 1);
+ mp_flush_variable(mp, equiv_node(mp_get_sym_sym(p)), p->link, 1);
mp->warning_info_node = mp_find_variable(mp, p);
mp_flush_node_list(mp, p);
if (mp->warning_info_node == NULL) {
@@ -11333,7 +11328,7 @@ static void mp_scan_def (MP mp, int code)
n = 3;
get_t_next(mp);
}
- mp_type(mp->warning_info_node) = mp_unsuffixed_macro_type - 2 + n;
+ mp->warning_info_node->type = mp_unsuffixed_macro_type - 2 + n;
mp_set_value_node(mp->warning_info_node, q);
}
k = n;
@@ -11368,9 +11363,9 @@ static void mp_scan_def (MP mp, int code)
sym_type = mp_expr_operation;
OKAY:
do {
- mp_link(q) = mp_new_symbolic_node(mp);
- q = mp_link(q);
- mp_name_type(q) = sym_type;
+ q->link = mp_new_symbolic_node(mp);
+ q = q->link;
+ q->name_type = sym_type;
mp_set_sym_info(q, k);
mp_get_symbol(mp);
rp = mp_memory_allocate(sizeof(mp_subst_list_item));
@@ -11438,17 +11433,17 @@ static void mp_scan_def (MP mp, int code)
mp_check_equals(mp);
p = mp_new_symbolic_node(mp);
mp_set_sym_info(p, c);
- mp_name_type(p) = mp_macro_operation;
- mp_link(q) = p;
+ p->name_type = mp_macro_operation;
+ q->link = p;
if (code == mp_def_code) {
- mp_link(p) = mp_scan_toks(mp, mp_macro_def_command, r, NULL, (int) n);
+ p->link = mp_scan_toks(mp, mp_macro_def_command, r, NULL, (int) n);
} else {
mp_node qq = mp_new_symbolic_node(mp);
mp_set_sym_sym(qq, mp->bg_loc);
- mp_link(p) = qq;
+ p->link = qq;
p = mp_new_symbolic_node(mp);
mp_set_sym_sym(p, mp->eg_loc);
- mp_link(qq) = mp_scan_toks(mp, mp_macro_def_command, r, p, (int) n);
+ qq->link = mp_scan_toks(mp, mp_macro_def_command, r, p, (int) n);
}
if (mp->warning_info_node == mp->bad_vardef) {
mp_flush_token_list(mp, mp_get_value_node(mp->bad_vardef));
@@ -11797,16 +11792,16 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
mp_node tail = 0;
mp_sym l_delim = NULL;
mp_sym r_delim = NULL;
- mp_node r = mp_link(def_ref);
+ mp_node r = def_ref->link;
mp_add_mac_ref(def_ref);
if (arg_list == NULL) {
n = 0;
} else {
n = 1;
tail = arg_list;
- while (mp_link(tail) != NULL) {
+ while (tail->link != NULL) {
++n;
- tail = mp_link(tail);
+ tail = tail->link;
}
}
if (number_positive(internal_value(mp_tracing_macros_internal))) {
@@ -11824,13 +11819,13 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
mp_node q = (mp_node) mp_get_sym_sym(p);
mp_print_arg(mp, q, n, 0, 0);
++n;
- p = mp_link(p);
+ p = p->link;
} while (p != NULL);
}
mp_end_diagnostic(mp, 0);
}
set_cur_cmd(mp_comma_command + 1);
- while (mp_name_type(r) == mp_expr_operation || mp_name_type(r) == mp_suffix_operation || mp_name_type(r) == mp_text_operation) {
+ while (r->name_type == mp_expr_operation || r->name_type == mp_suffix_operation || r->name_type == mp_text_operation) {
if (cur_cmd != mp_comma_command) {
mp_get_x_next(mp);
if (cur_cmd != mp_left_delimiter_command) {
@@ -11843,7 +11838,7 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
mp->selector = selector;
mp_snprintf(msg, 256, "Missing argument to %s", mp_str(mp, sname));
delete_str_ref(sname);
- if (mp_name_type(r) == mp_suffix_operation || mp_name_type(r) == mp_text_operation) {
+ if (r->name_type == mp_suffix_operation || r->name_type == mp_text_operation) {
mp_set_cur_exp_value_number(mp, &zero_t);
mp->cur_exp.type = mp_token_list_type;
} else {
@@ -11862,18 +11857,18 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
l_delim = cur_sym;
r_delim = equiv_sym(cur_sym);
}
- if (mp_name_type(r) == mp_text_operation) {
+ if (r->name_type == mp_text_operation) {
mp_scan_text_arg(mp, l_delim, r_delim);
} else {
mp_get_x_next(mp);
- if (mp_name_type(r) == mp_suffix_operation) {
+ if (r->name_type == mp_suffix_operation) {
mp_scan_suffix(mp);
} else {
mp_scan_expression(mp);
}
}
if ((cur_cmd != mp_comma_command) && ((cur_cmd != mp_right_delimiter_command) || (equiv_sym(cur_sym) != l_delim))) {
- switch (mp_name_type(mp_link(r))) {
+ switch (r->link->name_type) {
case mp_expr_operation:
case mp_suffix_operation:
case mp_text_operation:
@@ -11906,19 +11901,19 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
}
if (number_positive(internal_value(mp_tracing_macros_internal))) {
mp_begin_diagnostic(mp);
- mp_print_arg(mp, (mp_node) mp_get_sym_sym(p), n, mp_get_sym_info(r), mp_name_type(r));
+ mp_print_arg(mp, (mp_node) mp_get_sym_sym(p), n, mp_get_sym_info(r), r->name_type);
mp_end_diagnostic(mp, 0);
}
if (arg_list == NULL) {
arg_list = p;
} else {
- mp_link(tail) = p;
+ tail->link = p;
}
tail = p;
++n;
}
- r = mp_link(r);
+ r = r->link;
}
if (cur_cmd == mp_comma_command) {
char msg[256];
@@ -11975,7 +11970,7 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
if (arg_list == NULL) {
arg_list = p;
} else {
- mp_link(tail) = p;
+ tail->link = p;
}
tail = p;
++n;
@@ -12029,20 +12024,20 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
}
if (number_positive(internal_value(mp_tracing_macros_internal))) {
mp_begin_diagnostic(mp);
- mp_print_arg(mp, (mp_node) mp_get_sym_sym(p), n, mp_get_sym_info(r), mp_name_type(r));
+ mp_print_arg(mp, (mp_node) mp_get_sym_sym(p), n, mp_get_sym_info(r), r->name_type);
mp_end_diagnostic(mp, 0);
}
if (arg_list == NULL) {
arg_list = p;
} else {
- mp_link(tail) = p;
+ tail->link = p;
}
tail = p;
++n;
}
}
- r = mp_link(r);
+ r = r->link;
while (token_state && (nloc == NULL)) {
mp_end_token_list(mp);
@@ -12059,7 +12054,7 @@ static void mp_macro_call (MP mp, mp_node def_ref, mp_node arg_list, mp_sym macr
do {
mp->param_stack[mp->param_ptr] = (mp_node) mp_get_sym_sym(p);
++mp->param_ptr;
- p = mp_link(p);
+ p = p->link;
} while (p != NULL);
mp_flush_node_list(mp, arg_list);
}
@@ -12073,21 +12068,21 @@ static void mp_print_macro_name (MP mp, mp_node a, mp_sym n)
mp_node p = (mp_node) mp_get_sym_sym(a);
if (p) {
mp_node q = p;
- while (mp_link(q) != NULL) {
- q = mp_link(q);
+ while (q->link != NULL) {
+ q = q->link;
}
- mp_link(q) = (mp_node) mp_get_sym_sym(mp_link(a));
+ q->link = (mp_node) mp_get_sym_sym(a->link);
mp_show_token_list(mp, p, NULL);
- mp_link(q) = NULL;
+ q->link = NULL;
} else {
- mp_print_mp_str(mp,text(mp_get_sym_sym((mp_node) mp_get_sym_sym(mp_link(a)))));
+ mp_print_mp_str(mp,text(mp_get_sym_sym((mp_node) mp_get_sym_sym(a->link))));
}
}
}
static void mp_print_arg (MP mp, mp_node q, int n, int b, int bb)
{
- if (q && mp_link(q) == MP_VOID) {
+ if (q && q->link == MP_VOID) {
mp_print_nl(mp, "(EXPR");
} else if ((bb < mp_text_operation) && (b != mp_text_macro)) {
mp_print_nl(mp, "(SUFFIX");
@@ -12096,7 +12091,7 @@ static void mp_print_arg (MP mp, mp_node q, int n, int b, int bb)
}
mp_print_int(mp, n);
mp_print_str(mp, ")<-");
- if (q && mp_link(q) == MP_VOID) {
+ if (q && q->link == MP_VOID) {
mp_print_exp(mp, q, 1);
} else {
mp_show_token_list(mp, q, NULL);
@@ -12109,7 +12104,7 @@ void mp_scan_text_arg (MP mp, mp_sym l_delim, mp_sym r_delim)
mp->warning_info = l_delim;
mp->scanner_status = mp_absorbing_state;
mp_node p = mp->hold_head;
- mp_link(mp->hold_head) = NULL;
+ mp->hold_head->link = NULL;
while (1) {
get_t_next(mp);
if (l_delim == NULL) {
@@ -12136,10 +12131,10 @@ void mp_scan_text_arg (MP mp, mp_sym l_delim, mp_sym r_delim)
}
}
}
- mp_link(p) = mp_cur_tok(mp);
- p = mp_link(p);
+ p->link = mp_cur_tok(mp);
+ p = p->link;
}
- mp_set_cur_exp_node(mp, mp_link(mp->hold_head));
+ mp_set_cur_exp_node(mp, mp->hold_head->link);
mp->cur_exp.type = mp_token_list_type;
mp->scanner_status = mp_normal_state;
}
@@ -12156,7 +12151,7 @@ static void mp_stack_argument (MP mp, mp_node p)
static mp_node mp_get_if_node (MP mp) {
mp_if_node p = (mp_if_node) mp_allocate_node(mp, sizeof(mp_if_node_data));
- mp_type(p) = mp_if_node_type;
+ p->type = mp_if_node_type;
return (mp_node) p;
}
@@ -12187,9 +12182,9 @@ void mp_pass_text (MP mp)
static void mp_push_condition_stack (MP mp)
{
mp_node p = mp_get_if_node(mp);
- mp_link(p) = mp->cond_ptr;
- mp_type(p) = (int) mp->if_limit;
- mp_name_type(p) = mp->cur_if;
+ p->link = mp->cond_ptr;
+ p->type = (int) mp->if_limit;
+ p->name_type = mp->cur_if;
mp_if_line_field(p) = mp->if_line;
mp->cond_ptr = p;
mp->if_limit = mp_if_code;
@@ -12201,9 +12196,9 @@ static void mp_pop_condition_stack (MP mp)
{
mp_node p = mp->cond_ptr;
mp->if_line = mp_if_line_field(p);
- mp->cur_if = mp_name_type(p);
- mp->if_limit = mp_type(p);
- mp->cond_ptr = mp_link(p);
+ mp->cur_if = p->name_type;
+ mp->if_limit = p->type;
+ mp->cond_ptr = p->link;
mp_free_node(mp, p, sizeof(mp_if_node_data));
}
@@ -12217,11 +12212,11 @@ static void mp_change_if_limit (MP mp, int l, mp_node p)
if (q == NULL) {
mp_confusion(mp, "if");
return;
- } else if (mp_link(q) == p) {
- mp_type(q) = l;
+ } else if (q->link == p) {
+ q->type = l;
return;
} else {
- q = mp_link(q);
+ q = q->link;
}
}
}
@@ -12386,9 +12381,9 @@ void mp_begin_iteration (MP mp)
}
s->type = mp->cur_exp.data.node;
mp->cur_exp.type = mp_vacuous_type;
- q = mp_link(mp_edge_list(mp->cur_exp.data.node));
+ q = mp_edge_list(mp->cur_exp.data.node)->link;
if (q != NULL && mp_is_start_or_stop (q) && mp_skip_1component(mp, q) == NULL) {
- q = mp_link(q);
+ q = q->link;
}
s->list = q;
}
@@ -12447,13 +12442,13 @@ void mp_begin_iteration (MP mp)
}
mp_set_cur_exp_node(mp, mp_stash_cur_exp(mp));
}
- mp_link(q) = mp_new_symbolic_node(mp);
- q = mp_link(q);
+ q->link = mp_new_symbolic_node(mp);
+ q = q->link;
mp_set_sym_sym(q, mp->cur_exp.data.node);
if (m == mp_start_for_code) {
- mp_name_type(q) = mp_expr_operation;
+ q->name_type = mp_expr_operation;
} else if (m == mp_start_forsuffixes_code) {
- mp_name_type(q) = mp_suffix_operation;
+ q->name_type = mp_suffix_operation;
}
mp->cur_exp.type = mp_vacuous_type;
CONTINUE:
@@ -12520,7 +12515,7 @@ void mp_resume_iteration (MP mp)
p = mp->loop_ptr->list;
if (p != NULL && p == mp->loop_ptr->list_start) {
q = p;
- p = mp_link(p);
+ p = p->link;
mp_free_symbolic_node(mp, q);
mp->loop_ptr->list = p;
}
@@ -12528,7 +12523,7 @@ void mp_resume_iteration (MP mp)
mp_stop_iteration(mp);
return;
}
- mp->loop_ptr->list = mp_link(p);
+ mp->loop_ptr->list = p->link;
q = (mp_node) mp_get_sym_sym(p);
if (q) {
number_clone(mp->loop_ptr->old_value, q->data.n);
@@ -12542,7 +12537,7 @@ void mp_resume_iteration (MP mp)
if (q == NULL) {
goto NOT_FOUND;
} else if (! mp_is_start_or_stop(q)) {
- q = mp_link(q);
+ q = q->link;
} else if (! mp_is_stop(q)) {
q = mp_skip_1component(mp, q);
} else {
@@ -12559,7 +12554,7 @@ void mp_resume_iteration (MP mp)
if (number_greater(internal_value(mp_tracing_commands_internal), unity_t)) {
mp_begin_diagnostic(mp);
mp_print_nl(mp, "{loop value=");
- if ((q != NULL) && (mp_link(q) == MP_VOID)) {
+ if ((q != NULL) && (q->link == MP_VOID)) {
mp_print_exp(mp, q, 1);
} else {
mp_show_token_list(mp, q, NULL);
@@ -12585,7 +12580,7 @@ void mp_stop_iteration (MP mp)
while (q != NULL) {
p = (mp_node) mp_get_sym_sym(q);
if (p != NULL) {
- if (mp_link(p) == MP_VOID) {
+ if (p->link == MP_VOID) {
mp_recycle_value(mp, p);
mp_free_value_node(mp, p);
} else {
@@ -12593,7 +12588,7 @@ void mp_stop_iteration (MP mp)
}
}
p = q;
- q = mp_link(q);
+ q = q->link;
mp_free_symbolic_node(mp, p);
}
} else if (p > MP_PROGRESSION_FLAG) {
@@ -12857,8 +12852,8 @@ static mp_node mp_stash_cur_exp (MP mp)
break;
default:
p = mp_new_value_node(mp);
- mp_name_type(p) = mp_capsule_operation;
- mp_type(p) = mp->cur_exp.type;
+ p->name_type = mp_capsule_operation;
+ p->type = mp->cur_exp.type;
mp_set_value_number(p, cur_exp_value_number);
if (cur_exp_str) {
mp_set_value_str(p, cur_exp_str);
@@ -12870,13 +12865,13 @@ static mp_node mp_stash_cur_exp (MP mp)
break;
}
mp->cur_exp.type = mp_vacuous_type;
- mp_link(p) = MP_VOID;
+ p->link = MP_VOID;
return p;
}
void mp_unstash_cur_exp (MP mp, mp_node p)
{
- mp->cur_exp.type = mp_type(p);
+ mp->cur_exp.type = p->type;
switch (mp->cur_exp.type) {
case mp_unknown_boolean_type:
case mp_unknown_string_type:
@@ -12943,7 +12938,7 @@ void mp_print_exp (MP mp, mp_node p, int verbosity)
p = mp_stash_cur_exp(mp);
restore_cur_exp = 1;
}
- t = mp_type(p);
+ t = p->type;
if (t < mp_dependent_type) {
if (t != mp_vacuous_type && t != mp_known_type && mp_get_value_node(p) != NULL) {
v = mp_get_value_node(p);
@@ -12972,7 +12967,7 @@ void mp_print_exp (MP mp, mp_node p, int verbosity)
mp_print_type(mp, t);
if (v != NULL) {
mp_print_chr(mp, ' ');
- while ((mp_name_type(v) == mp_capsule_operation) && (v != p)) {
+ while ((v->name_type == mp_capsule_operation) && (v != p)) {
v = mp_get_value_node(v);
}
mp_print_variable_name(mp, v);
@@ -13097,7 +13092,7 @@ void mp_print_exp (MP mp, mp_node p, int verbosity)
void mp_print_big_node (MP mp, mp_node v, int verbosity)
{
- switch (mp_type(v)) {
+ switch (v->type) {
case mp_known_type:
print_number(mp_get_value_number(v));
break;
@@ -13105,14 +13100,14 @@ void mp_print_big_node (MP mp, mp_node v, int verbosity)
mp_print_variable_name(mp, v);
break;
default:
- mp_print_dp(mp, mp_type(v), (mp_value_node) mp_get_dep_list((mp_value_node) v), verbosity);
+ mp_print_dp(mp, v->type, (mp_value_node) mp_get_dep_list((mp_value_node) v), verbosity);
break;
}
}
static void mp_print_dp (MP mp, int t, mp_value_node p, int verbosity)
{
- mp_value_node q = (mp_value_node) mp_link(p);
+ mp_value_node q = (mp_value_node) p->link;
if ((mp_get_dep_info(q) == NULL) || (verbosity > 0)) {
mp_print_dependency(mp, p, t);
} else {
@@ -13172,7 +13167,7 @@ void mp_flush_cur_exp (MP mp, mp_value v)
static void mp_recycle_value (MP mp, mp_node p)
{
if (p != NULL && p != MP_VOID) {
- mp_variable_type t = mp_type(p);
+ mp_variable_type t = p->type;
switch (t) {
case mp_vacuous_type:
case mp_boolean_type:
@@ -13253,10 +13248,10 @@ static void mp_recycle_value (MP mp, mp_node p)
{
mp_value_node qq = (mp_value_node) mp_get_dep_list((mp_value_node) p);
while (mp_get_dep_info(qq) != NULL) {
- qq = (mp_value_node) mp_link(qq);
+ qq = (mp_value_node) qq->link;
}
- mp_set_link(mp_get_prev_dep((mp_value_node) p), mp_link(qq));
- mp_set_prev_dep(mp_link(qq), mp_get_prev_dep((mp_value_node) p));
+ mp_set_link(mp_get_prev_dep((mp_value_node) p), qq->link);
+ mp_set_prev_dep(qq->link, mp_get_prev_dep((mp_value_node) p));
mp_set_link(qq, NULL);
mp_flush_node_list(mp, (mp_node) mp_get_dep_list((mp_value_node) p));
}
@@ -13275,7 +13270,7 @@ static void mp_recycle_value (MP mp, mp_node p)
default:
break;
}
- mp_type(p) = mp_undefined_type;
+ p->type = mp_undefined_type;
}
}
@@ -13285,7 +13280,7 @@ static void mp_recycle_independent_value (MP mp, mp_node p)
mp_node pp;
mp_number v ;
mp_number test;
- mp_variable_type t = mp_type(p);
+ mp_variable_type t = p->type;
new_number(test);
new_number(v);
if (t < mp_dependent_type) {
@@ -13295,22 +13290,22 @@ static void mp_recycle_independent_value (MP mp, mp_node p)
set_number_to_zero(mp->max_c[mp_proto_dependent_type]);
mp->max_link[mp_dependent_type] = NULL;
mp->max_link[mp_proto_dependent_type] = NULL;
- q = (mp_value_node) mp_link(mp->dep_head);
+ q = (mp_value_node) mp->dep_head->link;
while (q != mp->dep_head) {
s = (mp_value_node) mp->temp_head;
mp_set_link(s, mp_get_dep_list(q));
while (1) {
- r = (mp_value_node) mp_link(s);
+ r = (mp_value_node) s->link;
if (mp_get_dep_info(r) == NULL) {
break;
} else if (mp_get_dep_info(r) != p) {
s = r;
} else {
- t = mp_type(q);
- if (mp_link(s) == mp_get_dep_list(q)) {
- mp_set_dep_list(q, mp_link(r));
+ t = q->type;
+ if (s->link == mp_get_dep_list(q)) {
+ mp_set_dep_list(q, r->link);
}
- mp_set_link(s, mp_link(r));
+ mp_set_link(s, r->link);
mp_set_dep_info(r, (mp_node) q);
number_abs_clone(test, mp_get_dep_value(r));
if (number_greater(test, mp->max_c[t])) {
@@ -13326,7 +13321,7 @@ static void mp_recycle_independent_value (MP mp, mp_node p)
}
}
}
- q = (mp_value_node) mp_link(r);
+ q = (mp_value_node) r->link;
}
if (number_positive(mp->max_c[mp_dependent_type]) || number_positive(mp->max_c[mp_proto_dependent_type])) {
mp_number test, ret;
@@ -13350,9 +13345,9 @@ static void mp_recycle_independent_value (MP mp, mp_node p)
r = (mp_value_node) mp_get_dep_list((mp_value_node) pp);
mp_set_link(s, r);
while (mp_get_dep_info(r) != NULL) {
- r = (mp_value_node) mp_link(r);
+ r = (mp_value_node) r->link;
}
- q = (mp_value_node) mp_link(r);
+ q = (mp_value_node) r->link;
mp_set_link(r, NULL);
mp_set_prev_dep(q, mp_get_prev_dep((mp_value_node) pp));
mp_set_link(mp_get_prev_dep((mp_value_node) pp), (mp_node) q);
@@ -13383,7 +13378,7 @@ static void mp_recycle_independent_value (MP mp, mp_node p)
mp_make_known(mp, q, mp->dep_final);
}
q = r;
- r = (mp_value_node) mp_link(r);
+ r = (mp_value_node) r->link;
mp_free_dep_node(mp, q);
}
}
@@ -13397,7 +13392,7 @@ static void mp_recycle_independent_value (MP mp, mp_node p)
mp->cur_exp.type = mp_proto_dependent_type;
}
mp_set_dep_list(q, mp_p_over_v(mp, (mp_value_node) mp_get_dep_list(q), &unity_t, mp_dependent_type, mp_proto_dependent_type));
- mp_type(q) = mp_proto_dependent_type;
+ q->type = mp_proto_dependent_type;
fraction_to_round_scaled(mp_get_dep_value(r));
}
number_negated_clone(test, v);
@@ -13407,7 +13402,7 @@ static void mp_recycle_independent_value (MP mp, mp_node p)
mp_make_known(mp, q, mp->dep_final);
}
q = r;
- r = (mp_value_node) mp_link(r);
+ r = (mp_value_node) r->link;
mp_free_dep_node(mp, q);
}
}
@@ -13484,13 +13479,13 @@ static void mp_bad_exp (MP mp, const char *s)
static void mp_stash_in (MP mp, mp_node p)
{
- mp_type(p) = mp->cur_exp.type;
+ p->type = mp->cur_exp.type;
if (mp->cur_exp.type == mp_known_type) {
mp_set_value_number(p, cur_exp_value_number);
} else if (mp->cur_exp.type == mp_independent_type) {
mp_value_node q = mp_single_dependency(mp, cur_exp_node);
if (q == mp->dep_final) {
- mp_type(p) = mp_known_type;
+ p->type = mp_known_type;
mp_set_value_number(p, zero_t);
mp_free_dep_node(mp, q);
} else {
@@ -13510,7 +13505,7 @@ static void mp_stash_in (MP mp, mp_node p)
static void mp_back_expr (MP mp)
{
mp_node p = mp_stash_cur_exp(mp);
- mp_link(p) = NULL;
+ p->link = NULL;
mp_begin_token_list(mp, p, mp_backed_up_text);
}
@@ -13548,7 +13543,7 @@ static void mp_binary_mac (MP mp, mp_node p, mp_node c, mp_sym n)
{
mp_node q = mp_new_symbolic_node(mp);
mp_node r = mp_new_symbolic_node(mp);
- mp_link(q) = r;
+ q->link = r;
mp_set_sym_sym(q, p);
mp_set_sym_sym(r, mp_stash_cur_exp(mp));
mp_macro_call(mp, c, q, n);
@@ -13588,7 +13583,7 @@ void mp_known_pair (MP mp)
set_number_to_zero(mp->cur_y);
} else {
mp_node p = mp_get_value_node(cur_exp_node);
- if (mp_type(mp_x_part(p)) == mp_known_type) {
+ if (mp_x_part(p)->type == mp_known_type) {
number_clone(mp->cur_x, mp_get_value_number(mp_x_part(p)));
} else {
mp_disp_err(mp, mp_x_part(p));
@@ -13602,7 +13597,7 @@ void mp_known_pair (MP mp)
mp_recycle_value(mp, mp_x_part(p));
set_number_to_zero(mp->cur_x);
}
- if (mp_type(mp_y_part(p)) == mp_known_type) {
+ if (mp_y_part(p)->type == mp_known_type) {
number_clone(mp->cur_y, mp_get_value_number(mp_y_part(p)));
} else {
mp_disp_err(mp, mp_y_part(p));
@@ -13826,16 +13821,16 @@ static void mp_do_nullary (MP mp, int c)
static int mp_pict_color_type (MP mp, int c)
{
return (
- (mp_link(mp_edge_list(cur_exp_node)) != NULL)
+ (mp_edge_list(cur_exp_node)->link != NULL)
&&
(
- (! mp_has_color(mp_link(mp_edge_list(cur_exp_node))))
+ (! mp_has_color(mp_edge_list(cur_exp_node)->link))
||
((
- (mp_color_model(mp_link(mp_edge_list(cur_exp_node))) == c)
+ (mp_color_model(mp_edge_list(cur_exp_node)->link) == c)
||
(
- (mp_color_model(mp_link(mp_edge_list(cur_exp_node))) == mp_uninitialized_model)
+ (mp_color_model(mp_edge_list(cur_exp_node)->link) == mp_uninitialized_model)
&&
(number_to_scaled(internal_value(mp_default_color_model_internal))/number_to_scaled(unity_t)) == c
)
@@ -13881,7 +13876,7 @@ static int mp_nice_pair (MP mp, mp_node p, int t)
(void) mp;
if (t == mp_pair_type) {
p = mp_get_value_node(p);
- if (mp_type(mp_x_part(p)) == mp_known_type && mp_type(mp_y_part(p)) == mp_known_type)
+ if (mp_x_part(p)->type == mp_known_type && mp_y_part(p)->type == mp_known_type)
return 1;
}
return 0;
@@ -13893,23 +13888,25 @@ static int mp_nice_color_or_pair (MP mp, mp_node p, int t)
switch (t) {
case mp_pair_type:
q = mp_get_value_node(p);
- if (mp_type(mp_x_part(q)) == mp_known_type
- && mp_type(mp_y_part(q)) == mp_known_type)
+ if (mp_x_part(q)->type == mp_known_type
+ && mp_y_part(q)->type == mp_known_type) {
return 1;
- break;
+ } else {
+ break;
+ }
case mp_color_type:
q = mp_get_value_node(p);
- if (mp_type(mp_red_part (q)) == mp_known_type
- && mp_type(mp_green_part(q)) == mp_known_type
- && mp_type(mp_blue_part (q)) == mp_known_type)
+ if (mp_red_part (q)->type == mp_known_type
+ && mp_green_part(q)->type == mp_known_type
+ && mp_blue_part (q)->type == mp_known_type)
return 1;
break;
case mp_cmykcolor_type:
q = mp_get_value_node(p);
- if (mp_type(mp_cyan_part (q)) == mp_known_type
- && mp_type(mp_magenta_part(q)) == mp_known_type
- && mp_type(mp_yellow_part (q)) == mp_known_type
- && mp_type(mp_black_part (q)) == mp_known_type)
+ if (mp_cyan_part (q)->type == mp_known_type
+ && mp_magenta_part(q)->type == mp_known_type
+ && mp_yellow_part (q)->type == mp_known_type
+ && mp_black_part (q)->type == mp_known_type)
return 1;
break;
}
@@ -13963,12 +13960,12 @@ static void mp_negate_dep_list (MP mp, mp_value_node p)
number_negate(mp_get_dep_value(p));
if (mp_get_dep_info(p) == NULL)
return;
- p = (mp_value_node) mp_link(p);
+ p = (mp_value_node) p->link;
}
}
static void mp_negate_value(MP mp, mp_node r)
{
- if (mp_type(r) == mp_known_type) {
+ if (r->type == mp_known_type) {
mp_set_value_number(r, mp_get_value_number(r));
number_negate(mp_get_value_number(r));
} else {
@@ -14036,8 +14033,8 @@ static void mp_take_part (MP mp, int c)
{
mp_node p = mp_get_value_node(cur_exp_node);
mp_set_value_node(mp->temp_val, p);
- mp_type(mp->temp_val) = mp->cur_exp.type;
- mp_link(p) = mp->temp_val;
+ mp->temp_val->type = mp->cur_exp.type;
+ p->link= mp->temp_val;
mp_free_value_node(mp, cur_exp_node);
switch (c) {
case mp_x_part_operation:
@@ -14099,7 +14096,7 @@ static void mp_take_pict_part (MP mp, int c)
mp_value new_expr;
memset(&new_expr, 0, sizeof(mp_value));
new_number(new_expr.data.n);
- p = mp_link(mp_edge_list(cur_exp_node));
+ p = mp_edge_list(cur_exp_node)->link;
if (p != NULL) {
switch (c) {
case mp_x_part_operation:
@@ -14212,7 +14209,7 @@ static void mp_take_pict_part (MP mp, int c)
mp_confusion(mp, "picture");
} else {
new_expr.data.node = NULL;
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
new_expr.data.p = mp_copy_path(mp, mp_path_ptr((mp_shape_node) p));
@@ -14233,7 +14230,7 @@ static void mp_take_pict_part (MP mp, int c)
if (! mp_has_pen(p)) {
goto NOT_FOUND;
} else {
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
if (mp_pen_ptr((mp_shape_node) p) == NULL) {
@@ -14250,7 +14247,7 @@ static void mp_take_pict_part (MP mp, int c)
}
break;
case mp_dash_part_operation:
- if (mp_type(p) != mp_stroked_node_type) {
+ if (p->type != mp_stroked_node_type) {
goto NOT_FOUND;
} else if (mp_dash_ptr(p) == NULL) {
goto NOT_FOUND;
@@ -14330,15 +14327,15 @@ static void mp_path_length (MP mp, mp_number *n)
}
static void mp_picture_length (MP mp, mp_number *n)
{
- mp_node p = mp_link(mp_edge_list(cur_exp_node));
+ mp_node p = mp_edge_list(cur_exp_node)->link;
int l = 0;
if (p != NULL) {
if (mp_is_start_or_stop(p) && mp_skip_1component(mp, p) == NULL) {
- p = mp_link(p);
+ p = p->link;
}
while (p != NULL) {
if (! mp_is_start_or_stop(p)) {
- p = mp_link(p);
+ p = p->link;
} else if (! mp_is_stop(p)) {
p = mp_skip_1component(mp, p);
} else {
@@ -14364,13 +14361,13 @@ static void mp_bezier_slope (MP mp,
static void mp_turn_cycles (MP mp, mp_number *turns, mp_knot c)
{
int selector;
- mp_angle res, ang;
+ mp_number res, ang;
mp_knot p;
mp_number xp, yp;
mp_number x, y;
mp_number arg1, arg2;
- mp_angle in_angle, out_angle;
- mp_angle seven_twenty_deg_t;
+ mp_number in_angle, out_angle;
+ mp_number seven_twenty_deg_t;
set_number_to_zero(*turns);
new_number(arg1);
new_number(arg2);
@@ -14492,12 +14489,12 @@ static int mp_test_known (MP mp, int c)
case mp_transform_type:
{
mp_node p = mp_get_value_node(cur_exp_node);
- if ( (mp_type(mp_tx_part(p)) == mp_known_type) &&
- (mp_type(mp_ty_part(p)) == mp_known_type) &&
- (mp_type(mp_xx_part(p)) == mp_known_type) &&
- (mp_type(mp_xy_part(p)) == mp_known_type) &&
- (mp_type(mp_yx_part(p)) == mp_known_type) &&
- (mp_type(mp_yy_part(p)) == mp_known_type) ) {
+ if ( (mp_tx_part(p)->type == mp_known_type) &&
+ (mp_ty_part(p)->type == mp_known_type) &&
+ (mp_xx_part(p)->type == mp_known_type) &&
+ (mp_xy_part(p)->type== mp_known_type) &&
+ (mp_yx_part(p)->type == mp_known_type) &&
+ (mp_yy_part(p)->type == mp_known_type) ) {
b = mp_true_operation;
}
}
@@ -14505,9 +14502,9 @@ static int mp_test_known (MP mp, int c)
case mp_color_type:
{
mp_node p = mp_get_value_node(cur_exp_node);
- if ( (mp_type(mp_red_part(p)) == mp_known_type) &&
- (mp_type(mp_green_part(p)) == mp_known_type) &&
- (mp_type(mp_blue_part(p)) == mp_known_type) ) {
+ if ( (mp_red_part (p)->type == mp_known_type) &&
+ (mp_green_part(p)->type == mp_known_type) &&
+ (mp_blue_part (p)->type == mp_known_type) ) {
b = mp_true_operation;
}
}
@@ -14515,10 +14512,10 @@ static int mp_test_known (MP mp, int c)
case mp_cmykcolor_type:
{
mp_node p = mp_get_value_node(cur_exp_node);
- if ( (mp_type(mp_cyan_part(p)) == mp_known_type) &&
- (mp_type(mp_magenta_part(p)) == mp_known_type) &&
- (mp_type(mp_yellow_part(p)) == mp_known_type) &&
- (mp_type(mp_black_part(p)) == mp_known_type) ) {
+ if ( (mp_cyan_part (p)->type == mp_known_type) &&
+ (mp_magenta_part(p)->type == mp_known_type) &&
+ (mp_yellow_part (p)->type == mp_known_type) &&
+ (mp_black_part (p)->type == mp_known_type) ) {
b = mp_true_operation;
}
}
@@ -14526,8 +14523,8 @@ static int mp_test_known (MP mp, int c)
case mp_pair_type:
{
mp_node p = mp_get_value_node(cur_exp_node);
- if ( (mp_type(mp_x_part(p)) == mp_known_type) &&
- (mp_type(mp_y_part(p)) == mp_known_type) ) {
+ if ( (mp_x_part(p)->type == mp_known_type) &&
+ (mp_y_part(p)->type == mp_known_type) ) {
b = mp_true_operation;
}
}
@@ -14551,16 +14548,16 @@ static void mp_pair_value (MP mp, mp_number *x, mp_number *y)
memset(&new_expr, 0, sizeof(mp_value));
new_number(new_expr.data.n);
p = mp_new_value_node(mp);
- new_expr.type = mp_type(p);
+ new_expr.type = p->type;
new_expr.data.node = p;
mp_flush_cur_exp(mp, new_expr);
mp->cur_exp.type = mp_pair_type;
- mp_name_type(p) = mp_capsule_operation;
+ p->name_type = mp_capsule_operation;
mp_init_pair_node(mp, p);
p = mp_get_value_node(p);
- mp_type(mp_x_part(p)) = mp_known_type;
+ mp_x_part(p)->type = mp_known_type;
mp_set_value_number(mp_x_part(p), x1);
- mp_type(mp_y_part(p)) = mp_known_type;
+ mp_y_part(p)->type = mp_known_type;
mp_set_value_number(mp_y_part(p), y1);
free_number(x1);
free_number(y1);
@@ -15147,11 +15144,11 @@ static void mp_do_unary (MP mp, int c)
new_number(expr.data.n);
if (mp->cur_exp.type != mp_picture_type) {
set_number_from_boolean(expr.data.n, mp_false_operation);
- } else if (mp_link(mp_edge_list(cur_exp_node)) == NULL) {
+ } else if (mp_edge_list(cur_exp_node)->link == NULL) {
set_number_from_boolean(expr.data.n, mp_false_operation);
} else {
int type = c - mp_filled_operation + mp_fill_node_type;
- set_number_from_boolean(expr.data.n, mp_type(mp_link(mp_edge_list(cur_exp_node))) == type ? mp_true_operation: mp_false_operation);
+ set_number_from_boolean(expr.data.n, mp_edge_list(cur_exp_node)->link->type == type ? mp_true_operation: mp_false_operation);
}
mp_flush_cur_exp(mp, expr);
mp->cur_exp.type = mp_boolean_type;
@@ -15383,7 +15380,7 @@ static void mp_bad_color_part (MP mp, int c)
mp_string sname;
memset(&new_expr, 0, sizeof(mp_value));
new_number(new_expr.data.n);
- p = mp_link(mp_edge_list(cur_exp_node));
+ p = mp_edge_list(cur_exp_node)->link;
mp_disp_err(mp, NULL);
selector = mp->selector;
mp->selector = mp_new_string_selector;
@@ -15526,7 +15523,7 @@ static void mp_bad_binary (MP mp, mp_node p, int c)
if (c >= mp_min_of_operation) {
mp_print_op(mp, c);
}
- mp_print_known_or_unknown_type(mp, mp_type(p), p);
+ mp_print_known_or_unknown_type(mp, p->type, p);
if (c >= mp_min_of_operation) {
mp_print_str(mp, "of");
} else {
@@ -15565,33 +15562,33 @@ static mp_node mp_tarnished (MP mp, mp_node p)
{
mp_node q = mp_get_value_node(p);
(void) mp;
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_pair_type:
return (
- (mp_type(mp_x_part(q)) == mp_independent_type) ||
- (mp_type(mp_y_part(q)) == mp_independent_type)
+ (mp_x_part(q)->type == mp_independent_type) ||
+ (mp_y_part(q)->type == mp_independent_type)
) ? MP_VOID : NULL;
case mp_color_type:
return (
- (mp_type(mp_red_part(q)) == mp_independent_type) ||
- (mp_type(mp_green_part(q)) == mp_independent_type) ||
- (mp_type(mp_blue_part(q)) == mp_independent_type)
+ (mp_red_part (q)->type == mp_independent_type) ||
+ (mp_green_part(q)->type == mp_independent_type) ||
+ (mp_blue_part (q)->type == mp_independent_type)
) ? MP_VOID : NULL;
case mp_cmykcolor_type:
return (
- (mp_type(mp_cyan_part(q)) == mp_independent_type) ||
- (mp_type(mp_magenta_part(q)) == mp_independent_type) ||
- (mp_type(mp_yellow_part(q)) == mp_independent_type) ||
- (mp_type(mp_black_part(q)) == mp_independent_type)
+ (mp_cyan_part (q)->type == mp_independent_type) ||
+ (mp_magenta_part(q)->type == mp_independent_type) ||
+ (mp_yellow_part (q)->type == mp_independent_type) ||
+ (mp_black_part (q)->type == mp_independent_type)
) ? MP_VOID : NULL;
case mp_transform_type:
return (
- (mp_type(mp_tx_part(q)) == mp_independent_type) ||
- (mp_type(mp_ty_part(q)) == mp_independent_type) ||
- (mp_type(mp_xx_part(q)) == mp_independent_type) ||
- (mp_type(mp_xy_part(q)) == mp_independent_type) ||
- (mp_type(mp_yx_part(q)) == mp_independent_type) ||
- (mp_type(mp_yy_part(q)) == mp_independent_type)
+ (mp_tx_part(q)->type == mp_independent_type) ||
+ (mp_ty_part(q)->type == mp_independent_type) ||
+ (mp_xx_part(q)->type == mp_independent_type) ||
+ (mp_xy_part(q)->type == mp_independent_type) ||
+ (mp_yx_part(q)->type == mp_independent_type) ||
+ (mp_yy_part(q)->type == mp_independent_type)
) ? MP_VOID : NULL;
default:
return NULL;
@@ -15601,7 +15598,7 @@ static void mp_dep_finish (MP mp, mp_value_node v, mp_value_node q, int t)
{
mp_value_node p = (q == NULL) ? (mp_value_node) cur_exp_node : q;
mp_set_dep_list(p, v);
- mp_type(p) = t;
+ p->type = t;
if (mp_get_dep_info(v) == NULL) {
mp_number vv;
new_number_clone(vv, mp_get_value_number(v));
@@ -15612,7 +15609,7 @@ static void mp_dep_finish (MP mp, mp_value_node v, mp_value_node q, int t)
mp_flush_cur_exp(mp, new_expr);
} else {
mp_recycle_value(mp, (mp_node) p);
- mp_type(q) = mp_known_type;
+ q->type = mp_known_type;
mp_set_value_number(q, vv);
}
free_number(vv);
@@ -15639,7 +15636,7 @@ static void mp_add_or_subtract (MP mp, mp_node p, mp_node q, int c)
v = (mp_value_node) mp_get_dep_list((mp_value_node) cur_exp_node);
}
} else {
- t = mp_type(q);
+ t = q->type;
if (t < mp_dependent_type) {
number_clone(vv, mp_get_value_number(q));
} else {
@@ -15651,7 +15648,7 @@ static void mp_add_or_subtract (MP mp, mp_node p, mp_node q, int c)
if (c == mp_minus_operation) {
number_negate(vv);
}
- if (mp_type(p) == mp_known_type) {
+ if (p->type == mp_known_type) {
slow_add(vv, mp_get_value_number(p), vv);
if (q == NULL) {
mp_set_cur_exp_value_number(mp, &vv);
@@ -15663,34 +15660,34 @@ static void mp_add_or_subtract (MP mp, mp_node p, mp_node q, int c)
} else {
r = (mp_value_node) mp_get_dep_list((mp_value_node) p);
while (mp_get_dep_info(r) != NULL) {
- r = (mp_value_node) mp_link(r);
+ r = (mp_value_node) r->link;
}
slow_add(vv, mp_get_dep_value(r), vv);
mp_set_dep_value(r, vv);
if (qq == NULL) {
qq = mp_get_dep_node(mp);
mp_set_cur_exp_node(mp, (mp_node) qq);
- mp->cur_exp.type = mp_type(p);
- mp_name_type(qq) = mp_capsule_operation;
+ mp->cur_exp.type = p->type;
+ qq->name_type = mp_capsule_operation;
}
mp_set_dep_list(qq, mp_get_dep_list((mp_value_node) p));
- mp_type(qq) = mp_type(p);
+ qq->type = p->type;
mp_set_prev_dep(qq, mp_get_prev_dep((mp_value_node) p));
- mp_link(mp_get_prev_dep((mp_value_node) p)) = (mp_node) qq;
- mp_type(p) = mp_known_type;
+ mp_get_prev_dep((mp_value_node) p)->link = (mp_node) qq;
+ p->type = mp_known_type;
}
} else {
if (c == mp_minus_operation) {
mp_negate_dep_list(mp, v);
}
- if (mp_type(p) == mp_known_type) {
+ if (p->type == mp_known_type) {
while (mp_get_dep_info(v) != NULL) {
- v = (mp_value_node) mp_link(v);
+ v = (mp_value_node) v->link;
}
slow_add(vv, mp_get_value_number(p), mp_get_dep_value(v));
mp_set_dep_value(v, vv);
} else {
- s = mp_type(p);
+ s = p->type;
r = (mp_value_node) mp_get_dep_list((mp_value_node) p);
if (t == mp_dependent_type) {
if (s == mp_dependent_type) {
@@ -15734,7 +15731,7 @@ static void mp_dep_mult (MP mp, mp_value_node p, mp_number *v, int v_is_scaled)
int s, t;
if (p == NULL) {
q = (mp_value_node) cur_exp_node;
- } else if (mp_type(p) != mp_known_type) {
+ } else if (p->type != mp_known_type) {
q = p;
} else {
mp_number r1, arg1;
@@ -15751,7 +15748,7 @@ static void mp_dep_mult (MP mp, mp_value_node p, mp_number *v, int v_is_scaled)
free_number(arg1);
return;
}
- t = mp_type(q);
+ t = q->type;
q = (mp_value_node) mp_get_dep_list(q);
s = t;
if (t == mp_dependent_type && v_is_scaled) {
@@ -15774,7 +15771,7 @@ static void mp_hard_times (MP mp, mp_node p)
mp_value_node pp;
mp_number v;
new_number(v);
- if (mp_type(p) <= mp_pair_type) {
+ if (p->type <= mp_pair_type) {
q = (mp_value_node) mp_stash_cur_exp(mp);
mp_unstash_cur_exp(mp, p);
p = (mp_node) q;
@@ -15785,11 +15782,11 @@ static void mp_hard_times (MP mp, mp_node p)
{
mp_node r = mp_x_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
r = mp_y_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
}
break;
@@ -15797,15 +15794,15 @@ static void mp_hard_times (MP mp, mp_node p)
{
mp_node r = mp_red_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
r = mp_green_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
r = mp_blue_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
}
break;
@@ -15813,19 +15810,19 @@ static void mp_hard_times (MP mp, mp_node p)
{
mp_node r = mp_cyan_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
r = mp_yellow_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
r = mp_magenta_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
r = mp_black_part(mp_get_value_node(cur_exp_node));
number_clone(v, mp_get_value_number(r));
- mp_new_dep(mp, r, mp_type(pp), mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
+ mp_new_dep(mp, r, pp->type, mp_copy_dep_list(mp, (mp_value_node) mp_get_dep_list(pp)));
mp_dep_mult(mp, (mp_value_node) r, &v, 1);
}
break;
@@ -15840,7 +15837,7 @@ static void mp_dep_div (MP mp, mp_value_node p, mp_number *v)
int s, t;
if (p == NULL) {
q = (mp_value_node) cur_exp_node;
- } else if (mp_type(p) != mp_known_type) {
+ } else if (p->type != mp_known_type) {
q = p;
} else {
mp_number ret;
@@ -15850,7 +15847,7 @@ static void mp_dep_div (MP mp, mp_value_node p, mp_number *v)
free_number(ret);
return;
}
- t = mp_type(q);
+ t = q->type;
q = (mp_value_node) mp_get_dep_list(q);
s = t;
if (t == mp_dependent_type) {
@@ -15880,7 +15877,7 @@ static void mp_set_up_trans (MP mp, int c)
q = mp_get_value_node(cur_exp_node);
switch (c) {
case mp_rotated_operation:
- if (mp_type(p) == mp_known_type) {
+ if (p->type == mp_known_type) {
mp_number n_sin, n_cos, arg1, arg2;
new_fraction(n_sin);
new_fraction(n_cos);
@@ -15905,20 +15902,20 @@ static void mp_set_up_trans (MP mp, int c)
}
break;
case mp_slanted_operation:
- if (mp_type(p) > mp_pair_type) {
+ if (p->type > mp_pair_type) {
mp_install(mp, mp_xy_part(q), p);
goto DONE;
}
break;
case mp_scaled_operation:
- if (mp_type(p) > mp_pair_type) {
+ if (p->type > mp_pair_type) {
mp_install(mp, mp_xx_part(q), p);
mp_install(mp, mp_yy_part(q), p);
goto DONE;
}
break;
case mp_shifted_operation:
- if (mp_type(p) == mp_pair_type) {
+ if (p->type == mp_pair_type) {
r = mp_get_value_node(p);
mp_install(mp, mp_tx_part(q), mp_x_part(r));
mp_install(mp, mp_ty_part(q), mp_y_part(r));
@@ -15926,25 +15923,25 @@ static void mp_set_up_trans (MP mp, int c)
}
break;
case mp_x_scaled_operation:
- if (mp_type(p) > mp_pair_type) {
+ if (p->type > mp_pair_type) {
mp_install(mp, mp_xx_part(q), p);
goto DONE;
}
break;
case mp_y_scaled_operation:
- if (mp_type(p) > mp_pair_type) {
+ if (p->type > mp_pair_type) {
mp_install(mp, mp_yy_part(q), p);
goto DONE;
}
break;
case mp_z_scaled_operation:
- if (mp_type(p) == mp_pair_type) {
+ if (p->type == mp_pair_type) {
{
r = mp_get_value_node(p);
mp_install(mp, mp_xx_part(q), mp_x_part(r));
mp_install(mp, mp_yy_part(q), mp_x_part(r));
mp_install(mp, mp_yx_part(q), mp_y_part(r));
- if (mp_type(mp_y_part(r)) == mp_known_type) {
+ if (mp_y_part(r)->type == mp_known_type) {
mp_set_value_number(mp_y_part(r), mp_get_value_number(mp_y_part(r)));
number_negate(mp_get_value_number(mp_y_part(r)));
} else {
@@ -15971,12 +15968,12 @@ static void mp_set_up_trans (MP mp, int c)
mp_free_value_node(mp, p);
}
q = mp_get_value_node(cur_exp_node);
- if ( (mp_type(mp_tx_part(q)) == mp_known_type) &&
- (mp_type(mp_ty_part(q)) == mp_known_type) &&
- (mp_type(mp_xx_part(q)) == mp_known_type) &&
- (mp_type(mp_xy_part(q)) == mp_known_type) &&
- (mp_type(mp_yx_part(q)) == mp_known_type) &&
- (mp_type(mp_yy_part(q)) == mp_known_type) ) {
+ if ( (mp_tx_part(q)->type == mp_known_type) &&
+ (mp_ty_part(q)->type == mp_known_type) &&
+ (mp_xx_part(q)->type == mp_known_type) &&
+ (mp_xy_part(q)->type == mp_known_type) &&
+ (mp_yx_part(q)->type == mp_known_type) &&
+ (mp_yy_part(q)->type == mp_known_type) ) {
number_clone(mp->txx, mp_get_value_number(mp_xx_part(q)));
number_clone(mp->txy, mp_get_value_number(mp_xy_part(q)));
number_clone(mp->tyx, mp_get_value_number(mp_yx_part(q)));
@@ -16065,7 +16062,7 @@ static void mp_do_path_pen_trans (MP mp, mp_shape_node p, mp_number *sqdet, int
set_number_to_zero(mp->tx);
set_number_to_zero(mp->ty);
mp_do_pen_trans(mp, mp_pen_ptr(p));
- if (number_nonzero(*sqdet) && ((mp_type(p) == mp_stroked_node_type) && (mp_dash_ptr(p) != NULL))) {
+ if (number_nonzero(*sqdet) && ((p->type == mp_stroked_node_type) && (mp_dash_ptr(p) != NULL))) {
mp_number ret;
new_number(ret);
take_scaled(ret, ((mp_shape_node) p)->dashscale, *sqdet);
@@ -16103,9 +16100,9 @@ static mp_edge_header_node mp_edges_trans (MP mp, mp_edge_header_node h)
mp_set_dash_list(h, mp->null_dash);
while (r != mp->null_dash) {
s = r;
- r = (mp_dash_node) mp_link(r);
+ r = (mp_dash_node) r->link;
number_swap(s->start_x, s->stop_x );
- mp_link(s) = (mp_node) mp_get_dash_list(h);
+ s->link = (mp_node) mp_get_dash_list(h);
mp_set_dash_list(h, s);
}
}
@@ -16119,7 +16116,7 @@ static mp_edge_header_node mp_edges_trans (MP mp, mp_edge_header_node h)
set_number_from_addition(r->start_x, arg1, mp->tx);
take_scaled(arg1, r->stop_x, mp->txx);
set_number_from_addition(r->stop_x, arg1, mp->tx);
- r = (mp_dash_node) mp_link(r);
+ r = (mp_dash_node) r->link;
}
free_number(arg1);
}
@@ -16164,9 +16161,9 @@ static mp_edge_header_node mp_edges_trans (MP mp, mp_edge_header_node h)
free_number(tot);
}
DONE1:
- q = mp_link(mp_edge_list(h));
+ q = mp_edge_list(h)->link;
while (q != NULL) {
- switch (mp_type(q)) {
+ switch (q->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
mp_do_path_trans(mp, mp_path_ptr((mp_shape_node) q));
@@ -16184,7 +16181,7 @@ static mp_edge_header_node mp_edges_trans (MP mp, mp_edge_header_node h)
default:
break;
}
- q = mp_link(q);
+ q = q->link;
}
free_number(sqdet);
return h;
@@ -16213,39 +16210,39 @@ static void mp_bilin1 (MP mp, mp_node p, mp_number *t, mp_node q, mp_number *u,
mp_dep_mult(mp, (mp_value_node) p, t, 1);
}
if (number_nonzero(*u)) {
- if (mp_type(q) == mp_known_type) {
+ if (q->type == mp_known_type) {
mp_number tmp;
new_number(tmp);
take_scaled(tmp, mp_get_value_number(q), *u);
number_add(delta, tmp);
free_number(tmp);
} else {
- if (mp_type(p) != mp_proto_dependent_type) {
- if (mp_type(p) == mp_known_type) {
- mp_new_dep(mp, p, mp_type(p), mp_const_dependency(mp, &(mp_get_value_number(p))));
+ if (p->type != mp_proto_dependent_type) {
+ if (p->type == mp_known_type) {
+ mp_new_dep(mp, p, p->type, mp_const_dependency(mp, &(mp_get_value_number(p))));
} else {
mp_set_dep_list((mp_value_node) p,
mp_p_times_v(mp,
(mp_value_node) mp_get_dep_list((mp_value_node) p), &unity_t,
mp_dependent_type, mp_proto_dependent_type, 1));
}
- mp_type(p) = mp_proto_dependent_type;
+ p->type = mp_proto_dependent_type;
}
mp_set_dep_list((mp_value_node) p,
mp_p_plus_fq(mp,
(mp_value_node) mp_get_dep_list((mp_value_node) p), u,
(mp_value_node) mp_get_dep_list((mp_value_node) q),
- mp_proto_dependent_type, mp_type(q)));
+ mp_proto_dependent_type, q->type));
}
}
- if (mp_type(p) == mp_known_type) {
+ if (p->type == mp_known_type) {
mp_set_value_number(p, mp_get_value_number(p));
number_add(mp_get_value_number(p), delta);
} else {
mp_number tmp;
mp_value_node r = (mp_value_node) mp_get_dep_list((mp_value_node) p);
while (mp_get_dep_info(r) != NULL) {
- r = (mp_value_node) mp_link(r);
+ r = (mp_value_node) r->link;
}
new_number_clone(tmp, mp_get_value_number(r));
number_add(delta, tmp);
@@ -16254,7 +16251,7 @@ static void mp_bilin1 (MP mp, mp_node p, mp_number *t, mp_node q, mp_number *u,
mp_set_value_number(r, delta);
} else {
mp_recycle_value(mp, p);
- mp_type(p) = mp_known_type;
+ p->type = mp_known_type;
mp_set_value_number(p, delta);
}
free_number(tmp);
@@ -16266,7 +16263,7 @@ static void mp_bilin1 (MP mp, mp_node p, mp_number *t, mp_node q, mp_number *u,
}
static void mp_add_mult_dep (MP mp, mp_value_node p, mp_number *v, mp_node r)
{
- if (mp_type(r) == mp_known_type) {
+ if (r->type == mp_known_type) {
mp_number ret;
new_number(ret);
take_scaled(ret, mp_get_value_number(r), *v);
@@ -16274,7 +16271,7 @@ static void mp_add_mult_dep (MP mp, mp_value_node p, mp_number *v, mp_node r)
number_add(mp_get_dep_value(mp->dep_final), ret);
free_number(ret);
} else {
- mp_set_dep_list(p, mp_p_plus_fq(mp, (mp_value_node) mp_get_dep_list(p), v, (mp_value_node) mp_get_dep_list((mp_value_node) r), mp_proto_dependent_type, mp_type(r)));
+ mp_set_dep_list(p, mp_p_plus_fq(mp, (mp_value_node) mp_get_dep_list(p), v, (mp_value_node) mp_get_dep_list((mp_value_node) r), mp_proto_dependent_type, r->type));
if (mp->fix_needed) {
mp_fix_dependencies(mp);
}
@@ -16300,7 +16297,7 @@ static void mp_bilin2 (MP mp, mp_node p, mp_node t, mp_number *v, mp_node u, mp_
if (mp_get_dep_list((mp_value_node) p) == (mp_node) mp->dep_final) {
number_clone(vv, mp_get_dep_value(mp->dep_final));
mp_recycle_value(mp, p);
- mp_type(p) = mp_known_type;
+ p->type = mp_known_type;
mp_set_value_number(p, vv);
}
free_number(vv);
@@ -16334,13 +16331,13 @@ static void mp_bilin3 (MP mp, mp_node p, mp_number *t, mp_number *v, mp_number *
static void mp_big_trans (MP mp, mp_node p, int c)
{
mp_node q = mp_get_value_node(p);
- if (mp_type(q) == mp_pair_node_type) {
- if (mp_type(mp_x_part(q)) != mp_known_type || mp_type(mp_y_part(q)) != mp_known_type) {
+ if (q->type == mp_pair_node_type) {
+ if (mp_x_part(q)->type != mp_known_type || mp_y_part(q)->type != mp_known_type) {
goto UNKNOWN;
}
- } else if (mp_type(mp_tx_part(q)) != mp_known_type || mp_type(mp_ty_part(q)) != mp_known_type ||
- mp_type(mp_xx_part(q)) != mp_known_type || mp_type(mp_xy_part(q)) != mp_known_type ||
- mp_type(mp_yx_part(q)) != mp_known_type || mp_type(mp_yy_part(q)) != mp_known_type) {
+ } else if (mp_tx_part(q)->type != mp_known_type || mp_ty_part(q)->type != mp_known_type ||
+ mp_xx_part(q)->type != mp_known_type || mp_xy_part(q)->type != mp_known_type ||
+ mp_yx_part(q)->type != mp_known_type || mp_yy_part(q)->type != mp_known_type) {
goto UNKNOWN;
}
{
@@ -16723,7 +16720,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
mp_print_str(mp, ")}");
mp_end_diagnostic(mp, 0);
}
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_transform_type:
case mp_color_type:
case mp_cmykcolor_type:
@@ -16765,12 +16762,12 @@ static void mp_do_binary (MP mp, mp_node p, int c)
switch (c) {
case mp_plus_operation:
case mp_minus_operation:
- if ((mp->cur_exp.type < mp_color_type) || (mp_type(p) < mp_color_type)) {
+ if ((mp->cur_exp.type < mp_color_type) || (p->type < mp_color_type)) {
mp_bad_binary(mp, p, c);
} else {
- if ((mp->cur_exp.type > mp_pair_type) && (mp_type(p) > mp_pair_type)) {
+ if ((mp->cur_exp.type > mp_pair_type) && (p->type > mp_pair_type)) {
mp_add_or_subtract(mp, p, NULL, c);
- } else if (mp->cur_exp.type != mp_type(p)) {
+ } else if (mp->cur_exp.type != p->type) {
mp_bad_binary(mp, p, c);
} else {
@@ -16813,9 +16810,9 @@ static void mp_do_binary (MP mp, mp_node p, int c)
case mp_equal_operation:
case mp_unequal_operation:
check_arith();
- if ((mp->cur_exp.type > mp_pair_type) && (mp_type(p) > mp_pair_type)) {
+ if ((mp->cur_exp.type > mp_pair_type) && (p->type > mp_pair_type)) {
mp_add_or_subtract(mp, p, NULL, mp_minus_operation);
- } else if (mp->cur_exp.type != mp_type(p)) {
+ } else if (mp->cur_exp.type != p->type) {
mp_bad_binary(mp, p, (int) c);
goto DONE;
} else {
@@ -16852,13 +16849,13 @@ static void mp_do_binary (MP mp, mp_node p, int c)
mp_node rr = mp_x_part(r);
part_type = mp_x_part_operation;
mp_add_or_subtract(mp, mp_x_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_y_part(r);
part_type = mp_y_part_operation;
mp_add_or_subtract(mp, mp_y_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
}
@@ -16874,19 +16871,19 @@ static void mp_do_binary (MP mp, mp_node p, int c)
mp_node rr = mp_red_part(r);
part_type = mp_red_part_operation;
mp_add_or_subtract(mp, mp_red_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_green_part(r);
part_type = mp_green_part_operation;
mp_add_or_subtract(mp, mp_green_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_blue_part(r);
part_type = mp_blue_part_operation;
mp_add_or_subtract(mp, mp_blue_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
}
@@ -16902,25 +16899,25 @@ static void mp_do_binary (MP mp, mp_node p, int c)
mp_node rr = mp_cyan_part(r);
part_type = mp_cyan_part_operation;
mp_add_or_subtract(mp, mp_cyan_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_magenta_part(r);
part_type = mp_magenta_part_operation;
mp_add_or_subtract(mp, mp_magenta_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_yellow_part(r);
part_type = mp_yellow_part_operation;
mp_add_or_subtract(mp, mp_yellow_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_black_part(r);
part_type = mp_black_part_operation;
mp_add_or_subtract(mp, mp_black_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
}
@@ -16936,37 +16933,37 @@ static void mp_do_binary (MP mp, mp_node p, int c)
mp_node rr = mp_tx_part(r);
part_type = mp_x_part_operation;
mp_add_or_subtract(mp, mp_tx_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_ty_part(r);
part_type = mp_y_part_operation;
mp_add_or_subtract(mp, mp_ty_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_xx_part(r);
part_type = mp_xx_part_operation;
mp_add_or_subtract(mp, mp_xx_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_xy_part(r);
part_type = mp_xy_part_operation;
mp_add_or_subtract(mp, mp_xy_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_yx_part(r);
part_type = mp_yx_part_operation;
mp_add_or_subtract(mp, mp_yx_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
rr = mp_yy_part(r);
part_type = mp_yy_part_operation;
mp_add_or_subtract(mp, mp_yy_part(q), rr, mp_minus_operation);
- if (mp_type(rr) != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
+ if (rr->type != mp_known_type || ! number_zero(mp_get_value_number(rr))) {
break;
}
}
@@ -17034,19 +17031,19 @@ static void mp_do_binary (MP mp, mp_node p, int c)
break;
case mp_and_operation:
case mp_or_operation:
- if ((mp_type(p) != mp_boolean_type) || (mp->cur_exp.type != mp_boolean_type)) {
+ if ((p->type != mp_boolean_type) || (mp->cur_exp.type != mp_boolean_type)) {
mp_bad_binary(mp, p, (int) c);
} else if (number_to_boolean(p->data.n) == c + mp_false_operation - mp_and_operation) {
mp_set_cur_exp_value_boolean(mp, number_to_boolean(p->data.n));
}
break;
case mp_times_operation:
- if ((mp->cur_exp.type < mp_color_type) || (mp_type(p) < mp_color_type)) {
+ if ((mp->cur_exp.type < mp_color_type) || (p->type < mp_color_type)) {
mp_bad_binary(mp, p, mp_times_operation);
- } else if ((mp->cur_exp.type == mp_known_type) || (mp_type(p) == mp_known_type)) {
+ } else if ((mp->cur_exp.type == mp_known_type) || (p->type == mp_known_type)) {
mp_number vv;
new_fraction(vv);
- if (mp_type(p) == mp_known_type) {
+ if (p->type == mp_known_type) {
number_clone(vv, mp_get_value_number(p));
mp_free_value_node(mp, p);
} else {
@@ -17093,8 +17090,8 @@ static void mp_do_binary (MP mp, mp_node p, int c)
free_number(vv);
mp_finish_binary(mp, old_p, old_exp);
return;
- } else if ((mp_nice_color_or_pair(mp, p, mp_type(p)) && (mp->cur_exp.type > mp_pair_type))
- || (mp_nice_color_or_pair(mp, cur_exp_node, mp->cur_exp.type) && (mp_type(p) > mp_pair_type))) {
+ } else if ((mp_nice_color_or_pair(mp, p, p->type) && (mp->cur_exp.type > mp_pair_type))
+ || (mp_nice_color_or_pair(mp, cur_exp_node, mp->cur_exp.type) && (p->type > mp_pair_type))) {
mp_hard_times(mp, p);
mp_finish_binary(mp, old_p, old_exp);
return;
@@ -17103,7 +17100,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
}
break;
case mp_over_operation:
- if ((mp->cur_exp.type != mp_known_type) || (mp_type(p) < mp_color_type)) {
+ if ((mp->cur_exp.type != mp_known_type) || (p->type < mp_color_type)) {
mp_bad_binary(mp, p, mp_over_operation);
} else {
mp_number v_n;
@@ -17163,7 +17160,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
}
break;
case mp_power_operation:
- if ((mp->cur_exp.type == mp_known_type) && (mp_type(p) == mp_known_type)) {
+ if ((mp->cur_exp.type == mp_known_type) && (p->type == mp_known_type)) {
mp_number r;
new_number(r);
power_of(r, mp_get_value_number(p), cur_exp_value_number);
@@ -17175,7 +17172,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
break;
case mp_pythag_add_operation:
case mp_pythag_sub_operation:
- if ((mp->cur_exp.type == mp_known_type) && (mp_type(p) == mp_known_type)) {
+ if ((mp->cur_exp.type == mp_known_type) && (p->type == mp_known_type)) {
mp_number r;
new_number(r);
if (c == mp_pythag_add_operation) {
@@ -17196,7 +17193,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
case mp_x_scaled_operation:
case mp_y_scaled_operation:
case mp_z_scaled_operation:
- switch (mp_type(p)) {
+ switch (p->type) {
case mp_path_type:
mp_set_up_known_trans(mp, (int) c);
mp_unstash_cur_exp(mp, p);
@@ -17234,7 +17231,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
case mp_just_append_operation:
case mp_tolerant_concat_operation:
case mp_tolerant_append_operation:
- if ((mp->cur_exp.type == mp_string_type) && (mp_type(p) == mp_string_type)) {
+ if ((mp->cur_exp.type == mp_string_type) && (p->type == mp_string_type)) {
mp_string str = mp_cat(mp, mp_get_value_str(p), cur_exp_str);
delete_str_ref(cur_exp_str) ;
mp_set_cur_exp_str(mp, str);
@@ -17243,7 +17240,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
}
break;
case mp_substring_operation:
- if (mp_nice_pair(mp, p, mp_type(p)) && (mp->cur_exp.type == mp_string_type)) {
+ if (mp_nice_pair(mp, p, p->type) && (mp->cur_exp.type == mp_string_type)) {
mp_string str = mp_chop_string (mp,
cur_exp_str,
round_unscaled(mp_get_value_number(mp_x_part(mp_get_value_node(p)))),
@@ -17259,7 +17256,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if (mp_nice_pair(mp, p, mp_type(p)) && (mp->cur_exp.type == mp_path_type)) {
+ if (mp_nice_pair(mp, p, p->type) && (mp->cur_exp.type == mp_path_type)) {
mp_chop_path(mp, mp_get_value_node(p));
} else {
mp_bad_binary(mp, p, mp_subpath_operation);
@@ -17272,14 +17269,14 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if ((mp->cur_exp.type == mp_path_type) && (mp_type(p) == mp_known_type)) {
+ if ((mp->cur_exp.type == mp_path_type) && (p->type == mp_known_type)) {
mp_find_point(mp, &(mp_get_value_number(p)), (int) c);
} else {
mp_bad_binary(mp, p, c);
}
break;
case mp_pen_offset_operation:
- if ((mp->cur_exp.type == mp_pen_type || mp->cur_exp.type == mp_nep_type) && mp_nice_pair(mp, p, mp_type(p))) {
+ if ((mp->cur_exp.type == mp_pen_type || mp->cur_exp.type == mp_nep_type) && mp_nice_pair(mp, p, p->type)) {
mp_set_up_offset(mp, mp_get_value_node(p));
} else {
mp_bad_binary(mp, p, mp_pen_offset_operation);
@@ -17289,21 +17286,21 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if ((mp->cur_exp.type == mp_path_type) && mp_nice_pair(mp, p, mp_type(p))) {
+ if ((mp->cur_exp.type == mp_path_type) && mp_nice_pair(mp, p, p->type)) {
mp_set_up_direction_time(mp, mp_get_value_node(p));
} else {
mp_bad_binary(mp, p, mp_direction_time_operation);
}
break;
case mp_envelope_operation:
- if ((mp_type(p) != mp_pen_type && mp_type(p) != mp_nep_type) || (mp->cur_exp.type != mp_path_type)) {
+ if ((p->type != mp_pen_type && p->type != mp_nep_type) || (mp->cur_exp.type != mp_path_type)) {
mp_bad_binary(mp, p, mp_envelope_operation);
} else {
mp_set_up_envelope(mp, p);
}
break;
case mp_boundingpath_operation:
- if ((mp_type(p) != mp_pen_type && mp_type(p) != mp_nep_type) || (mp->cur_exp.type != mp_path_type)) {
+ if ((p->type != mp_pen_type && p->type != mp_nep_type) || (mp->cur_exp.type != mp_path_type)) {
mp_bad_binary(mp, p, mp_boundingpath_operation);
} else {
mp_set_up_boundingpath(mp, p);
@@ -17313,7 +17310,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if ((mp->cur_exp.type == mp_path_type) && (mp_type(p) == mp_known_type)) {
+ if ((mp->cur_exp.type == mp_path_type) && (p->type == mp_known_type)) {
memset(&new_expr, 0, sizeof(mp_value));
new_number(new_expr.data.n);
mp_get_arc_time(mp, &new_expr.data.n, cur_exp_knot, &(mp_get_value_number(p)), 0);
@@ -17326,11 +17323,11 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if ((mp->cur_exp.type == mp_path_type) && (mp_type(p) == mp_known_type || mp_type(p) == mp_pair_type)) {
+ if ((mp->cur_exp.type == mp_path_type) && (p->type == mp_known_type || p->type == mp_pair_type)) {
mp_knot k;
memset(&new_expr, 0, sizeof(mp_value));
new_number(new_expr.data.n);
- if (mp_type(p) == mp_pair_type) {
+ if (p->type == mp_pair_type) {
mp_knot f = cur_exp_knot;
mp_node q = mp_get_value_node(p);
mp_number x;
@@ -17376,7 +17373,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if ((mp->cur_exp.type == mp_path_type) && mp_type(p) == mp_known_type) {
+ if ((mp->cur_exp.type == mp_path_type) && p->type == mp_known_type) {
mp_knot cur = cur_exp_knot;
mp_number len, aln, seg, tot, tim, stp, acc, tmp;
@@ -17471,7 +17468,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if ((mp->cur_exp.type == mp_path_type) && mp_type(p) == mp_pair_type) {
+ if ((mp->cur_exp.type == mp_path_type) && p->type == mp_pair_type) {
memset(&new_expr, 0, sizeof(mp_value));
new_number(new_expr.data.n);
mp_node q = mp_get_value_node(p);
@@ -17483,7 +17480,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
break;
case mp_intertimes_operation:
case mp_intertimes_list_operation:
- if (mp_type(p) == mp_pair_type) {
+ if (p->type == mp_pair_type) {
mp_node q = mp_stash_cur_exp(mp);
mp_unstash_cur_exp(mp, p);
mp_pair_to_path(mp);
@@ -17493,7 +17490,7 @@ static void mp_do_binary (MP mp, mp_node p, int c)
if (mp->cur_exp.type == mp_pair_type) {
mp_pair_to_path(mp);
}
- if ((mp->cur_exp.type == mp_path_type) && (mp_type(p) == mp_path_type)) {
+ if ((mp->cur_exp.type == mp_path_type) && (p->type == mp_path_type)) {
if (c == mp_intertimes_operation) {
mp_path_intersection(mp, mp_get_value_knot(p), cur_exp_knot, 0, NULL);
@@ -17800,7 +17797,7 @@ void mp_do_equation (MP mp)
trace_equation(mp, lhs);
}
if (mp->cur_exp.type == mp_unknown_path_type) {
- if (mp_type(lhs) == mp_pair_type) {
+ if (lhs->type == mp_pair_type) {
mp_node p;
p = mp_stash_cur_exp(mp);
mp_unstash_cur_exp(mp, lhs);
@@ -17910,7 +17907,7 @@ static void trace_assignment (MP mp, mp_node lhs)
{
mp_begin_diagnostic(mp);
mp_print_nl(mp, "{");
- if (mp_name_type(lhs) == mp_internal_operation) {
+ if (lhs->name_type == mp_internal_operation) {
mp_print_str(mp, internal_name(mp_get_sym_info(lhs)));
} else {
mp_show_token_list(mp, lhs, NULL);
@@ -17939,7 +17936,7 @@ void mp_do_assignment (MP mp)
if (number_greater(internal_value(mp_tracing_commands_internal), two_t)) {
trace_assignment (mp, lhs);
}
- if (mp_name_type(lhs) == mp_internal_operation) {
+ if (lhs->name_type == mp_internal_operation) {
switch (mp->cur_exp.type) {
case mp_known_type:
case mp_string_type:
@@ -17987,7 +17984,7 @@ void mp_do_assignment (MP mp)
mp_node q = mp_stash_cur_exp(mp);
mp->cur_exp.type = mp_und_type(mp, p);
mp_recycle_value(mp, p);
- mp_type(p) = mp->cur_exp.type;
+ p->type = mp->cur_exp.type;
mp_set_value_number(p, zero_t);
mp_make_exp_copy(mp, p);
p = mp_stash_cur_exp(mp);
@@ -18006,7 +18003,7 @@ static void announce_bad_equation (MP mp, mp_node lhs)
char msg[256];
mp_snprintf(msg, 256,
"Equation cannot be performed (%s=%s)",
- (mp_type(lhs) <= mp_pair_type ? mp_type_string(mp_type(lhs)) : "numeric"),
+ (lhs->type <= mp_pair_type ? mp_type_string(lhs->type) : "numeric"),
(mp->cur_exp.type <= mp_pair_type ? mp_type_string(mp->cur_exp.type) : "numeric"));
mp_disp_err(mp, lhs);
mp_disp_err(mp, NULL);
@@ -18068,7 +18065,7 @@ void mp_make_eq (MP mp, mp_node lhs)
memset(&new_expr, 0, sizeof(mp_value));
new_number(v);
RESTART:
- t = mp_type(lhs);
+ t = lhs->type;
if (t <= mp_pair_type) {
number_clone(v, mp_get_value_number(lhs));
}
@@ -18211,7 +18208,7 @@ void mp_try_eq (MP mp, mp_node l, mp_node r)
mp_value_node pp;
mp_variable_type tt;
int copied;
- mp_variable_type t = mp_type(l);
+ mp_variable_type t = l->type;
switch (t) {
case mp_known_type:
{
@@ -18242,12 +18239,12 @@ void mp_try_eq (MP mp, mp_node l, mp_node r)
if (mp_get_dep_info(q) == NULL) {
break;
} else {
- q = (mp_value_node) mp_link(q);
+ q = (mp_value_node) q->link;
}
}
- mp_link(mp_get_prev_dep(ll)) = mp_link(q);
- mp_set_prev_dep((mp_value_node) mp_link(q), mp_get_prev_dep(ll));
- mp_type(ll) = mp_known_type;
+ mp_get_prev_dep(ll)->link = q->link;
+ mp_set_prev_dep((mp_value_node) q->link, mp_get_prev_dep(ll));
+ ll->type = mp_known_type;
}
break;
}
@@ -18263,11 +18260,11 @@ void mp_try_eq (MP mp, mp_node l, mp_node r)
pp = (mp_value_node) mp_get_dep_list((mp_value_node) cur_exp_node);
}
}
- } else if (mp_type(r) == mp_known_type) {
+ } else if (r->type == mp_known_type) {
number_add(mp_get_dep_value(q), mp_get_value_number(r));
goto DONE1;
} else {
- tt = mp_type(r);
+ tt = r->type;
if (tt == mp_independent_type) {
pp = mp_single_dependency(mp, r);
} else {
@@ -18293,7 +18290,7 @@ void mp_try_eq (MP mp, mp_node l, mp_node r)
number_clone(x, mp_get_dep_value(q));
fraction_to_round_scaled(x);
mp_set_dep_value(q, x);
- q = (mp_value_node) mp_link(q);
+ q = (mp_value_node) q->link;
}
free_number(x);
t = mp_proto_dependent_type;
@@ -18308,7 +18305,7 @@ void mp_try_eq (MP mp, mp_node l, mp_node r)
deal_with_redundant_or_inconsistent_equation(mp, p, r);
} else {
mp_linear_eq(mp, p, (int) t);
- if (r == NULL && mp->cur_exp.type != mp_known_type && mp_type(cur_exp_node) == mp_known_type) {
+ if (r == NULL && mp->cur_exp.type != mp_known_type && cur_exp_node->type == mp_known_type) {
mp_node pp = cur_exp_node;
mp_set_cur_exp_value_number(mp, &(mp_get_value_number(pp)));
mp->cur_exp.type = mp_known_type;
@@ -18351,10 +18348,10 @@ mp_node mp_scan_declared_variable (MP mp)
}
}
}
- mp_link(t) = mp_new_symbolic_node(mp);
- t = mp_link(t);
+ t->link = mp_new_symbolic_node(mp);
+ t = t->link;
mp_set_sym_sym(t, cur_sym);
- mp_name_type(t) = cur_sym_mod;
+ t->name_type = cur_sym_mod;
}
if (eq_property(x) != 0) {
mp_check_overload(mp, x);
@@ -18389,10 +18386,10 @@ void mp_do_type_declaration (MP mp)
do {
mp_node p = mp_scan_declared_variable(mp);
mp_node q;
- mp_flush_variable(mp, equiv_node(mp_get_sym_sym(p)), mp_link(p), 0);
+ mp_flush_variable(mp, equiv_node(mp_get_sym_sym(p)), p->link, 0);
q = mp_find_variable(mp, p);
if (q != NULL) {
- mp_type(q) = t;
+ q->type = t;
mp_set_value_number(q, zero_t);
} else {
mp_back_error(
@@ -18993,26 +18990,26 @@ void mp_do_show_stats (MP mp)
void mp_disp_var (MP mp, mp_node p)
{
- if (mp_type(p) == mp_structured_type) {
+ if (p->type == mp_structured_type) {
mp_node q = mp_get_attribute_head(p);
do {
mp_disp_var(mp, q);
- q = mp_link(q);
+ q = q->link;
} while (q != mp->end_attr);
q = mp_get_subscr_head(p);
- while (mp_name_type(q) == mp_subscript_operation) {
+ while (q->name_type == mp_subscript_operation) {
mp_disp_var(mp, q);
- q = mp_link(q);
+ q = q->link;
}
- } else if (mp_type(p) >= mp_unsuffixed_macro_type) {
+ } else if (p->type >= mp_unsuffixed_macro_type) {
mp_print_nl(mp, "");
mp_print_variable_name(mp, p);
- if (mp_type(p) > mp_unsuffixed_macro_type) {
+ if (p->type > mp_unsuffixed_macro_type) {
mp_print_str(mp, "@#");
}
mp_print_str(mp, "=macro:");
mp_show_macro(mp, mp_get_value_node(p), NULL);
- } else if (mp_type(p) != mp_undefined_type) {
+ } else if (p->type != mp_undefined_type) {
mp_print_nl(mp, "");
mp_print_variable_name(mp, p);
mp_print_chr(mp, '=');
@@ -19038,22 +19035,23 @@ void mp_do_show_var (MP mp)
void mp_do_show_dependencies (MP mp)
{
- mp_value_node p = (mp_value_node) mp_link(mp->dep_head);
+ mp_value_node p = (mp_value_node) mp->dep_head->link;
while (p != mp->dep_head) {
if (mp_interesting(mp, (mp_node) p)) {
mp_print_nl(mp, "");
mp_print_variable_name(mp, (mp_node) p);
- if (mp_type(p) == mp_dependent_type) {
+ if (p->type == mp_dependent_type) {
mp_print_chr(mp, '=');
} else {
mp_print_str(mp, " = ");
}
- mp_print_dependency(mp, (mp_value_node) mp_get_dep_list(p), mp_type(p));
+ mp_print_dependency(mp, (mp_value_node) mp_get_dep_list(p), p->type);
}
p = (mp_value_node) mp_get_dep_list(p);
- while (mp_get_dep_info(p) != NULL)
- p = (mp_value_node) mp_link(p);
- p = (mp_value_node) mp_link(p);
+ while (mp_get_dep_info(p) != NULL) {
+ p = (mp_value_node) p->link;
+ }
+ p = (mp_value_node) p->link;
}
mp_get_x_next(mp);
}
@@ -19356,12 +19354,12 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
if (mp_has_pen(pp)) {
break;
} else {
- pp = mp_link(pp);
+ pp = pp->link;
}
}
}
if (pp != NULL) {
- switch (mp_type(pp)) {
+ switch (pp->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
if (mp_pen_ptr((mp_shape_node) pp) != NULL) {
@@ -19386,7 +19384,7 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
ap = p;
}
while ((ap != NULL) && (! mp_has_script(ap))) {
- ap = mp_link(ap);
+ ap = ap->link;
}
if (ap != NULL) {
if (mp_pre_script(ap) != NULL) {
@@ -19418,7 +19416,7 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
bp = p;
}
while ((bp != NULL) && (! mp_has_script(bp))) {
- bp = mp_link(bp);
+ bp = bp->link;
}
if (bp != NULL) {
if (mp_post_script(bp) != NULL) {
@@ -19545,10 +19543,10 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
if (dp == MP_VOID) {
dp = p;
while (dp != NULL) {
- if (mp_type(dp) == mp_stroked_node_type) {
+ if (dp->type == mp_stroked_node_type) {
break;
} else {
- dp = mp_link(dp);
+ dp = dp->link;
}
}
}
@@ -19564,7 +19562,7 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
}
}
if (cp > MP_VOID) {
- mp_node q = mp_link(cp);
+ mp_node q = cp->link;
while (q != NULL) {
if (mp_has_color(q)) {
mp_shape_node q0 = (mp_shape_node) q;
@@ -19575,14 +19573,14 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
number_clone(q0->black, cp0->black);
mp_color_model(q) = mp_color_model(cp);
}
- q = mp_link(q);
+ q = q->link;
}
}
if (pp > MP_VOID) {
- mp_node q = mp_link(pp);
+ mp_node q = pp->link;
while (q != NULL) {
if (mp_has_pen(q)) {
- switch (mp_type(q)) {
+ switch (q->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
if (mp_pen_ptr((mp_shape_node) q) != NULL) {
@@ -19594,13 +19592,13 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
break;
}
}
- q = mp_link(q);
+ q = q->link;
}
}
if (dp > MP_VOID) {
- mp_node q = mp_link(dp);
+ mp_node q = dp->link;
while (q != NULL) {
- if (mp_type(q) == mp_stroked_node_type) {
+ if (q->type == mp_stroked_node_type) {
if (mp_dash_ptr(q) != NULL) {
mp_delete_edge_ref(mp, mp_dash_ptr(q));
}
@@ -19610,13 +19608,13 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
mp_add_edge_ref(mp, mp_dash_ptr(q));
}
}
- q = mp_link(q);
+ q = q->link;
}
}
if (linecap >= 0 && linecap < mp_weird_linecap_code) {
mp_node q = p;
while (q != NULL) {
- switch (mp_type(q)) {
+ switch (q->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
mp_set_linecap(q, linecap);
@@ -19624,13 +19622,13 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
default:
break;
}
- q = mp_link(q);
+ q = q->link;
}
}
if (linejoin >= 0 && linejoin < mp_weird_linejoin_code) {
mp_node q = p;
while (q != NULL) {
- switch (mp_type(q)) {
+ switch (q->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
mp_set_linejoin(q, linejoin);
@@ -19638,13 +19636,13 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
default:
break;
}
- q = mp_link(q);
+ q = q->link;
}
}
if (miterlimit) {
mp_node q = p;
while (q != NULL) {
- switch (mp_type(q)) {
+ switch (q->type) {
case mp_fill_node_type:
case mp_stroked_node_type:
number_clone(mp_miterlimit(q), ml);
@@ -19652,15 +19650,15 @@ void mp_scan_with_list (MP mp, mp_node p, mp_node pstop)
default:
break;
}
- q = mp_link(q);
+ q = q->link;
}
free_number(ml);
}
if (! pp && sp > MP_VOID) {
- mp_node q = mp_link(sp);
+ mp_node q = sp->link;
while (q != NULL) {
mp_stacking(q) = mp_stacking(sp);
- q = mp_link(q);
+ q = q->link;
}
}
}
@@ -19681,7 +19679,7 @@ mp_edge_header_node mp_find_edges_var (MP mp, mp_node t)
);
mp_memory_free(msg);
mp_get_x_next(mp);
- } else if (mp_type(p) != mp_picture_type) {
+ } else if (p->type != mp_picture_type) {
char msg[256];
mp_string sname;
int selector = mp->selector;
@@ -19689,7 +19687,7 @@ mp_edge_header_node mp_find_edges_var (MP mp, mp_node t)
mp_show_token_list(mp, t, NULL);
sname = mp_make_string(mp);
mp->selector = selector;
- mp_snprintf(msg, 256, "Variable %s is the wrong type(%s)", mp_str(mp, sname), mp_type_string(mp_type(p)));
+ mp_snprintf(msg, 256, "Variable %s is the wrong type(%s)", mp_str(mp, sname), mp_type_string(p->type));
delete_str_ref(sname);
mp_back_error(
mp,
@@ -19783,12 +19781,12 @@ void mp_do_bounds (MP mp)
}
pp = mp_new_bounds_node(mp, NULL, mm);
mp_scan_with_list(mp, p, pp);
- mp_link(p) = mp_link(mp_edge_list(lhe));
- mp_link(mp_edge_list(lhe)) = p;
+ p->link = mp_edge_list(lhe)->link;
+ mp_edge_list(lhe)->link = p;
if (mp_obj_tail(lhe) == mp_edge_list(lhe)) {
mp_obj_tail(lhe) = p;
}
- mp_link(mp_obj_tail(lhe)) = pp;
+ mp_obj_tail(lhe)->link = pp;
mp_obj_tail(lhe) = pp;
mp_init_bbox(mp, lhe);
}
@@ -19822,7 +19820,7 @@ void mp_do_add_to (MP mp)
} else {
e = mp_private_edges(mp, (mp_edge_header_node) cur_exp_node);
mp->cur_exp.type = mp_vacuous_type;
- p = mp_link(mp_edge_list(e));
+ p = mp_edge_list(e)->link;
}
} else {
e = NULL;
@@ -19870,17 +19868,17 @@ void mp_do_add_to (MP mp)
}
} else if (add_type == mp_add_also_code) {
if (e != NULL) {
- if (mp_link(mp_edge_list(e)) != NULL) {
- mp_link(mp_obj_tail(lhe)) = mp_link(mp_edge_list(e));
+ if (mp_edge_list(e)->link != NULL) {
+ mp_obj_tail(lhe)->link = mp_edge_list(e)->link;
mp_obj_tail(lhe) = mp_obj_tail(e);
mp_obj_tail(e) = mp_edge_list(e);
- mp_link(mp_edge_list(e)) = NULL;
+ mp_edge_list(e)->link = NULL;
mp_flush_dash_list(mp, lhe);
}
mp_toss_edges(mp, e);
}
} else if (p != NULL) {
- mp_link(mp_obj_tail(lhe)) = p;
+ mp_obj_tail(lhe)->link = p;
mp_obj_tail(lhe) = p;
if (add_type == mp_add_double_path_code) {
if (mp_pen_ptr((mp_shape_node) p) == NULL) {
@@ -20081,10 +20079,10 @@ struct mp_edge_object *mp_gr_export (MP mp, mp_edge_header_node h)
hh->height = number_to_double(internal_value(mp_char_ht_internal));
hh->depth = number_to_double(internal_value(mp_char_dp_internal));
hh->italic = number_to_double(internal_value(mp_char_ic_internal));
- p = mp_link(mp_edge_list(h));
+ p = mp_edge_list(h)->link;
while (p != NULL) {
- mp_graphic_object *hq = mp_new_graphic_object(mp, (int) ((mp_type(p) - mp_fill_node_type) + 1));
- switch (mp_type(p)) {
+ mp_graphic_object *hq = mp_new_graphic_object(mp, (int) ((p->type - mp_fill_node_type) + 1));
+ switch (p->type) {
case mp_fill_node_type:
{
mp_number d_width;
@@ -20175,7 +20173,7 @@ struct mp_edge_object *mp_gr_export (MP mp, mp_edge_header_node h)
gr_link(hp) = hq;
}
hp = hq;
- p = mp_link(p);
+ p = p->link;
}
return hh;
}
@@ -20299,15 +20297,15 @@ void mp_scan_symbol_value (MP mp, int keep, char **s, int expand)
unsigned char *r = NULL;
mp_node p = mp_new_symbolic_node(mp);
mp_set_sym_sym(p, cur_sym);
- mp_name_type(p) = cur_sym_mod;
- if (mp_type(p) == mp_symbol_node_type) {
+ p->name_type = cur_sym_mod;
+ if (p->type == mp_symbol_node_type) {
mp_sym sr = mp_get_sym_sym(p);
mp_string rr = text(sr);
if (rr && rr->str) {
r = rr->str;
}
- } else if (mp_name_type(p) == mp_token_operation) {
- if (mp_type(p) == mp_string_type) {
+ } else if (p->name_type == mp_token_operation) {
+ if (p->type == mp_string_type) {
r = mp_get_value_str(p)->str;
}
}
@@ -20420,7 +20418,7 @@ void mp_scan_numeric_value (MP mp, int primary, double *d)
}
# define mp_set_double_value(mp,target,what) \
-if (mp_type(what) == mp_known_type) { \
+if (what->type == mp_known_type) { \
*target = number_to_double(mp_get_value_number(what)); \
}
@@ -20579,13 +20577,13 @@ void mp_push_pair_value (MP mp, double x, double y)
v = mp_get_value_node(p);
new_number_from_double(mp, px, x);
new_number_from_double(mp, py, y);
- mp_type(mp_x_part(v)) = mp_known_type;
- mp_type(mp_y_part(v)) = mp_known_type;
+ mp_x_part(v)->type = mp_known_type;
+ mp_y_part(v)->type = mp_known_type;
mp_set_value_number(mp_x_part(v), px);
mp_set_value_number(mp_y_part(v), py);
free_number(px);
free_number(py);
- mp_name_type(p) = mp_capsule_operation;
+ p->name_type = mp_capsule_operation;
mp->cur_exp.type = mp_pair_type;
mp_set_cur_exp_node(mp, p);
mp_back_expr(mp);
@@ -20601,16 +20599,16 @@ void mp_push_color_value (MP mp, double r, double g, double b)
new_number_from_double(mp, pr, r);
new_number_from_double(mp, pg, g);
new_number_from_double(mp, pb, b);
- mp_type(mp_red_part (v)) = mp_known_type;
- mp_type(mp_green_part(v)) = mp_known_type;
- mp_type(mp_blue_part (v)) = mp_known_type;
+ mp_red_part (v)->type = mp_known_type;
+ mp_green_part(v)->type = mp_known_type;
+ mp_blue_part (v)->type = mp_known_type;
mp_set_value_number(mp_red_part (v), pr);
mp_set_value_number(mp_green_part(v), pg);
mp_set_value_number(mp_blue_part (v), pb);
free_number(pr);
free_number(pg);
free_number(pb);
- mp_name_type(p) = mp_capsule_operation;
+ p->name_type = mp_capsule_operation;
mp->cur_exp.type = mp_color_type;
mp_set_cur_exp_node(mp, p);
mp_back_expr(mp);
@@ -20627,10 +20625,10 @@ void mp_push_cmykcolor_value (MP mp, double c, double m, double y, double k)
new_number_from_double(mp, pm, m);
new_number_from_double(mp, py, y);
new_number_from_double(mp, pk, k);
- mp_type(mp_cyan_part (v)) = mp_known_type;
- mp_type(mp_magenta_part(v)) = mp_known_type;
- mp_type(mp_yellow_part (v)) = mp_known_type;
- mp_type(mp_black_part (v)) = mp_known_type;
+ mp_cyan_part (v)->type = mp_known_type;
+ mp_magenta_part(v)->type = mp_known_type;
+ mp_yellow_part (v)->type = mp_known_type;
+ mp_black_part (v)->type = mp_known_type;
mp_set_value_number(mp_cyan_part (v), pc);
mp_set_value_number(mp_magenta_part(v), pm);
mp_set_value_number(mp_yellow_part (v), py);
@@ -20639,7 +20637,7 @@ void mp_push_cmykcolor_value (MP mp, double c, double m, double y, double k)
free_number(pm);
free_number(py);
free_number(pk);
- mp_name_type(p) = mp_capsule_operation;
+ p->name_type = mp_capsule_operation;
mp->cur_exp.type = mp_cmykcolor_type;
mp_set_cur_exp_node(mp, p);
mp_back_expr(mp);
@@ -20658,12 +20656,12 @@ void mp_push_transform_value (MP mp, double x, double y, double xx, double xy, d
new_number_from_double(mp, pxy, xy);
new_number_from_double(mp, pyx, yx);
new_number_from_double(mp, pyy, yy);
- mp_type(mp_x_part (v)) = mp_known_type;
- mp_type(mp_y_part (v)) = mp_known_type;
- mp_type(mp_xx_part(v)) = mp_known_type;
- mp_type(mp_xy_part(v)) = mp_known_type;
- mp_type(mp_yx_part(v)) = mp_known_type;
- mp_type(mp_yy_part(v)) = mp_known_type;
+ mp_x_part (v)->type = mp_known_type;
+ mp_y_part (v)->type = mp_known_type;
+ mp_xx_part(v)->type = mp_known_type;
+ mp_xy_part(v)->type = mp_known_type;
+ mp_yx_part(v)->type = mp_known_type;
+ mp_yy_part(v)->type = mp_known_type;
mp_set_value_number(mp_x_part (v), px);
mp_set_value_number(mp_y_part (v), py);
mp_set_value_number(mp_xx_part(v), pxx);
@@ -20676,7 +20674,7 @@ void mp_push_transform_value (MP mp, double x, double y, double xx, double xy, d
free_number(pxy);
free_number(pyx);
free_number(pyy);
- mp_name_type(p) = mp_capsule_operation;
+ p->name_type = mp_capsule_operation;
mp->cur_exp.type = mp_transform_type;
mp_set_cur_exp_node(mp, p);
mp_back_expr(mp);
@@ -20723,7 +20721,7 @@ void mp_scan_primary (MP mp)
mp_node q = mp_new_value_node(mp);
mp_node p1 = mp_stash_cur_exp(mp);
mp_node r;
- mp_name_type(q) = mp_capsule_operation;
+ q->name_type = mp_capsule_operation;
mp_get_x_next(mp);
mp_scan_expression(mp);
if (mp->cur_exp.type < mp_known_type) {
@@ -20806,7 +20804,7 @@ void mp_scan_primary (MP mp)
}
}
mp_check_delimiter(mp, l_delim, r_delim);
- mp->cur_exp.type = mp_type(q);
+ mp->cur_exp.type = q->type;
mp_set_cur_exp_node(mp, q);
} else {
mp_check_delimiter(mp, l_delim, r_delim);
@@ -20977,7 +20975,7 @@ void mp_scan_primary (MP mp)
if (cur_cmd == mp_assignment_command) {
mp_set_cur_exp_node(mp, mp_new_symbolic_node(mp));
mp_set_sym_info(cur_exp_node, qq);
- mp_name_type(cur_exp_node) = mp_internal_operation;
+ cur_exp_node->name_type = mp_internal_operation;
mp->cur_exp.type = mp_token_list_type;
goto DONE;
}
@@ -21006,10 +21004,10 @@ void mp_scan_primary (MP mp)
mp_node post_head = NULL;
while (1) {
t = mp_cur_tok(mp);
- mp_link(tail) = t;
+ tail->link = t;
if (tt != mp_undefined_type) {
mp_sym qq;
- p = mp_link(pre_head);
+ p = pre_head->link;
qq = mp_get_sym_sym(p);
tt = mp_undefined_type;
@@ -21019,18 +21017,18 @@ void mp_scan_primary (MP mp)
goto DONE2;
}
while (1) {
- p = mp_link(p);
+ p = p->link;
if (p == NULL) {
- tt = mp_type(q);
+ tt = q->type;
goto DONE2;
}
- if (mp_type(q) != mp_structured_type) {
+ if (q->type != mp_structured_type) {
goto DONE2;
}
- q = mp_link(mp_get_attribute_head(q));
- if (mp_type(p) == mp_symbol_node_type) {
+ q = mp_get_attribute_head(q)->link;
+ if (p->type == mp_symbol_node_type) {
do {
- q = mp_link(q);
+ q = q->link;
} while (! (mp_get_hashloc(q) >= mp_get_sym_sym(p)));
if (mp_get_hashloc(q) > mp_get_sym_sym(p)) {
goto DONE2;
@@ -21040,18 +21038,18 @@ void mp_scan_primary (MP mp)
}
DONE2:
if (tt >= mp_unsuffixed_macro_type) {
- mp_link(tail) = NULL;
+ tail->link = NULL;
if (tt > mp_unsuffixed_macro_type) {
post_head = mp_new_symbolic_node(mp);
tail = post_head;
- mp_link(tail) = t;
+ tail->link = t;
tt = mp_undefined_type;
macro_ref = mp_get_value_node(q);
mp_add_mac_ref(macro_ref);
} else {
p = mp_new_symbolic_node(mp);
- mp_set_sym_sym(pre_head, mp_link(pre_head));
- mp_link(pre_head) = p;
+ mp_set_sym_sym(pre_head, pre_head->link);
+ pre_head->link = p;
mp_set_sym_sym(p, t);
mp_macro_call(mp, mp_get_value_node(q), pre_head, NULL);
mp_get_x_next(mp);
@@ -21088,19 +21086,19 @@ void mp_scan_primary (MP mp)
if (post_head != NULL) {
mp_back_input(mp);
p = mp_new_symbolic_node(mp);
- q = mp_link(post_head);
- mp_set_sym_sym(pre_head, mp_link(pre_head));
- mp_link(pre_head) = post_head;
+ q = post_head->link;
+ mp_set_sym_sym(pre_head, pre_head->link);
+ pre_head->link = post_head;
mp_set_sym_sym(post_head, q);
- mp_link(post_head) = p;
- mp_set_sym_sym(p, mp_link(q));
- mp_link(q) = NULL;
+ post_head->link = p;
+ mp_set_sym_sym(p, q->link);
+ q->link = NULL;
mp_macro_call(mp, macro_ref, pre_head, NULL);
mp_decr_mac_ref(macro_ref);
mp_get_x_next(mp);
goto RESTART;
}
- q = mp_link(pre_head);
+ q = pre_head->link;
mp_free_symbolic_node(mp, pre_head);
if (cur_cmd == my_var_flag) {
mp->cur_exp.type = mp_token_list_type;
@@ -21205,15 +21203,15 @@ static void mp_scan_suffix (MP mp)
} else if ((cur_cmd == mp_tag_command) || (cur_cmd == mp_internal_command)) {
p = mp_new_symbolic_node(mp);
mp_set_sym_sym(p, cur_sym);
- mp_name_type(p) = cur_sym_mod;
+ p->name_type = cur_sym_mod;
} else {
break;
}
- mp_link(t) = p;
+ t->link = p;
t = p;
mp_get_x_next(mp);
}
- mp_set_cur_exp_node(mp, mp_link(h));
+ mp_set_cur_exp_node(mp, h->link);
mp_free_symbolic_node(mp, h);
mp->cur_exp.type = mp_token_list_type;
}
@@ -21308,7 +21306,7 @@ static void mp_scan_expression (MP mp)
mac_name = cur_sym;
mp_add_mac_ref(cc);
}
- if ((d < mp_ampersand_command) || ((d == mp_ampersand_command) && ((mp_type(p) == mp_pair_type) || (mp_type(p) == mp_path_type)))) {
+ if ((d < mp_ampersand_command) || ((d == mp_ampersand_command) && ((p->type == mp_pair_type) || (p->type == mp_path_type)))) {
mp_unstash_cur_exp(mp, p);
if (! mp_scan_path(mp)) {
mp->expand_depth_count--;
@@ -21704,8 +21702,8 @@ void mp_final_cleanup (MP mp)
}
mp_print_str(mp, " was incomplete)");
mp->if_line = mp_if_line_field(mp->cond_ptr);
- mp->cur_if = mp_name_type(mp->cond_ptr);
- mp->cond_ptr = mp_link(mp->cond_ptr);
+ mp->cur_if = mp->cond_ptr->name_type;
+ mp->cond_ptr = mp->cond_ptr->link;
}
if (mp->history != mp_spotless) {
if (((mp->history == mp_warning_issued) || (mp->interaction < mp_error_stop_mode))) {
@@ -22098,7 +22096,7 @@ void mp_final_cleanup (MP mp)
mp_set_dep_list(mp->dep_head, NULL);
mp->cur_mod_ = mp_new_symbolic_node(mp);
mp->bad_vardef = mp_new_value_node(mp);
- mp_name_type(mp->bad_vardef) = mp_root_operation;
+ mp->bad_vardef->name_type = mp_root_operation;
mp_set_value_sym(mp->bad_vardef, mp->frozen_bad_vardef);
mp->frozen_repeat_loop =
@@ -22107,7 +22105,7 @@ void mp_final_cleanup (MP mp)
new_number(mp->max_c[i]);
}
mp->temp_val = mp_new_value_node(mp);
- mp_name_type(mp->temp_val) = mp_capsule_operation;
+ mp->temp_val->name_type = mp_capsule_operation;
new_number(mp->txx);
new_number(mp->txy);
new_number(mp->tyx);