fmt.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  syl
union  ufloat
union  Uint

Defines

#define RET1   1
#define REVERT   2
#define GOTO   3
#define X   4
#define SLASH   5
#define STACK   6
#define I   7
#define ED   8
#define NED   9
#define IM   10
#define APOS   11
#define H   12
#define TL   13
#define TR   14
#define T   15
#define COLON   16
#define S   17
#define SP   18
#define SS   19
#define P   20
#define BN   21
#define BZ   22
#define F   23
#define E   24
#define EE   25
#define D   26
#define G   27
#define GE   28
#define L   29
#define A   30
#define AW   31
#define O   32
#define NONL   33
#define OM   34
#define Z   35
#define ZM   36
#define Cextern   extern
#define GET(x)   if((x=(*f__getn)())<0) return(x)
#define VAL(x)   (x!='\n'?x:' ')
#define PUT(x)   (*f__putn)(x)
#define longint   long

Functions

void fmt_bg (void)
int pars_f (char *)
int rd_ed (struct syl *, char *, ftnlen)
int rd_ned (struct syl *)
int signbit_f2c (double *)
int w_ed (struct syl *, char *, ftnlen)
int w_ned (struct syl *)
int wrt_E (ufloat *, int, int, int, ftnlen)
int wrt_F (ufloat *, int, int, ftnlen)
int wrt_L (Uint *, int, ftnlen)
Cextern char * f__icvt (longint, int *, int *, int)

Variables

int f__pc
int f__parenlvl
int f__revloc
int(* f__doed )(struct syl *, char *, ftnlen)
int(*)(*) f__doned (struct syl *)
int(*) f__dorevert (void)
flag f__cblank
flag f__cplus
flag f__workdone
flag f__nonl
char * f__fmtbuf
int f__scale


Define Documentation

#define A   30

Definition at line 35 of file fmt.h.

Referenced by C2F(), cc_test(), dgemm(), e_d(), example1(), intdgeesx(), intdsyev(), intihm(), intzgeesx(), LinearScaling2Colormap(), Real3::main(), Real1::main(), disp::main(), matmul(), mexFunction(), my_job(), out_call(), premier_exemple(), putentries(), rd_ed(), sci_xgetech(), type_f(), and w_ed().

#define APOS   11

Definition at line 16 of file fmt.h.

Referenced by ne_d(), rd_ned(), type_f(), and w_ned().

#define AW   31

Definition at line 36 of file fmt.h.

Referenced by e_d(), rd_ed(), type_f(), and w_ed().

#define BN   21

Definition at line 26 of file fmt.h.

Referenced by do_fio(), and ne_d().

#define BZ   22

Definition at line 27 of file fmt.h.

Referenced by do_fio(), and ne_d().

#define Cextern   extern

Definition at line 69 of file fmt.h.

#define COLON   16

Definition at line 21 of file fmt.h.

Referenced by do_fio(), and ne_d().

#define D   26

Definition at line 31 of file fmt.h.

Referenced by C2F(), e_d(), getval(), Strings1::main(), Real3::main(), Real1::main(), Exemple5::main(), rd_ed(), type_f(), and w_ed().

#define E   24

Definition at line 29 of file fmt.h.

Referenced by e_d(), getval(), Real3::main(), Real1::main(), rd_ed(), type_f(), w_ed(), and wr_common_decls().

#define ED   8

Definition at line 13 of file fmt.h.

Referenced by do_fio(), and type_f().

#define EE   25

Definition at line 30 of file fmt.h.

Referenced by e_d(), rd_ed(), type_f(), and w_ed().

#define F   23

Definition at line 28 of file fmt.h.

Referenced by contourI(), ContourTrace(), e_d(), free(), GetDLLFilenameAtlas(), GetInfoCPUfromLine(), Real2::main(), Test::main(), malloc(), rd_ed(), sci_xgetech(), spf(), type_f(), and w_ed().

#define G   27

Definition at line 32 of file fmt.h.

Referenced by C2F(), Callback_BACKGROUNDCOLOR(), Callback_TEXTCOLOR(), e_d(), FileInitFromScreenGif(), Real2::main(), rd_ed(), ReadRegistryTxt(), type_f(), and w_ed().

