Home | History | Annotate | Download | only in toolutil

Lines Matching refs:buf

163 ucbuf_fillucbuf( UCHARBUF* buf,UErrorCode* error){
174 pTarget = buf->buffer;
176 if(buf->currentPos<buf->bufLimit){
177 offset = (int32_t)(buf->bufLimit-buf->currentPos);
178 memmove(buf->buffer,buf->currentPos,offset* sizeof(UChar));
184 if(buf->isBuffered){
187 inputRead=T_FileStream_read(buf->in,cbuf,cbufSize-offset);
188 buf->remaining-=inputRead;
191 cbufSize = T_FileStream_size(buf->in);
197 inputRead= T_FileStream_read(buf->in,cbuf,cbufSize);
198 buf->remaining-=inputRead;
203 buf->remaining = 0;
207 if(buf->conv){
212 ucnv_setToUCallBack(buf->conv,
222 ucnv_toUnicode(buf->conv,&target,target+(buf->bufCapacity-offset),
224 (UBool)(buf->remaining==0),error);
237 if( buf->showWarning==TRUE){
245 ucnv_getInvalidChars(buf->conv,context,&len,&error1);
266 if(buf->showWarning ==TRUE){
274 ucnv_reset(buf->conv);
279 ucnv_setToUCallBack(buf->conv,
291 ucnv_toUnicode(buf->conv,&target,target+(buf->bufCapacity-offset),
293 (UBool)(buf->remaining==0),&error1);
310 outputWritten=((buf->remaining>cbufSize)? cbufSize:inputRead+offset);
312 buf->currentPos = pTarget;
313 buf->bufLimit=pTarget+outputWritten;
314 *buf->bufLimit=0; /*NUL terminate*/
318 return buf;
325 ucbuf_getc(UCHARBUF* buf,UErrorCode* error){
329 if(buf->currentPos>=buf->bufLimit){
330 if(buf->remaining==0){
333 buf=ucbuf_fillucbuf(buf,error);
339 return *(buf->currentPos++);
344 ucbuf_getc32(UCHARBUF* buf,UErrorCode* error){
349 if(buf->currentPos+1>=buf->bufLimit){
350 if(buf->remaining==0){
353 buf=ucbuf_fillucbuf(buf,error);
358 if(U16_IS_LEAD(*(buf->currentPos))){
359 retVal=U16_GET_SUPPLEMENTARY(buf->currentPos[0],buf->currentPos[1]);
360 buf->currentPos+=2;
362 retVal = *(buf->currentPos++);
375 ucbuf_getcx32(UCHARBUF* buf,UErrorCode* error) {
383 if (buf->currentPos >=buf->bufLimit-2) {
384 ucbuf_fillucbuf(buf,error);
388 if (buf->currentPos < buf->bufLimit) {
389 c1 = *(buf->currentPos)++;
394 c2 = *(buf->currentPos);
402 length = (int32_t)(buf->bufLimit - buf->currentPos);
409 ucbuf_fillucbuf(buf,error);
410 length = (int32_t)(buf->bufLimit - buf->buffer);
415 c32 = u_unescapeAt(_charAt, &offset, length, (void*)buf);
421 if(buf->showWarning) {
428 u_UCharsToChars( buf->currentPos, context, len);
435 buf->currentPos += offset;
469 UCHARBUF* buf =(UCHARBUF*) uprv_malloc(sizeof(UCHARBUF));
471 if(buf == NULL){
476 buf->in=in;
477 buf->conv=NULL;
478 buf->showWarning = showWarning;
479 buf->isBuffered = buffered;
480 buf->signatureLength=0;
483 ucbuf_autodetect_fs(in,cp,&buf->conv,&buf->signatureLength,error);
486 ucbuf_autodetect_fs(in,&knownCp,&buf->conv,&buf->signatureLength,error);
488 if(U_SUCCESS(*error) && buf->conv==NULL) {
489 buf->conv=ucnv_open(*cp,error);
492 ucnv_close(buf->conv);
493 uprv_free(buf);
498 if((buf->conv==NULL) && (buf->showWarning==TRUE)){
501 buf->remaining=fileSize-buf->signatureLength;
502 if(buf->isBuffered){
503 buf->bufCapacity=MAX_U_BUF;
505 buf->bufCapacity=buf->remaining+buf->signatureLength+1/*for terminating nul*/;
507 buf->buffer=(UChar*) uprv_malloc(U_SIZEOF_UCHAR * buf->bufCapacity );
508 if (buf->buffer == NULL) {
510 ucbuf_close(buf);
513 buf->currentPos=buf->buffer;
514 buf->bufLimit=buf->buffer;
517 ucbuf_close(buf);
520 ucbuf_fillucbuf(buf,error);
522 ucbuf_close(buf);
525 return buf;
539 ucbuf_ungetc(int32_t c,UCHARBUF* buf){
543 if(buf->currentPos!=buf->buffer){
544 if(*(buf->currentPos-1)==c){
545 buf->currentPos--;
556 ucbuf_closebuf(UCHARBUF* buf){
557 uprv_free(buf->buffer);
558 buf->buffer = NULL;
561 /* close the buf and release resources*/
563 ucbuf_close(UCHARBUF* buf){
564 if(buf!=NULL){
565 if(buf->conv){
566 ucnv_close(buf->conv);
568 T_FileStream_close(buf->in);
569 buf);
570 uprv_free(buf);
574 /* rewind the buf and file stream */
576 ucbuf_rewind(UCHARBUF* buf,UErrorCode* error){
580 if(buf){
581 buf->currentPos=buf->buffer;
582 buf->bufLimit=buf->buffer;
583 T_FileStream_rewind(buf->in);
584 buf->remaining=T_FileStream_size(buf->in)-buf->signatureLength;
586 ucnv_resetToUnicode(buf->conv);
587 if(buf->signatureLength>0) {
595 numRead=T_FileStream_read(buf->in, start, buf->signatureLength);
600 ucnv_toUnicode(buf->conv, &pTarget, target+1, &pStart, start+numRead, NULL, FALSE, error);
606 if(U_SUCCESS(*error) && (numRead!=buf->signatureLength || pTarget!=(target+1) || target[0]!=0xfeff)) {
615 ucbuf_size(UCHARBUF* buf){
616 if(buf){
617 if(buf->isBuffered){
618 return (T_FileStream_size(buf->in)-buf->signatureLength)/ucnv_getMinCharSize(buf->conv);
620 return (int32_t)(buf->bufLimit - buf->buffer);
627 ucbuf_getBuffer(UCHARBUF* buf,int32_t* len,UErrorCode* error){
631 if(buf==NULL || len==NULL){
635 *len = (int32_t)(buf->bufLimit - buf->buffer);
636 return buf->buffer;
716 ucbuf_readline(UCHARBUF* buf,int32_t* len,UErrorCode* err){
717 UChar* temp = buf->currentPos;
720 if(buf->isBuffered){
726 if(buf->remaining==0){
729 if(temp>=buf->bufLimit && buf->currentPos == buf->buffer){
733 ucbuf_fillucbuf(buf,err);
743 if(c ==0x0d && temp <= buf->bufLimit && *temp == 0x0a ){
744 *len = (int32_t)(temp++ - buf->currentPos);
745 savePos = buf->currentPos;
746 buf->currentPos = temp;
751 if (temp>=buf->bufLimit|| ucbuf_isCharNewLine(c)){ /* Unipad inserts 2028 line separators! */
752 *len = (int32_t)(temp - buf->currentPos);
753 savePos = buf->currentPos;
754 buf->currentPos = temp;
765 if(buf->currentPos==buf->bufLimit){
769 if(c ==0x0d && temp <= buf->bufLimit && *temp == 0x0a ){
770 *len = (int32_t)(temp++ - buf->currentPos);
771 savePos = buf->currentPos;
772 buf->currentPos = temp;
776 if (temp>=buf->bufLimit|| ucbuf_isCharNewLine(c)) { /* Unipad inserts 2028 line separators! */
777 *len = (int32_t)(temp - buf->currentPos);
778 savePos = buf->currentPos;
779 buf->currentPos = temp;