tcldstringclass.cc

来自「编译工具」· CC 代码 · 共 121 行

CC
121
字号
//// Implementation of wrapper class for extended Tcl DString functions.//// $Id: tclDStringClass.cc,v 1.2 1999/05/31 15:57:54 sll Exp $ $Author: sll $//#include "omniParTcl/tclDStringClass.h"#include <stdio.h>#include <string.h>////---------- Overloaded extensions to Tcl_DStringAppend() ----------//char *tclDString::append(char *string, int length){  return Tcl_DStringAppend(&theDS,string,length);}char *tclDString::append(long lval, char *format){  sprintf(numberBuf,format,lval);  return Tcl_DStringAppend(&theDS,numberBuf,-1);}char *tclDString::append(double dval, char *format){  sprintf(numberBuf,format,dval);  return Tcl_DStringAppend(&theDS,numberBuf,-1);}////---------- Overloaded extensions to Tcl_DStringAppendElement() ----------//char *tclDString::appendElement(char *string, int length){  //  // We have extended the appendElement function to mirror append,  // i.e. you can optionally specify a length to which the (original)  // string will be truncated before being converted to a list element  // and appended.  //  if (length < 0) {    return Tcl_DStringAppendElement(&theDS,string);  }  else {    int slen = strlen(string);    int nlen = (slen < length) ? slen : length;    char *cbuf = new char[nlen+1];    memcpy((void *) cbuf, (void *) string, (size_t) nlen);    cbuf[nlen] = '\0';    char *result = Tcl_DStringAppendElement(&theDS,cbuf);    delete cbuf;    return result;  }}char *tclDString::appendElement(long lval, char *format){  sprintf(numberBuf,format,lval);    return Tcl_DStringAppendElement(&theDS,numberBuf);}char *tclDString::appendElement(double dval, char *format){  sprintf(numberBuf,format,dval);  return Tcl_DStringAppendElement(&theDS,numberBuf);}////---------- Wrappers for the rest ----------//void tclDString::init(){  Tcl_DStringInit(&theDS);  }void tclDString::startSublist(){  Tcl_DStringStartSublist(&theDS);  }void tclDString::endSublist(){  Tcl_DStringEndSublist(&theDS);  }char *tclDString::value(){  return Tcl_DStringValue(&theDS);  }int tclDString::length(){  return Tcl_DStringLength(&theDS);  }void tclDString::trunc(int newLength){  Tcl_DStringTrunc(&theDS,newLength);  }void tclDString::free(){  Tcl_DStringFree(&theDS);  }void tclDString::result(Tcl_Interp *interp){  Tcl_DStringResult(interp,&theDS);  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?