Skip to content
Snippets Groups Projects
Select Git revision
  • 12c8fc5092cde1a3e72f68968f140f23a5913da7
  • master default protected
  • 9.0
  • 8.0
  • 7.8
  • 7.6
  • 7.4
  • 7.2
  • 7.0
  • 0.6
  • rosuav/latex-markdown-renderer
  • rxnpatch/rxnpatch
  • marcus/gobject-introspection
  • rxnpatch/8.0
  • rosuav/pre-listening-ports
  • nt-tools
  • rosuav/async-annotations
  • rosuav/pgsql-ssl
  • rxnpatch/rxnpatch-broken/2023-10-06T094250
  • grubba/fdlib
  • grubba/wip/sakura/8.0
  • v8.0.2000
  • v8.0.1998
  • v8.0.1996
  • v8.0.1994
  • v8.0.1992
  • v8.0.1990
  • v8.0.1988
  • v8.0.1986
  • rxnpatch/clusters/8.0/2025-04-29T124414
  • rxnpatch/2025-04-29T124414
  • v8.0.1984
  • v8.0.1982
  • v8.0.1980
  • v8.0.1978
  • v8.0.1976
  • v8.0.1974
  • v8.0.1972
  • v8.0.1970
  • v8.0.1968
  • v8.0.1966
41 results

metatest

