\hypertarget{store_8c}{}\doxysection{store.\+c File Reference}
\label{store_8c}\index{store.c@{store.c}}
{\ttfamily \#include \char`\"{}form3.\+h\char`\"{}}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{store_8c_a8713f593ce6aff17ff77d052ccb8aaf3}\label{store_8c_a8713f593ce6aff17ff77d052ccb8aaf3}} 
\#define {\bfseries SAVEREVISION}~0x02
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{store_8c_aa9de8f77ebb953234c10e0c92856c3b4}\label{store_8c_aa9de8f77ebb953234c10e0c92856c3b4}} 
WORD {\bfseries Open\+Temp} ()
\item 
\mbox{\Hypertarget{store_8c_a129e6eb612ced1667ce531c82f356847}\label{store_8c_a129e6eb612ced1667ce531c82f356847}} 
VOID {\bfseries Seek\+Scratch} (\mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$fi, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$pos)
\item 
\mbox{\Hypertarget{store_8c_a7a4527014761a6c7ef7ff1f32731fc94}\label{store_8c_a7a4527014761a6c7ef7ff1f32731fc94}} 
VOID {\bfseries Set\+End\+Scratch} (\mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$f, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$position)
\item 
\mbox{\Hypertarget{store_8c_a90d629d42d3dad900b993ba057766171}\label{store_8c_a90d629d42d3dad900b993ba057766171}} 
VOID {\bfseries Set\+End\+HScratch} (\mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$f, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$position)
\item 
\mbox{\Hypertarget{store_8c_aa1b9f394cdb6757645277a14a590ddd3}\label{store_8c_aa1b9f394cdb6757645277a14a590ddd3}} 
VOID {\bfseries Set\+Scratch} (\mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$f, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$position)
\item 
\mbox{\Hypertarget{store_8c_af00ef0d3722a45608104018fbe1e15ac}\label{store_8c_af00ef0d3722a45608104018fbe1e15ac}} 
WORD {\bfseries Revert\+Scratch} ()
\item 
\mbox{\Hypertarget{store_8c_a911581ca272a12effd76d3689bf79120}\label{store_8c_a911581ca272a12effd76d3689bf79120}} 
WORD {\bfseries Reset\+Scratch} ()
\item 
\mbox{\Hypertarget{store_8c_a1ec65962e12cae2009b50221186e2ea7}\label{store_8c_a1ec65962e12cae2009b50221186e2ea7}} 
int {\bfseries Read\+From\+Scratch} (\mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$fi, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$pos, UBYTE $\ast$buffer, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$length)
\item 
\mbox{\Hypertarget{store_8c_a32a44af0eb95da8815238e0d67d501ba}\label{store_8c_a32a44af0eb95da8815238e0d67d501ba}} 
int {\bfseries Add\+To\+Scratch} (\mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$fi, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$pos, UBYTE $\ast$buffer, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$length, int withflush)
\item 
\mbox{\Hypertarget{store_8c_a04b714a023b34c09ae957c1976b90e8a}\label{store_8c_a04b714a023b34c09ae957c1976b90e8a}} 
int {\bfseries Co\+Save} (UBYTE $\ast$inp)
\item 
\mbox{\Hypertarget{store_8c_ada27ad061840e958f8e7cdafcdedb204}\label{store_8c_ada27ad061840e958f8e7cdafcdedb204}} 
int {\bfseries Co\+Load} (UBYTE $\ast$inp)
\item 
\mbox{\Hypertarget{store_8c_a7f6bf9bb4ebd7b19213659e33d59d314}\label{store_8c_a7f6bf9bb4ebd7b19213659e33d59d314}} 
WORD {\bfseries Delete\+Store} (WORD par)
\item 
\mbox{\Hypertarget{store_8c_ae5734bb98b4201482d571b5c6b6d9c8a}\label{store_8c_ae5734bb98b4201482d571b5c6b6d9c8a}} 
WORD {\bfseries Put\+In\+Store} (\mbox{\hyperlink{structs_8h_a0e063a4bf5a96f55914489511ec32626}{INDEXENTRY}} $\ast$ind, WORD num)
\item 
\mbox{\Hypertarget{store_8c_aaa12d861517d70fc636e407b2094705e}\label{store_8c_aaa12d861517d70fc636e407b2094705e}} 
WORD {\bfseries Get\+Term} (PHEAD WORD $\ast$term)
\item 
\mbox{\Hypertarget{store_8c_a8202834e572f96ad427cb647fa5b3ae1}\label{store_8c_a8202834e572f96ad427cb647fa5b3ae1}} 
WORD {\bfseries Get\+One\+Term} (PHEAD WORD $\ast$term, \mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$fi, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$pos, int par)
\item 
\mbox{\Hypertarget{store_8c_af3778fbb201ebee45c5baef92e5b257a}\label{store_8c_af3778fbb201ebee45c5baef92e5b257a}} 
WORD {\bfseries Get\+More\+Terms} (WORD $\ast$term)
\item 
\mbox{\Hypertarget{store_8c_ad8ca7975c40a9878796a4830ed8ed788}\label{store_8c_ad8ca7975c40a9878796a4830ed8ed788}} 
WORD {\bfseries Get\+More\+From\+Mem} (WORD $\ast$term, WORD $\ast$$\ast$tpoin)
\item 
\mbox{\Hypertarget{store_8c_a2d026b48fe6247a4ddb343d6cffa1a5b}\label{store_8c_a2d026b48fe6247a4ddb343d6cffa1a5b}} 
WORD {\bfseries Get\+From\+Store} (WORD $\ast$to, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$position, \mbox{\hyperlink{structs_8h_a323639d869c15fed1226a3b508bbb1f1}{RENUMBER}} renumber, WORD $\ast$In\+Comp\+State, WORD nexpr)
\item 
\mbox{\Hypertarget{store_8c_abb3ba9caef660cdd7e7b97e2c08d4790}\label{store_8c_abb3ba9caef660cdd7e7b97e2c08d4790}} 
VOID {\bfseries Det\+Vars} (WORD $\ast$term, WORD par)
\item 
\mbox{\Hypertarget{store_8c_a758005dee720b5e7cb4efe36e53122c6}\label{store_8c_a758005dee720b5e7cb4efe36e53122c6}} 
WORD {\bfseries To\+Storage} (\mbox{\hyperlink{structExPrEsSiOn}{EXPRESSIONS}} e, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$length)
\item 
\mbox{\Hypertarget{store_8c_a2d9bc409af55b4153c3fbe035c823ade}\label{store_8c_a2d9bc409af55b4153c3fbe035c823ade}} 
\mbox{\hyperlink{structs_8h_a0e063a4bf5a96f55914489511ec32626}{INDEXENTRY}} $\ast$ {\bfseries Next\+File\+Index} (\mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$indexpos)
\item 
WORD \mbox{\hyperlink{store_8c_a2d8f52e9724831c1a6076ab6f07ec987}{Set\+File\+Index}} ()
\item 
\mbox{\Hypertarget{store_8c_a9439cbbf485b3c361f783cde22787261}\label{store_8c_a9439cbbf485b3c361f783cde22787261}} 
WORD {\bfseries Var\+Store} (UBYTE $\ast$s, WORD n, WORD name, WORD namesize)
\item 
WORD \mbox{\hyperlink{store_8c_a6926648e6f1143d25005476a6a8cbf7d}{Term\+Renumber}} (WORD $\ast$term, \mbox{\hyperlink{structs_8h_a323639d869c15fed1226a3b508bbb1f1}{RENUMBER}} renumber, WORD nexpr)
\item 
\mbox{\Hypertarget{store_8c_a84d0f78d7c8cb3f965f3f8ab0ab5ec2d}\label{store_8c_a84d0f78d7c8cb3f965f3f8ab0ab5ec2d}} 
WORD {\bfseries Findr\+Number} (WORD n, \mbox{\hyperlink{structs_8h_a4cb972cb2263f4384c3cbb05f569a649}{VARRENUM}} $\ast$v)
\item 
\mbox{\Hypertarget{store_8c_ad6174572c779d929cc81273b77ef798d}\label{store_8c_ad6174572c779d929cc81273b77ef798d}} 
\mbox{\hyperlink{structs_8h_a0e063a4bf5a96f55914489511ec32626}{INDEXENTRY}} $\ast$ {\bfseries Find\+In\+Index} (WORD expr, \mbox{\hyperlink{structFiLeDaTa}{FILEDATA}} $\ast$f, WORD par, WORD mode)
\item 
\mbox{\Hypertarget{store_8c_a6c11980267306636fd32b367aa397037}\label{store_8c_a6c11980267306636fd32b367aa397037}} 
\mbox{\hyperlink{structs_8h_a323639d869c15fed1226a3b508bbb1f1}{RENUMBER}} {\bfseries Get\+Table} (WORD expr, \mbox{\hyperlink{structPoSiTiOn}{POSITION}} $\ast$position, WORD mode)
\item 
\mbox{\Hypertarget{store_8c_a0cb2bef2cc8be60e5472c7b8568a0c74}\label{store_8c_a0cb2bef2cc8be60e5472c7b8568a0c74}} 
int {\bfseries Copy\+Expression} (\mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$from, \mbox{\hyperlink{structs_8h_a36b8571cff77310201b5cf441466ba83}{FILEHANDLE}} $\ast$to)
\item 
WORD \mbox{\hyperlink{store_8c_a09c4cf89a4c0043bf93c843d8b763362}{Write\+Store\+Header}} (WORD handle)
\item 
WORD \mbox{\hyperlink{store_8c_aac6236279515281831cc92a4b17aa368}{Read\+Save\+Header}} ()
\item 
WORD \mbox{\hyperlink{store_8c_aca5317024b51e88fdb06ecacacb9d08c}{Read\+Save\+Index}} (\mbox{\hyperlink{structs_8h_a8299a6a586c7ce6289556115dd3b4a20}{FILEINDEX}} $\ast$fileind)
\item 
WORD \mbox{\hyperlink{store_8c_a4db0fcca96a80ea96c32e458ced74099}{Read\+Save\+Variables}} (UBYTE $\ast$buffer, UBYTE $\ast$top, LONG $\ast$size, LONG $\ast$outsize, \mbox{\hyperlink{structs_8h_a0e063a4bf5a96f55914489511ec32626}{INDEXENTRY}} $\ast$ind, LONG $\ast$stage)
\item 
UBYTE $\ast$ \mbox{\hyperlink{store_8c_aaa6ba5aa51bd1e56096d15102b4195ce}{Read\+Save\+Term32}} (UBYTE $\ast$bin, UBYTE $\ast$binend, UBYTE $\ast$$\ast$bout, UBYTE $\ast$boutend, UBYTE $\ast$top, int terminbuf)
\item 
WORD \mbox{\hyperlink{store_8c_aa679a806769abfb74d0be67c39720ae8}{Read\+Save\+Expression}} (UBYTE $\ast$buffer, UBYTE $\ast$top, LONG $\ast$size, LONG $\ast$outsize)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Contains all functions that deal with store-\/files and the system independent save-\/files. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{store_8c_a2d8f52e9724831c1a6076ab6f07ec987}\label{store_8c_a2d8f52e9724831c1a6076ab6f07ec987}} 
\index{store.c@{store.c}!SetFileIndex@{SetFileIndex}}
\index{SetFileIndex@{SetFileIndex}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{SetFileIndex()}{SetFileIndex()}}
{\footnotesize\ttfamily WORD Set\+File\+Index (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Reads the next file index and puts it into AR.\+Store\+Data.\+Index. TODO

\begin{DoxyReturn}{Returns}
= 0 everything okay, != 0 an error occurred 
\end{DoxyReturn}


Definition at line 2300 of file store.\+c.

\mbox{\Hypertarget{store_8c_a6926648e6f1143d25005476a6a8cbf7d}\label{store_8c_a6926648e6f1143d25005476a6a8cbf7d}} 
\index{store.c@{store.c}!TermRenumber@{TermRenumber}}
\index{TermRenumber@{TermRenumber}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{TermRenumber()}{TermRenumber()}}
{\footnotesize\ttfamily WORD Term\+Renumber (\begin{DoxyParamCaption}\item[{WORD $\ast$}]{term,  }\item[{\mbox{\hyperlink{structs_8h_a323639d869c15fed1226a3b508bbb1f1}{RENUMBER}}}]{renumber,  }\item[{WORD}]{nexpr }\end{DoxyParamCaption})}

!! WORD $\ast$memterm=term; static LONG ctrap=0; !!!

!! ctrap++; !!!

Definition at line 2407 of file store.\+c.

\mbox{\Hypertarget{store_8c_a09c4cf89a4c0043bf93c843d8b763362}\label{store_8c_a09c4cf89a4c0043bf93c843d8b763362}} 
\index{store.c@{store.c}!WriteStoreHeader@{WriteStoreHeader}}
\index{WriteStoreHeader@{WriteStoreHeader}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{WriteStoreHeader()}{WriteStoreHeader()}}
{\footnotesize\ttfamily WORD Write\+Store\+Header (\begin{DoxyParamCaption}\item[{WORD}]{handle }\end{DoxyParamCaption})}

Writes header with information about system architecture and FORM revision to an open store file.

Called by \mbox{\hyperlink{store_8c_a2d8f52e9724831c1a6076ab6f07ec987}{Set\+File\+Index()}}.


\begin{DoxyParams}{Parameters}
{\em handle} & specifies open file to which header will be written \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
= 0 everything okay, != 0 an error occurred 
\end{DoxyReturn}


Definition at line 3926 of file store.\+c.

\mbox{\Hypertarget{store_8c_aac6236279515281831cc92a4b17aa368}\label{store_8c_aac6236279515281831cc92a4b17aa368}} 
\index{store.c@{store.c}!ReadSaveHeader@{ReadSaveHeader}}
\index{ReadSaveHeader@{ReadSaveHeader}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{ReadSaveHeader()}{ReadSaveHeader()}}
{\footnotesize\ttfamily WORD Read\+Save\+Header (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Reads the header in the save file and sets function pointers and flags according to the information found there. Must be called before any other Read\+Save... function.

Currently works only for the exchange between 32bit and 64bit machines (WORD size must be 2 or 4 bytes)!

It is called by Co\+Load().

\begin{DoxyReturn}{Returns}
= 0 everything okay, != 0 an error occurred 
\end{DoxyReturn}


Definition at line 4019 of file store.\+c.

\mbox{\Hypertarget{store_8c_aca5317024b51e88fdb06ecacacb9d08c}\label{store_8c_aca5317024b51e88fdb06ecacacb9d08c}} 
\index{store.c@{store.c}!ReadSaveIndex@{ReadSaveIndex}}
\index{ReadSaveIndex@{ReadSaveIndex}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{ReadSaveIndex()}{ReadSaveIndex()}}
{\footnotesize\ttfamily WORD Read\+Save\+Index (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structs_8h_a8299a6a586c7ce6289556115dd3b4a20}{FILEINDEX}} $\ast$}]{fileind }\end{DoxyParamCaption})}

