562
573
// Write all all of the tags, in order.
563
for (unsigned int I = 0; Order[I] != 0; I++)
565
bool Rewritten = false;
567
// See if this is a field that needs to be rewritten
568
for (unsigned int J = 0; Rewrite != 0 && Rewrite[J].Tag != 0; J++)
576
for (unsigned int I = 0; Order[I] != 0; I++)
570
if (strcasecmp(Rewrite[J].Tag,Order[I]) == 0)
573
if (Rewrite[J].Rewrite != 0 && Rewrite[J].Rewrite[0] != 0)
575
if (isspace(Rewrite[J].Rewrite[0]))
576
fprintf(Output,"%s:%s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite);
578
fprintf(Output,"%s: %s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite);
586
// See if it is in the fragment
588
if (Tags.Find(Order[I],Pos) == false)
578
bool Rewritten = false;
580
// See if this is a field that needs to be rewritten
581
for (unsigned int J = 0; Rewrite != 0 && Rewrite[J].Tag != 0; J++)
583
if (strcasecmp(Rewrite[J].Tag,Order[I]) == 0)
586
if (Rewrite[J].Rewrite != 0 && Rewrite[J].Rewrite[0] != 0)
588
if (isspace(Rewrite[J].Rewrite[0]))
589
fprintf(Output,"%s:%s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite);
591
fprintf(Output,"%s: %s\n",Rewrite[J].NewTag,Rewrite[J].Rewrite);
598
// See if it is in the fragment
600
if (Tags.Find(Order[I],Pos) == false)
592
if (Rewritten == true)
595
/* Write out this element, taking a moment to rewrite the tag
596
in case of changes of case. */
599
Tags.Get(Start,Stop,Pos);
601
if (fputs(Order[I],Output) < 0)
602
return _error->Errno("fputs","IO Error to output");
603
Start += strlen(Order[I]);
604
if (fwrite(Start,Stop - Start,1,Output) != 1)
605
return _error->Errno("fwrite","IO Error to output");
606
if (Stop[-1] != '\n')
607
fprintf(Output,"\n");
604
if (Rewritten == true)
607
/* Write out this element, taking a moment to rewrite the tag
608
in case of changes of case. */
611
Tags.Get(Start,Stop,Pos);
613
if (fputs(Order[I],Output) < 0)
614
return _error->Errno("fputs","IO Error to output");
615
Start += strlen(Order[I]);
616
if (fwrite(Start,Stop - Start,1,Output) != 1)
617
return _error->Errno("fwrite","IO Error to output");
618
if (Stop[-1] != '\n')
619
fprintf(Output,"\n");
610
623
// Now write all the old tags that were missed.
611
624
for (unsigned int I = 0; I != Tags.Count(); I++)