1*2633Sahl /* 2*2633Sahl * CDDL HEADER START 3*2633Sahl * 4*2633Sahl * The contents of this file are subject to the terms of the 5*2633Sahl * Common Development and Distribution License (the "License"). 6*2633Sahl * You may not use this file except in compliance with the License. 7*2633Sahl * 8*2633Sahl * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*2633Sahl * or http://www.opensolaris.org/os/licensing. 10*2633Sahl * See the License for the specific language governing permissions 11*2633Sahl * and limitations under the License. 12*2633Sahl * 13*2633Sahl * When distributing Covered Code, include this CDDL HEADER in each 14*2633Sahl * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*2633Sahl * If applicable, add the following below this CDDL HEADER, with the 16*2633Sahl * fields enclosed by brackets "[]" replaced with your own identifying 17*2633Sahl * information: Portions Copyright [yyyy] [name of copyright owner] 18*2633Sahl * 19*2633Sahl * CDDL HEADER END 20*2633Sahl */ 21*2633Sahl 22*2633Sahl /* 23*2633Sahl * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24*2633Sahl * Use is subject to license terms. 25*2633Sahl */ 26*2633Sahl 27*2633Sahl #pragma ident "%Z%%M% %I% %E% SMI" 28*2633Sahl 29*2633Sahl #pragma D option quiet 30*2633Sahl 31*2633Sahl BEGIN 32*2633Sahl { 33*2633Sahl this->str = ",,,Carrots,,Barley,Oatmeal,,,Beans,"; 34*2633Sahl } 35*2633Sahl 36*2633Sahl BEGIN 37*2633Sahl /(this->field = strtok(this->str, ",")) == NULL/ 38*2633Sahl { 39*2633Sahl exit(1); 40*2633Sahl } 41*2633Sahl 42*2633Sahl BEGIN 43*2633Sahl { 44*2633Sahl printf("%s\n", this->field); 45*2633Sahl } 46*2633Sahl 47*2633Sahl BEGIN 48*2633Sahl /(this->field = strtok(NULL, ",")) == NULL/ 49*2633Sahl { 50*2633Sahl exit(2); 51*2633Sahl } 52*2633Sahl 53*2633Sahl BEGIN 54*2633Sahl { 55*2633Sahl printf("%s\n", this->field); 56*2633Sahl } 57*2633Sahl 58*2633Sahl BEGIN 59*2633Sahl /(this->field = strtok(NULL, ",")) == NULL/ 60*2633Sahl { 61*2633Sahl exit(3); 62*2633Sahl } 63*2633Sahl 64*2633Sahl BEGIN 65*2633Sahl { 66*2633Sahl printf("%s\n", this->field); 67*2633Sahl } 68*2633Sahl 69*2633Sahl BEGIN 70*2633Sahl /(this->field = strtok(NULL, ",")) == NULL/ 71*2633Sahl { 72*2633Sahl exit(4); 73*2633Sahl } 74*2633Sahl 75*2633Sahl BEGIN 76*2633Sahl { 77*2633Sahl printf("%s\n", this->field); 78*2633Sahl } 79*2633Sahl 80*2633Sahl BEGIN 81*2633Sahl /(self->a = strtok(NULL, ",")) != NULL/ 82*2633Sahl { 83*2633Sahl printf("unexpected field: %s\n", this->field); 84*2633Sahl exit(5); 85*2633Sahl } 86*2633Sahl 87*2633Sahl struct { 88*2633Sahl string s1; 89*2633Sahl string s2; 90*2633Sahl string result; 91*2633Sahl } command[int]; 92*2633Sahl 93*2633Sahl int i; 94*2633Sahl 95*2633Sahl BEGIN 96*2633Sahl { 97*2633Sahl command[i].s1 = ""; 98*2633Sahl command[i].s2 = ""; 99*2633Sahl command[i].result = ""; 100*2633Sahl i++; 101*2633Sahl 102*2633Sahl command[i].s1 = "foo"; 103*2633Sahl command[i].s2 = ""; 104*2633Sahl command[i].result = command[i].s1; 105*2633Sahl i++; 106*2633Sahl 107*2633Sahl command[i].s1 = "foobar"; 108*2633Sahl command[i].s2 = "o"; 109*2633Sahl command[i].result = "f"; 110*2633Sahl i++; 111*2633Sahl 112*2633Sahl command[i].s1 = "oobar"; 113*2633Sahl command[i].s2 = "o"; 114*2633Sahl command[i].result = "bar"; 115*2633Sahl i++; 116*2633Sahl 117*2633Sahl command[i].s1 = "foo"; 118*2633Sahl command[i].s2 = "bar"; 119*2633Sahl command[i].result = command[i].s1; 120*2633Sahl i++; 121*2633Sahl 122*2633Sahl command[i].s1 = ""; 123*2633Sahl command[i].s2 = "foo"; 124*2633Sahl command[i].result = ""; 125*2633Sahl i++; 126*2633Sahl 127*2633Sahl end = i; 128*2633Sahl i = 0; 129*2633Sahl } 130*2633Sahl 131*2633Sahl tick-1ms 132*2633Sahl /i < end && 133*2633Sahl (this->result = strtok(command[i].s1, command[i].s2)) != command[i].result/ 134*2633Sahl { 135*2633Sahl printf("strtok(\"%s\", \"%s\") = \"%s\", expected \"%s\"", 136*2633Sahl command[i].s1, command[i].s2, 137*2633Sahl this->result != NULL ? this->result : "<null>", 138*2633Sahl command[i].result != NULL ? command[i].result : "<null>"); 139*2633Sahl exit(6 + i); 140*2633Sahl } 141*2633Sahl 142*2633Sahl tick-1ms 143*2633Sahl /++i == end/ 144*2633Sahl { 145*2633Sahl exit(0); 146*2633Sahl } 147