#define GE   28

Definition at line 33 of file fmt.h.

Referenced by e_d(), rd_ed(), type_f(), and w_ed().

#define GET ( x   )     if((x=(*f__getn)())<0) return(x)

Definition at line 88 of file fmt.h.

Referenced by rd_A(), rd_AW(), rd_F(), rd_I(), rd_L(), and rd_Z().

#define GOTO   3

Definition at line 8 of file fmt.h.

Referenced by do_fio(), f_list(), and type_f().

#define H   12

Definition at line 17 of file fmt.h.

Referenced by cre_hmat(), create_index_vector(), get_hmat(), get_mat_as_hmat(), get_rhs_real_hmat(), intehm(), Jdoit(), Real2::main(), MultModM(), ne_d(), rd_ned(), reshape_hmat(), type_f(), and w_ned().

#define I   7

Definition at line 12 of file fmt.h.

Referenced by AllocateBlockOfAllocationList(), CountMarkowitz(), csparsef(), doinclude(), e_d(), EnlargeMatrix(), GetSigD(), GetSigG(), MakeXImage(), MarkowitzProducts(), r8fix(), rd_ed(), SearchForSingleton(), spClear(), spCreate(), spLuget(), type_f(), and w_ed().

#define IM   10

Definition at line 15 of file fmt.h.

Referenced by e_d(), rd_ed(), type_f(), and w_ed().

#define L   29

Definition at line 34 of file fmt.h.

