summaryrefslogtreecommitdiff
path: root/src/liblink/list5.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/liblink/list5.c')
-rw-r--r--src/liblink/list5.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/liblink/list5.c b/src/liblink/list5.c
index 4a4e8c71f..a91df55e6 100644
--- a/src/liblink/list5.c
+++ b/src/liblink/list5.c
@@ -46,6 +46,7 @@ static int Pconv(Fmt *fp);
static int Rconv(Fmt *fp);
static int RAconv(Fmt *fp);
static int DSconv(Fmt *fp);
+static int DRconv(Fmt*);
#pragma varargck type "$" char*
#pragma varargck type "M" Addr*
@@ -59,6 +60,9 @@ listinit5(void)
fmtinstall('P', Pconv);
fmtinstall('R', Rconv);
+ // for liblink internal use
+ fmtinstall('^', DRconv);
+
// for internal use
fmtinstall('$', DSconv);
fmtinstall('M', Mconv);
@@ -314,6 +318,19 @@ Rconv(Fmt *fp)
}
static int
+DRconv(Fmt *fp)
+{
+ char *s;
+ int a;
+
+ a = va_arg(fp->args, int);
+ s = "C_??";
+ if(a >= C_NONE && a <= C_NCLASS)
+ s = cnames5[a];
+ return fmtstrcpy(fp, s);
+}
+
+static int
Mconv(Fmt *fp)
{
char str[STRINGSZ];