aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/embryo/include
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libraries/embryo/include/Makefile.am7
-rw-r--r--libraries/embryo/include/Makefile.in439
-rw-r--r--libraries/embryo/include/default.inc213
3 files changed, 659 insertions, 0 deletions
diff --git a/libraries/embryo/include/Makefile.am b/libraries/embryo/include/Makefile.am
new file mode 100644
index 0000000..006ee14
--- /dev/null
+++ b/libraries/embryo/include/Makefile.am
@@ -0,0 +1,7 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3filesdir = $(datadir)/embryo/include
4files_DATA = \
5default.inc
6
7EXTRA_DIST = $(files_DATA)
diff --git a/libraries/embryo/include/Makefile.in b/libraries/embryo/include/Makefile.in
new file mode 100644
index 0000000..a5456cd
--- /dev/null
+++ b/libraries/embryo/include/Makefile.in
@@ -0,0 +1,439 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = include
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \
41 $(top_srcdir)/m4/efl_binary.m4 $(top_srcdir)/m4/efl_doxygen.m4 \
42 $(top_srcdir)/m4/efl_fnmatch.m4 \
43 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/libtool.m4 \
44 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
45 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
46 $(top_srcdir)/configure.ac
47am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
48 $(ACLOCAL_M4)
49mkinstalldirs = $(install_sh) -d
50CONFIG_HEADER = $(top_builddir)/config.h
51CONFIG_CLEAN_FILES =
52CONFIG_CLEAN_VPATH_FILES =
53AM_V_GEN = $(am__v_GEN_$(V))
54am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
55am__v_GEN_0 = @echo " GEN " $@;
56AM_V_at = $(am__v_at_$(V))
57am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
58am__v_at_0 = @
59SOURCES =
60DIST_SOURCES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(filesdir)"
83DATA = $(files_DATA)
84DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
85ACLOCAL = @ACLOCAL@
86ALLOCA = @ALLOCA@
87AMTAR = @AMTAR@
88AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
89AR = @AR@
90AS = @AS@
91AUTOCONF = @AUTOCONF@
92AUTOHEADER = @AUTOHEADER@
93AUTOMAKE = @AUTOMAKE@
94AWK = @AWK@
95CC = @CC@
96CCDEPMODE = @CCDEPMODE@
97CFLAGS = @CFLAGS@
98CPP = @CPP@
99CPPFLAGS = @CPPFLAGS@
100CYGPATH_W = @CYGPATH_W@
101DEFS = @DEFS@
102DEPDIR = @DEPDIR@
103DLLTOOL = @DLLTOOL@
104DSYMUTIL = @DSYMUTIL@
105DUMPBIN = @DUMPBIN@
106ECHO_C = @ECHO_C@
107ECHO_N = @ECHO_N@
108ECHO_T = @ECHO_T@
109EFL_EMBRYO_BUILD = @EFL_EMBRYO_BUILD@
110EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
111EGREP = @EGREP@
112EINA_CFLAGS = @EINA_CFLAGS@
113EINA_LIBS = @EINA_LIBS@
114EMBRYO_CC_PRG = @EMBRYO_CC_PRG@
115EMBRYO_CFLAGS = @EMBRYO_CFLAGS@
116EMBRYO_CPPFLAGS = @EMBRYO_CPPFLAGS@
117EVIL_CFLAGS = @EVIL_CFLAGS@
118EVIL_LIBS = @EVIL_LIBS@
119EXEEXT = @EXEEXT@
120FGREP = @FGREP@
121GREP = @GREP@
122INSTALL = @INSTALL@
123INSTALL_DATA = @INSTALL_DATA@
124INSTALL_PROGRAM = @INSTALL_PROGRAM@
125INSTALL_SCRIPT = @INSTALL_SCRIPT@
126INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
127LD = @LD@
128LDFLAGS = @LDFLAGS@
129LIBOBJS = @LIBOBJS@
130LIBS = @LIBS@
131LIBTOOL = @LIBTOOL@
132LIPO = @LIPO@
133LN_S = @LN_S@
134LTLIBOBJS = @LTLIBOBJS@
135MAKEINFO = @MAKEINFO@
136MKDIR_P = @MKDIR_P@
137NM = @NM@
138NMEDIT = @NMEDIT@
139OBJDUMP = @OBJDUMP@
140OBJEXT = @OBJEXT@
141OTOOL = @OTOOL@
142OTOOL64 = @OTOOL64@
143PACKAGE = @PACKAGE@
144PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
145PACKAGE_NAME = @PACKAGE_NAME@
146PACKAGE_STRING = @PACKAGE_STRING@
147PACKAGE_TARNAME = @PACKAGE_TARNAME@
148PACKAGE_URL = @PACKAGE_URL@
149PACKAGE_VERSION = @PACKAGE_VERSION@
150PATH_SEPARATOR = @PATH_SEPARATOR@
151PKG_CONFIG = @PKG_CONFIG@
152PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
153PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
154RANLIB = @RANLIB@
155SED = @SED@
156SET_MAKE = @SET_MAKE@
157SHELL = @SHELL@
158STRIP = @STRIP@
159VERSION = @VERSION@
160VMAJ = @VMAJ@
161abs_builddir = @abs_builddir@
162abs_srcdir = @abs_srcdir@
163abs_top_builddir = @abs_top_builddir@
164abs_top_srcdir = @abs_top_srcdir@
165ac_ct_CC = @ac_ct_CC@
166ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
167am__include = @am__include@
168am__leading_dot = @am__leading_dot@
169am__quote = @am__quote@
170am__tar = @am__tar@
171am__untar = @am__untar@
172bindir = @bindir@
173build = @build@
174build_alias = @build_alias@
175build_cpu = @build_cpu@
176build_os = @build_os@
177build_vendor = @build_vendor@
178builddir = @builddir@
179datadir = @datadir@
180datarootdir = @datarootdir@
181docdir = @docdir@
182dvidir = @dvidir@
183efl_doxygen = @efl_doxygen@
184efl_have_doxygen = @efl_have_doxygen@
185embryoincludedir = @embryoincludedir@
186exec_prefix = @exec_prefix@
187host = @host@
188host_alias = @host_alias@
189host_cpu = @host_cpu@
190host_os = @host_os@
191host_vendor = @host_vendor@
192htmldir = @htmldir@
193includedir = @includedir@
194infodir = @infodir@
195install_sh = @install_sh@
196libdir = @libdir@
197libexecdir = @libexecdir@
198localedir = @localedir@
199localstatedir = @localstatedir@
200lt_ECHO = @lt_ECHO@
201lt_enable_auto_import = @lt_enable_auto_import@
202mandir = @mandir@
203mkdir_p = @mkdir_p@
204oldincludedir = @oldincludedir@
205pdfdir = @pdfdir@
206pkgconfig_requires_private = @pkgconfig_requires_private@
207prefix = @prefix@
208program_transform_name = @program_transform_name@
209psdir = @psdir@
210release_info = @release_info@
211requirement_embryo = @requirement_embryo@
212sbindir = @sbindir@
213sharedstatedir = @sharedstatedir@
214srcdir = @srcdir@
215sysconfdir = @sysconfdir@
216target_alias = @target_alias@
217top_build_prefix = @top_build_prefix@
218top_builddir = @top_builddir@
219top_srcdir = @top_srcdir@
220version_info = @version_info@
221MAINTAINERCLEANFILES = Makefile.in
222filesdir = $(datadir)/embryo/include
223files_DATA = \
224default.inc
225
226EXTRA_DIST = $(files_DATA)
227all: all-am
228
229.SUFFIXES:
230$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
231 @for dep in $?; do \
232 case '$(am__configure_deps)' in \
233 *$$dep*) \
234 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
235 && { if test -f $@; then exit 0; else break; fi; }; \
236 exit 1;; \
237 esac; \
238 done; \
239 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
240 $(am__cd) $(top_srcdir) && \
241 $(AUTOMAKE) --gnu include/Makefile
242.PRECIOUS: Makefile
243Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
244 @case '$?' in \
245 *config.status*) \
246 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
247 *) \
248 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
249 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
250 esac;
251
252$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
253 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
254
255$(top_srcdir)/configure: $(am__configure_deps)
256 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
257$(ACLOCAL_M4): $(am__aclocal_m4_deps)
258 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
259$(am__aclocal_m4_deps):
260
261mostlyclean-libtool:
262 -rm -f *.lo
263
264clean-libtool:
265 -rm -rf .libs _libs
266install-filesDATA: $(files_DATA)
267 @$(NORMAL_INSTALL)
268 test -z "$(filesdir)" || $(MKDIR_P) "$(DESTDIR)$(filesdir)"
269 @list='$(files_DATA)'; test -n "$(filesdir)" || list=; \
270 for p in $$list; do \
271 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
272 echo "$$d$$p"; \
273 done | $(am__base_list) | \
274 while read files; do \
275 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(filesdir)'"; \
276 $(INSTALL_DATA) $$files "$(DESTDIR)$(filesdir)" || exit $$?; \
277 done
278
279uninstall-filesDATA:
280 @$(NORMAL_UNINSTALL)
281 @list='$(files_DATA)'; test -n "$(filesdir)" || list=; \
282 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
283 test -n "$$files" || exit 0; \
284 echo " ( cd '$(DESTDIR)$(filesdir)' && rm -f" $$files ")"; \
285 cd "$(DESTDIR)$(filesdir)" && rm -f $$files
286tags: TAGS
287TAGS:
288
289ctags: CTAGS
290CTAGS:
291
292
293distdir: $(DISTFILES)
294 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
295 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
296 list='$(DISTFILES)'; \
297 dist_files=`for file in $$list; do echo $$file; done | \
298 sed -e "s|^$$srcdirstrip/||;t" \
299 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
300 case $$dist_files in \
301 */*) $(MKDIR_P) `echo "$$dist_files" | \
302 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
303 sort -u` ;; \
304 esac; \
305 for file in $$dist_files; do \
306 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
307 if test -d $$d/$$file; then \
308 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
309 if test -d "$(distdir)/$$file"; then \
310 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
311 fi; \
312 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
313 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
314 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
315 fi; \
316 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
317 else \
318 test -f "$(distdir)/$$file" \
319 || cp -p $$d/$$file "$(distdir)/$$file" \
320 || exit 1; \
321 fi; \
322 done
323check-am: all-am
324check: check-am
325all-am: Makefile $(DATA)
326installdirs:
327 for dir in "$(DESTDIR)$(filesdir)"; do \
328 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
329 done
330install: install-am
331install-exec: install-exec-am
332install-data: install-data-am
333uninstall: uninstall-am
334
335install-am: all-am
336 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
337
338installcheck: installcheck-am
339install-strip:
340 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
341 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
342 `test -z '$(STRIP)' || \
343 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
344mostlyclean-generic:
345
346clean-generic:
347
348distclean-generic:
349 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
350 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
351
352maintainer-clean-generic:
353 @echo "This command is intended for maintainers to use"
354 @echo "it deletes files that may require special tools to rebuild."
355 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
356clean: clean-am
357
358clean-am: clean-generic clean-libtool mostlyclean-am
359
360distclean: distclean-am
361 -rm -f Makefile
362distclean-am: clean-am distclean-generic
363
364dvi: dvi-am
365
366dvi-am:
367
368html: html-am
369
370html-am:
371
372info: info-am
373
374info-am:
375
376install-data-am: install-filesDATA
377
378install-dvi: install-dvi-am
379
380install-dvi-am:
381
382install-exec-am:
383
384install-html: install-html-am
385
386install-html-am:
387
388install-info: install-info-am
389
390install-info-am:
391
392install-man:
393
394install-pdf: install-pdf-am
395
396install-pdf-am:
397
398install-ps: install-ps-am
399
400install-ps-am:
401
402installcheck-am:
403
404maintainer-clean: maintainer-clean-am
405 -rm -f Makefile
406maintainer-clean-am: distclean-am maintainer-clean-generic
407
408mostlyclean: mostlyclean-am
409
410mostlyclean-am: mostlyclean-generic mostlyclean-libtool
411
412pdf: pdf-am
413
414pdf-am:
415
416ps: ps-am
417
418ps-am:
419
420uninstall-am: uninstall-filesDATA
421
422.MAKE: install-am install-strip
423
424.PHONY: all all-am check check-am clean clean-generic clean-libtool \
425 distclean distclean-generic distclean-libtool distdir dvi \
426 dvi-am html html-am info info-am install install-am \
427 install-data install-data-am install-dvi install-dvi-am \
428 install-exec install-exec-am install-filesDATA install-html \
429 install-html-am install-info install-info-am install-man \
430 install-pdf install-pdf-am install-ps install-ps-am \
431 install-strip installcheck installcheck-am installdirs \
432 maintainer-clean maintainer-clean-generic mostlyclean \
433 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
434 uninstall uninstall-am uninstall-filesDATA
435
436
437# Tell versions [3.59,3.63) of GNU make to not export all variables.
438# Otherwise a system limit (for SysV at least) may be exceeded.
439.NOEXPORT:
diff --git a/libraries/embryo/include/default.inc b/libraries/embryo/include/default.inc
new file mode 100644
index 0000000..0733503
--- /dev/null
+++ b/libraries/embryo/include/default.inc
@@ -0,0 +1,213 @@
1/* Float arithmetic
2 *
3 * (c) Copyright 1999, Artran, Inc.
4 * Written by Greg Garner (gmg@artran.com)
5 * Modified in March 2001 to include user defined
6 * operators for the floating point functions.
7 * (c) Copyright 2004, Carsten Haitzler
8 * Modified March 2004 by Carsten Haitzler <raster@rasterman.com> to conform
9 * to E coding style
10 * Became default include for embryo...
11 * Added string functions
12 * Added rand functions
13 * Added time functions
14 *
15 * This file is provided as is (no warranties).
16 */
17#if defined DEFAULT_INC
18#endinput
19#endif
20#define DEFAULT_INC
21
22#pragma rational Float
23
24#define PI 3.1415926535897932384626433832795
25
26/* Different methods of rounding */
27enum Float_Round_Method
28{
29 ROUND, FLOOR, CEIL, TOZERO
30};
31/* different angle addressing modes (default is radians) */
32enum Float_Angle_Mode
33{
34 RADIAN, DEGREES, GRADES
35};
36
37/* varags - get numebr of args to a function */
38native numargs();
39/* varags - get arg no "arg" */
40native getarg(arg, index=0);
41native getsarg(arg, buf[], buflen);
42native Float:getfarg(arg, index=0);
43/* varags - set arg no "arg" */
44native setarg(arg, index=0, value);
45native setfarg(arg, index=0, Float:value);
46
47/* Convert a string into a floating point value */
48native Float:atof(const string[]);
49/* Return the fractional part of a float */
50native Float:fract(Float:value);
51/* Round a float into a integer value */
52native round(Float:value, Float_Round_Method:method=ROUND);
53/* Return the square root of value, same as float_power(value, 0.5) */
54native Float:sqrt(Float:value);
55/* Return the value raised to the power of the exponent */
56native Float:pow(Float:value, Float:exponent);
57/* Return the logarithm */
58native Float:log(Float:value, Float:base=10.0);
59/* Return the sine, cosine or tangent. The input angle may be in radian*/
60/* degrees or grades. */
61native Float:sin(Float:value, Float_Angle_Mode:mode=RADIAN);
62native Float:cos(Float:value, Float_Angle_Mode:mode=RADIAN);
63native Float:tan(Float:value, Float_Angle_Mode:mode=RADIAN);
64/* Return the absolute value */
65native Float:abs(Float:value);
66/* return integer from string */
67native atoi(str[]);
68/* return 0 if string matches glob, non-zero otherwise */
69native fnmatch(glob[], str[]);
70/* same as strcmp() */
71native strcmp(str1[], str2[]);
72/* same as strncmp */
73native strncmp(str1[], str2[], n);
74/* same as strcpy */
75native strcpy(dst[], src[]);
76/* same as strncpy except it nul terminates */
77native strncpy(dst[], src[], n);
78/* same as strlen */
79native strlen(str[]);
80/* same as strcat */
81native strcat(dst[], src[]);
82/* same as strncat except it nul terminates */
83native strncat(dst[], src[], n);
84/* prepends src string onto start of dst string */
85native strprep(dst[], src[]);
86/* prepends at most n chars from src string onto dst string */
87native strnprep(dst[], src[], n);
88/* cuts chars from char n to (not including) n2, and puts them in str */
89native strcut(dst[], str[], n, n2);
90/* same as snprintf, except only supports %%, %c, %i, %d, %f, %x, %X, %s, \n and \t */
91native snprintf(dst[], dstn, fmt[], ...);
92/* same as strstr */
93native strstr(str[], ndl[]);
94/* same as strchr, except ch must be a 1 charater long string, and returns string index */
95native strchr(str[], ch[]);
96/* same as strrchr, except ch must be a 1 charater long string and returns string index */
97native strrchr(str[], ch[]);
98/* return random number 0 - 65535 */
99native rand();
100/* return random number 0.0 - 1.0 */
101native Float:randf();
102/* return seconds since midnight as a float */
103native Float:seconds();
104/* return the current date, year, time etc. in the variables provided */
105native date(&year, &month, &day, &yearday, &weekday, &hr, &min, &Float:sec);
106
107/*****************************************************************************/
108/*****************************************************************************/
109/*****************************************************************************/
110/*****************************************************************************/
111/*****************************************************************************/
112/*****************************************************************************/
113/*****************************************************************************/
114/*****************************************************************************/
115/*****************************************************************************/
116/*****************************************************************************/
117/*****************************************************************************/
118/*****************************************************************************/
119/*****************************************************************************/
120/*****************************************************************************/
121/*****************************************************************************/
122/*****************************************************************************/
123/*****************************************************************************/
124/*****************************************************************************/
125/*****************************************************************************/
126/*****************************************************************************/
127/*****************************************************************************/
128/*****************************************************************************/
129/*****************************************************************************/
130/*****************************************************************************/
131/*****************************************************************************/
132/*****************************************************************************/
133
134/**************************************************/
135/* Hidden calls - all are overloaded on operators */
136/**************************************************/
137
138/* Convert an integer into a floating point value */
139native Float:float(value);
140/* Multiple two floats together */
141native Float:float_mul(Float:oper1, Float:oper2);
142/* Divide the dividend float by the divisor float */
143native Float:float_div(Float:dividend, Float:divisor);
144/* Add two floats together */
145native Float:float_add(Float:oper1, Float:oper2);
146/* Subtract oper2 float from oper1 float */
147native Float:float_sub(Float:oper1, Float:oper2);
148/* Compare two integers. If the two elements are equal, return 0. */
149/* If the first argument is greater than the second argument, return 1, */
150/* If the first argument is less than the second argument, return -1. */
151native float_cmp(Float:oper1, Float:oper2);
152/* user defined operators */
153native Float:operator*(Float:oper1, Float:oper2) = float_mul;
154native Float:operator/(Float:oper1, Float:oper2) = float_div;
155native Float:operator+(Float:oper1, Float:oper2) = float_add;
156native Float:operator-(Float:oper1, Float:oper2) = float_sub;
157native Float:operator=(oper) = float;
158stock Float:operator++(Float:oper)
159 return oper+1.0;
160stock Float:operator--(Float:oper)
161 return oper-1.0;
162stock Float:operator-(Float:oper)
163 return oper^Float:0x80000000; /* IEEE values are sign/magnitude */
164stock Float:operator*(Float:oper1, oper2)
165 return float_mul(oper1, float(oper2)); /* "*" is commutative */
166stock Float:operator/(Float:oper1, oper2)
167 return float_div(oper1, float(oper2));
168stock Float:operator/(oper1, Float:oper2)
169 return float_div(float(oper1), oper2);
170stock Float:operator+(Float:oper1, oper2)
171 return float_add(oper1, float(oper2)); /* "+" is commutative */
172stock Float:operator-(Float:oper1, oper2)
173 return float_sub(oper1, float(oper2));
174stock Float:operator-(oper1, Float:oper2)
175 return float_sub(float(oper1), oper2);
176stock bool:operator==(Float:oper1, Float:oper2)
177 return float_cmp(oper1, oper2) == 0;
178stock bool:operator==(Float:oper1, oper2)
179 return float_cmp(oper1, float(oper2)) == 0; /* "==" is commutative */
180stock bool:operator!=(Float:oper1, Float:oper2)
181 return float_cmp(oper1, oper2) != 0;
182stock bool:operator!=(Float:oper1, oper2)
183 return float_cmp(oper1, float(oper2)) != 0; /* "!=" is commutative */
184stock bool:operator>(Float:oper1, Float:oper2)
185 return float_cmp(oper1, oper2) > 0;
186stock bool:operator>(Float:oper1, oper2)
187 return float_cmp(oper1, float(oper2)) > 0;
188stock bool:operator>(oper1, Float:oper2)
189 return float_cmp(float(oper1), oper2) > 0;
190stock bool:operator>=(Float:oper1, Float:oper2)
191 return float_cmp(oper1, oper2) >= 0;
192stock bool:operator>=(Float:oper1, oper2)
193 return float_cmp(oper1, float(oper2)) >= 0;
194stock bool:operator>=(oper1, Float:oper2)
195 return float_cmp(float(oper1), oper2) >= 0;
196stock bool:operator<(Float:oper1, Float:oper2)
197 return float_cmp(oper1, oper2) < 0;
198stock bool:operator<(Float:oper1, oper2)
199 return float_cmp(oper1, float(oper2)) < 0;
200stock bool:operator<(oper1, Float:oper2)
201 return float_cmp(float(oper1), oper2) < 0;
202stock bool:operator<=(Float:oper1, Float:oper2)
203 return float_cmp(oper1, oper2) <= 0;
204stock bool:operator<=(Float:oper1, oper2)
205 return float_cmp(oper1, float(oper2)) <= 0;
206stock bool:operator<=(oper1, Float:oper2)
207 return float_cmp(float(oper1), oper2) <= 0;
208stock bool:operator!(Float:oper)
209 return (_:oper & 0x7fffffff) == 0;
210/* forbidden operations */
211forward operator%(Float:oper1, Float:oper2);
212forward operator%(Float:oper1, oper2);
213forward operator%(oper1, Float:oper2);