Referenced by __PARAMS(), argkludge(), asciitocode(), Axes3dStrings2(), axesplot(), AxesStrings(), axis_3ddraw(), axis_draw(), axis_draw2(), basout(), block_draw_rect_1(), block_draw_rect_2(), block_draw_rect_3(), boundingbox_1(), box3d(), C2F(), callXstringL(), ccheck(), champg(), check_win(), CheckDisplay(), checkXAxes2dTics(), checkYAxes2dTics(), ChooseDlgProc(), ChooseScilabDlgProc(), clipPolyLine(), cmatbptr(), cmatcptr(), cmatptr(), cmatsptr(), comlen(), computeArrowColor(), computeSuitableFont(), ConfigurePrinterDialogBox(), consnegop(), ConstructFigure(), contourI(), ContourTrace(), ConvertSelection(), Convex_Box(), coord_by_periodicity(), CopyPrint(), creadbmat(), creadchain(), creadchains(), creadcmat(), creadmat(), CreateEqualTList(), CreateFuncallTList(), CreateOperationTList(), createptr(), createstkptr(), curwin(), cwritebmat(), cwritechain(), cwritecmat(), cwritemat(), dbox(), DDEExecute(), decompInf(), decompSup(), delete_sgwin_entities(), displaynumbers_1(), do_p1_label(), drawArcEntity(), drawarcsXfig_old(), drawarrows_1(), drawarrowsPos(), DrawAxesBackground(), drawAxesEntity(), DrawAxis(), drawFecEntity(), drawFigureEntity(), drawGrayplotEntity(), drawLegendEntity(), DrawMark_Asterisk(), DrawMark_Cross(), DrawMark_FullDiamond(), DrawMark_FullDot(), DrawMark_FullPentagram(), DrawMark_FullSquare(), DrawMark_FullTriangleDown(), DrawMark_FullTriangleLeft(), DrawMark_FullTriangleRight(), DrawMark_FullTriangleUp(), DrawMark_Plus(), DrawMarks3D(), DrawMerge3d(), DrawNewMarks(), drawpolyline_1(), drawPolylineEntity(), drawpolylines_1(), drawpolymark(), drawpolymark_1(), drawPolyMarks(), drawRectangleEntity(), drawrectanglesPos(), drawrectanglesXfig(), drawsegments_1(), drawsegmentsPos(), drawSegsEntity(), drawStringInCell(), drawSubWinEntity(), drawSurfaceEntity(), drawTextEntity(), DrawXGrid(), DrawXSubTics(), DrawXTics(), DrawYGrid(), DrawYSubTics(), DrawYTics(), e_d(), equal_scistring_and_string(), errmsg(), ExportStyleDlgProc(), ExposeChooseWindow(), f_open(), fac3dn(), fakecrebmat(), fakecremat(), fillarcsPos(), fillarcsXfig_old(), fillpolyline_1(), fillpolylines_1(), fillpolylinesPos(), fillpolylinesXfig(), fold(), frame_clip_off(), frame_clip_on(), ftell64_(), ftell_(), get_cwindow_dims(), get_figure_size_property(), get_window_scale(), getcd(), GetCurrentFigureWindows(), GetGC(), getlengthchain(), getonepoly(), getpoly(), getrhssys(), GetScalarDouble(), GetScalarInt(), getStringBbox(), getStringsPositions(), getStringsRectSized(), getTicksLabelBox(), GetVal(), GraySquare1_base(), GraySquare1_NGreverse(), GraySquare_base(), GraySquareDirect(), GraySquareScaled(), GSciString(), I3dRotation(), icheck(), InsertFileNamed(), insmat(), intdsyev(), intopenxls(), intzgeesx(), lasterror(), lbit_bits(), Lcheck(), Legends(), Load(), look(), make_one_const(), MChoicePage(), MenuButtonProc(), MenuSelect(), mexCallSCI(), mexPrintf(), MissileGCget(), MissileGCset(), mkexpr(), mvfromto(), mxCreateCharMatrixFromStrings(), mxCreateData(), mxcreatefull(), mxCreateNumericMatrix(), mxcreatestring(), mxCreateString(), mxGetEps(), mxGetInf(), mxgetstring(), mxGetString(), newfec(), Objfec(), Objplot2d(), Objstring(), ON_ABOUT_WM_DESTROY(), ON_FILESASSOCIATIONBOX_WM_CLOSE(), ON_WND_GRAPH_WM_CLOSE(), ON_WND_PARENTGRAPH_WM_KILLFOCUS(), out_call(), p1comp_goto(), pad_common(), PaintTriangle(), parse(), plot(), plot3dn(), pmatj(), put_one_arg(), putlhsvar(), qbit_bits(), rd_ed(), Redisplay(), ResetFigureToDefaultValues(), run(), s_cat(), Sci_Axis(), sci_champ_G(), Sci_dlopen(), sci_driver(), sci_set(), sci_seteventhandler(), sci_show_window(), sci_xaxis(), sci_xchange(), sci_xclea(), sci_xclear(), sci_xclick(), sci_xdel(), sci_xend(), sci_xget(), sci_xgetech(), sci_xgetmouse(), sci_xinit(), sci_xlfont(), sci_xset(), sci_xsetech(), sci_xstringl(), SciAxisNew(), sciChamp2DRealToPixel(), sciClip(), scicosclip(), sciDrawInsideSegments(), SciDrawLines(), sciDrawOutsideSegment(), scig_2dzoom(), scig_3drot(), scig_erase(), scig_expose(), scig_loadsg(), scig_raise(), scig_replay(), scig_replay_hdc(), scig_resize(), scig_sel(), scig_toPs(), scig_unzoom(), scigerase(), sciGetCurrentScilabXgc(), sciGetScreenPosition(), sciInitDim(), sciInitMdlBackground(), sciInitMdlForeground(), sciInitResize(), sciInitScreenPosition(), sciInitUsedWindow(), sciInitXorMode(), sciIsExistingFigure(), scilab(), scilab_shade(), scilabgcgetGif(), scilabgcgetPos(), scilabgcgetXfig(), scilabgcsetGif(), scilabgcsetPos(), scilabgcsetXfig(), sciprint(), sciprint2(), sciprint_l(), sciprint_nd(), sciRedrawF(), sciSetColormap(), sciSetDefaultValues(), sciSetName(), Scisncr(), Scistring(), sciSwitchWindow(), sciUnClip(), sciwin(), SendCTRLandAKey(), SendGraphMacro(), SendScilab(), set_axes_size_property(), set_block_win(), set_figure_size_property(), set_scale(), set_slider_color(), set_window_scale(), SetEch3d1(), setthicknessXfig(), slider(), spf(), stcreate(), TDAxis(), TDdrawaxis(), test_click(), test_plot(), triedre(), type_f(), unzoom(), updateScale3d(), VTInitialize(), w_ed(), wavstopwrite(), wr_struct(), write_ioblocks(), Write_Scilab_Window(), XawVendorShellClassPartInit(), xclick_1(), xclick_2(), xclick_any_1(), XDrawAxisLine(), xgetmouse2(), xgetmouse_1(), xset_1(), xstringb_1(), YDrawAxisLine(), years_to_days(), zoom_get_rectangle(), and zoom_rect2().