Blame
    • Fredrik Hübinette (Hubbe)'s avatar
      06983fde
      Pike · 06983fde
      Fredrik Hübinette (Hubbe) authored
      Rev: .cvsignore:1.1.1.1
      Rev: README:1.1.1.1
      Rev: bin/export.pike:1.1.1.1
      Rev: bin/fixdepends.sh:1.1.1.1
      Rev: bin/hilfe:1.1.1.1
      Rev: bin/htmlify_docs.pike:1.1.1.1
      Rev: bin/httpd.pike:1.1.1.1
      Rev: bin/metatest:1.1.1.1
      Rev: bin/mkpeep.pike:1.1.1.1
      Rev: bin/rsif:1.1.1.1
      Rev: doc/README:1.1.1.1
      Rev: doc/builtin/_verify_internals:1.1.1.1
      Rev: doc/builtin/add_constant:1.1.1.1
      Rev: doc/builtin/aggregage_multiset:1.1.1.1
      Rev: doc/builtin/aggregate:1.1.1.1
      Rev: doc/builtin/aggregate_mapping:1.1.1.1
      Rev: doc/builtin/alarm:1.1.1.1
      Rev: doc/builtin/all_constants:1.1.1.1
      Rev: doc/builtin/allocate:1.1.1.1
      Rev: doc/builtin/arrayp:1.1.1.1
      Rev: doc/builtin/backtrace:1.1.1.1
      Rev: doc/builtin/call_function:1.1.1.1
      Rev: doc/builtin/clone:1.1.1.1
      Rev: doc/builtin/column:1.1.1.1
      Rev: doc/builtin/combine_path:1.1.1.1
      Rev: doc/builtin/compile_file:1.1.1.1
      Rev: doc/builtin/compile_string:1.1.1.1
      Rev: doc/builtin/copy_value:1.1.1.1
      Rev: doc/builtin/crypt:1.1.1.1
      Rev: doc/builtin/ctime:1.1.1.1
      Rev: doc/builtin/destruct:1.1.1.1
      Rev: doc/builtin/equal:1.1.1.1
      Rev: doc/builtin/exit:1.1.1.1
      Rev: doc/builtin/floatp:1.1.1.1
      Rev: doc/builtin/function_name:1.1.1.1
      Rev: doc/builtin/function_object:1.1.1.1
      Rev: doc/builtin/functionp:1.1.1.1
      Rev: doc/builtin/gc:1.1.1.1
      Rev: doc/builtin/getpid:1.1.1.1
      Rev: doc/builtin/glob:1.1.1.1
      Rev: doc/builtin/hash:1.1.1.1
      Rev: doc/builtin/indices:1.1.1.1
      Rev: doc/builtin/intp:1.1.1.1
      Rev: doc/builtin/kill:1.1.1.1
      Rev: doc/builtin/localtime:1.1.1.1
      Rev: doc/builtin/lower_case:1.1.1.1
      Rev: doc/builtin/m_delete:1.1.1.1
      Rev: doc/builtin/mappingp:1.1.1.1
      Rev: doc/builtin/mkmapping:1.1.1.1
      Rev: doc/builtin/multisetp:1.1.1.1
      Rev: doc/builtin/next_object:1.1.1.1
      Rev: doc/builtin/object_program:1.1.1.1
      Rev: doc/builtin/objectp:1.1.1.1
      Rev: doc/builtin/programp:1.1.1.1
      Rev: doc/builtin/query_host_name:1.1.1.1
      Rev: doc/builtin/query_num_arg:1.1.1.1
      Rev: doc/builtin/random:1.1.1.1
      Rev: doc/builtin/random_seed:1.1.1.1
      Rev: doc/builtin/replace:1.1.1.1
      Rev: doc/builtin/reverse:1.1.1.1
      Rev: doc/builtin/rows:1.1.1.1
      Rev: doc/builtin/rusage:1.1.1.1
      Rev: doc/builtin/search:1.1.1.1
      Rev: doc/builtin/signal:1.1.1.1
      Rev: doc/builtin/signame:1.1.1.1
      Rev: doc/builtin/signum:1.1.1.1
      Rev: doc/builtin/sizeof:1.1.1.1
      Rev: doc/builtin/sleep:1.1.1.1
      Rev: doc/builtin/sort:1.1.1.1
      Rev: doc/builtin/stringp:1.1.1.1
      Rev: doc/builtin/this_object:1.1.1.1
      Rev: doc/builtin/throw:1.1.1.1
      Rev: doc/builtin/time:1.1.1.1
      Rev: doc/builtin/trace:1.1.1.1
      Rev: doc/builtin/ualarm:1.1.1.1
      Rev: doc/builtin/upper_case:1.1.1.1
      Rev: doc/builtin/values:1.1.1.1
      Rev: doc/builtin/zero_type:1.1.1.1
      Rev: doc/index.bmml:1.1.1.1
      Rev: doc/manual/example1:1.1.1.1
      Rev: doc/manual/example2:1.1.1.1
      Rev: doc/manual/example3:1.1.1.1
      Rev: doc/manual/tutorial:1.1.1.1
      Rev: doc/operators/and:1.1.1.1
      Rev: doc/operators/complement:1.1.1.1
      Rev: doc/operators/divide:1.1.1.1
      Rev: doc/operators/index:1.1.1.1
      Rev: doc/operators/is_equal:1.1.1.1
      Rev: doc/operators/is_greater_or_equal:1.1.1.1
      Rev: doc/operators/is_greater_than:1.1.1.1
      Rev: doc/operators/is_lesser_or_equal:1.1.1.1
      Rev: doc/operators/is_lesser_than:1.1.1.1
      Rev: doc/operators/logical_and:1.1.1.1
      Rev: doc/operators/logical_or:1.1.1.1
      Rev: doc/operators/minus:1.1.1.1
      Rev: doc/operators/modulo:1.1.1.1
      Rev: doc/operators/mult:1.1.1.1
      Rev: doc/operators/not:1.1.1.1
      Rev: doc/operators/not_equal:1.1.1.1
      Rev: doc/operators/operators:1.1.1.1
      Rev: doc/operators/or:1.1.1.1
      Rev: doc/operators/plus:1.1.1.1
      Rev: doc/operators/range:1.1.1.1
      Rev: doc/operators/shift_left:1.1.1.1
      Rev: doc/operators/shift_right:1.1.1.1
      Rev: doc/operators/xor:1.1.1.1
      Rev: doc/pike/all.bmml:1.1.1.1
      Rev: doc/pike/cast:1.1.1.1
      Rev: doc/pike/catch:1.1.1.1
      Rev: doc/pike/class:1.1.1.1
      Rev: doc/pike/command_line_options:1.1.1.1
      Rev: doc/pike/control_structures/break:1.1.1.1
      Rev: doc/pike/control_structures/catch:1.1.1.1
      Rev: doc/pike/control_structures/continue:1.1.1.1
      Rev: doc/pike/control_structures/do-while:1.1.1.1
      Rev: doc/pike/control_structures/for:1.1.1.1
      Rev: doc/pike/control_structures/foreach:1.1.1.1
      Rev: doc/pike/control_structures/if-else:1.1.1.1
      Rev: doc/pike/control_structures/return:1.1.1.1
      Rev: doc/pike/control_structures/switch:1.1.1.1
      Rev: doc/pike/control_structures/while:1.1.1.1
      Rev: doc/pike/efuns.bmml:1.1.1.1
      Rev: doc/pike/functions:1.1.1.1
      Rev: doc/pike/gauge:1.1.1.1
      Rev: doc/pike/hilfe:1.1.1.1
      Rev: doc/pike/how_to_make_modules:1.1.1.1
      Rev: doc/pike/inherit:1.1.1.1
      Rev: doc/pike/lambda:1.1.1.1
      Rev: doc/pike/modifier:1.1.1.1
      Rev: doc/pike/preprocessor:1.1.1.1
      Rev: doc/pike/reserved.bmml:1.1.1.1
      Rev: doc/pike/sscanf:1.1.1.1
      Rev: doc/pike/typeof:1.1.1.1
      Rev: doc/pike/variables:1.1.1.1
      Rev: doc/simulated/PI:1.1.1.1
      Rev: doc/simulated/add_efun:1.1.1.1
      Rev: doc/simulated/aggregage_list:1.1.1.1
      Rev: doc/simulated/all_efuns:1.1.1.1
      Rev: doc/simulated/capitalize:1.1.1.1
      Rev: doc/simulated/describe_backtrace:1.1.1.1
      Rev: doc/simulated/exec:1.1.1.1
      Rev: doc/simulated/explode:1.1.1.1
      Rev: doc/simulated/file_size:1.1.1.1
      Rev: doc/simulated/filter:1.1.1.1
      Rev: doc/simulated/filter_array:1.1.1.1
      Rev: doc/simulated/get_function:1.1.1.1
      Rev: doc/simulated/getenv:1.1.1.1
      Rev: doc/simulated/implode:1.1.1.1
      Rev: doc/simulated/l_sizeof:1.1.1.1
      Rev: doc/simulated/listp:1.1.1.1
      Rev: doc/simulated/m_indices:1.1.1.1
      Rev: doc/simulated/m_sizeof:1.1.1.1
      Rev: doc/simulated/m_values:1.1.1.1
      Rev: doc/simulated/map:1.1.1.1
      Rev: doc/simulated/map_array:1.1.1.1
      Rev: doc/simulated/master:1.1.1.1
      Rev: doc/simulated/member_array:1.1.1.1
      Rev: doc/simulated/mklist:1.1.1.1
      Rev: doc/simulated/mkmultiset:1.1.1.1
      Rev: doc/simulated/perror:1.1.1.1
      Rev: doc/simulated/popen:1.1.1.1
      Rev: doc/simulated/previous_object:1.1.1.1
      Rev: doc/simulated/putenv:1.1.1.1
      Rev: doc/simulated/read_bytes:1.1.1.1
      Rev: doc/simulated/regexp:1.1.1.1
      Rev: doc/simulated/search_array:1.1.1.1
      Rev: doc/simulated/sort_array:1.1.1.1
      Rev: doc/simulated/spawn:1.1.1.1
      Rev: doc/simulated/strlen:1.1.1.1
      Rev: doc/simulated/strstr:1.1.1.1
      Rev: doc/simulated/sum:1.1.1.1
      Rev: doc/simulated/sum_arrays:1.1.1.1
      Rev: doc/simulated/system:1.1.1.1
      Rev: doc/simulated/this_function:1.1.1.1
      Rev: doc/simulated/version:1.1.1.1
      Rev: doc/simulated/write:1.1.1.1
      Rev: doc/simulated/write_file:1.1.1.1
      Rev: doc/types/array:1.1.1.1
      Rev: doc/types/float:1.1.1.1
      Rev: doc/types/function:1.1.1.1
      Rev: doc/types/int:1.1.1.1
      Rev: doc/types/mapping:1.1.1.1
      Rev: doc/types/mixed:1.1.1.1
      Rev: doc/types/multiset:1.1.1.1
      Rev: doc/types/object:1.1.1.1
      Rev: doc/types/program:1.1.1.1
      Rev: doc/types/string:1.1.1.1
      Rev: lib/include/array.h:1.1.1.1
      Rev: lib/include/array.pre.pike:1.1.1.1
      Rev: lib/include/process.h:1.1.1.1
      Rev: lib/include/process.pre.pike:1.1.1.1
      Rev: lib/include/simulate.h:1.1.1.1
      Rev: lib/include/simulate.pre.pike:1.1.1.1
      Rev: lib/include/stdio.h:1.1.1.1
      Rev: lib/include/stdio.pre.pike:1.1.1.1
      Rev: lib/master.pike:1.1.1.1
      Rev: src/.cvsignore:1.1.1.1
      Rev: src/BUGS:1.1.1.1
      Rev: src/COPYING:1.1.1.1
      Rev: src/COPYRIGHT:1.1.1.1
      Rev: src/ChangeLog:1.1.1.1
      Rev: src/DISCLAIMER:1.1.1.1
      Rev: src/Makefile.src:1.1.1.1
      Rev: src/README:1.1.1.1
      Rev: src/alloca.c:1.1.1.1
      Rev: src/array.c:1.1.1.1
      Rev: src/array.h:1.1.1.1
      Rev: src/backend.c:1.1.1.1
      Rev: src/backend.h:1.1.1.1
      Rev: src/build_modlist_h:1.1.1.1
      Rev: src/builtin_functions.c:1.1.1.1
      Rev: src/builtin_functions.h:1.1.1.1
      Rev: src/callback.c:1.1.1.1
      Rev: src/callback.h:1.1.1.1
      Rev: src/compilation.h:1.1.1.1
      Rev: src/config.cache:1.1.1.1
      Rev: src/config.h:1.1.1.1
      Rev: src/config.log:1.1.1.1
      Rev: src/configure.in:1.1.1.1
      Rev: src/constants.c:1.1.1.1
      Rev: src/constants.h:1.1.1.1
      Rev: src/docode.c:1.1.1.1
      Rev: src/docode.h:1.1.1.1
      Rev: src/dynamic_buffer.c:1.1.1.1
      Rev: src/dynamic_buffer.h:1.1.1.1
      Rev: src/efun.h:1.1.1.1
      Rev: src/error.c:1.1.1.1
      Rev: src/error.h:1.1.1.1
      Rev: src/fd_control.c:1.1.1.1
      Rev: src/fd_control.h:1.1.1.1
      Rev: src/fsort.c:1.1.1.1
      Rev: src/fsort.h:1.1.1.1
      Rev: src/gc.c:1.1.1.1
      Rev: src/gc.h:1.1.1.1
      Rev: src/global.h:1.1.1.1
      Rev: src/hashtable.c:1.1.1.1
      Rev: src/hashtable.h:1.1.1.1
      Rev: src/install-sh:1.1.1.1
      Rev: src/interpret.c:1.1.1.1
      Rev: src/interpret.h:1.1.1.1
      Rev: src/language.y:1.1.1.1
      Rev: src/las.c:1.1.1.1
      Rev: src/las.h:1.1.1.1
      Rev: src/lex.c:1.1.1.1
      Rev: src/lex.h:1.1.1.1
      Rev: src/machine.h.in:1.1.1.1
      Rev: src/macros.h:1.1.1.1
      Rev: src/main.c:1.1.1.1
      Rev: src/main.h:1.1.1.1
      Rev: src/mapping.c:1.1.1.1
      Rev: src/mapping.h:1.1.1.1
      Rev: src/memory.c:1.1.1.1
      Rev: src/memory.h:1.1.1.1
      Rev: src/module.c:1.1.1.1
      Rev: src/module.h:1.1.1.1
      Rev: src/modules/.cvsignore:1.1.1.1
      Rev: src/modules/Makefile.src:1.1.1.1
      Rev: src/modules/call_out/.cvsignore:1.1.1.1
      Rev: src/modules/call_out/Makefile.src:1.1.1.1
      Rev: src/modules/call_out/call_out.c:1.1.1.1
      Rev: src/modules/call_out/configure.in:1.1.1.1
      Rev: src/modules/call_out/doc/call_out:1.1.1.1
      Rev: src/modules/call_out/doc/call_out_info:1.1.1.1
      Rev: src/modules/call_out/doc/find_call_out:1.1.1.1
      Rev: src/modules/call_out/doc/remove_call_out:1.1.1.1
      Rev: src/modules/configure.in:1.1.1.1
      Rev: src/modules/files/.cvsignore:1.1.1.1
      Rev: src/modules/files/Makefile.src:1.1.1.1
      Rev: src/modules/files/configure.in:1.1.1.1
      Rev: src/modules/files/datagram.c:1.1.1.1
      Rev: src/modules/files/doc/cd:1.1.1.1
      Rev: src/modules/files/doc/errno:1.1.1.1
      Rev: src/modules/files/doc/exece:1.1.1.1
      Rev: src/modules/files/doc/file:1.1.1.1
      Rev: src/modules/files/doc/file_stat:1.1.1.1
      Rev: src/modules/files/doc/fork:1.1.1.1
      Rev: src/modules/files/doc/get_dir:1.1.1.1
      Rev: src/modules/files/doc/getcwd:1.1.1.1
      Rev: src/modules/files/doc/mkdir:1.1.1.1
      Rev: src/modules/files/doc/mv:1.1.1.1
      Rev: src/modules/files/doc/port:1.1.1.1
      Rev: src/modules/files/doc/rm:1.1.1.1
      Rev: src/modules/files/doc/strerror:1.1.1.1
      Rev: src/modules/files/doc/werror:1.1.1.1
      Rev: src/modules/files/efuns.c:1.1.1.1
      Rev: src/modules/files/file.c:1.1.1.1
      Rev: src/modules/files/file.h:1.1.1.1
      Rev: src/modules/files/file_machine.h.in:1.1.1.1
      Rev: src/modules/files/socket.c:1.1.1.1
      Rev: src/modules/gdbmmod/.cvsignore:1.1.1.1
      Rev: src/modules/gdbmmod/Makefile.src:1.1.1.1
      Rev: src/modules/gdbmmod/configure.in:1.1.1.1
      Rev: src/modules/gdbmmod/doc/gdbm:1.1.1.1
      Rev: src/modules/gdbmmod/gdbm_machine.h.in:1.1.1.1
      Rev: src/modules/gdbmmod/gdbmmod.c:1.1.1.1
      Rev: src/modules/gmpmod/.cvsignore:1.1.1.1
      Rev: src/modules/gmpmod/Makefile.src:1.1.1.1
      Rev: src/modules/gmpmod/configure.in:1.1.1.1
      Rev: src/modules/gmpmod/doc/mpz:1.1.1.1
      Rev: src/modules/gmpmod/gmp_machine.h.in:1.1.1.1
      Rev: src/modules/gmpmod/mpz_glue.c:1.1.1.1
      Rev: src/modules/image/Makefile.in:1.1.1.1
      Rev: src/modules/image/Makefile.src:1.1.1.1
      Rev: src/modules/image/configure:1.1.1.1
      Rev: src/modules/image/configure.in:1.1.1.1
      Rev: src/modules/image/dependencies:1.1.1.1
      Rev: src/modules/image/doc.txt:1.1.1.1
      Rev: src/modules/image/doc/image.html:1.1.1.1
      Rev: src/modules/image/font.c:1.1.1.1
      Rev: src/modules/image/image.c:1.1.1.1
      Rev: src/modules/image/image.h:1.1.1.1
      Rev: src/modules/image/lzw.c:1.1.1.1
      Rev: src/modules/image/lzw.h:1.1.1.1
      Rev: src/modules/image/quant.c:1.1.1.1
      Rev: src/modules/image/togif.c:1.1.1.1
      Rev: src/modules/math/.cvsignore:1.1.1.1
      Rev: src/modules/math/Makefile.src:1.1.1.1
      Rev: src/modules/math/configure.in:1.1.1.1
      Rev: src/modules/math/doc/acos:1.1.1.1
      Rev: src/modules/math/doc/asin:1.1.1.1
      Rev: src/modules/math/doc/atan:1.1.1.1
      Rev: src/modules/math/doc/ceil:1.1.1.1
      Rev: src/modules/math/doc/cos:1.1.1.1
      Rev: src/modules/math/doc/exp:1.1.1.1
      Rev: src/modules/math/doc/floor:1.1.1.1
      Rev: src/modules/math/doc/log:1.1.1.1
      Rev: src/modules/math/doc/pow:1.1.1.1
      Rev: src/modules/math/doc/sin:1.1.1.1
      Rev: src/modules/math/doc/sqrt:1.1.1.1
      Rev: src/modules/math/doc/tan:1.1.1.1
      Rev: src/modules/math/math.c:1.1.1.1
      Rev: src/modules/module_dir_marker:1.1.1.1
      Rev: src/modules/pipe/Makefile.in:1.1.1.1
      Rev: src/modules/pipe/Makefile.src:1.1.1.1
      Rev: src/modules/pipe/config.h:1.1.1.1
      Rev: src/modules/pipe/configure:1.1.1.1
      Rev: src/modules/pipe/configure.in:1.1.1.1
      Rev: src/modules/pipe/dependencies:1.1.1.1
      Rev: src/modules/pipe/pipe.c:1.1.1.1
      Rev: src/modules/readlinemod/.cvsignore:1.1.1.1
      Rev: src/modules/readlinemod/Makefile.src:1.1.1.1
      Rev: src/modules/readlinemod/configure.in:1.1.1.1
      Rev: src/modules/readlinemod/doc/readline:1.1.1.1
      Rev: src/modules/readlinemod/readline_machine.h.in:1.1.1.1
      Rev: src/modules/readlinemod/readlinemod.c:1.1.1.1
      Rev: src/modules/regexp/.cvsignore:1.1.1.1
      Rev: src/modules/regexp/Makefile.src:1.1.1.1
      Rev: src/modules/regexp/configure.in:1.1.1.1
      Rev: src/modules/regexp/doc/regexp:1.1.1.1
      Rev: src/modules/regexp/glue.c:1.1.1.1
      Rev: src/modules/regexp/regexp.c:1.1.1.1
      Rev: src/modules/regexp/regexp.h:1.1.1.1
      Rev: src/modules/spider/Makefile.in:1.1.1.1
      Rev: src/modules/spider/Makefile.src:1.1.1.1
      Rev: src/modules/spider/configure:1.1.1.1
      Rev: src/modules/spider/configure.in:1.1.1.1
      Rev: src/modules/spider/defs.h:1.1.1.1
      Rev: src/modules/spider/dependencies:1.1.1.1
      Rev: src/modules/spider/discdate.c:1.1.1.1
      Rev: src/modules/spider/encode_decode.c:1.1.1.1
      Rev: src/modules/spider/http_parse.c:1.1.1.1
      Rev: src/modules/spider/lock.c:1.1.1.1
      Rev: src/modules/spider/lock.h:1.1.1.1
      Rev: src/modules/spider/sdebug.c:1.1.1.1
      Rev: src/modules/spider/shared_mem_mapping.c:1.1.1.1
      Rev: src/modules/spider/sharedmem.c:1.1.1.1
      Rev: src/modules/spider/sharedmem.h:1.1.1.1
      Rev: src/modules/spider/spider.c:1.1.1.1
      Rev: src/modules/spider/spider.h.in:1.1.1.1
      Rev: src/modules/spider/stardate.c:1.1.1.1
      Rev: src/modules/spider/streamed_parser.c:1.1.1.1
      Rev: src/modules/spider/streamed_parser.h:1.1.1.1
      Rev: src/modules/spider/tree.c:1.1.1.1
      Rev: src/modules/sprintf/.cvsignore:1.1.1.1
      Rev: src/modules/sprintf/Makefile.src:1.1.1.1
      Rev: src/modules/sprintf/configure.in:1.1.1.1
      Rev: src/modules/sprintf/doc/sprintf:1.1.1.1
      Rev: src/modules/sprintf/sprintf.c:1.1.1.1
      Rev: src/multiset.c:1.1.1.1
      Rev: src/multiset.h:1.1.1.1
      Rev: src/object.c:1.1.1.1
      Rev: src/object.h:1.1.1.1
      Rev: src/opcodes.c:1.1.1.1
      Rev: src/opcodes.h:1.1.1.1
      Rev: src/operators.c:1.1.1.1
      Rev: src/operators.h:1.1.1.1
      Rev: src/otable.h:1.1.1.1
      Rev: src/peep.c:1.1.1.1
      Rev: src/peep.h:1.1.1.1
      Rev: src/peep.in:1.1.1.1
      Rev: src/pike_types.c:1.1.1.1
      Rev: src/pike_types.h:1.1.1.1
      Rev: src/port.c:1.1.1.1
      Rev: src/port.h:1.1.1.1
      Rev: src/program.c:1.1.1.1
      Rev: src/program.h:1.1.1.1
      Rev: src/run_autoconfig:1.1.1.1
      Rev: src/rusage.c:1.1.1.1
      Rev: src/rusage.h:1.1.1.1
      Rev: src/signal_handler.c:1.1.1.1
      Rev: src/signal_handler.h:1.1.1.1
      Rev: src/stamp-h:1.1.1.1
      Rev: src/stralloc.c:1.1.1.1
      Rev: src/stralloc.h:1.1.1.1
      Rev: src/stuff.c:1.1.1.1
      Rev: src/stuff.h:1.1.1.1
      Rev: src/svalue.c:1.1.1.1
      Rev: src/svalue.h:1.1.1.1
      Rev: src/test/.cvsignore:1.1.1.1
      Rev: src/test/create_testsuite:1.1.1.1
      Rev: src/test/test_pike.pike:1.1.1.1
      Rev: src/time_stuff.h:1.1.1.1
      Rev: src/todo:1.1.1.1
      Rev: src/types.h:1.1.1.1
      Rev: src/ualarm.c:1.1.1.1
      06983fde
      History
      Pike
      Fredrik Hübinette (Hubbe) authored
      Rev: .cvsignore:1.1.1.1
      Rev: README:1.1.1.1
      Rev: bin/export.pike:1.1.1.1
      Rev: bin/fixdepends.sh:1.1.1.1
      Rev: bin/hilfe:1.1.1.1
      Rev: bin/htmlify_docs.pike:1.1.1.1
      Rev: bin/httpd.pike:1.1.1.1
      Rev: bin/metatest:1.1.1.1
      Rev: bin/mkpeep.pike:1.1.1.1
      Rev: bin/rsif:1.1.1.1
      Rev: doc/README:1.1.1.1
      Rev: doc/builtin/_verify_internals:1.1.1.1
      Rev: doc/builtin/add_constant:1.1.1.1
      Rev: doc/builtin/aggregage_multiset:1.1.1.1
      Rev: doc/builtin/aggregate:1.1.1.1
      Rev: doc/builtin/aggregate_mapping:1.1.1.1
      Rev: doc/builtin/alarm:1.1.1.1
      Rev: doc/builtin/all_constants:1.1.1.1
      Rev: doc/builtin/allocate:1.1.1.1
      Rev: doc/builtin/arrayp:1.1.1.1
      Rev: doc/builtin/backtrace:1.1.1.1
      Rev: doc/builtin/call_function:1.1.1.1
      Rev: doc/builtin/clone:1.1.1.1
      Rev: doc/builtin/column:1.1.1.1
      Rev: doc/builtin/combine_path:1.1.1.1
      Rev: doc/builtin/compile_file:1.1.1.1
      Rev: doc/builtin/compile_string:1.1.1.1
      Rev: doc/builtin/copy_value:1.1.1.1
      Rev: doc/builtin/crypt:1.1.1.1
      Rev: doc/builtin/ctime:1.1.1.1
      Rev: doc/builtin/destruct:1.1.1.1
      Rev: doc/builtin/equal:1.1.1.1
      Rev: doc/builtin/exit:1.1.1.1
      Rev: doc/builtin/floatp:1.1.1.1
      Rev: doc/builtin/function_name:1.1.1.1
      Rev: doc/builtin/function_object:1.1.1.1
      Rev: doc/builtin/functionp:1.1.1.1
      Rev: doc/builtin/gc:1.1.1.1
      Rev: doc/builtin/getpid:1.1.1.1
      Rev: doc/builtin/glob:1.1.1.1
      Rev: doc/builtin/hash:1.1.1.1
      Rev: doc/builtin/indices:1.1.1.1
      Rev: doc/builtin/intp:1.1.1.1
      Rev: doc/builtin/kill:1.1.1.1
      Rev: doc/builtin/localtime:1.1.1.1
      Rev: doc/builtin/lower_case:1.1.1.1
      Rev: doc/builtin/m_delete:1.1.1.1
      Rev: doc/builtin/mappingp:1.1.1.1
      Rev: doc/builtin/mkmapping:1.1.1.1
      Rev: doc/builtin/multisetp:1.1.1.1
      Rev: doc/builtin/next_object:1.1.1.1
      Rev: doc/builtin/object_program:1.1.1.1
      Rev: doc/builtin/objectp:1.1.1.1
      Rev: doc/builtin/programp:1.1.1.1
      Rev: doc/builtin/query_host_name:1.1.1.1
      Rev: doc/builtin/query_num_arg:1.1.1.1
      Rev: doc/builtin/random:1.1.1.1
      Rev: doc/builtin/random_seed:1.1.1.1
      Rev: doc/builtin/replace:1.1.1.1
      Rev: doc/builtin/reverse:1.1.1.1
      Rev: doc/builtin/rows:1.1.1.1
      Rev: doc/builtin/rusage:1.1.1.1
      Rev: doc/builtin/search:1.1.1.1
      Rev: doc/builtin/signal:1.1.1.1
      Rev: doc/builtin/signame:1.1.1.1
      Rev: doc/builtin/signum:1.1.1.1
      Rev: doc/builtin/sizeof:1.1.1.1
      Rev: doc/builtin/sleep:1.1.1.1
      Rev: doc/builtin/sort:1.1.1.1
      Rev: doc/builtin/stringp:1.1.1.1
      Rev: doc/builtin/this_object:1.1.1.1
      Rev: doc/builtin/throw:1.1.1.1
      Rev: doc/builtin/time:1.1.1.1
      Rev: doc/builtin/trace:1.1.1.1
      Rev: doc/builtin/ualarm:1.1.1.1
      Rev: doc/builtin/upper_case:1.1.1.1
      Rev: doc/builtin/values:1.1.1.1
      Rev: doc/builtin/zero_type:1.1.1.1
      Rev: doc/index.bmml:1.1.1.1
      Rev: doc/manual/example1:1.1.1.1
      Rev: doc/manual/example2:1.1.1.1
      Rev: doc/manual/example3:1.1.1.1
      Rev: doc/manual/tutorial:1.1.1.1
      Rev: doc/operators/and:1.1.1.1
      Rev: doc/operators/complement:1.1.1.1
      Rev: doc/operators/divide:1.1.1.1
      Rev: doc/operators/index:1.1.1.1
      Rev: doc/operators/is_equal:1.1.1.1
      Rev: doc/operators/is_greater_or_equal:1.1.1.1
      Rev: doc/operators/is_greater_than:1.1.1.1
      Rev: doc/operators/is_lesser_or_equal:1.1.1.1
      Rev: doc/operators/is_lesser_than:1.1.1.1
      Rev: doc/operators/logical_and:1.1.1.1
      Rev: doc/operators/logical_or:1.1.1.1
      Rev: doc/operators/minus:1.1.1.1
      Rev: doc/operators/modulo:1.1.1.1
      Rev: doc/operators/mult:1.1.1.1
      Rev: doc/operators/not:1.1.1.1
      Rev: doc/operators/not_equal:1.1.1.1
      Rev: doc/operators/operators:1.1.1.1
      Rev: doc/operators/or:1.1.1.1
      Rev: doc/operators/plus:1.1.1.1
      Rev: doc/operators/range:1.1.1.1
      Rev: doc/operators/shift_left:1.1.1.1
      Rev: doc/operators/shift_right:1.1.1.1
      Rev: doc/operators/xor:1.1.1.1
      Rev: doc/pike/all.bmml:1.1.1.1
      Rev: doc/pike/cast:1.1.1.1
      Rev: doc/pike/catch:1.1.1.1
      Rev: doc/pike/class:1.1.1.1
      Rev: doc/pike/command_line_options:1.1.1.1
      Rev: doc/pike/control_structures/break:1.1.1.1
      Rev: doc/pike/control_structures/catch:1.1.1.1
      Rev: doc/pike/control_structures/continue:1.1.1.1
      Rev: doc/pike/control_structures/do-while:1.1.1.1
      Rev: doc/pike/control_structures/for:1.1.1.1
      Rev: doc/pike/control_structures/foreach:1.1.1.1
      Rev: doc/pike/control_structures/if-else:1.1.1.1
      Rev: doc/pike/control_structures/return:1.1.1.1
      Rev: doc/pike/control_structures/switch:1.1.1.1
      Rev: doc/pike/control_structures/while:1.1.1.1
      Rev: doc/pike/efuns.bmml:1.1.1.1
      Rev: doc/pike/functions:1.1.1.1
      Rev: doc/pike/gauge:1.1.1.1
      Rev: doc/pike/hilfe:1.1.1.1
      Rev: doc/pike/how_to_make_modules:1.1.1.1
      Rev: doc/pike/inherit:1.1.1.1
      Rev: doc/pike/lambda:1.1.1.1
      Rev: doc/pike/modifier:1.1.1.1
      Rev: doc/pike/preprocessor:1.1.1.1
      Rev: doc/pike/reserved.bmml:1.1.1.1
      Rev: doc/pike/sscanf:1.1.1.1
      Rev: doc/pike/typeof:1.1.1.1
      Rev: doc/pike/variables:1.1.1.1
      Rev: doc/simulated/PI:1.1.1.1
      Rev: doc/simulated/add_efun:1.1.1.1
      Rev: doc/simulated/aggregage_list:1.1.1.1
      Rev: doc/simulated/all_efuns:1.1.1.1
      Rev: doc/simulated/capitalize:1.1.1.1
      Rev: doc/simulated/describe_backtrace:1.1.1.1
      Rev: doc/simulated/exec:1.1.1.1
      Rev: doc/simulated/explode:1.1.1.1
      Rev: doc/simulated/file_size:1.1.1.1
      Rev: doc/simulated/filter:1.1.1.1
      Rev: doc/simulated/filter_array:1.1.1.1
      Rev: doc/simulated/get_function:1.1.1.1
      Rev: doc/simulated/getenv:1.1.1.1
      Rev: doc/simulated/implode:1.1.1.1
      Rev: doc/simulated/l_sizeof:1.1.1.1
      Rev: doc/simulated/listp:1.1.1.1
      Rev: doc/simulated/m_indices:1.1.1.1
      Rev: doc/simulated/m_sizeof:1.1.1.1
      Rev: doc/simulated/m_values:1.1.1.1
      Rev: doc/simulated/map:1.1.1.1
      Rev: doc/simulated/map_array:1.1.1.1
      Rev: doc/simulated/master:1.1.1.1
      Rev: doc/simulated/member_array:1.1.1.1
      Rev: doc/simulated/mklist:1.1.1.1
      Rev: doc/simulated/mkmultiset:1.1.1.1
      Rev: doc/simulated/perror:1.1.1.1
      Rev: doc/simulated/popen:1.1.1.1
      Rev: doc/simulated/previous_object:1.1.1.1
      Rev: doc/simulated/putenv:1.1.1.1
      Rev: doc/simulated/read_bytes:1.1.1.1
      Rev: doc/simulated/regexp:1.1.1.1
      Rev: doc/simulated/search_array:1.1.1.1
      Rev: doc/simulated/sort_array:1.1.1.1
      Rev: doc/simulated/spawn:1.1.1.1
      Rev: doc/simulated/strlen:1.1.1.1
      Rev: doc/simulated/strstr:1.1.1.1
      Rev: doc/simulated/sum:1.1.1.1
      Rev: doc/simulated/sum_arrays:1.1.1.1
      Rev: doc/simulated/system:1.1.1.1
      Rev: doc/simulated/this_function:1.1.1.1
      Rev: doc/simulated/version:1.1.1.1
      Rev: doc/simulated/write:1.1.1.1
      Rev: doc/simulated/write_file:1.1.1.1
      Rev: doc/types/array:1.1.1.1
      Rev: doc/types/float:1.1.1.1
      Rev: doc/types/function:1.1.1.1
      Rev: doc/types/int:1.1.1.1
      Rev: doc/types/mapping:1.1.1.1
      Rev: doc/types/mixed:1.1.1.1
      Rev: doc/types/multiset:1.1.1.1
      Rev: doc/types/object:1.1.1.1
      Rev: doc/types/program:1.1.1.1
      Rev: doc/types/string:1.1.1.1
      Rev: lib/include/array.h:1.1.1.1
      Rev: lib/include/array.pre.pike:1.1.1.1
      Rev: lib/include/process.h:1.1.1.1
      Rev: lib/include/process.pre.pike:1.1.1.1
      Rev: lib/include/simulate.h:1.1.1.1
      Rev: lib/include/simulate.pre.pike:1.1.1.1
      Rev: lib/include/stdio.h:1.1.1.1
      Rev: lib/include/stdio.pre.pike:1.1.1.1
      Rev: lib/master.pike:1.1.1.1
      Rev: src/.cvsignore:1.1.1.1
      Rev: src/BUGS:1.1.1.1
      Rev: src/COPYING:1.1.1.1
      Rev: src/COPYRIGHT:1.1.1.1
      Rev: src/ChangeLog:1.1.1.1
      Rev: src/DISCLAIMER:1.1.1.1
      Rev: src/Makefile.src:1.1.1.1
      Rev: src/README:1.1.1.1
      Rev: src/alloca.c:1.1.1.1
      Rev: src/array.c:1.1.1.1
      Rev: src/array.h:1.1.1.1
      Rev: src/backend.c:1.1.1.1
      Rev: src/backend.h:1.1.1.1
      Rev: src/build_modlist_h:1.1.1.1
      Rev: src/builtin_functions.c:1.1.1.1
      Rev: src/builtin_functions.h:1.1.1.1
      Rev: src/callback.c:1.1.1.1
      Rev: src/callback.h:1.1.1.1
      Rev: src/compilation.h:1.1.1.1
      Rev: src/config.cache:1.1.1.1
      Rev: src/config.h:1.1.1.1
      Rev: src/config.log:1.1.1.1
      Rev: src/configure.in:1.1.1.1
      Rev: src/constants.c:1.1.1.1
      Rev: src/constants.h:1.1.1.1
      Rev: src/docode.c:1.1.1.1
      Rev: src/docode.h:1.1.1.1
      Rev: src/dynamic_buffer.c:1.1.1.1
      Rev: src/dynamic_buffer.h:1.1.1.1
      Rev: src/efun.h:1.1.1.1
      Rev: src/error.c:1.1.1.1
      Rev: src/error.h:1.1.1.1
      Rev: src/fd_control.c:1.1.1.1
      Rev: src/fd_control.h:1.1.1.1
      Rev: src/fsort.c:1.1.1.1
      Rev: src/fsort.h:1.1.1.1
      Rev: src/gc.c:1.1.1.1
      Rev: src/gc.h:1.1.1.1
      Rev: src/global.h:1.1.1.1
      Rev: src/hashtable.c:1.1.1.1
      Rev: src/hashtable.h:1.1.1.1
      Rev: src/install-sh:1.1.1.1
      Rev: src/interpret.c:1.1.1.1
      Rev: src/interpret.h:1.1.1.1
      Rev: src/language.y:1.1.1.1
      Rev: src/las.c:1.1.1.1
      Rev: src/las.h:1.1.1.1
      Rev: src/lex.c:1.1.1.1
      Rev: src/lex.h:1.1.1.1
      Rev: src/machine.h.in:1.1.1.1
      Rev: src/macros.h:1.1.1.1
      Rev: src/main.c:1.1.1.1
      Rev: src/main.h:1.1.1.1
      Rev: src/mapping.c:1.1.1.1
      Rev: src/mapping.h:1.1.1.1
      Rev: src/memory.c:1.1.1.1
      Rev: src/memory.h:1.1.1.1
      Rev: src/module.c:1.1.1.1
      Rev: src/module.h:1.1.1.1
      Rev: src/modules/.cvsignore:1.1.1.1
      Rev: src/modules/Makefile.src:1.1.1.1
      Rev: src/modules/call_out/.cvsignore:1.1.1.1
      Rev: src/modules/call_out/Makefile.src:1.1.1.1
      Rev: src/modules/call_out/call_out.c:1.1.1.1
      Rev: src/modules/call_out/configure.in:1.1.1.1
      Rev: src/modules/call_out/doc/call_out:1.1.1.1
      Rev: src/modules/call_out/doc/call_out_info:1.1.1.1
      Rev: src/modules/call_out/doc/find_call_out:1.1.1.1
      Rev: src/modules/call_out/doc/remove_call_out:1.1.1.1
      Rev: src/modules/configure.in:1.1.1.1
      Rev: src/modules/files/.cvsignore:1.1.1.1
      Rev: src/modules/files/Makefile.src:1.1.1.1
      Rev: src/modules/files/configure.in:1.1.1.1
      Rev: src/modules/files/datagram.c:1.1.1.1
      Rev: src/modules/files/doc/cd:1.1.1.1
      Rev: src/modules/files/doc/errno:1.1.1.1
      Rev: src/modules/files/doc/exece:1.1.1.1
      Rev: src/modules/files/doc/file:1.1.1.1
      Rev: src/modules/files/doc/file_stat:1.1.1.1
      Rev: src/modules/files/doc/fork:1.1.1.1
      Rev: src/modules/files/doc/get_dir:1.1.1.1
      Rev: src/modules/files/doc/getcwd:1.1.1.1
      Rev: src/modules/files/doc/mkdir:1.1.1.1
      Rev: src/modules/files/doc/mv:1.1.1.1
      Rev: src/modules/files/doc/port:1.1.1.1
      Rev: src/modules/files/doc/rm:1.1.1.1
      Rev: src/modules/files/doc/strerror:1.1.1.1
      Rev: src/modules/files/doc/werror:1.1.1.1
      Rev: src/modules/files/efuns.c:1.1.1.1
      Rev: src/modules/files/file.c:1.1.1.1
      Rev: src/modules/files/file.h:1.1.1.1
      Rev: src/modules/files/file_machine.h.in:1.1.1.1
      Rev: src/modules/files/socket.c:1.1.1.1
      Rev: src/modules/gdbmmod/.cvsignore:1.1.1.1
      Rev: src/modules/gdbmmod/Makefile.src:1.1.1.1
      Rev: src/modules/gdbmmod/configure.in:1.1.1.1
      Rev: src/modules/gdbmmod/doc/gdbm:1.1.1.1
      Rev: src/modules/gdbmmod/gdbm_machine.h.in:1.1.1.1
      Rev: src/modules/gdbmmod/gdbmmod.c:1.1.1.1
      Rev: src/modules/gmpmod/.cvsignore:1.1.1.1
      Rev: src/modules/gmpmod/Makefile.src:1.1.1.1
      Rev: src/modules/gmpmod/configure.in:1.1.1.1
      Rev: src/modules/gmpmod/doc/mpz:1.1.1.1
      Rev: src/modules/gmpmod/gmp_machine.h.in:1.1.1.1
      Rev: src/modules/gmpmod/mpz_glue.c:1.1.1.1
      Rev: src/modules/image/Makefile.in:1.1.1.1
      Rev: src/modules/image/Makefile.src:1.1.1.1
      Rev: src/modules/image/configure:1.1.1.1
      Rev: src/modules/image/configure.in:1.1.1.1
      Rev: src/modules/image/dependencies:1.1.1.1
      Rev: src/modules/image/doc.txt:1.1.1.1
      Rev: src/modules/image/doc/image.html:1.1.1.1
      Rev: src/modules/image/font.c:1.1.1.1
      Rev: src/modules/image/image.c:1.1.1.1
      Rev: src/modules/image/image.h:1.1.1.1
      Rev: src/modules/image/lzw.c:1.1.1.1
      Rev: src/modules/image/lzw.h:1.1.1.1
      Rev: src/modules/image/quant.c:1.1.1.1
      Rev: src/modules/image/togif.c:1.1.1.1
      Rev: src/modules/math/.cvsignore:1.1.1.1
      Rev: src/modules/math/Makefile.src:1.1.1.1
      Rev: src/modules/math/configure.in:1.1.1.1
      Rev: src/modules/math/doc/acos:1.1.1.1
      Rev: src/modules/math/doc/asin:1.1.1.1
      Rev: src/modules/math/doc/atan:1.1.1.1
      Rev: src/modules/math/doc/ceil:1.1.1.1
      Rev: src/modules/math/doc/cos:1.1.1.1
      Rev: src/modules/math/doc/exp:1.1.1.1
      Rev: src/modules/math/doc/floor:1.1.1.1
      Rev: src/modules/math/doc/log:1.1.1.1
      Rev: src/modules/math/doc/pow:1.1.1.1
      Rev: src/modules/math/doc/sin:1.1.1.1
      Rev: src/modules/math/doc/sqrt:1.1.1.1
      Rev: src/modules/math/doc/tan:1.1.1.1
      Rev: src/modules/math/math.c:1.1.1.1
      Rev: src/modules/module_dir_marker:1.1.1.1
      Rev: src/modules/pipe/Makefile.in:1.1.1.1
      Rev: src/modules/pipe/Makefile.src:1.1.1.1
      Rev: src/modules/pipe/config.h:1.1.1.1
      Rev: src/modules/pipe/configure:1.1.1.1
      Rev: src/modules/pipe/configure.in:1.1.1.1
      Rev: src/modules/pipe/dependencies:1.1.1.1
      Rev: src/modules/pipe/pipe.c:1.1.1.1
      Rev: src/modules/readlinemod/.cvsignore:1.1.1.1
      Rev: src/modules/readlinemod/Makefile.src:1.1.1.1
      Rev: src/modules/readlinemod/configure.in:1.1.1.1
      Rev: src/modules/readlinemod/doc/readline:1.1.1.1
      Rev: src/modules/readlinemod/readline_machine.h.in:1.1.1.1
      Rev: src/modules/readlinemod/readlinemod.c:1.1.1.1
      Rev: src/modules/regexp/.cvsignore:1.1.1.1
      Rev: src/modules/regexp/Makefile.src:1.1.1.1
      Rev: src/modules/regexp/configure.in:1.1.1.1
      Rev: src/modules/regexp/doc/regexp:1.1.1.1
      Rev: src/modules/regexp/glue.c:1.1.1.1
      Rev: src/modules/regexp/regexp.c:1.1.1.1
      Rev: src/modules/regexp/regexp.h:1.1.1.1
      Rev: src/modules/spider/Makefile.in:1.1.1.1
      Rev: src/modules/spider/Makefile.src:1.1.1.1
      Rev: src/modules/spider/configure:1.1.1.1
      Rev: src/modules/spider/configure.in:1.1.1.1
      Rev: src/modules/spider/defs.h:1.1.1.1
      Rev: src/modules/spider/dependencies:1.1.1.1
      Rev: src/modules/spider/discdate.c:1.1.1.1
      Rev: src/modules/spider/encode_decode.c:1.1.1.1
      Rev: src/modules/spider/http_parse.c:1.1.1.1
      Rev: src/modules/spider/lock.c:1.1.1.1
      Rev: src/modules/spider/lock.h:1.1.1.1
      Rev: src/modules/spider/sdebug.c:1.1.1.1
      Rev: src/modules/spider/shared_mem_mapping.c:1.1.1.1
      Rev: src/modules/spider/sharedmem.c:1.1.1.1
      Rev: src/modules/spider/sharedmem.h:1.1.1.1
      Rev: src/modules/spider/spider.c:1.1.1.1
      Rev: src/modules/spider/spider.h.in:1.1.1.1
      Rev: src/modules/spider/stardate.c:1.1.1.1
      Rev: src/modules/spider/streamed_parser.c:1.1.1.1
      Rev: src/modules/spider/streamed_parser.h:1.1.1.1
      Rev: src/modules/spider/tree.c:1.1.1.1
      Rev: src/modules/sprintf/.cvsignore:1.1.1.1
      Rev: src/modules/sprintf/Makefile.src:1.1.1.1
      Rev: src/modules/sprintf/configure.in:1.1.1.1
      Rev: src/modules/sprintf/doc/sprintf:1.1.1.1
      Rev: src/modules/sprintf/sprintf.c:1.1.1.1
      Rev: src/multiset.c:1.1.1.1
      Rev: src/multiset.h:1.1.1.1
      Rev: src/object.c:1.1.1.1
      Rev: src/object.h:1.1.1.1
      Rev: src/opcodes.c:1.1.1.1
      Rev: src/opcodes.h:1.1.1.1
      Rev: src/operators.c:1.1.1.1
      Rev: src/operators.h:1.1.1.1
      Rev: src/otable.h:1.1.1.1
      Rev: src/peep.c:1.1.1.1
      Rev: src/peep.h:1.1.1.1
      Rev: src/peep.in:1.1.1.1
      Rev: src/pike_types.c:1.1.1.1
      Rev: src/pike_types.h:1.1.1.1
      Rev: src/port.c:1.1.1.1
      Rev: src/port.h:1.1.1.1
      Rev: src/program.c:1.1.1.1
      Rev: src/program.h:1.1.1.1
      Rev: src/run_autoconfig:1.1.1.1
      Rev: src/rusage.c:1.1.1.1
      Rev: src/rusage.h:1.1.1.1
      Rev: src/signal_handler.c:1.1.1.1
      Rev: src/signal_handler.h:1.1.1.1
      Rev: src/stamp-h:1.1.1.1
      Rev: src/stralloc.c:1.1.1.1
      Rev: src/stralloc.h:1.1.1.1
      Rev: src/stuff.c:1.1.1.1
      Rev: src/stuff.h:1.1.1.1
      Rev: src/svalue.c:1.1.1.1
      Rev: src/svalue.h:1.1.1.1
      Rev: src/test/.cvsignore:1.1.1.1
      Rev: src/test/create_testsuite:1.1.1.1
      Rev: src/test/test_pike.pike:1.1.1.1
      Rev: src/time_stuff.h:1.1.1.1
      Rev: src/todo:1.1.1.1
      Rev: src/types.h:1.1.1.1
      Rev: src/ualarm.c:1.1.1.1
    callback.c 4.71 KiB
    /*\
    ||| This file a part of Pike, and is copyright by Fredrik Hubinette
    ||| Pike is distributed as GPL (General Public License)
    ||| See the files COPYING and DISCLAIMER for more information.
    \*/
    #include "global.h"
    #include "pike_macros.h"
    #include "callback.h"
    #include "error.h"
    #include "block_alloc.h"
    
    RCSID("$Id: callback.c,v 1.15 1998/11/22 11:02:36 hubbe Exp $");
    
    struct callback_list fork_child_callback;
    
    /*
     * This file is used to simplify the management of callbacks when certain
     * events occur. The callbacks are managed as linked lists, allocated in
     * chunks.
     */
    
    /* FIXME: free all chunks of memory at exit */
    
    struct callback
    {
      struct callback *next;
      callback_func call;
      callback_func free_func;
      void *arg;
    };
    
    #define CALLBACK_CHUNK 128
    #ifdef PIKE_DEBUG
    #undef PRE_INIT_BLOCK
    #define PRE_INIT_BLOCK(X) X->free_func=(callback_func)remove_callback;
    #endif
    BLOCK_ALLOC(callback, CALLBACK_CHUNK)
    
    
    #ifdef PIKE_DEBUG
    extern int d_flag;
    
    static int is_in_free_list(struct callback * c)
    {
      struct callback *foo;
      int e;
      for(foo=free_callbacks;foo;foo=foo->next)
        if(foo==c)
          return 1;
    
      return 0;
    }
    
    static void check_callback_chain(struct callback_list *lst)
    {
      int e,len=0;
      struct callback_block *tmp;
      struct callback *foo;
      if(d_flag>1)
      {
        for(foo=lst->callbacks;foo;foo=foo->next)
        {
          if((len & 1024)==1023)
          {
    	int len2=0;
    	struct callback *tmp;
    	for(tmp=foo->next;tmp && len2<=len;tmp=tmp->next)
    	{
    	  if(tmp==foo)
    	    fatal("Callback list is cyclic!!!\n");
    	}
          }
          len++;
        }
        
        for(tmp=callback_blocks;tmp;tmp=tmp->next)
        {
          for(e=0;e<CALLBACK_CHUNK;e++)
          {
    	int d;
    	struct callback_block *tmp2;
    	
    	if(tmp->x[e].free_func == (callback_func)remove_callback)
    	{
    	  if(!is_in_free_list(tmp->x+e))
    	    fatal("Lost track of a struct callback!\n");
    
    	  if(tmp->x[e].next &&
    	     !is_in_free_list(tmp->x[e].next))
    	    fatal("Free callback has next in Z'ha'dum!\n");
    
    	}else{
    	  if(is_in_free_list(tmp->x[e].next))
    	    fatal("Non-free callback has next in free list!\n");
    	}
    	
    	if(tmp->x[e].next)
    	{
    	  d=CALLBACK_CHUNK;
    	  for(tmp2=callback_blocks;tmp2;tmp2=tmp2->next)
    	  {
    	    for(d=0;d<CALLBACK_CHUNK;d++)
    	    {
    	      if(tmp2->x+d == tmp->x[e].next)
    		break;
    	      
    	      if(d < CALLBACK_CHUNK) break;
    	    }
    	  }
    	  
    	  if(d == CALLBACK_CHUNK)
    	    fatal("Callback next pointer pointing to Z'ha'dum\n");
    	}
          }
        }
      }
    }
    #else
    #define check_callback_chain(X)
    #endif
    
    /* Return the first free callback struct, allocate more if needed */
    
    
    /* Traverse a linked list of callbacks and call all the active callbacks
     * in the list. Deactivated callbacks are freed and placed in the free list.
     */
    void call_callback(struct callback_list *lst, void *arg)
    {
      int this_call;
      struct callback *l,**ptr;
    
      lst->num_calls++;
      this_call=lst->num_calls;
    
      check_callback_chain(lst);
      ptr=&lst->callbacks;
      while((l=*ptr))
      {
        if(l->call)
        {
          l->call(l,l->arg, arg);
          if(lst->num_calls != this_call) return;
        }
    
        if(!l->call)
        {
          if(l->free_func)
    	l->free_func(l, l->arg, 0);
    
          while(*ptr != l)
          {
    	ptr=&(ptr[0]->next);
    	if(!*ptr)
    	{
    	  /* We totally failed to find where we are in the linked list.. */
    	  fatal("Callback linked list breakdown.\n");
    	}
          }
    
          *ptr=l->next;
          free_callback(l);
    
    #ifdef PIKE_DEBUG
          l->free_func=(callback_func)remove_callback;
    #endif
        }else{
          ptr=& l->next;
        }
        check_callback_chain(lst);
      }
    }
    
    /* Add a callback to the linked list pointed to by ptr. */
    struct callback *add_to_callback(struct callback_list *lst,
    				 callback_func call,
    				 void *arg,
    				 callback_func free_func)
    {
      struct callback *l;
      l=alloc_callback();
      l->call=call;
      l->arg=arg;
      l->free_func=free_func;
    
      l->next=lst->callbacks;
      lst->callbacks=l;
    
      check_callback_chain(lst);
    
      return l;
    }
    
    /* This function deactivates a callback.
     * It is not actually freed until next time this callback is "called"
     */
    void *remove_callback(struct callback *l)
    {
      l->call=0;
      l->free_func=0;
      return l->arg;
    }
    
    /* Free all the callbacks in a linked list of callbacks */
    void free_callback_list(struct callback_list *lst)
    {
      struct callback *l,**ptr;
      check_callback_chain(lst);
      ptr=& lst->callbacks;
      while((l=*ptr))
      {
        if(l->free_func)
          l->free_func(l, l->arg, 0);
        *ptr=l->next;
        free_callback(l);
      }
    }
    
    void cleanup_callbacks(void)
    {
      free_all_callback_blocks();
    }
    
    
    void count_memory_in_callbacks(INT32 *num_, INT32 *size_)
    {
      INT32 num=0, size=0;
      struct callback_block *tmp;
      struct callback *tmp2;
      for(tmp=callback_blocks;tmp;tmp=tmp->next)
      {
        num+=CALLBACK_CHUNK;
        size+=sizeof(struct callback_block);
      }
      for(tmp2=free_callbacks;tmp2;tmp2=tmp2->next) num--;
      *num_=num;
      *size_=size;
    }