Reads a FILEINDEX from the open save file specified by AO.\+Save\+Data.\+Handle. Translations for adjusting endianness and data sizes are done if necessary.

Depends on the assumption that sizeof(\+FILEINDEX) is the same everywhere. If FILEINDEX or INDEXENTRY change, then this functions has to be adjusted.

Called by Co\+Load() and Find\+In\+Index().


\begin{DoxyParams}{Parameters}
{\em fileind} & contains the read FILEINDEX after succesful return. must point to allocated, big enough memory. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
= 0 everything okay, != 0 an error occurred 
\end{DoxyReturn}


Definition at line 4137 of file store.\+c.

\mbox{\Hypertarget{store_8c_a4db0fcca96a80ea96c32e458ced74099}\label{store_8c_a4db0fcca96a80ea96c32e458ced74099}} 
\index{store.c@{store.c}!ReadSaveVariables@{ReadSaveVariables}}
\index{ReadSaveVariables@{ReadSaveVariables}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{ReadSaveVariables()}{ReadSaveVariables()}}
{\footnotesize\ttfamily WORD Read\+Save\+Variables (\begin{DoxyParamCaption}\item[{UBYTE $\ast$}]{buffer,  }\item[{UBYTE $\ast$}]{top,  }\item[{LONG $\ast$}]{size,  }\item[{LONG $\ast$}]{outsize,  }\item[{\mbox{\hyperlink{structs_8h_a0e063a4bf5a96f55914489511ec32626}{INDEXENTRY}} $\ast$}]{ind,  }\item[{LONG $\ast$}]{stage }\end{DoxyParamCaption})}

