[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/cscc csdoc.c,1.22,1.23
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/cscc csdoc.c,1.22,1.23 |
Date: |
Mon, 28 Jul 2003 03:34:56 -0400 |
Update of /cvsroot/dotgnu-pnet/pnet/cscc
In directory subversions:/tmp/cvs-serv27796/cscc
Modified Files:
csdoc.c
Log Message:
Fix the quoting of '&' characters in csdoc output, and other places where
types may be dumped in XML form.
Index: csdoc.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csdoc.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -r1.22 -r1.23
*** csdoc.c 14 May 2003 18:20:10 -0000 1.22
--- csdoc.c 28 Jul 2003 07:34:54 -0000 1.23
***************
*** 145,148 ****
--- 145,226 ----
/*
+ * Dump a string, with XML quoting.
+ */
+ static void DumpString(const char *str, FILE *stream)
+ {
+ int ch;
+ if(!str)
+ {
+ return;
+ }
+ while((ch = *str++) != '\0')
+ {
+ if(ch == '<')
+ {
+ fputs("<", stream);
+ }
+ else if(ch == '>')
+ {
+ fputs(">", stream);
+ }
+ else if(ch == '&')
+ {
+ fputs("&", stream);
+ }
+ else if(ch == '"')
+ {
+ fputs(""", stream);
+ }
+ else if(ch == '\'')
+ {
+ fputs("'", stream);
+ }
+ else
+ {
+ putc(ch, stream);
+ }
+ }
+ }
+
+ /*
+ * Dump a length-delimited string, with XML quoting.
+ */
+ static void DumpStringN(const char *str, int len, FILE *stream)
+ {
+ int ch;
+ if(!str)
+ {
+ return;
+ }
+ while(len-- > 0 && (ch = *str++) != '\0')
+ {
+ if(ch == '<')
+ {
+ fputs("<", stream);
+ }
+ else if(ch == '>')
+ {
+ fputs(">", stream);
+ }
+ else if(ch == '&')
+ {
+ fputs("&", stream);
+ }
+ else if(ch == '"')
+ {
+ fputs(""", stream);
+ }
+ else if(ch == '\'')
+ {
+ fputs("'", stream);
+ }
+ else
+ {
+ putc(ch, stream);
+ }
+ }
+ }
+
+ /*
* Dump a class name to a stream.
*/
***************
*** 153,160 ****
if(namespace)
{
! fputs(namespace, stream);
putc('.', stream);
}
! fputs(name, stream);
}
--- 231,238 ----
if(namespace)
{
! DumpString(namespace, stream);
putc('.', stream);
}
! DumpString(name, stream);
}
***************
*** 172,180 ****
if(!namespace2 || strcmp(namespace, namespace2) != 0)
{
! fputs(namespace, stream);
putc('.', stream);
}
}
! fputs(name, stream);
}
--- 250,258 ----
if(!namespace2 || strcmp(namespace, namespace2) != 0)
{
! DumpString(namespace, stream);
putc('.', stream);
}
}
! DumpString(name, stream);
}
***************
*** 203,207 ****
putc('_', stream);
}
! fputs(name, stream);
}
--- 281,285 ----
putc('_', stream);
}
! DumpString(name, stream);
}
***************
*** 467,471 ****
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! fputs(ILField_Name(field), stream);
fputs("\">\n", stream);
--- 545,549 ----
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! DumpString(ILField_Name(field), stream);
fputs("\">\n", stream);
***************
*** 475,481 ****
ILDumpFlags(stream, ILField_Attrs(field),
ILFieldDefinitionFlags, 0);
ILDumpType(stream, ILProgramItem_Image(field),
! ILField_Type(field), 0);
putc(' ', stream);
! fputs(ILField_Name(field), stream);
fputs("\"/>\n", stream);
--- 553,559 ----
ILDumpFlags(stream, ILField_Attrs(field),
ILFieldDefinitionFlags, 0);
ILDumpType(stream, ILProgramItem_Image(field),
! ILField_Type(field), IL_DUMP_XML_QUOTING);
putc(' ', stream);
! DumpString(ILField_Name(field), stream);
fputs("\"/>\n", stream);
***************
*** 484,490 ****
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
ILDumpFlags(stream, decl->modifiers, CSharpFieldFlags, 0);
! fputs(CSTypeToName(ILField_Type(field)), stream);
putc(' ', stream);
! fputs(ILField_Name(field), stream);
if(ILField_IsLiteral(field))
{
--- 562,568 ----
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
ILDumpFlags(stream, decl->modifiers, CSharpFieldFlags, 0);
! DumpString(CSTypeToName(ILField_Type(field)), stream);
putc(' ', stream);
! DumpString(ILField_Name(field), stream);
if(ILField_IsLiteral(field))
{
***************
*** 504,509 ****
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fprintf(stream, "<ReturnType>%s</ReturnType>\n",
! CSTypeToName(ILField_Type(field)));
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
--- 582,588 ----
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fputs("<ReturnType>", stream);
! DumpString(CSTypeToName(ILField_Type(field)), stream);
! fputs("</ReturnType>\n", stream);
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
***************
*** 546,550 ****
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! fputs(ILField_Name(field), stream);
fputs("\">\n", stream);
--- 625,629 ----
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! DumpString(ILField_Name(field), stream);
fputs("\">\n", stream);
***************
*** 554,560 ****
ILDumpFlags(stream, ILField_Attrs(field), ILFieldDefinitionFlags, 0);
ILDumpType(stream, ILProgramItem_Image(field),
! ILField_Type(field), 0);
putc(' ', stream);
! fputs(ILField_Name(field), stream);
fputs("\"/>\n", stream);
--- 633,639 ----
ILDumpFlags(stream, ILField_Attrs(field), ILFieldDefinitionFlags, 0);
ILDumpType(stream, ILProgramItem_Image(field),
! ILField_Type(field), IL_DUMP_XML_QUOTING);
putc(' ', stream);
! DumpString(ILField_Name(field), stream);
fputs("\"/>\n", stream);
***************
*** 562,568 ****
Indent(stream, indent + 2);
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
! fputs(ILField_Name(field), stream);
if(ILField_IsLiteral(field))
{
}
fputs("\"/>\n", stream);
--- 641,648 ----
Indent(stream, indent + 2);
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
! DumpString(ILField_Name(field), stream);
if(ILField_IsLiteral(field))
{
+ /* TODO */
}
fputs("\"/>\n", stream);
***************
*** 579,584 ****
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fprintf(stream, "<ReturnType>%s</ReturnType>\n",
! CSTypeToName(ILField_Type(field)));
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
--- 659,665 ----
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fputs("<ReturnType>", stream);
! DumpString(CSTypeToName(ILField_Type(field)), stream);
! fputs("</ReturnType>\n", stream);
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
***************
*** 759,763 ****
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! fputs(ILMethod_Name(method), stream);
fputs("\">\n", stream);
--- 840,844 ----
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! DumpString(ILMethod_Name(method), stream);
fputs("\">\n", stream);
***************
*** 776,780 ****
signature = ILMethod_Signature(method);
ILDumpMethodType(stream, ILProgramItem_Image(method), signature,
! 0, 0, ILMethod_Name(method), method);
putc(' ', stream);
ILDumpFlags(stream, ILMethod_ImplAttrs(method),
--- 857,861 ----
signature = ILMethod_Signature(method);
ILDumpMethodType(stream, ILProgramItem_Image(method), signature,
! IL_DUMP_XML_QUOTING, 0, ILMethod_Name(method),
method);
putc(' ', stream);
ILDumpFlags(stream, ILMethod_ImplAttrs(method),
***************
*** 788,792 ****
if(!isConstructor)
{
! fputs(CSTypeToName(ILTypeGetReturn(signature)), stream);
putc(' ', stream);
}
--- 869,873 ----
if(!isConstructor)
{
! DumpString(CSTypeToName(ILTypeGetReturn(signature)), stream);
putc(' ', stream);
}
***************
*** 799,803 ****
methodName = ConvertOperatorNames(method);
}
! fputs(methodName, stream);
putc('(', stream);
num = ILTypeNumParams(signature);
--- 880,884 ----
methodName = ConvertOperatorNames(method);
}
! DumpString(methodName, stream);
putc('(', stream);
num = ILTypeNumParams(signature);
***************
*** 808,817 ****
fputs(", ", stream);
}
! fputs(CSTypeToName(ILTypeGetParam(signature, param)), stream);
paramInfo = FindMethodParam(method, param);
if(paramInfo)
{
putc(' ', stream);
! fputs(ILParameter_Name(paramInfo), stream);
}
}
--- 889,898 ----
fputs(", ", stream);
}
! DumpString(CSTypeToName(ILTypeGetParam(signature, param)),
stream);
paramInfo = FindMethodParam(method, param);
if(paramInfo)
{
putc(' ', stream);
! DumpString(ILParameter_Name(paramInfo), stream);
}
}
***************
*** 840,845 ****
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fprintf(stream, "<ReturnType>%s</ReturnType>\n",
! CSTypeToName(returnType));
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
--- 921,927 ----
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fputs("<ReturnType>", stream);
! DumpString(CSTypeToName(returnType), stream);
! fputs("</ReturnType>\n", stream);
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
***************
*** 863,871 ****
{
fputs("Name=\"", stream);
! fputs(ILParameter_Name(paramInfo), stream);
fputs("\" ", stream);
}
fputs("Type=\"", stream);
! fputs(CSTypeToName(ILTypeGetParam(signature, param)),
stream);
fputs("\"/>\n", stream);
}
--- 945,953 ----
{
fputs("Name=\"", stream);
! DumpString(ILParameter_Name(paramInfo), stream);
fputs("\" ", stream);
}
fputs("Type=\"", stream);
! DumpString(CSTypeToName(ILTypeGetParam(signature,
param)), stream);
fputs("\"/>\n", stream);
}
***************
*** 926,930 ****
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! fputs(ILProperty_Name(property), stream);
fputs("\">\n", stream);
--- 1008,1012 ----
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! DumpString(ILProperty_Name(property), stream);
fputs("\">\n", stream);
***************
*** 944,948 ****
ILPropertyDefinitionFlags, 0);
ILDumpMethodType(stream, ILProgramItem_Image(property), signature,
! 0, 0, ILProperty_Name(property), getter);
fputs(" { ", stream);
if(getter)
--- 1026,1030 ----
ILPropertyDefinitionFlags, 0);
ILDumpMethodType(stream, ILProgramItem_Image(property), signature,
! IL_DUMP_XML_QUOTING, 0,
ILProperty_Name(property), getter);
fputs(" { ", stream);
if(getter)
***************
*** 952,956 ****
methodSig = ILMethod_Signature(getter);
ILDumpMethodType(stream, ILProgramItem_Image(getter), signature,
! 0, 0, ILMethod_Name(getter), getter);
putc(' ', stream);
ILDumpFlags(stream, ILMethod_ImplAttrs(getter),
--- 1034,1038 ----
methodSig = ILMethod_Signature(getter);
ILDumpMethodType(stream, ILProgramItem_Image(getter), signature,
! IL_DUMP_XML_QUOTING, 0,
ILMethod_Name(getter), getter);
putc(' ', stream);
ILDumpFlags(stream, ILMethod_ImplAttrs(getter),
***************
*** 963,967 ****
methodSig = ILMethod_Signature(setter);
ILDumpMethodType(stream, ILProgramItem_Image(setter), signature,
! 0, 0, ILMethod_Name(setter), setter);
putc(' ', stream);
ILDumpFlags(stream, ILMethod_ImplAttrs(setter),
--- 1045,1049 ----
methodSig = ILMethod_Signature(setter);
ILDumpMethodType(stream, ILProgramItem_Image(setter), signature,
! IL_DUMP_XML_QUOTING, 0,
ILMethod_Name(setter), setter);
putc(' ', stream);
ILDumpFlags(stream, ILMethod_ImplAttrs(setter),
***************
*** 974,978 ****
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
ILDumpFlags(stream, decl->modifiers, CSharpMethodFlags, 0);
! fputs(CSTypeToName(ILTypeGetReturn(signature)), stream);
putc(' ', stream);
propertyName = ILProperty_Name(property);
--- 1056,1060 ----
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
ILDumpFlags(stream, decl->modifiers, CSharpMethodFlags, 0);
! DumpString(CSTypeToName(ILTypeGetReturn(signature)), stream);
putc(' ', stream);
propertyName = ILProperty_Name(property);
***************
*** 989,998 ****
if(len > 5 && !strcmp(propertyName + len - 5, ".Item"))
{
! fwrite(propertyName, 1, len - 4, stream);
fputs("this", stream);
}
else
{
! fputs(propertyName, stream);
}
}
--- 1071,1080 ----
if(len > 5 && !strcmp(propertyName + len - 5, ".Item"))
{
! DumpStringN(propertyName, len - 4, stream);
fputs("this", stream);
}
else
{
! DumpString(propertyName, stream);
}
}
***************
*** 1000,1004 ****
else
{
! fputs(propertyName, stream);
}
num = ILTypeNumParams(signature);
--- 1082,1086 ----
else
{
! DumpString(propertyName, stream);
}
num = ILTypeNumParams(signature);
***************
*** 1012,1016 ****
fputs(", ", stream);
}
! fputs(CSTypeToName(ILTypeGetParam(signature, param)),
stream);
if(getter || setter)
{
--- 1094,1098 ----
fputs(", ", stream);
}
! DumpString(CSTypeToName(ILTypeGetParam(signature,
param)), stream);
if(getter || setter)
{
***************
*** 1019,1023 ****
{
putc(' ', stream);
! fputs(ILParameter_Name(paramInfo),
stream);
}
}
--- 1101,1105 ----
{
putc(' ', stream);
! DumpString(ILParameter_Name(paramInfo),
stream);
}
}
***************
*** 1050,1055 ****
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fprintf(stream, "<ReturnType>%s</ReturnType>\n",
! CSTypeToName(returnType));
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
--- 1132,1138 ----
fputs("<ReturnValue>\n", stream);
Indent(stream, indent + 4);
! fputs("<ReturnType>", stream);
! DumpString(CSTypeToName(returnType), stream);
! fputs("</ReturnType>\n", stream);
Indent(stream, indent + 2);
fputs("</ReturnValue>\n", stream);
***************
*** 1075,1084 ****
{
fputs("Name=\"", stream);
! fputs(ILParameter_Name(paramInfo),
stream);
fputs("\" ", stream);
}
}
fputs("Type=\"", stream);
! fputs(CSTypeToName(ILTypeGetParam(signature, param)),
stream);
fputs("\"/>\n", stream);
}
--- 1158,1167 ----
{
fputs("Name=\"", stream);
! DumpString(ILParameter_Name(paramInfo),
stream);
fputs("\" ", stream);
}
}
fputs("Type=\"", stream);
! DumpString(CSTypeToName(ILTypeGetParam(signature,
param)), stream);
fputs("\"/>\n", stream);
}
***************
*** 1136,1140 ****
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! fputs(ILEvent_Name(event), stream);
fputs("\">\n", stream);
--- 1219,1223 ----
Indent(stream, indent);
fputs("<Member MemberName=\"", stream);
! DumpString(ILEvent_Name(event), stream);
fputs("\">\n", stream);
***************
*** 1144,1148 ****
ILDumpFlags(stream, decl->modifiers, ILMethodDefinitionFlags,
0);
fputs("event ", stream);
! fputs(ILEvent_Name(event), stream);
/* TODO: add/remove methods */
fputs("\"/>\n", stream);
--- 1227,1231 ----
ILDumpFlags(stream, decl->modifiers, ILMethodDefinitionFlags,
0);
fputs("event ", stream);
! DumpString(ILEvent_Name(event), stream);
/* TODO: add/remove methods */
fputs("\"/>\n", stream);
***************
*** 1152,1158 ****
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
ILDumpFlags(stream, decl->modifiers, CSharpMethodFlags, 0);
! fputs(CSTypeToName(ILEvent_Type(event)), stream);
putc(' ', stream);
! fputs(ILEvent_Name(event), stream);
/* TODO: add/remove methods */
fputs("\"/>\n", stream);
--- 1235,1241 ----
fputs("<MemberSignature Language=\"C#\" Value=\"", stream);
ILDumpFlags(stream, decl->modifiers, CSharpMethodFlags, 0);
! DumpString(CSTypeToName(ILEvent_Type(event)), stream);
putc(' ', stream);
! DumpString(ILEvent_Name(event), stream);
/* TODO: add/remove methods */
fputs("\"/>\n", stream);
***************
*** 1217,1221 ****
/* Output the type header */
Indent(stream, indent);
! fprintf(stream, "<Type Name=\"%s\" FullName=\"", defn->name);
DumpClassName(stream, classInfo);
fputs("\" FullNameSP=\"", stream);
--- 1300,1306 ----
/* Output the type header */
Indent(stream, indent);
! fputs("<Type Name=\"", stream);
! DumpString(defn->name, stream);
! fputs("\" FullName=\"", stream);
DumpClassName(stream, classInfo);
fputs("\" FullNameSP=\"", stream);
***************
*** 1228,1232 ****
fputs("<TypeSignature Language=\"ILASM\" Value=\".class ", stream);
ILDumpFlags(stream, ILClass_Attrs(classInfo), ILTypeDefinitionFlags, 0);
! fputs(defn->name, stream);
parent = ILClass_Parent(classInfo);
if(parent)
--- 1313,1317 ----
fputs("<TypeSignature Language=\"ILASM\" Value=\".class ", stream);
ILDumpFlags(stream, ILClass_Attrs(classInfo), ILTypeDefinitionFlags, 0);
! DumpString(defn->name, stream);
parent = ILClass_Parent(classInfo);
if(parent)
***************
*** 1289,1293 ****
fputs("class ", stream);
}
! fputs(ILClass_Name(classInfo), stream);
if(!isEnum && parent && !ILTypeIsObjectClass(ILClassToType(parent)))
{
--- 1374,1378 ----
fputs("class ", stream);
}
! DumpString(ILClass_Name(classInfo), stream);
if(!isEnum && parent && !ILTypeIsObjectClass(ILClassToType(parent)))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/cscc csdoc.c,1.22,1.23,
Rhys Weatherley <address@hidden> <=