commit 6aecf108a23850b197e4b25a309fa1988c0558b4
Author: David C. Lonie <david.lonie@kitware.com>
Date:   Mon Oct 1 14:28:10 2012 -0400

    Implement gl2psSpecial for PDF output.

diff --git a/gl2ps.c b/gl2ps.c
index 7a9c51b..77ef08a 100644
--- a/gl2ps.c
+++ b/gl2ps.c
@@ -3430,6 +3430,11 @@ static void gl2psPutPDFText(GL2PSstring *text, int cnt, GLfloat x, GLfloat y)
   }
 }
 
+static void gl2psPutPDFSpecial(GL2PSstring *text)
+{
+  gl2ps->streamlength += gl2psPrintf("%s\n", text->str);
+}
+
 static void gl2psPutPDFImage(GL2PSimage *image, int cnt, GLfloat x, GLfloat y)
 {
   gl2ps->streamlength += gl2psPrintf
@@ -3553,6 +3558,12 @@ static void gl2psPDFgroupListInit(void)
       }
       lastt = tmpt;
       break;
+    case GL2PS_SPECIAL:
+      gl2psPDFgroupObjectInit(&gro);
+      gro.ptrlist = gl2psListCreate(1, 2, sizeof(GL2PSprimitive*));
+      gl2psListAdd(gro.ptrlist, &p);
+      gl2psListAdd(gl2ps->pdfgrouplist, &gro);
+      break;
     default:
       break;
     }
@@ -3794,6 +3805,11 @@ static void gl2psPDFgroupListWriteMainStream(void)
                         prim->verts[0].xyz[1]);
       }
       break;
+    case GL2PS_SPECIAL:
+      for(j = 0; j <= lastel; ++j){
+        prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j);
+        gl2psPutPDFSpecial(prim->data.text);
+      }
     default:
       break;
     }