#define longint   long

Definition at line 95 of file fmt.h.

Referenced by l_write(), pow_qq(), qbit_bits(), qbit_cshift(), rd_I(), wrt_I(), and wrt_IM().

#define NED   9

Definition at line 14 of file fmt.h.

Referenced by do_fio(), and type_f().

#define NONL   33

Definition at line 38 of file fmt.h.

Referenced by do_fio(), and ne_d().

#define O   32

Definition at line 37 of file fmt.h.

Referenced by e_d(), rd_ed(), type_f(), and w_ed().

#define OM   34

Definition at line 39 of file fmt.h.

Referenced by e_d(), rd_ed(), type_f(), and w_ed().

#define P   20

Definition at line 25 of file fmt.h.

Referenced by aawalk(), afwalk(), create_index_vector(), do_fio(), intehm(), luget1(), ne_d(), readline_win(), XmuAreaAnd(), and XmuAreaOrXor().

#define PUT ( x   )     (*f__putn)(x)

Definition at line 90 of file fmt.h.

Referenced by lwrt_A(), lwrt_C(), lwrt_I(), nl_donewrec(), wrt_E(), wrt_F(), and x_wsne().

#define RET1   1

Definition at line 6 of file fmt.h.

Referenced by do_fio(), f_s(), and type_f().

#define REVERT   2

Definition at line 7 of file fmt.h.

Referenced by do_fio(), f_list(), and type_f().

#define S   17

Definition at line 22 of file fmt.h.

Referenced by cre_sparse_from_ptr_i(), do_fio(), GetDLLFilenameAtlas(), GetInfoCPUfromLine(), ne_d(), r8fix(), sci_xlfont(), and sci_xsort().

#define SLASH   5

Definition at line 10 of file fmt.h.

Referenced by getrelativefilename(), ne_d(), rd_ned(), type_f(), and w_ned().

#define SP   18

Definition at line 23 of file fmt.h.

Referenced by do_fio(), and ne_d().

#define SS   19

Definition at line 24 of file fmt.h.

Referenced by do_fio(), and ne_d().

#define STACK   6

Definition at line 11 of file fmt.h.

Referenced by do_fio(), e_d(), i_tem(), and type_f().

#define T   15

Definition at line 20 of file fmt.h.

Referenced by ne_d(), rd_ned(), type_f(), and w_ned().

#define TL   13

Definition at line 18 of file fmt.h.

Referenced by ne_d(), rd_ned(), type_f(), and w_ned().

#define TR   14

Definition at line 19 of file fmt.h.

Referenced by ne_d(), rd_ned(), type_f(), and w_ned().

#define VAL ( x   )     (x!='\n'?x:' ')

Definition at line 89 of file fmt.h.

Referenced by rd_A(), and rd_AW().

#define X   4

Definition at line 9 of file fmt.h.

Referenced by C2F(), ClearLinesScreenConsole(), DrawMerge3d(), md5_process(), ne_d(), rd_ned(), sp(), type_f(), w_ned(), and xscimore().

#define Z   35

Definition at line 40 of file fmt.h.

Referenced by C2F(), DrawMerge3d(), e_d(), rd_ed(), spf(), type_f(), w_ed(), XmuAreaAnd(), XmuAreaCopy(), XmuAreaOrXor(), XmuScanlineAnd(), XmuScanlineCopy(), XmuScanlineEqu(), XmuScanlineOr(), and XmuScanlineXor().

#define ZM   36

Definition at line 41 of file fmt.h.

