C ===================================================================== C pgm: SHQUOT .. Get quote associated with a value from next chars C C use: CALL SHQUOT(KHAR,KHPOS,QUO) C C i/o: KHAR ...... last buffer char obtained - CHAR*1 C i/o: KHPOS ..... last char loc: 2=eol,1=err-eol,0=eof,neg=err - INT C out: QUO ....... string of chars betwee quotes if found - CHAR*(*) C C rqd: SHGETK C ===================================================================== SUBROUTINE SHQUOT(KHAR,KHPOS,QUO) INTRINSIC LEN EXTERNAL SH2BLA,SHGETK,SH2SKP,SHERR CHARACTER*1 KHAR,NQKH CHARACTER*(*) QUO INTEGER KHPOS,NUM,NOFBL,LEN,MX C C ================================= RCS keyword statements ========== CHARACTER*68 RCSKW1,RCSKW2 DATA RCSKW1,RCSKW2 / ' .$Source: /fs/hseb/ob5/rfc/ofs/src/shefpars_driv/RCS/shquot.f,v $ . $', ' .$Id: shquot.f,v 1.1 1997/12/31 20:34:47 page Exp $ . $' / C =================================================================== C QUO = ' ' IF (KHPOS .GT. 2) THEN CALL SH2BLA(KHAR,KHPOS,NOFBL) IF (KHPOS .GT. 2) THEN IF (KHAR.EQ.'"' .OR. KHAR.EQ.'''') THEN NQKH = KHAR CALL SHGETK(KHAR,KHPOS) CALL SH2BLA(KHAR,KHPOS,NOFBL) MX = LEN(QUO)+1 NUM = 0 100 IF (KHPOS.LE.2 .OR. KHAR.EQ.NQKH) GOTO 110 NUM = NUM+1 IF (NUM .LT. MX) QUO(NUM:NUM) = KHAR IF (NUM .EQ. MX) CALL SHERR('W',81,KHPOS,KHAR) CALL SHGETK(KHAR,KHPOS) GOTO 100 110 CONTINUE IF (KHAR .EQ. NQKH) CALL SHGETK(KHAR,KHPOS) ENDIF ENDIF ENDIF RETURN END