Select Git revision
fd_control.c
-
Fredrik Hübinette (Hubbe) authored
Rev: README:1.1.1.1 Rev: bin/create_testsuite:1.1.1.1 Rev: bin/export.lpc:1.1.1.1 Rev: bin/fixdepends.lpc: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/add_efun: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/getpid: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/kill: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/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/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/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/hilfe.hilfe:1.1.1.1 Rev: doc/lpc/how_to_make_modules:1.1.1.1 Rev: doc/lpc/preprocessor:1.1.1.1 Rev: doc/lpc/reserved: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/exec: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/system: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/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/ChangeLog: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/build_modlist_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/compilation.h:1.1.1.1 Rev: src/config.h:1.1.1.1 Rev: src/config.log:1.1.1.1 Rev: src/configure: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/get_linker_options: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_signal.c:1.1.1.1 Rev: src/lpc_signal.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/make_modules: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: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: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: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: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/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/todo:1.1.1.1 Rev: src/types.h:1.1.1.1 Rev: src/ualarm.c:1.1.1.1
Fredrik Hübinette (Hubbe) authoredRev: README:1.1.1.1 Rev: bin/create_testsuite:1.1.1.1 Rev: bin/export.lpc:1.1.1.1 Rev: bin/fixdepends.lpc: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/add_efun: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/getpid: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/kill: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/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/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/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/hilfe.hilfe:1.1.1.1 Rev: doc/lpc/how_to_make_modules:1.1.1.1 Rev: doc/lpc/preprocessor:1.1.1.1 Rev: doc/lpc/reserved: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/exec: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/system: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/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/ChangeLog: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/build_modlist_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/compilation.h:1.1.1.1 Rev: src/config.h:1.1.1.1 Rev: src/config.log:1.1.1.1 Rev: src/configure: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/get_linker_options: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_signal.c:1.1.1.1 Rev: src/lpc_signal.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/make_modules: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: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: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: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: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/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/todo:1.1.1.1 Rev: src/types.h:1.1.1.1 Rev: src/ualarm.c:1.1.1.1
sql_result.pike 4.22 KiB
/*
* Implements the generic result module of the SQL-interface
*
* Henrik Grubbström 1996-01-09
*/
#pike __REAL_VERSION__
//! Implements the generic result of the SQL-interface.
//! Used for return results from SQL.sql->big_query().
//! The actual result.
mixed master_res;
//! This is the number of the current row. The actual semantics
//! differs between different databases.
int index;
//! Create a new Sql.sql_result object
//!
//! @param res
//! Result to use as base.
protected void create(mixed res);
protected string _sprintf(int type, mapping|void flags)
{
int f = num_fields();
catch( int r = num_rows() );
int e = eof();
return type=='O' && master_res &&
sprintf("%O(/* row %d/%s, %d field%s */)",
this_program, index,
(!r || index==r && !e)?"?":(string)num_rows(),
f = num_fields(), f!=1?"s":"");
}
//! Returns the number of rows in the result.
int num_rows();
//! Returns the number of fields in the result.
int num_fields()
{
return master_res->num_fields();
}
//! Returns non-zero if there are no more rows.
int eof();
//! Return information about the available fields.
array(mapping(string:mixed)) fetch_fields();
//! Skip past a number of rows.
//!
//! @param skip
//! Number of rows to skip.
void seek(int skip) {
if(skip<0)
error("Cannot seek to negative result indices\n");
while(skip--) {
index++;
master_res->fetch_row();
}
}
//! Fetch the next row from the result.
//!
//! @returns
//! Returns an array with one element per field in the same order as
//! reported by @[fetch_fields()]. See the @[Sql.Sql] class
//! documentation for more details on how different data types are
//! represented.
int|array(string|int|float) fetch_row();
//! Switch to the next set of results.
//!
//! Some databases support returning more than one set of results.
//! This function terminates the current result and switches to
//! the next (if any).
//!
//! @returns
//! Returns the @[sql_result] object if there were more results,
//! and @expr{0@} (zero) otherwise.
//!
//! @throws
//! May throw the same errors as @[Sql.Sql()->big_query()] et al.
this_program next_result()
{
if (master_res->next_result) return master_res->next_result();
return 0;
}
// --- Iterator API
class _get_iterator
{
protected int|array(string|int) row = fetch_row();
protected int pos = 0;
int index()
{
return pos;
}
int|array(string|int) value()
{
return row;
}
int(0..1) next()
{
pos++;
return !!(row = fetch_row());
}
this_program `+=(int steps)
{
if(!steps) return this;
if(steps<0) error("Iterator must advance a positive numbe of steps.\n");
if(steps>1)
{
pos += steps-1;
seek(steps-1);
}
next();
return this;
}
int(0..1) `!()
{
return eof();
}
int _sizeof()
{
return num_fields();
}
}
protected void encode_json(String.Buffer res, mixed msg)
{
if (stringp(msg)) {
res->add("\"", replace(msg, ([ "\"" : "\\\"",
"\\" : "\\\\",
"\n" : "\\n",
"\b" : "\\b",
"\f" : "\\f",
"\r" : "\\r",
"\t" : "\\t" ])), "\"");
} else if (arrayp(msg)) {
res->putchar('[');
foreach(msg; int i; mixed val) {
if (i) res->putchar(',');
encode_json(res, val);
}
res->putchar(']');
} else if (mappingp(msg)) {
// NOTE: For reference only, not currently reached.
res->putchar('{');
foreach(sort(indices(msg)); int i; string ind) {
if (i) res->putchar(',');
encode_json(res, ind);
res->putchar(':');
encode_json(res, msg[ind]);
}
res->putchar('}');
} else {
res->add((string)msg);
}
}
//! Fetch remaining result as @tt{JSON@}-encoded data.
string fetch_json_result()
{
if (arrayp(master_res) || !master_res->fetch_json_result) {
String.Buffer res = String.Buffer();
res->putchar('[');
array row;
for (int i = 0; row = fetch_row(); i++) {
if(i) res->putchar(',');
encode_json(res, row);
}
res->putchar(']');
return string_to_utf8(res->get());
}
index = num_rows();
return master_res->fetch_json_result();
}