12be1a816SJohn Birrell /* 22be1a816SJohn Birrell * CDDL HEADER START 32be1a816SJohn Birrell * 42be1a816SJohn Birrell * The contents of this file are subject to the terms of the 52be1a816SJohn Birrell * Common Development and Distribution License (the "License"). 62be1a816SJohn Birrell * You may not use this file except in compliance with the License. 72be1a816SJohn Birrell * 82be1a816SJohn Birrell * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 92be1a816SJohn Birrell * or http://www.opensolaris.org/os/licensing. 102be1a816SJohn Birrell * See the License for the specific language governing permissions 112be1a816SJohn Birrell * and limitations under the License. 122be1a816SJohn Birrell * 132be1a816SJohn Birrell * When distributing Covered Code, include this CDDL HEADER in each 142be1a816SJohn Birrell * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 152be1a816SJohn Birrell * If applicable, add the following below this CDDL HEADER, with the 162be1a816SJohn Birrell * fields enclosed by brackets "[]" replaced with your own identifying 172be1a816SJohn Birrell * information: Portions Copyright [yyyy] [name of copyright owner] 182be1a816SJohn Birrell * 192be1a816SJohn Birrell * CDDL HEADER END 202be1a816SJohn Birrell */ 212be1a816SJohn Birrell 222be1a816SJohn Birrell /* 23f8ac9d32SJohn Birrell * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 242be1a816SJohn Birrell * Use is subject to license terms. 252be1a816SJohn Birrell */ 262be1a816SJohn Birrell 272be1a816SJohn Birrell #pragma ident "%Z%%M% %I% %E% SMI" 282be1a816SJohn Birrell 292be1a816SJohn Birrell #pragma D option quiet 30f8ac9d32SJohn Birrell #pragma D option strsize=32 312be1a816SJohn Birrell 322be1a816SJohn Birrell struct { 332be1a816SJohn Birrell int index; 342be1a816SJohn Birrell int length; 352be1a816SJohn Birrell int nolen; 36f8ac9d32SJohn Birrell int alt; 372be1a816SJohn Birrell } command[int]; 382be1a816SJohn Birrell 392be1a816SJohn Birrell int i; 402be1a816SJohn Birrell 412be1a816SJohn Birrell BEGIN 422be1a816SJohn Birrell { 432be1a816SJohn Birrell str = "foobarbazbop"; 44f8ac9d32SJohn Birrell str2 = ""; 45f8ac9d32SJohn Birrell altstr = "CRAIG: Positioned them, I don't "; 46f8ac9d32SJohn Birrell altstr2 = "know... I'm fairly wide guy."; 472be1a816SJohn Birrell 482be1a816SJohn Birrell command[i].index = 3; 492be1a816SJohn Birrell command[i].nolen = 1; 502be1a816SJohn Birrell i++; 512be1a816SJohn Birrell 522be1a816SJohn Birrell command[i].index = 300; 532be1a816SJohn Birrell command[i].nolen = 1; 542be1a816SJohn Birrell i++; 552be1a816SJohn Birrell 562be1a816SJohn Birrell command[i].index = -10; 572be1a816SJohn Birrell command[i].nolen = 1; 582be1a816SJohn Birrell i++; 592be1a816SJohn Birrell 602be1a816SJohn Birrell command[i].index = 0; 612be1a816SJohn Birrell command[i].nolen = 1; 622be1a816SJohn Birrell i++; 632be1a816SJohn Birrell 642be1a816SJohn Birrell command[i].index = 1; 652be1a816SJohn Birrell command[i].nolen = 1; 662be1a816SJohn Birrell i++; 672be1a816SJohn Birrell 682be1a816SJohn Birrell command[i].index = strlen(str) - 1; 692be1a816SJohn Birrell command[i].nolen = 1; 702be1a816SJohn Birrell i++; 712be1a816SJohn Birrell 722be1a816SJohn Birrell command[i].index = strlen(str); 732be1a816SJohn Birrell command[i].nolen = 1; 742be1a816SJohn Birrell i++; 752be1a816SJohn Birrell 762be1a816SJohn Birrell command[i].index = strlen(str) + 1; 772be1a816SJohn Birrell command[i].nolen = 1; 782be1a816SJohn Birrell i++; 792be1a816SJohn Birrell 802be1a816SJohn Birrell command[i].index = 8; 812be1a816SJohn Birrell command[i].length = 20; 822be1a816SJohn Birrell i++; 832be1a816SJohn Birrell 842be1a816SJohn Birrell command[i].index = 4; 852be1a816SJohn Birrell command[i].length = 4; 862be1a816SJohn Birrell i++; 872be1a816SJohn Birrell 882be1a816SJohn Birrell command[i].index = 5; 892be1a816SJohn Birrell command[i].length = strlen(str) - command[i].index + 1; 902be1a816SJohn Birrell i++; 912be1a816SJohn Birrell 922be1a816SJohn Birrell command[i].index = 5; 932be1a816SJohn Birrell command[i].length = strlen(str) - command[i].index + 2; 942be1a816SJohn Birrell i++; 952be1a816SJohn Birrell 962be1a816SJohn Birrell command[i].index = 400; 972be1a816SJohn Birrell command[i].length = 20; 982be1a816SJohn Birrell i++; 992be1a816SJohn Birrell 1002be1a816SJohn Birrell command[i].index = 400; 1012be1a816SJohn Birrell command[i].length = 0; 1022be1a816SJohn Birrell i++; 1032be1a816SJohn Birrell 1042be1a816SJohn Birrell command[i].index = 400; 1052be1a816SJohn Birrell command[i].length = -1; 1062be1a816SJohn Birrell i++; 1072be1a816SJohn Birrell 1082be1a816SJohn Birrell command[i].index = 3; 1092be1a816SJohn Birrell command[i].length = 0; 1102be1a816SJohn Birrell i++; 1112be1a816SJohn Birrell 1122be1a816SJohn Birrell command[i].index = 3; 1132be1a816SJohn Birrell command[i].length = -1; 1142be1a816SJohn Birrell i++; 1152be1a816SJohn Birrell 116f8ac9d32SJohn Birrell command[i].index = 3; 117f8ac9d32SJohn Birrell command[i].length = -4; 118f8ac9d32SJohn Birrell i++; 119f8ac9d32SJohn Birrell 120f8ac9d32SJohn Birrell command[i].index = 3; 121f8ac9d32SJohn Birrell command[i].length = -20; 122f8ac9d32SJohn Birrell i++; 123f8ac9d32SJohn Birrell 124f8ac9d32SJohn Birrell command[i].index = -10; 125f8ac9d32SJohn Birrell command[i].length = -5; 126f8ac9d32SJohn Birrell i++; 127f8ac9d32SJohn Birrell 1282be1a816SJohn Birrell command[i].index = 0; 1292be1a816SJohn Birrell command[i].length = 400; 1302be1a816SJohn Birrell i++; 1312be1a816SJohn Birrell 1322be1a816SJohn Birrell command[i].index = -1; 1332be1a816SJohn Birrell command[i].length = 400; 1342be1a816SJohn Birrell i++; 1352be1a816SJohn Birrell 1362be1a816SJohn Birrell command[i].index = -1; 1372be1a816SJohn Birrell command[i].length = 0; 1382be1a816SJohn Birrell i++; 1392be1a816SJohn Birrell 1402be1a816SJohn Birrell command[i].index = -1; 1412be1a816SJohn Birrell command[i].length = -1; 1422be1a816SJohn Birrell i++; 1432be1a816SJohn Birrell 1442be1a816SJohn Birrell command[i].index = -2 * strlen(str); 1452be1a816SJohn Birrell command[i].length = 2 * strlen(str); 1462be1a816SJohn Birrell i++; 1472be1a816SJohn Birrell 1482be1a816SJohn Birrell command[i].index = -2 * strlen(str); 1492be1a816SJohn Birrell command[i].length = strlen(str); 1502be1a816SJohn Birrell i++; 1512be1a816SJohn Birrell 1522be1a816SJohn Birrell command[i].index = -2 * strlen(str); 1532be1a816SJohn Birrell command[i].length = strlen(str) + 1; 1542be1a816SJohn Birrell i++; 1552be1a816SJohn Birrell 1562be1a816SJohn Birrell command[i].index = -1 * strlen(str); 1572be1a816SJohn Birrell command[i].length = strlen(str); 1582be1a816SJohn Birrell i++; 1592be1a816SJohn Birrell 1602be1a816SJohn Birrell command[i].index = -1 * strlen(str); 1612be1a816SJohn Birrell command[i].length = strlen(str) - 1; 1622be1a816SJohn Birrell i++; 1632be1a816SJohn Birrell 164f8ac9d32SJohn Birrell command[i].index = 100; 165f8ac9d32SJohn Birrell command[i].length = 10; 166f8ac9d32SJohn Birrell command[i].alt = 1; 167f8ac9d32SJohn Birrell i++; 168f8ac9d32SJohn Birrell 169f8ac9d32SJohn Birrell command[i].index = 100; 170f8ac9d32SJohn Birrell command[i].nolen = 1; 171f8ac9d32SJohn Birrell command[i].alt = 1; 172f8ac9d32SJohn Birrell i++; 173f8ac9d32SJohn Birrell 1742be1a816SJohn Birrell end = i; 1752be1a816SJohn Birrell i = 0; 1762be1a816SJohn Birrell printf("#!/usr/perl5/bin/perl\n\nBEGIN {\n"); 1772be1a816SJohn Birrell 1782be1a816SJohn Birrell } 1792be1a816SJohn Birrell 1802be1a816SJohn Birrell tick-1ms 1812be1a816SJohn Birrell /i < end && command[i].nolen/ 1822be1a816SJohn Birrell { 183f8ac9d32SJohn Birrell this->str = command[i].alt ? altstr : str; 184f8ac9d32SJohn Birrell this->str2 = command[i].alt ? altstr2 : str2; 185f8ac9d32SJohn Birrell this->result = substr(command[i].alt ? 186f8ac9d32SJohn Birrell "CRAIG: Positioned them, I don't know... I'm fairly wide guy." : 187f8ac9d32SJohn Birrell str, command[i].index); 18820594ebfSJohn Birrell 189f8ac9d32SJohn Birrell printf("\tif (substr(\"%s%s\", %d) ne \"%s\") {\n", 190f8ac9d32SJohn Birrell this->str, this->str2, command[i].index, this->result); 19120594ebfSJohn Birrell 192f8ac9d32SJohn Birrell printf("\t\tprintf(\"perl => substr(\\\"%s%s\\\", %d) = ", 193f8ac9d32SJohn Birrell this->str, this->str2, command[i].index); 194f8ac9d32SJohn Birrell printf("\\\"%%s\\\"\\n\",\n\t\t substr(\"%s%s\", %d));\n", 195f8ac9d32SJohn Birrell this->str, this->str2, command[i].index); 196f8ac9d32SJohn Birrell printf("\t\tprintf(\" D => substr(\\\"%s%s\\\", %d) = ", 197f8ac9d32SJohn Birrell this->str, this->str2, command[i].index); 1982be1a816SJohn Birrell printf("\\\"%%s\\\"\\n\",\n\t\t \"%s\");\n", this->result); 1992be1a816SJohn Birrell printf("\t\t$failed++;\n"); 2002be1a816SJohn Birrell printf("\t}\n\n"); 2012be1a816SJohn Birrell } 2022be1a816SJohn Birrell 2032be1a816SJohn Birrell tick-1ms 2042be1a816SJohn Birrell /i < end && !command[i].nolen/ 2052be1a816SJohn Birrell { 206f8ac9d32SJohn Birrell this->str = command[i].alt ? altstr : str; 207f8ac9d32SJohn Birrell this->str2 = command[i].alt ? altstr2 : str2; 208f8ac9d32SJohn Birrell this->result = substr(command[i].alt ? 209f8ac9d32SJohn Birrell "CRAIG: Positioned them, I don't know... I'm fairly wide guy." : 210f8ac9d32SJohn Birrell str, command[i].index, command[i].length); 2112be1a816SJohn Birrell 212f8ac9d32SJohn Birrell printf("\tif (substr(\"%s%s\", %d, %d) ne \"%s\") {\n", 213f8ac9d32SJohn Birrell this->str, this->str2, command[i].index, command[i].length, 214f8ac9d32SJohn Birrell this->result); 215f8ac9d32SJohn Birrell printf("\t\tprintf(\"perl => substr(\\\"%s%s\\\", %d, %d) = ", 216f8ac9d32SJohn Birrell this->str, this->str2, command[i].index, command[i].length); 217f8ac9d32SJohn Birrell printf("\\\"%%s\\\"\\n\",\n\t\t substr(\"%s%s\", %d, %d));\n", 218f8ac9d32SJohn Birrell this->str, this->str2, command[i].index, command[i].length); 219f8ac9d32SJohn Birrell printf("\t\tprintf(\" D => substr(\\\"%s%s\\\", %d, %d) = ", 220f8ac9d32SJohn Birrell this->str, this->str2, command[i].index, command[i].length); 2212be1a816SJohn Birrell printf("\\\"%%s\\\"\\n\",\n\t\t \"%s\");\n", this->result); 2222be1a816SJohn Birrell printf("\t\t$failed++;\n"); 2232be1a816SJohn Birrell printf("\t}\n\n"); 2242be1a816SJohn Birrell } 2252be1a816SJohn Birrell 2262be1a816SJohn Birrell tick-1ms 2272be1a816SJohn Birrell /++i == end/ 2282be1a816SJohn Birrell { 2292be1a816SJohn Birrell printf("\texit($failed);\n}\n"); 2302be1a816SJohn Birrell exit(0); 2312be1a816SJohn Birrell } 232