Reads the variables from the open file specified by AO.\+Save\+Data.\+Handle. It reads the $\ast$size bytes and writes them to the $\ast$buffer. It is called by Put\+In\+Store().

If translation is necessary, the data might shrink or grow in size, then {\itshape $\ast$size} is adjusted so that the reading and writing fits into the memory from the buffer to the top. The actual number of read bytes is returned in {\itshape $\ast$size}, the number of written bytes is returned in {\itshape $\ast$outsize}.

If the $\ast$size is smaller than the actual size of the variables, this function will be called several times and needs to remember the current position in the variable structure. The parameter {\itshape stage} does this job. When \mbox{\hyperlink{store_8c_a4db0fcca96a80ea96c32e458ced74099}{Read\+Save\+Variables()}} is called for the first time, this parameter should have the value -\/1.

The parameter {\itshape ind} is used to get the number of variables.


\begin{DoxyParams}{Parameters}
{\em buffer} & read variables are written into this allocated memory \\
\hline
{\em top} & upper end of allocated memory \\
\hline
{\em size} & number of bytes to read. might return a smaller number of read bytes if translation was necessary \\
\hline
{\em outsize} & if translation has be done, outsize contains the number of written bytes \\
\hline
{\em ind} & pointer of INDEXENTRY for the current expression. read-\/only \\
\hline
{\em stage} & should be -\/1 for the first call, will be increased by Read\+Save\+Variables to memorize the position in the variable structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
= 0 everything okay, != 0 an error occurred 
\end{DoxyReturn}