Referenced by e_d(), rd_ed(), type_f(), and w_ed().


Function Documentation

Cextern char* f__icvt ( longint  ,
int ,
int ,
int   
)

Definition at line 19 of file fmtlib.c.

References buf, i, MAXINTLENGTH, and ulongint.

Referenced by lwrt_I(), wrt_I(), and wrt_IM().

00021 {
00022         static char buf[MAXINTLENGTH+1];
00023         register int i;
00024         ulongint uvalue;
00025 
00026         if(value > 0) {
00027                 uvalue = value;
00028                 *sign = 0;
00029                 }
00030         else if (value < 0) {
00031                 uvalue = -value;
00032                 *sign = 1;
00033                 }
00034         else {
00035                 *sign = 0;
00036                 *ndigit = 1;
00037                 buf[MAXINTLENGTH-1] = '0';
00038                 return &buf[MAXINTLENGTH-1];
00039                 }
00040         i = MAXINTLENGTH;
00041         do {
00042                 buf[--i] = (char) ((uvalue%base) + '0');
00043                 uvalue /= base;
00044                 }
00045                 while(uvalue > 0);
00046         *ndigit = MAXINTLENGTH - i;
00047         return &buf[i];
00048         }

Here is the caller graph for this function:

void fmt_bg ( void   ) 

int pars_f ( char *   ) 

Definition at line 368 of file fmt.c.

References f_s(), and NULL.

Referenced by c_si(), s_rdfe(), s_rsfe(), s_wdfe(), and s_wsfe().

00370 {
00371         f__parenlvl=f__revloc=f__pc=0;
00372         if(f_s(s,0) == NULL)
00373         {
00374                 return(-1);
00375         }
00376         return(0);
00377 }

Here is the call graph for this function:

Here is the caller graph for this function:

int rd_ed ( struct syl ,
char *  ,
ftnlen   
)

Referenced by s_rdfe(), s_rsfe(), and s_rsfi().

Here is the caller graph for this function:

int rd_ned ( struct syl  ) 

Definition at line 526 of file rdfmt.c.

References APOS, f__cursor, f__donewrec, f__fmtbuf, f__recpos, H, p, rd_H(), rd_POS(), sig_die(), SLASH, T, TL, TR, and X.

Referenced by s_rdfe(), s_rsfe(), and s_rsfi().

00528 {
00529         switch(p->op)
00530         {
00531         default: fprintf(stderr,"rd_ned, unexpected code: %d\n", p->op);
00532                 sig_die(f__fmtbuf, 1);
00533         case APOS:
00534                 return(rd_POS(p->p2.s));
00535         case H: return(rd_H(p->p1,p->p2.s));
00536         case SLASH: return((*f__donewrec)());
00537         case TR:
00538         case X: f__cursor += p->p1;
00539                 return(1);
00540         case T: f__cursor=p->p1-f__recpos - 1;
00541                 return(1);
00542         case TL: f__cursor -= p->p1;
00543                 if(f__cursor < -f__recpos)      /* TL1000, 1X */
00544                         f__cursor = -f__recpos;
00545                 return(1);
00546         }
00547 }

Here is the call graph for this function:

Here is the caller graph for this function:

int signbit_f2c ( double *   ) 

Definition at line 11 of file signbit.c.

References Long.

Referenced by l_g(), wrt_E(), and wrt_F().

00013 {
00014 #ifdef IEEE_MC68k
00015         if (*(Long*)x & 0x80000000)
00016                 return 1;
00017 #else
00018 #ifdef IEEE_8087
00019         if (((Long*)x)[1] & 0x80000000)
00020                 return 1;
00021 #endif /*IEEE_8087*/
00022 #endif /*IEEE_MC68k*/
00023         return 0;
00024         }

Here is the caller graph for this function:

int w_ed ( struct syl ,
char *  ,
ftnlen   
)

Referenced by s_wdfe(), s_wsfe(), and s_wsfi().

Here is the caller graph for this function:

int w_ned ( struct syl  ) 

Definition at line 350 of file wrtfmt.c.

References APOS, f__cursor, f__donewrec, f__fmtbuf, f__recpos, H, p, sig_die(), SLASH, T, TL, TR, wrt_AP(), wrt_H(), and X.

