diff options
author | Andreas Scherer <andreas_tex@freenet.de> | 2023-09-23 10:27:11 +0000 |
---|---|---|
committer | Andreas Scherer <andreas_tex@freenet.de> | 2023-09-23 10:27:11 +0000 |
commit | b7d135dcb73eb5d468c2b7da8c29708095802f20 (patch) | |
tree | bd36fbb12e34fcfd28d7a11318c369cc26cf5589 /Build/source/texk/web2c/cwebdir/cweave.w | |
parent | b4915de9b85178bd146f4b9daf09621779fb9ad6 (diff) |
[CWEB] Copy structures via pointers.
git-svn-id: svn://tug.org/texlive/trunk@68349 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/cwebdir/cweave.w')
-rw-r--r-- | Build/source/texk/web2c/cwebdir/cweave.w | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/Build/source/texk/web2c/cwebdir/cweave.w b/Build/source/texk/web2c/cwebdir/cweave.w index 2c398748c97..ceb46baf22d 100644 --- a/Build/source/texk/web2c/cwebdir/cweave.w +++ b/Build/source/texk/web2c/cwebdir/cweave.w @@ -3204,7 +3204,7 @@ scrap_pointer j, short k, eight_bits c, short d, short n) { - scrap_pointer i, i1; /* pointers into scrap memory */ + scrap_pointer i, o; /* pointers into scrap memory */ j->cat=c; if (k>0) { j->trans=text_ptr; @@ -3212,10 +3212,8 @@ short d, short n) freeze_text(); } if (k>1) { - for (i=j+k, i1=j+1; i<=lo_ptr; i++, i1++) { - i1->cat=i->cat; i1->trans=i->trans; - i1->mathness=i->mathness; - } + for (i=j+k, o=j+1; i<=lo_ptr; i++, o++) + *o=*i;@^system dependencies@> lo_ptr=lo_ptr-k+1; } pp=(pp+d<scrap_base? scrap_base: pp+d); @@ -3277,10 +3275,8 @@ stored, since zero does not match anything in a production. @<Make sure the entries...@>= if (lo_ptr<pp+3) { - while (hi_ptr<=scrap_ptr && lo_ptr!=pp+3) { - (++lo_ptr)->cat=hi_ptr->cat; lo_ptr->mathness=hi_ptr->mathness; - lo_ptr->trans=(hi_ptr++)->trans; - } + while (hi_ptr<=scrap_ptr && lo_ptr!=pp+3) + *(++lo_ptr)=*(hi_ptr++);@^system dependencies@> for (i=lo_ptr+1;i<=pp+3;i++) i->cat=0; } |