Definition at line 4323 of file store.\+c.

\mbox{\Hypertarget{store_8c_aaa6ba5aa51bd1e56096d15102b4195ce}\label{store_8c_aaa6ba5aa51bd1e56096d15102b4195ce}} 
\index{store.c@{store.c}!ReadSaveTerm32@{ReadSaveTerm32}}
\index{ReadSaveTerm32@{ReadSaveTerm32}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{ReadSaveTerm32()}{ReadSaveTerm32()}}
{\footnotesize\ttfamily UBYTE$\ast$ Read\+Save\+Term32 (\begin{DoxyParamCaption}\item[{UBYTE $\ast$}]{bin,  }\item[{UBYTE $\ast$}]{binend,  }\item[{UBYTE $\ast$$\ast$}]{bout,  }\item[{UBYTE $\ast$}]{boutend,  }\item[{UBYTE $\ast$}]{top,  }\item[{int}]{terminbuf }\end{DoxyParamCaption})}

Reads a single term from the given buffer at {\itshape bin} and write the translated term back to this buffer at {\itshape bout}.

\mbox{\hyperlink{store_8c_aaa6ba5aa51bd1e56096d15102b4195ce}{Read\+Save\+Term32()}} is currently the only instantiation of a Read\+Save\+Term-\/function. It only deals with data that already has the correct endianness and that is resized to 32bit words but without being renumbered or translated in any other way. It uses the compress buffer AR.\+Compress\+Buffer.