Referenced by s_wdfe(), s_wsfe(), and s_wsfi().

00352 {
00353         switch(p->op)
00354         {
00355         default: fprintf(stderr,"w_ned, unexpected code: %d\n", p->op);
00356                 sig_die(f__fmtbuf, 1);
00357         case SLASH:
00358                 return((*f__donewrec)());
00359         case T: f__cursor = p->p1-f__recpos - 1;
00360                 return(1);
00361         case TL: f__cursor -= p->p1;
00362                 if(f__cursor < -f__recpos)      /* TL1000, 1X */
00363                         f__cursor = -f__recpos;
00364                 return(1);
00365         case TR:
00366         case X:
00367                 f__cursor += p->p1;
00368                 return(1);
00369         case APOS:
00370                 return(wrt_AP(p->p2.s));
00371         case H:
00372                 return(wrt_H(p->p1,p->p2.s));
00373         }
00374 }

Here is the call graph for this function:

Here is the caller graph for this function:

int wrt_E ( ufloat ,
int  ,
int  ,
int  ,
ftnlen   
)

Definition at line 25 of file wref.c.

References buf, CRAY, EXPMAXDIGS, f__cplus, f__scale, FMAX, i, int, p, PUT, s, sign, and signbit_f2c().

Referenced by w_ed(), and wrt_G().

