Changeset 79 in Sophya


Ignore:
Timestamp:
Feb 23, 1998, 7:32:03 PM (28 years ago)
Author:
ansari
Message:

PIConsole , re-suite Reza 23/02/98

Location:
trunk/SophyaPI/PI
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/picons.cc

    r78 r79  
    4545mOffL = 0;
    4646mNCmdL = 0;
     47
     48// Pile de rappel des commandes
     49mRStr = NULL;
     50mNComm = NMxRecall = 0;
     51mRCindx = mRindx = 0;
     52
     53// Copier/coller
     54mCPBuffer = NULL;
     55mCPBufLen = 0;
     56mCPbeginC =  mCPendC = 0;
     57mCPbeginL = mCPendL = 0;
     58
    4759SetPrompt("Cmd> ");
    4860ClrCmd();
     
    140152
    141153/* --Methode-- */
    142 void PIConsole::SelectFont(PIFontSize sz)
     154void PIConsole::SelectFont(PIFontSize sz, bool autosz)
    143155{
    144156int asc, desc;
     
    146158mFTaille = sz;
    147159mFHaut = mWGrC->GetFontHeight(asc, desc);
    148 mFLarg = mWGrC->CalcStringWidth("A");
     160mFLarg = (int)mWGrC->CalcStringWidth("ABCDEFGHIJ")/10;
    149161mWSzL = YSize()/mFHaut - 1;
    150 mWSzC = XSize()/mFLarg - 1;
     162mWSzC = XSize()/mFLarg - 2;
    151163mOffL = 0;
     164if (autosz) SetSize((mWSzC+2)*mFLarg, (mWSzL+1)*mFHaut);
    152165if (mScb) {
    153166  mScb->SetMinMax(0, NbLines()-1);
     
    157170}
    158171
    159 /* --Methode-- */
    160 void PIConsole::AcceptCmd(bool acc)
     172
     173/* --Methode-- */
     174void PIConsole::AcceptCmd(bool acc, int nmxrec)
    161175{
    162176int l1, l2;
     
    169183  UpdCmdLine();
    170184  l2 = mNL-1;
     185  if (nmxrec > 0) {
     186    NMxRecall = (nmxrec > 5) ? nmxrec : 5;
     187    mRStr = new string[NMxRecall];
     188    mNComm = mRCindx = mRindx = 0;
     189    }
    171190  }
    172191else {
     
    176195  ClrCmd();
    177196  l1 = l2 = mNL-1;
     197  delete[] mRStr;
     198  mRCindx = mRindx = 0;
    178199  }
    179200DisplayLines(mWGrC, l1, l2);
     
    218239void PIConsole::Resize()
    219240{
    220 mWSzL = YSize()/mFHaut-1;
    221 mWSzC = XSize()/mFLarg-1;
     241mWSzL = YSize()/mFHaut - 1;
     242mWSzC = XSize()/mFLarg - 2;
    222243if (mScb) {
    223244  mScb->SetMinMax(0, NbLines()-1);
     
    241262{
    242263
    243 
     264if (mNCmdL < 1)  return;
     265
     266int k;
     267bool fgfk = false;
     268
     269if (kmod == PIKM_Cntl) {
     270  switch (key) {
     271    case 1 :  // <Cntl> A
     272      mCCP = 0;
     273      break;
     274    case 5 :  // <Cntl> E
     275      mCCP = mCLC;
     276      break;
     277    case 11 :  // <Cntl> K
     278      mCLC = mCCP;
     279      break;
     280    }
     281  }
     282
     283else if (kmod == PIKM_Alt) {
     284  if (key == 'V' || key == 'v') RequestSelection();  // Pour coller (copier/coller)
     285  else if (key == 'A' || key == 'a') {  // Pour tout selectionner
     286    if (ClaimSelection()) {   // Definition de la zone de copie
     287      SelectionLost();
     288      mCPbeginC = 0; mCPendC = mNC;
     289      mCPbeginL = mNL-mWSzL-mOffL;  mCPendL = mNL-mOffL;
     290      }
     291    else  mCPbeginC =  mCPendC = mCPbeginL = mCPendL = 0;
     292    }
     293  }
     294
     295else if (kmod == PIKM_Blank) {
     296  switch (key) {
     297    case PIK_Return :   
     298    case PIK_Enter :
     299      mCmdStr[mCLC] = '\0';
     300//      printf("Process()-Debug- <CR/Enter> CmdStr= %s (L=%d)\n", mCmdStr, strlen(mCmdStr) );
     301
     302// Gestion de rappel des commandes
     303      mRStr[mRCindx] = mCmdStr;
     304      mRCindx++;  mNComm++;
     305      if (mRCindx >= NMxRecall)  mRCindx = 0;
     306      mRindx = mRCindx;
     307     
     308      Send( Msg(), PIMsg_OK, mCmdStr);
     309      ClrCmd();
     310      break;
     311
     312    case PIK_BackSpace :
     313    case 127 :    // Touche del
     314    case 8 :      // Touche backspace
     315      if (mCCP > 0)  {
     316        for(k=mCCP-1; k<mCLC-1; k++)  mCmdStr[k] = mCmdStr[k+1];
     317        mCmdStr[mCLC-1] = ' ';   mCCP--;  mCLC--;
     318      }
     319      //      printf("Process()-Debug- Backspace CCP,CLC= %d %d CmdStr= %s (L=%d) \n", mCCP, mCLC,
     320      //      mCmdStr, strlen(mCmdStr));
     321      break;
     322     
     323    case PIK_Up :
     324    case PIK_Down :
     325      printf("Process()-Debug- CursorUp/Down(%d)  Index= %d %d  \n", key, mRindx, mRCindx);
     326      if (mNComm > 0) {
     327        int nmxrec = (mNComm < NMxRecall) ? mNComm : NMxRecall;
     328        if (key == PIK_Up)  {
     329          mRindx--;
     330          if (mRindx < 0)  mRindx = 0;
     331          }
     332        else {
     333          mRindx++;
     334          if (mRindx >= nmxrec) mRindx= nmxrec-1;
     335          }
     336        mCLC = mCCP = mRStr[mRindx].length();
     337        for(k=0; k< mCLC; k++)  mCmdStr[k] =  mRStr[mRindx][k];
     338        mCmdStr[mCLC] = '\0';     
     339        }     
     340      break;
     341
     342    case PIK_Left :
     343      if (mCCP > 0)  mCCP--;
     344      //      printf("Process()-Debug- Left CCP,CLC= %d %d  \n", mCCP, mCLC);
     345      break;
     346    case PIK_Right :
     347      if (mCCP < mCLC)  mCCP++;
     348      //      printf("Process()-Debug- Right CCP,CLC= %d %d  \n", mCCP, mCLC);
     349      break;
     350    default :
     351      fgfk = true;
     352      break;
     353    }
     354  }
     355if ( ( fgfk && (kmod == PIKM_Blank) ) || (kmod == PIKM_Shift)  ) CmdAddChar(key);
     356UpdCmdLine();
     357// DisplayLines(mNL-1, mNL-1);
     358return;
     359}
     360
     361/*   Pour debugger le code - Reza 23/02/98
    244362#ifdef DEBUG_PICONS
    245363if ( (kmod == PIKM_Alt) ) {
     
    299417}
    300418#endif
    301 
    302 if (mNCmdL < 1)  return;
    303 
    304 int k;
    305 bool fgfk = false;
    306 
    307 if (kmod == PIKM_Cntl) {
    308   switch (key) {
    309     case 'A' :
    310     case 'a' :
    311       mCCP = 0;
    312       break;
    313     case 'E' :
    314     case 'e' :
    315       mCCP = mCLC;
    316       break;
    317     case 'K' :
    318     case 'k' :
    319       mCLC = mCCP;
    320       break;
    321     }
    322   }
    323 
    324 else if (kmod == PIKM_Alt) {
    325   if (key == 'V' || key == 'v') RequestSelection();  // Pour coller (copier/coller)
    326   }
    327 
    328 else if (kmod == PIKM_Blank) {
    329   switch (key) {
    330     case PIK_Return :   
    331     case PIK_Enter :
    332       mCmdStr[mCLC] = '\0';
    333 //      printf("Process()-Debug- <CR/Enter> CmdStr= %s (L=%d)\n", mCmdStr, strlen(mCmdStr) );
    334       Send( Msg(), PIMsg_OK, mCmdStr);
    335       ClrCmd();
    336       break;
    337 
    338     case PIK_BackSpace :
    339     case 127 :    // Touche del
    340     case 8 :      // Touche backspace
    341       if (mCCP > 0)  {
    342         for(k=mCCP-1; k<mCLC-1; k++)  mCmdStr[k] = mCmdStr[k+1];
    343         mCmdStr[mCLC-1] = ' ';   mCCP--;  mCLC--;
    344       }
    345       //      printf("Process()-Debug- Backspace CCP,CLC= %d %d CmdStr= %s (L=%d) \n", mCCP, mCLC,
    346       //      mCmdStr, strlen(mCmdStr));
    347       break;
    348     case PIK_Left :
    349       if (mCCP > 0)  mCCP--;
    350       //      printf("Process()-Debug- Left CCP,CLC= %d %d  \n", mCCP, mCLC);
    351       break;
    352     case PIK_Right :
    353       if (mCCP < mCLC)  mCCP++;
    354       //      printf("Process()-Debug- Right CCP,CLC= %d %d  \n", mCCP, mCLC);
    355       break;
    356     default :
    357       fgfk = true;
    358       break;
    359     }
    360   }
    361 if ( ( fgfk && (kmod == PIKM_Blank) ) || (kmod == PIKM_Shift)  ) CmdAddChar(key);
    362 UpdCmdLine();
    363 // DisplayLines(mNL-1, mNL-1);
    364 return;
    365 }
    366 
     419*/
    367420
    368421/* --Methode--
     
    387440for(i=0; i<l; i++) CmdAddChar(pc[i]);
    388441UpdCmdLine();
     442}
     443
     444/* --Methode-- */
     445void PIConsole::SelectionLost()
     446{
     447// printf("Debug PIConsole::SelectionLost() %lx (L=%d)\n",(long)mCPBuffer, mCPBufLen);
     448if (mCPBuffer) delete[] mCPBuffer; 
     449mCPBuffer = NULL;
     450mCPBufLen = 0;
     451mCPbeginC =  mCPendC = 0;
     452mCPbeginL = mCPendL = 0;
     453}
     454
     455/* --Methode-- */
     456void PIConsole::SelectionTransferEnd()
     457{
     458// printf("Debug PIConsole::SelectionTransferEnd() -Rien- %lx (L=%d)\n",(long)mCPBuffer, mCPBufLen);
     459}
     460
     461
     462/* --Methode-- */
     463void * PIConsole::ProvideSelection(unsigned int& typ, unsigned int& len)
     464{
     465typ = PICP_string;
     466if (!mCPBuffer) {  // Il faut effectuer la copie
     467  int l = (mCPendC-mCPbeginC+1) * (mCPendL-mCPbeginL);
     468  if (l < 1) l = 1;
     469  mCPBufLen = l;
     470  mCPBuffer = new char[l+1];
     471  int i,j,k;
     472  k = 0; 
     473  for(j=mCPbeginL; j<mCPendL; j++) {
     474    for(i=mCPbeginC; i<mCPendC; i++) 
     475      { mCPBuffer[k] = mText[mLPo[j]+i]; k++; }
     476    mCPBuffer[k] = '\n'; k++;
     477    }
     478  mCPBuffer[l] = '\0';
     479  }
     480// printf("PIConsole::ProvideSelection() %d-%d %d-%d -> %d (%lx)\n", mCPbeginL, mCPendL, mCPbeginC, mCPendC,
     481//       mCPBufLen,(long) mCPBuffer);
     482int i; for(i=0; i<40; i++) putchar(mCPBuffer[i]);  printf("\n");
     483len = mCPBufLen;
     484return(mCPBuffer);
    389485}
    390486
     
    404500}
    405501
    406 /* --Methode-- */
     502/* --Methode--
    407503void PIConsole::DebugPrint(int lp)
    408504{
     
    421517return;
    422518}
     519*/
    423520
    424521/* --Methode-- */
     
    468565bgc =  g->GetBackground();
    469566
    470 l0 = mNL-mWSzL-1-mOffL;
     567int dx = mFLarg;
     568int dy = mFHaut/2;
     569int dxo2 = dx/2;
     570if (dxo2 > 3)  dxo2 = 3;
     571int dyo2 = dy/2;
     572if (dyo2 > 3)  dyo2 = 3;
     573
     574g->DrawBox(dxo2, dyo2, (mNC+2)*mFLarg-2*dxo2, (mWSzL+1)*mFHaut-dyo2);
     575
     576l0 = mNL-mWSzL-mOffL;
    471577if (l0 < 0) l0 = 0;
    472578if (l1 < l0) l1 = l0;
    473 if (l2 > mNL-mOffL-1) l2 =  mNL-mOffL-1;
    474 
    475 for(l=l1; l<=l2; l++) {
    476  y = (l-l0+0.5)*mFHaut;
    477  k = 0;   x = 0.5*mFLarg;
     579if (++l2 > mNL-mOffL) l2 =  mNL-mOffL;
     580
     581for(l=l1; l<l2; l++) {
     582 y = (l-l0+1)*mFHaut+dy;
     583 k = 0;   x = dx;
    478584 for(j=0; j<mNC; j++) {
    479585   if (mAtt[mLPo[l]+j] != lva) {
     
    530636for(j=0; j<j1; j++) {
    531637  mText[mLPo[mNL-1]+j] = mPrompt[j];
    532   mAtt[mLPo[mNL-1]+j] = PIVA_Bold;
     638  mAtt[mLPo[mNL-1]+j] = PIVA_Ital;
    533639  strg[j] = mPrompt[j]; 
    534640  } 
     
    543649for(j=j1; j<j2; j++) {
    544650  mText[mLPo[mNL-1]+j] = mCmdStr[k];
    545   mAtt[mLPo[mNL-1]+j] = PIVA_Def;
     651  mAtt[mLPo[mNL-1]+j] = PIVA_Bold;
    546652  strg[j] = mCmdStr[k]; 
    547653  k++;
     
    566672{
    567673int off;
    568 printf("PIConsole::Process() UserMsg()= %d ModMsg= %d \n", (int)UserMsg(msg),
    569        (int)ModMsg(msg) );
     674// printf("PIConsole::Process() UserMsg()= %d ModMsg= %d \n", (int)UserMsg(msg),
     675//        (int)ModMsg(msg) );
    570676
    571677if (sender == opmc) { // Menu des options
     
    599705else if ((ModMsg(msg) == PIMsg_DataChanged) && (UserMsg(msg) == msgScb) ) {
    600706  off = (int)data;
    601   printf(" PIConsole::Process() From ScrollBar : Off=%d \n ", off);
     707//  printf(" PIConsole::Process() From ScrollBar : Off=%d \n ", off);
    602708  SetDispOffset(off);
    603709  Refresh();
  • trunk/SophyaPI/PI/picons.h

    r78 r79  
    2323          void       AddChar(char c, unsigned char va= PIVA_Def, bool ref=true);
    2424          void       AddStr(char* strg, unsigned char va= PIVA_Def, bool ref=true);
    25 //          void       MoveCursor(int il, int jc);
    26 //          void       DelChar(int il, int jc);
    2725
    28           void       SelectFont(PIFontSize sz=PI_NormalSizeFont);
    29           void       AcceptCmd(bool acc=true);
     26          void       SelectFont(PIFontSize sz=PI_NormalSizeFont, bool autosz=true);
     27          void       AcceptCmd(bool acc=true, int nrecmx=20);
    3028          void       SetPrompt(char* prompt);
     29
    3130  inline  int        WindNbLines() { return mWSzL; }
    3231  inline  int        NbLines() { return mNL; }
     32
    3333          void       SetDispOffset(int ldeb=-1);
    3434          void       AssocScrollBar(PIScrollBar* scb);
     
    3939  virtual void       Resize();
    4040  virtual void       Keyboard(int key, PIKeyModifier kmod);
    41 //  virtual void       But1Press(int x, int y);
    4241  virtual void       But3Press(int x, int y);
     42
    4343  virtual void       PasteSelection(unsigned int typ, void *pdata, unsigned int l);
    44 
    45           void       DebugPrint(int cont=0);
     44  virtual void*      ProvideSelection(unsigned int& typ, unsigned int& len);
     45  virtual void       SelectionLost();
     46  virtual void       SelectionTransferEnd();
    4647
    4748protected:
     
    7273  int mCCP, mCLC;       // Position du curseur, longeur de la commande
    7374
     75// Pour le rappel des commandes
     76  int NMxRecall, mNComm;    // Profondeur de la pile de rappels, nb de commandes
     77  string * mRStr;           // Stockage des chaines
     78  int mRCindx, mRindx;      // Index pour le rappel
     79 
     80// Gestion du buffer de copie
     81  char* mCPBuffer;
     82  unsigned int mCPBufLen;
     83  int mCPbeginC, mCPbeginL;
     84  int mCPendC, mCPendL;
     85 
    7486// S il y a un scroll-bar associe
    7587  PIScrollBar* mScb;
     
    96108  inline  void       SetPrompt(char* prompt)
    97109                             { mCons->SetPrompt(prompt); }
     110  inline  string     GetCmdString() { return(mCons->GetCmdString()); }
    98111
    99112  inline  void       Refresh() { mCons->Refresh(); }
  • trunk/SophyaPI/PI/pigraphx.cc

    r72 r79  
    88
    99/*  Variables globales pour modifier les GC  */
    10 #define NMAXFONTSZ  5
     10#define NMAXFONTSZ  7
    1111static XFontStruct * fntst[NMAXFONTSZ][3];
    12 static int fntsz[NMAXFONTSZ] = {8,10,12,14,16};
     12static int fntsz[NMAXFONTSZ] = {8,10,12,14,16,20,24};
    1313static  PIFontAtt fntatt[3] = { PI_RomanFont, PI_BoldFont, PI_ItalicFont };
    1414#define NMAXCOL  10
     
    358358  {
    359359  case PI_SmallSizeFont:
    360     i = 0;
     360    i = 1;
    361361    break;
    362362  case PI_NormalSizeFont:
    363     i = 2;
     363    i = 3;
    364364    break;
    365365  case PI_BigSizeFont:
    366     i = 4;
     366    i = 5;
    367367    break;
    368368  default:
     
    550550static XtResource resources[] = {
    551551  { "fontFamilyName", "FontFamilyName", XtRString, sizeof(String),
    552     /*XtOffset(apdp, fntFam)*/ 0, XtRString, "*-helvetica" }
     552    /*XtOffset(apdp, fntFam)*/ 0, XtRString, "*-courier" }
    553553};
    554554 
     
    585585if (count < 5)
    586586  {
    587   printf("PIGraphicX::Init %d fonts found for %s , switching to helvetica\n",
     587  printf("PIGraphicX::Init %d fonts found for %s , switching to courier\n",
    588588         count, apd.fntFam);
    589   apd.fntFam = "*-helvetica";
     589  apd.fntFam = "*-courier";
    590590  }
    591591sprintf(buff,"-%s-%s-*-*-*-*-*-*-*-*-*", apd.fntFam, fnbi_b[0]);
  • trunk/SophyaPI/PI/pihisto2d.cc

    r76 r79  
    2828  if (!mDrawer) return;
    2929  if (mDrawer->LimitsFixed()) return;
     30  if (!mHisto)  return;
    3031  // Commencer par trouver nos limites
    3132 
     
    4849PIHisto2D::Draw(PIGraphicUC* g, float /*xmin*/, float /*ymin*/, float /*xmax*/, float /*ymax*/)
    4950{
     51  if (!mHisto)  return;
    5052  float hmin = mHisto->VMin();
    5153  float hmax = mHisto->VMax();
     
    155157{
    156158int i,j;
     159char str[128];
     160
     161if ((!mPih) || (!mPih->Histogram())) {
     162  sprintf(str,"X=%g Y=%g ???",x,y);
     163  return((string)str);
     164}
     165
    157166Histo2D* h = mPih->Histogram();
    158 char str[128];
     167
    159168
    160169h->FindBin(x,y,i,j);
     
    169178{
    170179//printf("PIH2DWdg::Process(%d-%d , %lx ...) \n", UserMsg(msg), ModMsg(msg), (long)sender);
    171 
     180if (!mPih) return;
    172181if (sender == optmenh2d) { // On n'attend de message que de la part du menu
    173182  int opt=6101;
  • trunk/SophyaPI/PI/pistdwdgx.cc

    r78 r79  
    485485int n=0;
    486486if (val < mMin)  val = mMin;
    487 if (val > mMax)  val = mMax;
     487if (val > mMax-mSz)  val = mMax-mSz;
    488488Arg warg[2];
    489489XtSetArg(warg[n], XmNvalue, val); n++;
     
    509509{
    510510int n=0;
    511 Arg warg[3];
     511Arg warg[4];
    512512int szl;
    513513
     
    522522XtSetArg(warg[n], XmNpageIncrement, sz); n++;
    523523XtSetArg(warg[n], XmNincrement, szl); n++;
     524if (mVal > mMax-sz) {
     525  mVal = mMax-sz;
     526  XtSetArg(warg[n], XmNvalue, mVal); n++;
     527  }
    524528XtSetValues(this->sdw, warg, n);
    525529mSz = sz;
  • trunk/SophyaPI/PI/piwdgx.cc

    r76 r79  
    502502if (*targ != XA_STRING)  return(FALSE);
    503503if (!curselwdg)  return(FALSE);
    504 int l = 0;
    505 int styp = reqseltype;
    506 *value = curselwdg->ProvideSelection(styp, l);
    507 *len=l;
     504unsigned int ll = 0;
     505unsigned int styp = reqseltype;
     506*value = curselwdg->ProvideSelection(styp, ll);
     507*len=ll;
    508508*typ = XA_STRING;
    509509*format = 8;
     
    529529                                 XtPointer value, unsigned long* len, int* format )
    530530{
    531 printf("forXt_SelectionValue()/Debug: %lx %lx - %lx - %d (%d %d %d)\n", (unsigned long)w,
    532        (unsigned long)usd, (unsigned long)value, (*len), curseltype, reqseltype, provseltype);
    533531if ( (value != NULL) && (*len > 0) )
    534532  ((PIWdgX*)usd)->PasteSelection(provseltype, (void*)value, (*len)) ;
     
    544542if (XtOwnSelection(XtWdg(), XA_PRIMARY, PIXGetLastEventTime(), forXt_ConvertSelection,
    545543                   forXt_LoseSelection, forXt_DoneSelection) ) {
     544#ifdef DEBUG_PIWdgX
    546545  printf("PIWdgX::ClaimSelection(%d) - OK  (Wdg= %lx)\n", typ, (unsigned long)this);
     546#endif
    547547  curselwdg = this;
    548548  curseltype = (typ != 0) ? typ : PICP_string;
     
    550550}
    551551else {
     552#ifdef DEBUG_PIWdgX
    552553  printf("PIWdgX::ClaimSelection() - Probleme (Wdg= %lx)\n", (unsigned long)this);
     554#endif
    553555  curselwdg = NULL;
    554556  curseltype = PICP_string;
     
    561563// Appele quand le PIWdg perd la possession du buffer copier/coller
    562564{
    563   printf("PIWdgX::SelectionLost()  Ne fait rien !(Wdg= %lx - %lx) \n",
    564         (unsigned long)this, (unsigned long)curselwdg);
     565return;
    565566}
    566567
     
    569570{
    570571// Pour demander le contenu du buffer de copier/coller
     572#ifdef DEBUG_PIWdgX
    571573printf("PIWdgX::RequestSelection(%d) (Wdg= %lx - %lx) \n", typ, 
    572574        (unsigned long)this, (unsigned long)curselwdg);
     575#endif
    573576reqseltype = (typ != 0) ? typ : PICP_string;
    574577XtGetSelectionValue(XtWdg(), XA_PRIMARY, XA_STRING, forXt_SelectionValue,
     
    585588// Renvoie le pointeur de cette zone, sa taille et son typ
    586589{
    587 rs = new char[80];
     590rs = new char[128];
    588591sprintf(rs, "Test-of-PIWdgX::ProvideSelection(%d)- %lx", typ,(long)rs);
    589592len = strlen(rs);
     
    594597void PIWdgX::SelectionTransferEnd()
    595598{
    596 printf("PIWdgX::SelectionTransferEnd() %lx \n", (long)rs);
    597599delete[] rs;
    598600}
     
    605607// Le typ de donnees fourni ainsi que les donnees et leur taille
    606608// sont en argument
     609#ifdef DEBUG_PIWdgX
    607610char* mbuff = new char[l+1];
    608611strncpy(mbuff, (char *)buff, l);
     
    610613printf("PIWdgX::PasteSelection(%d, %lx, %d) [%s] \n", typ, (long)buff, l, mbuff);
    611614delete[] mbuff;
    612 return;
    613 }
     615#endif
     616return;
     617}
Note: See TracChangeset for help on using the changeset viewer.