Skip to content
Snippets Groups Projects
Select Git revision
  • 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.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
  • v8.0.1964
40 results

fsort.c

Blame
    • Fredrik Hübinette (Hubbe)'s avatar
      5267b743
      ulpc dist · 5267b743
      Fredrik Hübinette (Hubbe) authored
      Rev: bin/create_testsuite:1.1.1.1
      Rev: bin/hilfe.lpc:1.1.1.1
      Rev: bin/rsif:1.1.1.1
      Rev: bin/uhttpd.lpc:1.1.1.1
      Rev: doc/README:1.1.1.1
      Rev: doc/builtin/aggregate:1.1.1.1
      Rev: doc/builtin/aggregate_list:1.1.1.1
      Rev: doc/builtin/aggregate_mapping:1.1.1.1
      Rev: doc/builtin/all_efuns: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/call_out:1.1.1.1
      Rev: doc/builtin/call_out_info:1.1.1.1
      Rev: doc/builtin/catch:1.1.1.1
      Rev: doc/builtin/clone: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/explode:1.1.1.1
      Rev: doc/builtin/find_call_out: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/hash:1.1.1.1
      Rev: doc/builtin/implode:1.1.1.1
      Rev: doc/builtin/indices:1.1.1.1
      Rev: doc/builtin/intp:1.1.1.1
      Rev: doc/builtin/listp: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/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/regexpp:1.1.1.1
      Rev: doc/builtin/remove_call_out:1.1.1.1
      Rev: doc/builtin/replace:1.1.1.1
      Rev: doc/builtin/reverse:1.1.1.1
      Rev: doc/builtin/rusage:1.1.1.1
      Rev: doc/builtin/search:1.1.1.1
      Rev: doc/builtin/sizeof:1.1.1.1
      Rev: doc/builtin/sscanf:1.1.1.1
      Rev: doc/builtin/stringp:1.1.1.1
      Rev: doc/builtin/sum: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/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/files/cd:1.1.1.1
      Rev: doc/files/exec:1.1.1.1
      Rev: doc/files/file:1.1.1.1
      Rev: doc/files/file_stat:1.1.1.1
      Rev: doc/files/fork:1.1.1.1
      Rev: doc/files/get_dir:1.1.1.1
      Rev: doc/files/getcwd:1.1.1.1
      Rev: doc/files/mkdir:1.1.1.1
      Rev: doc/files/mv:1.1.1.1
      Rev: doc/files/perror:1.1.1.1
      Rev: doc/files/port:1.1.1.1
      Rev: doc/files/rm:1.1.1.1
      Rev: doc/lpc/command_line_options:1.1.1.1
      Rev: doc/lpc/control_structures:1.1.1.1
      Rev: doc/lpc/hilfe.hilfe:1.1.1.1
      Rev: doc/lpc/how_to_make_modules:1.1.1.1
      Rev: doc/manual/i-overview.html:1.1.1.1
      Rev: doc/manual/index.html:1.1.1.1
      Rev: doc/manual/t-hello.html:1.1.1.1
      Rev: doc/manual/ulpc-inside3.gif:1.1.1.1
      Rev: doc/math/acos:1.1.1.1
      Rev: doc/math/asin:1.1.1.1
      Rev: doc/math/atan:1.1.1.1
      Rev: doc/math/ceil:1.1.1.1
      Rev: doc/math/cos:1.1.1.1
      Rev: doc/math/exp:1.1.1.1
      Rev: doc/math/floor:1.1.1.1
      Rev: doc/math/log:1.1.1.1
      Rev: doc/math/pow:1.1.1.1
      Rev: doc/math/sin:1.1.1.1
      Rev: doc/math/sqrt:1.1.1.1
      Rev: doc/math/tan:1.1.1.1
      Rev: doc/operators/addition:1.1.1.1
      Rev: doc/regexp/regexp:1.1.1.1
      Rev: doc/simulated/PI:1.1.1.1
      Rev: doc/simulated/capitalize:1.1.1.1
      Rev: doc/simulated/code_value:1.1.1.1
      Rev: doc/simulated/describe_backtrace:1.1.1.1
      Rev: doc/simulated/file_size: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/l_sizeof: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_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/popen:1.1.1.1
      Rev: doc/simulated/previous_object: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_arrays:1.1.1.1
      Rev: doc/simulated/this_function:1.1.1.1
      Rev: doc/simulated/write:1.1.1.1
      Rev: doc/simulated/write_file:1.1.1.1
      Rev: doc/sprintf/sprintf: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/list:1.1.1.1
      Rev: doc/types/mapping: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/conftest.h:1.1.1.1
      Rev: lib/master.lpc:1.1.1.1
      Rev: lib/simulate.lpc:1.1.1.1
      Rev: lib/testsuite.lpc: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/DISCLAIMER:1.1.1.1
      Rev: src/Makefile.in:1.1.1.1
      Rev: src/README:1.1.1.1
      Rev: src/add_efun.c:1.1.1.1
      Rev: src/add_efun.h: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/builtin_efuns.c:1.1.1.1
      Rev: src/builtin_efuns.h:1.1.1.1
      Rev: src/call_out.c:1.1.1.1
      Rev: src/call_out.h:1.1.1.1
      Rev: src/callback.c:1.1.1.1
      Rev: src/callback.h:1.1.1.1
      Rev: src/config.h:1.1.1.1
      Rev: src/configure.in:1.1.1.1
      Rev: src/debug.c:1.1.1.1
      Rev: src/debug.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/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/list.c:1.1.1.1
      Rev: src/list.h:1.1.1.1
      Rev: src/lpc_types.c:1.1.1.1
      Rev: src/lpc_types.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/efuns.c:1.1.1.1
      Rev: src/modules/files/Makefile.in: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/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/math/Makefile.in:1.1.1.1
      Rev: src/modules/math/configure.in:1.1.1.1
      Rev: src/modules/math/math.c:1.1.1.1
      Rev: src/modules/regexp/Makefile.in:1.1.1.1
      Rev: src/modules/regexp/configure.in: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/sprintf/Makefile.in:1.1.1.1
      Rev: src/modules/sprintf/configure.in:1.1.1.1
      Rev: src/modules/sprintf/sprintf.c: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/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/rusage.c:1.1.1.1
      Rev: src/rusage.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/todo:1.1.1.1
      Rev: src/types.h:1.1.1.1
      Rev: src/ualarm.c:1.1.1.1
      5267b743
      History
      ulpc dist
      Fredrik Hübinette (Hubbe) authored
      Rev: bin/create_testsuite:1.1.1.1
      Rev: bin/hilfe.lpc:1.1.1.1
      Rev: bin/rsif:1.1.1.1
      Rev: bin/uhttpd.lpc:1.1.1.1
      Rev: doc/README:1.1.1.1
      Rev: doc/builtin/aggregate:1.1.1.1
      Rev: doc/builtin/aggregate_list:1.1.1.1
      Rev: doc/builtin/aggregate_mapping:1.1.1.1
      Rev: doc/builtin/all_efuns: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/call_out:1.1.1.1
      Rev: doc/builtin/call_out_info:1.1.1.1
      Rev: doc/builtin/catch:1.1.1.1
      Rev: doc/builtin/clone: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/explode:1.1.1.1
      Rev: doc/builtin/find_call_out: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/hash:1.1.1.1
      Rev: doc/builtin/implode:1.1.1.1
      Rev: doc/builtin/indices:1.1.1.1
      Rev: doc/builtin/intp:1.1.1.1
      Rev: doc/builtin/listp: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/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/regexpp:1.1.1.1
      Rev: doc/builtin/remove_call_out:1.1.1.1
      Rev: doc/builtin/replace:1.1.1.1
      Rev: doc/builtin/reverse:1.1.1.1
      Rev: doc/builtin/rusage:1.1.1.1
      Rev: doc/builtin/search:1.1.1.1
      Rev: doc/builtin/sizeof:1.1.1.1
      Rev: doc/builtin/sscanf:1.1.1.1
      Rev: doc/builtin/stringp:1.1.1.1
      Rev: doc/builtin/sum: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/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/files/cd:1.1.1.1
      Rev: doc/files/exec:1.1.1.1
      Rev: doc/files/file:1.1.1.1
      Rev: doc/files/file_stat:1.1.1.1
      Rev: doc/files/fork:1.1.1.1
      Rev: doc/files/get_dir:1.1.1.1
      Rev: doc/files/getcwd:1.1.1.1
      Rev: doc/files/mkdir:1.1.1.1
      Rev: doc/files/mv:1.1.1.1
      Rev: doc/files/perror:1.1.1.1
      Rev: doc/files/port:1.1.1.1
      Rev: doc/files/rm:1.1.1.1
      Rev: doc/lpc/command_line_options:1.1.1.1
      Rev: doc/lpc/control_structures:1.1.1.1
      Rev: doc/lpc/hilfe.hilfe:1.1.1.1
      Rev: doc/lpc/how_to_make_modules:1.1.1.1
      Rev: doc/manual/i-overview.html:1.1.1.1
      Rev: doc/manual/index.html:1.1.1.1
      Rev: doc/manual/t-hello.html:1.1.1.1
      Rev: doc/manual/ulpc-inside3.gif:1.1.1.1
      Rev: doc/math/acos:1.1.1.1
      Rev: doc/math/asin:1.1.1.1
      Rev: doc/math/atan:1.1.1.1
      Rev: doc/math/ceil:1.1.1.1
      Rev: doc/math/cos:1.1.1.1
      Rev: doc/math/exp:1.1.1.1
      Rev: doc/math/floor:1.1.1.1
      Rev: doc/math/log:1.1.1.1
      Rev: doc/math/pow:1.1.1.1
      Rev: doc/math/sin:1.1.1.1
      Rev: doc/math/sqrt:1.1.1.1
      Rev: doc/math/tan:1.1.1.1
      Rev: doc/operators/addition:1.1.1.1
      Rev: doc/regexp/regexp:1.1.1.1
      Rev: doc/simulated/PI:1.1.1.1
      Rev: doc/simulated/capitalize:1.1.1.1
      Rev: doc/simulated/code_value:1.1.1.1
      Rev: doc/simulated/describe_backtrace:1.1.1.1
      Rev: doc/simulated/file_size: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/l_sizeof: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_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/popen:1.1.1.1
      Rev: doc/simulated/previous_object: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_arrays:1.1.1.1
      Rev: doc/simulated/this_function:1.1.1.1
      Rev: doc/simulated/write:1.1.1.1
      Rev: doc/simulated/write_file:1.1.1.1
      Rev: doc/sprintf/sprintf: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/list:1.1.1.1
      Rev: doc/types/mapping: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/conftest.h:1.1.1.1
      Rev: lib/master.lpc:1.1.1.1
      Rev: lib/simulate.lpc:1.1.1.1
      Rev: lib/testsuite.lpc: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/DISCLAIMER:1.1.1.1
      Rev: src/Makefile.in:1.1.1.1
      Rev: src/README:1.1.1.1
      Rev: src/add_efun.c:1.1.1.1
      Rev: src/add_efun.h: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/builtin_efuns.c:1.1.1.1
      Rev: src/builtin_efuns.h:1.1.1.1
      Rev: src/call_out.c:1.1.1.1
      Rev: src/call_out.h:1.1.1.1
      Rev: src/callback.c:1.1.1.1
      Rev: src/callback.h:1.1.1.1
      Rev: src/config.h:1.1.1.1
      Rev: src/configure.in:1.1.1.1
      Rev: src/debug.c:1.1.1.1
      Rev: src/debug.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/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/list.c:1.1.1.1
      Rev: src/list.h:1.1.1.1
      Rev: src/lpc_types.c:1.1.1.1
      Rev: src/lpc_types.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/efuns.c:1.1.1.1
      Rev: src/modules/files/Makefile.in: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/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/math/Makefile.in:1.1.1.1
      Rev: src/modules/math/configure.in:1.1.1.1
      Rev: src/modules/math/math.c:1.1.1.1
      Rev: src/modules/regexp/Makefile.in:1.1.1.1
      Rev: src/modules/regexp/configure.in: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/sprintf/Makefile.in:1.1.1.1
      Rev: src/modules/sprintf/configure.in:1.1.1.1
      Rev: src/modules/sprintf/sprintf.c: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/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/rusage.c:1.1.1.1
      Rev: src/rusage.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/todo:1.1.1.1
      Rev: src/types.h:1.1.1.1
      Rev: src/ualarm.c:1.1.1.1
    fsort.c 2.42 KiB
    /* fsort- a smarter quicksort /Hubbe */
    /* Optimized for minimum amount of compares */
    
    #include "global.h"
    #include "fsort.h"
    
    static fsortfun cmpfun;
    static long size;
    static char *tmp_area;
    
    #define SWAP(X,Y) { tmp=*(X); *(X)=*(Y); *(Y)=tmp; }
    
    #define FSORT(ID,TYPE) \
    static void ID(register TYPE *bas,register TYPE *last) \
    { \
      register TYPE *a,*b, tmp; \
      if(bas >= last) return; \
      a = bas + 1; \
      if(a == last) \
      { \
        if( (*cmpfun)((void *)bas,(void *)last) > 0) SWAP(bas,last);  \
      }else{ \
        b=bas+((last-bas)>>1); \
        SWAP(bas,b); \
        b=last; \
        while(a < b) \
        { \
          while(a<=b && (*cmpfun)((void *)a,(void *)bas) < 0) a++; \
          while(a< b && (*cmpfun)((void *)bas,(void *)b) < 0) b--; \
          if(a<b) \
          { \
            SWAP(a,b); \
            a++; \
            if(b > a+1) b--; \
          } \
        } \
        a--; \
        SWAP(a,bas); \
        a--; \
        ID(bas,a); \
        ID(b,last); \
      } \
    }
    
    #define FSWAP(X,Y) \
     { \
        MEMCPY(tmp_area,X,size); \
        MEMCPY(X,Y,size); \
        MEMCPY(Y,tmp_area,size); \
     }
    
    static void fsort_n(register char *bas,register char *last)
    {
      register char *a,*b;
      register int dum;
    
      if(bas>=last) return;
      a=bas+size;
      if(a==last)
      {
        if((*cmpfun)(bas,last) > 0) FSWAP(bas,last);
      }else{
        dum=(last-bas)>>1;
        dum-=dum % size;
        FSWAP(bas,bas+dum);
        b=last;
        while(a<b)
        {
          while(a<=b && (*cmpfun)(a,bas) < 0) a+=size;
          while(a< b && (*cmpfun)(bas,b) < 0) b-=size;
          if(a<b)
          {
    	FSWAP(a,b);
    	a+=size;
    	if(b-a>size) b-=size;
          }
        }
        a-=size;
        FSWAP(bas,a);
        a-=size;
        fsort_n(bas,a);
        fsort_n(b,last);
      }
    }
    
    typedef struct a { char b[1]; } onebyte;
    typedef struct b { char b[2]; } twobytes;
    typedef struct c { char b[4]; } fourbytes;
    typedef struct d { char b[8]; } eightbytes;
    
    FSORT(fsort_1, onebyte)
    FSORT(fsort_2, twobytes)
    FSORT(fsort_4, fourbytes)
    FSORT(fsort_8, eightbytes)
    
    void fsort(void *base,
    	   long elms,
    	   long elmSize,
    	   fsortfun cmpfunc)
    {
    
      if(elms<=0) return;
      cmpfun=cmpfunc;
      size=elmSize;
    
      switch(elmSize)
      {
      case 1: fsort_1((onebyte *)base,(elms-1)+(onebyte *)base); break;
      case 2: fsort_2((twobytes *)base,(elms-1)+(twobytes *)base); break;
      case 4: fsort_4((fourbytes *)base,(elms-1)+(fourbytes *)base); break;
      case 8: fsort_8((eightbytes *)base,(elms-1)+(eightbytes *)base); break;
      default:
        tmp_area=(char *)alloca(elmSize);
        fsort_n((char *)base,((char *)base) + size * (elms - 1));
      }
    
    }