The function is reentrant in order to cope with nested function arguments. It is called by \mbox{\hyperlink{store_8c_aa679a806769abfb74d0be67c39720ae8}{Read\+Save\+Expression()}} and itself.

The {\itshape return} {\itshape value} indicates the position in the input buffer up to which the data has already been successfully processed. The parameter {\itshape bout} returns the corresponding position in the output buffer.


\begin{DoxyParams}{Parameters}
{\em bin} & start of the input buffer \\
\hline
{\em binend} & end of the input buffer \\
\hline
{\em bout} & as input points to the beginning of the output buffer, as output points behind the already translated data in the output buffer \\
\hline
{\em boutend} & end of already decompressed data in output buffer \\
\hline
{\em top} & end of output buffer \\
\hline
{\em terminbuf} & flag whether decompressed data is already in the output buffer. used in recursive calls \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the next unprocessed data in the input buffer 
\end{DoxyReturn}


Definition at line 4683 of file store.\+c.

\mbox{\Hypertarget{store_8c_aa679a806769abfb74d0be67c39720ae8}\label{store_8c_aa679a806769abfb74d0be67c39720ae8}} 
\index{store.c@{store.c}!ReadSaveExpression@{ReadSaveExpression}}
\index{ReadSaveExpression@{ReadSaveExpression}!store.c@{store.c}}
\doxysubsubsection{\texorpdfstring{ReadSaveExpression()}{ReadSaveExpression()}}
{\footnotesize\ttfamily WORD Read\+Save\+Expression (\begin{DoxyParamCaption}\item[{UBYTE $\ast$}]{buffer,  }\item[{UBYTE $\ast$}]{top,  }\item[{LONG $\ast$}]{size,  }\item[{LONG $\ast$}]{outsize }\end{DoxyParamCaption})}

Reads an expression from the open file specified by AO.\+Save\+Data.\+Handle. The endianness flip and a resizing without renumbering is done in this function. Thereafter the buffer consists of chunks with a uniform maximal word size (32bit at the moment). The actual renumbering is then done by calling the function \mbox{\hyperlink{store_8c_aaa6ba5aa51bd1e56096d15102b4195ce}{Read\+Save\+Term32()}}. The result is returned in {\itshape buffer}.

If the translation at some point doesn\textquotesingle{}t fit into the buffer anymore, the function returns and must be called again. In any case {\itshape size} returns the number of successfully read bytes, {\itshape outsize} returns the number of successfully written bytes, and the file will be positioned at the next byte after the successfully read data.

It is called by Put\+In\+Store().


\begin{DoxyParams}{Parameters}
{\em buffer} & output buffer, holds the (translated) expression \\
\hline
{\em top} & end of buffer \\
\hline
{\em size} & number of read bytes \\
\hline
{\em outsize} & number of written bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
= 0 everything okay, != 0 an error occurred 
\end{DoxyReturn}


Definition at line 5092 of file store.\+c.