00027 {
00028         char buf[FMAX+EXPMAXDIGS+4], *s, *se;
00029         int d1, delta, e1, i, sign, signspace;
00030         double dd;
00031 #ifdef WANT_LEAD_0
00032         int insert0 = 0;
00033 #endif
00034 #ifndef VAX
00035         int e0 = e;
00036 #endif
00037 
00038         if(e <= 0)
00039                 e = 2;
00040         if(f__scale) {
00041                 if(f__scale >= d + 2 || f__scale <= -d)
00042                         goto nogood;
00043                 }
00044         if(f__scale <= 0)
00045                 --d;
00046         if (len == sizeof(real))
00047                 dd = p->pf;
00048         else
00049                 dd = p->pd;
00050         if (dd < 0.) {
00051                 signspace = sign = 1;
00052                 dd = -dd;
00053                 }
00054         else {
00055                 sign = 0;
00056                 signspace = (int)f__cplus;
00057 #ifndef VAX
00058                 if (!dd) {
00059 #ifdef SIGNED_ZEROS
00060                         if (signbit_f2c(&dd))
00061                                 signspace = sign = 1;
00062 #endif
00063                         dd = 0.;        /* avoid -0 */
00064                         }
00065 #endif
00066                 }
00067         delta = w - (2 /* for the . and the d adjustment above */
00068                         + 2 /* for the E+ */ + signspace + d + e);
00069 #ifdef WANT_LEAD_0
00070         if (f__scale <= 0 && delta > 0) {
00071                 delta--;
00072                 insert0 = 1;
00073                 }
00074         else
00075 #endif
00076         if (delta < 0) {
00077 nogood:
00078                 while(--w >= 0)
00079                         PUT('*');
00080                 return(0);
00081                 }
00082         if (f__scale < 0)
00083                 d += f__scale;
00084         if (d > FMAX) {
00085                 d1 = d - FMAX;
00086                 d = FMAX;
00087                 }
00088         else
00089                 d1 = 0;
00090         sprintf(buf,"%#.*E", d, dd);
00091 #ifndef VAX
00092         /* check for NaN, Infinity */
00093         if (!isdigit(buf[0])) {
00094                 switch(buf[0]) {
00095                         case 'n':
00096                         case 'N':
00097                                 signspace = 0;  /* no sign for NaNs */
00098                         }
00099                 delta = w - strlen(buf) - signspace;
00100                 if (delta < 0)
00101                         goto nogood;
00102                 while(--delta >= 0)
00103                         PUT(' ');
00104                 if (signspace)
00105                         PUT(sign ? '-' : '+');
00106                 for(s = buf; *s; s++)
00107                         PUT(*s);
00108                 return 0;
00109                 }
00110 #endif
00111         se = buf + d + 3;
00112 #ifdef GOOD_SPRINTF_EXPONENT /* When possible, exponent has 2 digits. */
00113         if (f__scale != 1 && dd)
00114                 sprintf(se, "%+.2d", atoi(se) + 1 - f__scale);
00115 #else
00116         if (dd)
00117                 sprintf(se, "%+.2d", atoi(se) + 1 - f__scale);
00118         else
00119                 strcpy(se, "+00");
00120 #endif
00121         s = ++se;
00122         if (e < 2) {
00123                 if (*s != '0')
00124                         goto nogood;
00125                 }
00126 #ifndef VAX
00127         /* accommodate 3 significant digits in exponent */
00128         if (s[2]) {
00129 #ifdef Pedantic
00130                 if (!e0 && !s[3])
00131                         for(s -= 2, e1 = 2; s[0] = s[1]; s++);
00132 
00133         /* Pedantic gives the behavior that Fortran 77 specifies,       */
00134         /* i.e., requires that E be specified for exponent fields       */
00135         /* of more than 3 digits.  With Pedantic undefined, we get      */
00136         /* the behavior that Cray displays -- you get a bigger          */
00137         /* exponent field if it fits.   */
00138 #else
00139                 if (!e0) {
00140                         for(s -= 2, e1 = 2; s[0] = s[1]; s++)
00141 #ifdef CRAY
00142                                 delta--;
00143                         if ((delta += 4) < 0)
00144                                 goto nogood
00145 #endif
00146                                 ;
00147                         }
00148 #endif
00149                 else if (e0 >= 0)
00150                         goto shift;
00151                 else
00152                         e1 = e;
00153                 }
00154         else
00155  shift:
00156 #endif
00157                 for(s += 2, e1 = 2; *s; ++e1, ++s)
00158                         if (e1 >= e)
00159                                 goto nogood;
00160         while(--delta >= 0)
00161                 PUT(' ');
00162         if (signspace)
00163                 PUT(sign ? '-' : '+');
00164         s = buf;
00165         i = f__scale;
00166         if (f__scale <= 0) {
00167 #ifdef WANT_LEAD_0
00168                 if (insert0)
00169                         PUT('0');
00170 #endif
00171                 PUT('.');
00172                 for(; i < 0; ++i)
00173                         PUT('0');
00174                 PUT(*s);
00175                 s += 2;
00176                 }
00177         else if (f__scale > 1) {
00178                 PUT(*s);
00179                 s += 2;
00180                 while(--i > 0)
00181                         PUT(*s++);
00182                 PUT('.');
00183                 }
00184         if (d1) {
00185                 se -= 2;
00186                 while(s < se) PUT(*s++);
00187                 se += 2;
00188                 do PUT('0'); while(--d1 > 0);
00189                 }
00190         while(s < se)
00191                 PUT(*s++);
00192         if (e < 2)
00193                 PUT(s[1]);
00194         else {
00195                 while(++e1 <= e)
00196                         PUT('0');
00197                 while(*s)
00198                         PUT(*s++);
00199                 }
00200         return 0;
00201         }

Here is the call graph for this function:

Here is the caller graph for this function:

int wrt_F ( ufloat ,
int  ,
int  ,
ftnlen   
)

Definition at line 207 of file wref.c.

References b, buf, f__cplus, f__scale, MAXFRACDIGS, MAXINTDIGS, n, p, PUT, s, sign, signbit_f2c(), and x.

Referenced by w_ed(), and wrt_G().

