summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/mplibdir/mp.w
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/mplibdir/mp.w')
-rw-r--r--Build/source/texk/web2c/mplibdir/mp.w12
1 files changed, 7 insertions, 5 deletions
diff --git a/Build/source/texk/web2c/mplibdir/mp.w b/Build/source/texk/web2c/mplibdir/mp.w
index fa13715619d..ebd6897e38d 100644
--- a/Build/source/texk/web2c/mplibdir/mp.w
+++ b/Build/source/texk/web2c/mplibdir/mp.w
@@ -1,4 +1,4 @@
-% $Id: mp.w 1924 2013-09-20 15:02:58Z taco $
+% $Id: mp.w 1928 2013-12-16 09:08:23Z taco $
%
% This file is part of MetaPost;
% the MetaPost program is in the public domain.
@@ -309,6 +309,7 @@ typedef enum {
mp_decimal_type
} mp_number_type;
typedef union {
+ void *num;
double dval;
int val;
} mp_number_store;
@@ -20784,9 +20785,10 @@ boolean mp_open_mem_name (MP mp) {
s = xrealloc (s, l + 5, 1);
strcat (s, ".mp");
}
+ s = (mp->find_file) (mp, s, "r", mp_filetype_program);
+ xfree(mp->name_of_file);
+ mp->name_of_file = xstrdup(s);
mp->mem_file = (mp->open_file) (mp, s, "r", mp_filetype_program);
- xfree (mp->name_of_file);
- mp->name_of_file = xstrdup (s);
free (s);
if (mp->mem_file)
return true;
@@ -30066,7 +30068,7 @@ void mp_do_new_internal (MP mp) {
set_equiv (cur_sym(), mp->int_ptr);
if (internal_name (mp->int_ptr) != NULL)
xfree (internal_name (mp->int_ptr));
- set_internal_name (mp->int_ptr,
+ set_internal_name (mp->int_ptr,
mp_xstrdup (mp, mp_str (mp, text (cur_sym()))));
if (the_type == mp_string_type) {
set_internal_string (mp->int_ptr, mp_rts(mp,""));
@@ -33905,7 +33907,7 @@ struct mp_edge_object *mp_gr_export (MP mp, mp_edge_header_node h) {
{
mp_text_node p0 = (mp_text_node)p;
tt = (mp_text_object *) hq;
- gr_text_p (tt) = mp_xstrdup (mp, mp_str (mp, mp_text_p (p)));
+ gr_text_p (tt) = mp_xstrldup (mp, mp_str (mp, mp_text_p (p)),mp_text_p (p)->len);
gr_text_l (tt) = (size_t) mp_text_p (p)->len;
gr_font_n (tt) = (unsigned int) mp_font_n (p);
gr_font_name (tt) = mp_xstrdup (mp, mp->font_name[mp_font_n (p)]);