1 #include <exec/rawfmt.h>
9 typedef void (*VOID_FUNC
)();
12 /****************************************************************************************/
14 void StrCat(char *s
, char *s2
)
19 /****************************************************************************************/
21 static void filltable(char **table
, char *buff
, char fill
)
39 /****************************************************************************************/
41 void FillNewLineTable (char **table
, char *buff
)
43 filltable(table
, buff
, '\n');
46 /****************************************************************************************/
48 void FillBarTable (char **table
, char *buff
)
50 filltable(table
, buff
, '|');
53 /****************************************************************************************/
56 AROS_UFH2 (void, puttostr
,
57 AROS_UFHA(UBYTE
, chr
, D0
),
58 AROS_UFHA(STRPTR
*,strPtrPtr
,A3
)
63 void puttostr(REGPARAM(d0
, UBYTE
, chr
),
64 REGPARAM(a3
, STRPTR
*, strPtrPtr
))
74 /****************************************************************************************/
77 AROS_UFH2 (void, CountBarsAndChars
,
78 AROS_UFHA(UBYTE
, chr
, D0
),
79 AROS_UFHA(ULONG
*,ptr
,A3
)
84 void CountBarsAndChars(REGPARAM(d0
, UBYTE
, chr
),
85 REGPARAM(a3
, ULONG
*, ptr
))
88 if (chr
== '|') (ptr
[0])++;
95 /****************************************************************************************/
98 AROS_UFH2 (void, CountNewLinesAndChars
,
99 AROS_UFHA(UBYTE
, chr
, D0
),
100 AROS_UFHA(ULONG
*,ptr
,A3
)
105 void CountNewLinesAndChars(REGPARAM(d0
, UBYTE
, chr
),
106 REGPARAM(a3
, ULONG
*, ptr
))
109 if (chr
== '\n') (ptr
[0])++;
116 /****************************************************************************************/
118 APTR
DofmtArgs (char *buff
, char *fmt
,...)
123 /* Some AROS architectures don't have uniform varadics
124 * (ie an array of IPTR), so they can't use RawDoFmt()
125 * - we will use VNewRawDoFmt() instead.
128 VNewRawDoFmt(fmt
, (VOID_FUNC
)RAWFMTFUNC_STRING
, buff
, ap
);
131 RawDoFmt(fmt
, &fmt
+ 1, (VOID_FUNC
)puttostr
, &str
);
137 /****************************************************************************************/
139 APTR
Dofmt (char *buff
, char *fmt
, APTR args
)
143 return RawDoFmt(fmt
, args
, (VOID_FUNC
)puttostr
, &str
);
147 /****************************************************************************************/
149 APTR
DofmtCount (char *fmt
, APTR args
, ULONG
*ptr
, int mode
)
155 (mode
? ((VOID_FUNC
)CountBarsAndChars
) : ((VOID_FUNC
)CountNewLinesAndChars
) ),
159 /****************************************************************************************/
161 void ShortDelay(void)
166 /****************************************************************************************/
168 IPTR
LoopReqHandler(struct rtHandlerInfo
*rthi
)
170 IPTR handler_retval
, sigs
;
177 sigs
= Wait(rthi
->WaitMask
);
179 handler_retval
= (ULONG
)rtReqHandlerA(rthi
, sigs
, NULL
);
181 } while (handler_retval
== CALL_HANDLER
);
183 return handler_retval
;
187 /****************************************************************************************/
189 void DoWaitPointer(struct Window
*win
, int doit
, int setpointer
)
194 rtSetWaitPointer(win
);
201 /****************************************************************************************/
203 APTR
DoLockWindow(struct Window
*win
, int doit
, APTR lock
, int lockit
)
205 if (!doit
|| !win
) return NULL
;
207 if (lockit
) return rtLockWindow(win
);
209 rtUnlockWindow(win
, lock
);
214 /****************************************************************************************/
216 void SetWinTitleFlash(struct Window
*win
, char *str
)
218 DisplayBeep(win
->WScreen
);
219 SetWindowTitles(win
, str
, (UBYTE
*)-1);
222 /****************************************************************************************/
223 /****************************************************************************************/
224 /****************************************************************************************/
225 /****************************************************************************************/
226 /****************************************************************************************/
227 /****************************************************************************************/