00209 {
00210         int d1, sign, n;
00211         double x;
00212         char *b, buf[MAXINTDIGS+MAXFRACDIGS+4], *s;
00213 
00214         x= (len==sizeof(real)?p->pf:p->pd);
00215         if (d < MAXFRACDIGS)
00216                 d1 = 0;
00217         else {
00218                 d1 = d - MAXFRACDIGS;
00219                 d = MAXFRACDIGS;
00220                 }
00221         if (x < 0.)
00222                 { x = -x; sign = 1; }
00223         else {
00224                 sign = 0;
00225 #ifndef VAX
00226                 if (!x) {
00227 #ifdef SIGNED_ZEROS
00228                         if (signbit_f2c(&x))
00229                                 sign = 2;
00230 #endif
00231                         x = 0.;
00232                         }
00233 #endif
00234                 }
00235 
00236         if (n = f__scale)
00237                 if (n > 0)
00238                         do x *= 10.; while(--n > 0);
00239                 else
00240                         do x *= 0.1; while(++n < 0);
00241 
00242 #ifdef USE_STRLEN
00243         sprintf(b = buf, "%#.*f", d, x);
00244         n = strlen(b) + d1;
00245 #else
00246         n = sprintf(b = buf, "%#.*f", d, x) + d1;
00247 #endif
00248 
00249 #ifndef WANT_LEAD_0
00250         if (buf[0] == '0' && d)
00251                 { ++b; --n; }
00252 #endif
00253         if (sign == 1) {
00254                 /* check for all zeros */
00255                 for(s = b;;) {
00256                         while(*s == '0') s++;
00257                         switch(*s) {
00258                                 case '.':
00259                                         s++; continue;
00260                                 case 0:
00261                                         sign = 0;
00262                                 }
00263                         break;
00264                         }
00265                 }
00266         if (sign || f__cplus)
00267                 ++n;
00268         if (n > w) {
00269 #ifdef WANT_LEAD_0
00270                 if (buf[0] == '0' && --n == w)
00271                         ++b;
00272                 else
00273 #endif
00274                 {
00275                         while(--w >= 0)
00276                                 PUT('*');
00277                         return 0;
00278                         }
00279                 }
00280         for(w -= n; --w >= 0; )
00281                 PUT(' ');
00282         if (sign)
00283                 PUT('-');
00284         else if (f__cplus)
00285                 PUT('+');
00286         while(n = *b++)
00287                 PUT(n);
00288         while(--d1 >= 0)
00289                 PUT('0');
00290         return 0;
00291         }

Here is the call graph for this function:

Here is the caller graph for this function:

int wrt_L ( Uint ,
int  ,
ftnlen   
)

Definition at line 228 of file wrtfmt.c.

References f__putn, i, n, and x.

Referenced by lwrt_L(), and w_ed().

00230 {       int i;
00231         long x;
00232         if(sizeof(long)==sz) x=n->il;
00233         else if(sz == sizeof(char)) x = n->ic;
00234         else x=n->is;
00235         for(i=0;i<len-1;i++)
00236                 (*f__putn)(' ');
00237         if(x) (*f__putn)('T');
00238         else (*f__putn)('F');
00239         return(0);
00240 }

Here is the caller graph for this function:


Variable Documentation

flag f__cblank

Definition at line 26 of file err.c.

Referenced by c_si(), rd_F(), rd_I(), s_rsfe(), and s_wsfe().

flag f__cplus

Definition at line 26 of file err.c.

Referenced by c_si(), s_rsfe(), s_wsfe(), wrt_E(), wrt_F(), wrt_I(), and wrt_IM().

int(* f__doed)(struct syl *, char *, ftnlen)

Referenced by do_fio(), s_rdfe(), s_rsfe(), s_rsfi(), s_wdfe(), s_wsfe(), and s_wsfi().

int(*)(*) f__doned(struct syl *)

Definition at line 71 of file fmt.h.

int(*) f__dorevert(void)

Referenced by do_fio(), s_rdfe(), s_rsfe(), s_rsfi(), s_wdfe(), s_wsfe(), and s_wsfi().

char* f__fmtbuf

Definition at line 27 of file err.c.

flag f__nonl

Definition at line 380 of file fmt.c.

Referenced by s_wsfe(), and xw_end().

int f__parenlvl

Definition at line 24 of file fmt.c.

int f__pc

Definition at line 24 of file fmt.c.

int f__revloc

Definition at line 24 of file fmt.c.

int f__scale

Definition at line 46 of file err.c.

flag f__workdone

Definition at line 380 of file fmt.c.

Referenced by iw_rev(), and xw_rev().


Generated on Sun Mar 4 15:04:41 2007 for Scilab [trunk] by  doxygen 1.5.1