├── Artistic.README ├── Copyright ├── Credits.LPmud ├── Credits.MudOS ├── Performance ├── README ├── Version ├── bin └── .gitignore ├── doc ├── html │ ├── applies │ │ ├── __INIT │ │ ├── __INIT.html │ │ ├── clean_up │ │ ├── clean_up.html │ │ ├── create │ │ ├── create.html │ │ ├── heart_beat │ │ ├── heart_beat.html │ │ ├── id │ │ ├── id.html │ │ ├── index │ │ ├── index.html │ │ ├── init │ │ ├── init.html │ │ ├── interactive │ │ │ ├── catch_tell │ │ │ ├── catch_tell.html │ │ │ ├── index │ │ │ ├── index.c.html │ │ │ ├── index.html │ │ │ ├── logon │ │ │ ├── logon.html │ │ │ ├── net_dead │ │ │ ├── net_dead.html │ │ │ ├── process_input │ │ │ ├── process_input.html │ │ │ ├── receive_message │ │ │ ├── receive_message.c.html │ │ │ ├── receive_message.html │ │ │ ├── receive_snoop │ │ │ ├── receive_snoop.c.html │ │ │ ├── receive_snoop.html │ │ │ ├── telnet_suboption │ │ │ ├── telnet_suboption.c.html │ │ │ ├── telnet_suboption.html │ │ │ ├── terminal_type │ │ │ ├── terminal_type.html │ │ │ ├── window_size │ │ │ ├── window_size.html │ │ │ ├── write_prompt │ │ │ └── write_prompt.html │ │ ├── master │ │ │ ├── author_file │ │ │ ├── author_file.html │ │ │ ├── compile_object │ │ │ ├── compile_object.html │ │ │ ├── connect │ │ │ ├── connect.html │ │ │ ├── crash │ │ │ ├── crash.html │ │ │ ├── creator_file │ │ │ ├── creator_file.html │ │ │ ├── domain_file │ │ │ ├── domain_file.html │ │ │ ├── epilog │ │ │ ├── epilog.html │ │ │ ├── error_handler │ │ │ ├── error_handler.html │ │ │ ├── flag │ │ │ ├── flag.html │ │ │ ├── get_bb_uid │ │ │ ├── get_bb_uid.html │ │ │ ├── get_root_uid │ │ │ ├── get_root_uid.html │ │ │ ├── get_save_file_name │ │ │ ├── get_save_file_name.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── log_error │ │ │ ├── log_error.html │ │ │ ├── make_path_absolute │ │ │ ├── make_path_absolute.html │ │ │ ├── object_name │ │ │ ├── object_name.html │ │ │ ├── parse_command_all_word │ │ │ ├── parse_command_all_word.html │ │ │ ├── parse_command_prepos_list │ │ │ ├── parse_command_prepos_list.html │ │ │ ├── preload │ │ │ ├── preload.html │ │ │ ├── privs_file │ │ │ ├── privs_file.html │ │ │ ├── retrieve_ed_setup │ │ │ ├── retrieve_ed_setup.html │ │ │ ├── save_ed_setup │ │ │ ├── save_ed_setup.html │ │ │ ├── slow_shutdown │ │ │ ├── slow_shutdown.html │ │ │ ├── valid_bind │ │ │ ├── valid_bind.html │ │ │ ├── valid_compile_to_c │ │ │ ├── valid_compile_to_c.html │ │ │ ├── valid_hide │ │ │ ├── valid_hide.html │ │ │ ├── valid_link │ │ │ ├── valid_link.html │ │ │ ├── valid_object │ │ │ ├── valid_object.html │ │ │ ├── valid_override │ │ │ ├── valid_override.html │ │ │ ├── valid_read │ │ │ ├── valid_read.html │ │ │ ├── valid_save_binary │ │ │ ├── valid_save_binary.html │ │ │ ├── valid_seteuid │ │ │ ├── valid_seteuid.html │ │ │ ├── valid_shadow │ │ │ ├── valid_shadow.html │ │ │ ├── valid_socket │ │ │ ├── valid_socket.html │ │ │ ├── valid_write │ │ │ └── valid_write.html │ │ ├── move_or_destruct │ │ ├── move_or_destruct.html │ │ ├── parsing │ │ │ ├── index │ │ │ ├── index.c.html │ │ │ ├── index.html │ │ │ ├── parse_command_adjectiv_id_list │ │ │ ├── parse_command_adjectiv_id_list.c.html │ │ │ ├── parse_command_adjectiv_id_list.html │ │ │ ├── parse_command_id_list │ │ │ ├── parse_command_id_list.c.html │ │ │ ├── parse_command_id_list.html │ │ │ ├── parse_command_plural_id_list │ │ │ ├── parse_command_plural_id_list.c.html │ │ │ └── parse_command_plural_id_list.html │ │ ├── reset │ │ └── reset.html │ ├── concepts │ │ ├── MudOSdriver │ │ ├── MudOSdriver.html │ │ ├── defines │ │ ├── defines.html │ │ ├── index │ │ ├── index.html │ │ ├── lpc │ │ ├── lpc.html │ │ ├── message_doc │ │ ├── message_doc.html │ │ ├── objects │ │ ├── objects.html │ │ ├── oop │ │ ├── oop.html │ │ ├── preprocessor │ │ ├── preprocessor.html │ │ ├── simul_efun │ │ ├── simul_efun.html │ │ ├── socket_efuns │ │ └── socket_efuns.html │ ├── driver │ │ ├── adding_efuns │ │ ├── adding_efuns.html │ │ ├── done-lars │ │ ├── done-lars.html │ │ ├── done-mudos │ │ ├── done-mudos.html │ │ ├── index │ │ ├── index.html │ │ ├── malloc │ │ ├── malloc.html │ │ ├── stackmachine │ │ └── stackmachine.html │ ├── efuns │ │ ├── TODO │ │ ├── arrays │ │ │ ├── allocate │ │ │ ├── allocate.html │ │ │ ├── filter_array │ │ │ ├── filter_array.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── map_array │ │ │ ├── map_array.html │ │ │ ├── member_array │ │ │ ├── member_array.html │ │ │ ├── sort_array │ │ │ ├── sort_array.html │ │ │ ├── unique_array │ │ │ └── unique_array.html │ │ ├── buffers │ │ │ ├── allocate_buffer │ │ │ ├── allocate_buffer.html │ │ │ ├── crc32 │ │ │ ├── crc32.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── read_buffer │ │ │ ├── read_buffer.html │ │ │ ├── write_buffer │ │ │ └── write_buffer.html │ │ ├── calls │ │ │ ├── call_other │ │ │ ├── call_other.html │ │ │ ├── call_out │ │ │ ├── call_out.html │ │ │ ├── call_stack │ │ │ ├── call_stack.html │ │ │ ├── catch │ │ │ ├── catch.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── origin │ │ │ ├── origin.html │ │ │ ├── previous_object │ │ │ ├── previous_object.html │ │ │ ├── query_shadowing │ │ │ ├── query_shadowing.html │ │ │ ├── remove_call_out │ │ │ ├── remove_call_out.html │ │ │ ├── remove_shadow │ │ │ ├── remove_shadow.html │ │ │ ├── shadow │ │ │ ├── shadow.html │ │ │ ├── this_object │ │ │ ├── this_object.html │ │ │ ├── throw │ │ │ └── throw.html │ │ ├── compile │ │ │ ├── generate_source │ │ │ ├── generate_source.html │ │ │ ├── index │ │ │ └── index.html │ │ ├── filesystem │ │ │ ├── cp │ │ │ ├── cp.html │ │ │ ├── file_length │ │ │ ├── file_length.html │ │ │ ├── file_size │ │ │ ├── file_size.html │ │ │ ├── get_dir │ │ │ ├── get_dir.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── link │ │ │ ├── link.html │ │ │ ├── mkdir │ │ │ ├── mkdir.html │ │ │ ├── read_bytes │ │ │ ├── read_bytes.html │ │ │ ├── read_file │ │ │ ├── read_file.html │ │ │ ├── rename │ │ │ ├── rename.html │ │ │ ├── rm │ │ │ ├── rm.html │ │ │ ├── rmdir │ │ │ ├── rmdir.html │ │ │ ├── stat │ │ │ ├── stat.html │ │ │ ├── write_bytes │ │ │ ├── write_bytes.html │ │ │ ├── write_file │ │ │ └── write_file.html │ │ ├── floats │ │ │ ├── acos │ │ │ ├── acos.html │ │ │ ├── asin │ │ │ ├── asin.html │ │ │ ├── atan │ │ │ ├── atan.html │ │ │ ├── ceil │ │ │ ├── ceil.html │ │ │ ├── cos │ │ │ ├── cos.html │ │ │ ├── exp │ │ │ ├── exp.html │ │ │ ├── floor │ │ │ ├── floor.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── log │ │ │ ├── log.html │ │ │ ├── pow │ │ │ ├── pow.html │ │ │ ├── sin │ │ │ ├── sin.html │ │ │ ├── sqrt │ │ │ ├── sqrt.html │ │ │ ├── tan │ │ │ ├── tan.html │ │ │ ├── to_int │ │ │ └── to_int.html │ │ ├── functions │ │ │ ├── bind │ │ │ ├── bind.html │ │ │ ├── evaluate │ │ │ ├── evaluate.html │ │ │ ├── function_owner │ │ │ ├── function_owner.html │ │ │ ├── index │ │ │ └── index.html │ │ ├── general │ │ │ ├── copy │ │ │ ├── copy.html │ │ │ ├── fetch_variable │ │ │ ├── fetch_variable.html │ │ │ ├── filter │ │ │ ├── filter.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── map │ │ │ ├── map.html │ │ │ ├── restore_variable │ │ │ ├── restore_variable.html │ │ │ ├── save_variable │ │ │ ├── save_variable.html │ │ │ ├── sizeof │ │ │ ├── sizeof.html │ │ │ ├── store_variable │ │ │ ├── store_variable.html │ │ │ ├── typeof │ │ │ └── typeof.html │ │ ├── index │ │ ├── index.html │ │ ├── interactive │ │ │ ├── add_action │ │ │ ├── add_action.html │ │ │ ├── command │ │ │ ├── command.html │ │ │ ├── commands │ │ │ ├── commands.c.html │ │ │ ├── commands.html │ │ │ ├── disable_commands │ │ │ ├── disable_commands.html │ │ │ ├── disable_wizard │ │ │ ├── disable_wizard.html │ │ │ ├── ed │ │ │ ├── ed.html │ │ │ ├── ed_cmd │ │ │ ├── ed_cmd.html │ │ │ ├── ed_start │ │ │ ├── ed_start.html │ │ │ ├── enable_commands │ │ │ ├── enable_commands.html │ │ │ ├── enable_wizard │ │ │ ├── enable_wizard.html │ │ │ ├── exec │ │ │ ├── exec.html │ │ │ ├── find_player │ │ │ ├── find_player.html │ │ │ ├── get_char │ │ │ ├── get_char.html │ │ │ ├── in_edit │ │ │ ├── in_edit.html │ │ │ ├── in_input │ │ │ ├── in_input.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── input_to │ │ │ ├── input_to.html │ │ │ ├── interactive │ │ │ ├── interactive.html │ │ │ ├── message │ │ │ ├── message.html │ │ │ ├── notify_fail │ │ │ ├── notify_fail.html │ │ │ ├── printf │ │ │ ├── printf.html │ │ │ ├── query_ed_mode │ │ │ ├── query_ed_mode.html │ │ │ ├── query_host_name │ │ │ ├── query_host_name.html │ │ │ ├── query_idle │ │ │ ├── query_idle.html │ │ │ ├── query_ip_name │ │ │ ├── query_ip_name.html │ │ │ ├── query_ip_number │ │ │ ├── query_ip_number.html │ │ │ ├── query_ip_port │ │ │ ├── query_ip_port.html │ │ │ ├── query_notify_fail │ │ │ ├── query_notify_fail.html │ │ │ ├── query_snoop │ │ │ ├── query_snoop.html │ │ │ ├── query_snooping │ │ │ ├── query_snooping.html │ │ │ ├── receive │ │ │ ├── receive.html │ │ │ ├── remove_action │ │ │ ├── remove_action.html │ │ │ ├── remove_interactive │ │ │ ├── remove_interactive.html │ │ │ ├── resolve │ │ │ ├── resolve.html │ │ │ ├── say │ │ │ ├── say.html │ │ │ ├── set_this_player │ │ │ ├── set_this_player.html │ │ │ ├── shout │ │ │ ├── shout.html │ │ │ ├── snoop │ │ │ ├── snoop.html │ │ │ ├── this_interactive │ │ │ ├── this_interactive.html │ │ │ ├── this_player │ │ │ ├── this_player.html │ │ │ ├── this_user │ │ │ ├── this_user.html │ │ │ ├── userp │ │ │ ├── userp.html │ │ │ ├── users │ │ │ ├── users.html │ │ │ ├── wizardp │ │ │ ├── wizardp.html │ │ │ ├── write │ │ │ └── write.html │ │ ├── internals │ │ │ ├── cache_stats │ │ │ ├── cache_stats.html │ │ │ ├── debug_info │ │ │ ├── debug_info.html │ │ │ ├── debugmalloc │ │ │ ├── debugmalloc.html │ │ │ ├── dump_file_descriptors │ │ │ ├── dump_file_descriptors.html │ │ │ ├── dump_prog │ │ │ ├── dump_prog.html │ │ │ ├── dump_socket_status │ │ │ ├── dump_socket_status.html │ │ │ ├── dumpallobj │ │ │ ├── dumpallobj.html │ │ │ ├── get_config │ │ │ ├── get_config.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── malloc_status │ │ │ ├── malloc_status.html │ │ │ ├── memory_info │ │ │ ├── memory_info.html │ │ │ ├── mud_status │ │ │ ├── mud_status.html │ │ │ ├── opcprof │ │ │ ├── opcprof.html │ │ │ ├── query_load_average │ │ │ ├── query_load_average.html │ │ │ ├── refs │ │ │ ├── refs.html │ │ │ ├── rusage │ │ │ ├── rusage.html │ │ │ ├── set_debug_level │ │ │ ├── set_debug_level.html │ │ │ ├── set_malloc_mask │ │ │ ├── set_malloc_mask.html │ │ │ ├── swap │ │ │ ├── swap.html │ │ │ ├── time_expression │ │ │ ├── time_expression.html │ │ │ ├── trace │ │ │ ├── trace.html │ │ │ ├── traceprefix │ │ │ └── traceprefix.html │ │ ├── mappings │ │ │ ├── allocate_mapping │ │ │ ├── allocate_mapping.html │ │ │ ├── filter_mapping │ │ │ ├── filter_mapping.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── keys │ │ │ ├── keys.html │ │ │ ├── m_delete │ │ │ ├── m_delete.html │ │ │ ├── m_indices │ │ │ ├── m_indices.html │ │ │ ├── m_values │ │ │ ├── m_values.html │ │ │ ├── map_delete │ │ │ ├── map_delete.html │ │ │ ├── map_mapping │ │ │ ├── map_mapping.html │ │ │ ├── match_path │ │ │ ├── match_path.html │ │ │ ├── unique_mapping │ │ │ ├── unique_mapping.html │ │ │ ├── values │ │ │ └── values.html │ │ ├── mixed │ │ │ ├── arrayp │ │ │ ├── arrayp.html │ │ │ ├── bufferp │ │ │ ├── bufferp.html │ │ │ ├── classp │ │ │ ├── classp.html │ │ │ ├── floatp │ │ │ ├── floatp.html │ │ │ ├── functionp │ │ │ ├── functionp.html │ │ │ ├── intp │ │ │ ├── intp.html │ │ │ ├── mapp │ │ │ ├── mapp.html │ │ │ ├── objectp │ │ │ ├── objectp.html │ │ │ ├── pointerp │ │ │ ├── pointerp.html │ │ │ ├── stringp │ │ │ ├── stringp.html │ │ │ ├── undefinedp │ │ │ └── undefinedp.html │ │ ├── mudlib │ │ │ ├── author_stats │ │ │ ├── author_stats.html │ │ │ ├── domain_stats │ │ │ ├── domain_stats.html │ │ │ ├── export_uid │ │ │ ├── export_uid.html │ │ │ ├── find_living │ │ │ ├── find_living.html │ │ │ ├── geteuid │ │ │ ├── geteuid.html │ │ │ ├── getuid │ │ │ ├── getuid.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── living │ │ │ ├── living.html │ │ │ ├── livings │ │ │ ├── livings.html │ │ │ ├── query_privs │ │ │ ├── query_privs.html │ │ │ ├── set_author │ │ │ ├── set_author.html │ │ │ ├── set_light │ │ │ ├── set_light.html │ │ │ ├── set_living_name │ │ │ ├── set_living_name.html │ │ │ ├── set_privs │ │ │ ├── set_privs.html │ │ │ ├── seteuid │ │ │ └── seteuid.html │ │ ├── numbers │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── random │ │ │ ├── random.html │ │ │ ├── to_float │ │ │ └── to_float.html │ │ ├── objects │ │ │ ├── all_inventory │ │ │ ├── all_inventory.html │ │ │ ├── children │ │ │ ├── children.html │ │ │ ├── clone_object │ │ │ ├── clone_object.html │ │ │ ├── clonep │ │ │ ├── clonep.html │ │ │ ├── deep_inventory │ │ │ ├── deep_inventory.html │ │ │ ├── destruct │ │ │ ├── destruct.html │ │ │ ├── environment │ │ │ ├── environment.html │ │ │ ├── file_name │ │ │ ├── file_name.html │ │ │ ├── find_object │ │ │ ├── find_object.html │ │ │ ├── first_inventory │ │ │ ├── first_inventory.html │ │ │ ├── heart_beat_info │ │ │ ├── heart_beat_info.html │ │ │ ├── heart_beats │ │ │ ├── heart_beats.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── load_object │ │ │ ├── load_object.html │ │ │ ├── master │ │ │ ├── master.html │ │ │ ├── move_object │ │ │ ├── move_object.html │ │ │ ├── new │ │ │ ├── new.html │ │ │ ├── next_inventory │ │ │ ├── next_inventory.html │ │ │ ├── objects │ │ │ ├── objects.html │ │ │ ├── present │ │ │ ├── present.html │ │ │ ├── query_heart_beat │ │ │ ├── query_heart_beat.html │ │ │ ├── reload_object │ │ │ ├── reload_object.html │ │ │ ├── restore_object │ │ │ ├── restore_object.html │ │ │ ├── save_object │ │ │ ├── save_object.html │ │ │ ├── set_heart_beat │ │ │ ├── set_heart_beat.html │ │ │ ├── set_hide │ │ │ ├── set_hide.html │ │ │ ├── tell_object │ │ │ ├── tell_object.html │ │ │ ├── tell_room │ │ │ ├── tell_room.html │ │ │ ├── virtualp │ │ │ └── virtualp.html │ │ ├── parsing │ │ │ ├── TODO │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── query_verb │ │ │ └── query_verb.html │ │ ├── sockets │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── socket_accept │ │ │ ├── socket_accept.html │ │ │ ├── socket_acquire │ │ │ ├── socket_acquire.html │ │ │ ├── socket_address │ │ │ ├── socket_address.html │ │ │ ├── socket_bind │ │ │ ├── socket_bind.html │ │ │ ├── socket_close │ │ │ ├── socket_close.html │ │ │ ├── socket_connect │ │ │ ├── socket_connect.html │ │ │ ├── socket_create │ │ │ ├── socket_create.html │ │ │ ├── socket_error │ │ │ ├── socket_error.html │ │ │ ├── socket_listen │ │ │ ├── socket_listen.html │ │ │ ├── socket_release │ │ │ ├── socket_release.html │ │ │ ├── socket_write │ │ │ └── socket_write.html │ │ ├── strings │ │ │ ├── capitalize │ │ │ ├── capitalize.html │ │ │ ├── clear_bit │ │ │ ├── clear_bit.html │ │ │ ├── crypt │ │ │ ├── crypt.html │ │ │ ├── explode │ │ │ ├── explode.html │ │ │ ├── implode │ │ │ ├── implode.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── lower_case │ │ │ ├── lower_case.html │ │ │ ├── pluralize │ │ │ ├── pluralize.html │ │ │ ├── reg_assoc │ │ │ ├── reg_assoc.html │ │ │ ├── regexp │ │ │ ├── regexp.html │ │ │ ├── repeat_string │ │ │ ├── repeat_string.html │ │ │ ├── replace_string │ │ │ ├── replace_string.html │ │ │ ├── set_bit │ │ │ ├── set_bit.html │ │ │ ├── sprintf │ │ │ ├── sprintf.html │ │ │ ├── sscanf │ │ │ ├── sscanf.html │ │ │ ├── strcmp │ │ │ ├── strcmp.html │ │ │ ├── strlen │ │ │ ├── strlen.html │ │ │ ├── strsrch │ │ │ ├── strsrch.html │ │ │ ├── terminal_colour │ │ │ ├── terminal_colour.html │ │ │ ├── test_bit │ │ │ ├── test_bit.html │ │ │ ├── upper_case │ │ │ └── upper_case.html │ │ └── system │ │ │ ├── all_previous_objects │ │ │ ├── all_previous_objects.html │ │ │ ├── call_out_info │ │ │ ├── call_out_info.html │ │ │ ├── check_memory │ │ │ ├── check_memory.html │ │ │ ├── ctime │ │ │ ├── ctime.html │ │ │ ├── deep_inherit_list │ │ │ ├── deep_inherit_list.html │ │ │ ├── error │ │ │ ├── error.html │ │ │ ├── eval_cost │ │ │ ├── eval_cost.html │ │ │ ├── external_start │ │ │ ├── external_start.html │ │ │ ├── find_call_out │ │ │ ├── find_call_out.html │ │ │ ├── flush_messages │ │ │ ├── flush_messages.html │ │ │ ├── function_exists │ │ │ ├── function_exists.html │ │ │ ├── function_profile │ │ │ ├── function_profile.html │ │ │ ├── functions │ │ │ ├── functions.html │ │ │ ├── index │ │ │ ├── index.html │ │ │ ├── inherit_list │ │ │ ├── inherit_list.html │ │ │ ├── inherits │ │ │ ├── inherits.html │ │ │ ├── localtime │ │ │ ├── localtime.html │ │ │ ├── lpc_info │ │ │ ├── lpc_info.html │ │ │ ├── max_eval_cost │ │ │ ├── max_eval_cost.html │ │ │ ├── memory_summary │ │ │ ├── memory_summary.html │ │ │ ├── named_livings │ │ │ ├── named_livings.html │ │ │ ├── program_info │ │ │ ├── program_info.html │ │ │ ├── reclaim_objects │ │ │ ├── reclaim_objects.html │ │ │ ├── replace_program │ │ │ ├── replace_program.html │ │ │ ├── replaceable │ │ │ ├── replaceable.html │ │ │ ├── reset_eval_cost │ │ │ ├── reset_eval_cost.html │ │ │ ├── set_eval_limit │ │ │ ├── set_eval_limit.html │ │ │ ├── set_reset │ │ │ ├── set_reset.html │ │ │ ├── shallow_inherit_list │ │ │ ├── shallow_inherit_list.html │ │ │ ├── shutdown │ │ │ ├── shutdown.html │ │ │ ├── time │ │ │ ├── time.html │ │ │ ├── uptime │ │ │ ├── uptime.html │ │ │ ├── variables │ │ │ └── variables.html │ ├── index │ ├── index.html │ └── lpc │ │ ├── constructs │ │ ├── for │ │ ├── function │ │ ├── if │ │ ├── include │ │ ├── inherit │ │ ├── prototypes │ │ ├── ref │ │ ├── ref.html │ │ ├── switch │ │ └── while │ │ └── types │ │ ├── buffer │ │ ├── float │ │ ├── function │ │ ├── function.html │ │ ├── general │ │ ├── mappings │ │ ├── strings │ │ └── substructures ├── nroff │ ├── Credits.docs │ ├── Email │ ├── FTP │ ├── History.MudOS │ ├── Install.MudOS │ ├── Platforms.MudOS │ ├── README │ ├── Running.MudOS │ ├── applies │ │ ├── __INIT.4 │ │ ├── clean_up.4 │ │ ├── create.4 │ │ ├── id.4 │ │ ├── init.4 │ │ ├── interactive │ │ │ ├── catch_tell.4 │ │ │ ├── logon.4 │ │ │ ├── net_dead.4 │ │ │ ├── process_input.4 │ │ │ ├── receive_message.4 │ │ │ ├── receive_snoop.4 │ │ │ ├── telnet_suboption.4 │ │ │ ├── terminal_type.4 │ │ │ └── write_prompt.4 │ │ ├── master │ │ │ ├── author_file.4 │ │ │ ├── compile_object.4 │ │ │ ├── connect.4 │ │ │ ├── crash.4 │ │ │ ├── creator_file.4 │ │ │ ├── domain_file.4 │ │ │ ├── epilog.4 │ │ │ ├── error_handler.4 │ │ │ ├── flag.4 │ │ │ ├── get_bb_uid.4 │ │ │ ├── get_root_uid.4 │ │ │ ├── get_save_file_name.4 │ │ │ ├── log_error.4 │ │ │ ├── make_path_absolute.4 │ │ │ ├── object_name.4 │ │ │ ├── preload.4 │ │ │ ├── privs_file.4 │ │ │ ├── retrieve_ed_setup.4 │ │ │ ├── save_ed_setup.4 │ │ │ ├── slow_shutdown.4 │ │ │ ├── valid_asm.4 │ │ │ ├── valid_bind.4 │ │ │ ├── valid_compile_to_c.4 │ │ │ ├── valid_hide.4 │ │ │ ├── valid_link.4 │ │ │ ├── valid_object.4 │ │ │ ├── valid_override.4 │ │ │ ├── valid_read.4 │ │ │ ├── valid_save_binary.4 │ │ │ ├── valid_seteuid.4 │ │ │ ├── valid_shadow.4 │ │ │ ├── valid_socket.4 │ │ │ ├── valid_write.4 │ │ │ └── view_errors.4 │ │ ├── move_or_destruct.4 │ │ └── reset.4 │ ├── concepts │ │ ├── MudOSdriver │ │ ├── global_include_file │ │ ├── lpc │ │ ├── message_doc │ │ ├── objects │ │ ├── oop │ │ ├── preprocessor │ │ ├── simul_efun │ │ └── socket_efuns │ ├── convert.sh │ ├── defines │ │ ├── BSDMALLOC │ │ ├── CHECK_MEMORY │ │ ├── DEBUGMALLOC │ │ ├── DEBUGMALLOC_EXTENSIONS │ │ ├── DO_MSTATS │ │ ├── HAS_STATUS_TYPE │ │ ├── README-DEFINES │ │ ├── SMALLOC │ │ ├── SYSMALLOC │ │ ├── WRAPPEDMALLOC │ │ └── lpc │ │ │ ├── HAS_CACHE_STATS │ │ │ ├── HAS_DEBUGMALLOC │ │ │ ├── HAS_DEBUG_LEVEL │ │ │ ├── HAS_EACH │ │ │ ├── HAS_ED │ │ │ ├── HAS_LIGHT │ │ │ ├── HAS_MATH │ │ │ ├── HAS_MATRIX │ │ │ ├── HAS_MUDLIB_ERROR_HANDLER │ │ │ ├── HAS_MUDLIB_STATS │ │ │ ├── HAS_OPCPROF │ │ │ ├── HAS_PRINTF │ │ │ ├── HAS_PRIVS │ │ │ ├── HAS_RUSAGE │ │ │ ├── HAS_SHADOWS │ │ │ ├── HAS_SOCKETS │ │ │ ├── LPC3 │ │ │ ├── MUDOS │ │ │ ├── MUD_NAME │ │ │ ├── README │ │ │ ├── SAVE_EXTENSION │ │ │ ├── USE_EUID │ │ │ ├── __ARCH__ │ │ │ ├── __DIR__ │ │ │ ├── __FILE__ │ │ │ ├── __PORT__ │ │ │ └── __VERSION__ │ ├── driver │ │ ├── adding_efuns │ │ ├── done-lars │ │ ├── done-mudos │ │ ├── malloc │ │ └── stackmachine │ ├── efuns │ │ ├── arrays │ │ │ ├── allocate.3 │ │ │ ├── arrayp.3 │ │ │ ├── filter_array.3 │ │ │ ├── map_array.3 │ │ │ ├── member_array.3 │ │ │ ├── pointerp.3 │ │ │ ├── sort_array.3 │ │ │ └── unique_array.3 │ │ ├── buffers │ │ │ ├── allocate_buffer.3 │ │ │ ├── bufferp.3 │ │ │ ├── crc32.3 │ │ │ ├── read_buffer.3 │ │ │ └── write_buffer.3 │ │ ├── calls │ │ │ ├── call_other.3 │ │ │ ├── call_out.3 │ │ │ ├── catch.3 │ │ │ ├── origin.3 │ │ │ ├── previous_object.3 │ │ │ ├── query_shadowing.3 │ │ │ ├── remove_call_out.3 │ │ │ ├── shadow.3 │ │ │ ├── this_object.3 │ │ │ └── throw.3 │ │ ├── compile │ │ │ └── generate_source.3 │ │ ├── ed │ │ │ ├── ed_cmd.3 │ │ │ ├── ed_start.3 │ │ │ └── query_ed_mode.3 │ │ ├── filesystem │ │ │ ├── cp.3 │ │ │ ├── file_size.3 │ │ │ ├── get_dir.3 │ │ │ ├── link.3 │ │ │ ├── mkdir.3 │ │ │ ├── read_bytes.3 │ │ │ ├── read_file.3 │ │ │ ├── rename.3 │ │ │ ├── rm.3 │ │ │ ├── rmdir.3 │ │ │ ├── stat.3 │ │ │ ├── tail.3 │ │ │ ├── write_bytes.3 │ │ │ └── write_file.3 │ │ ├── floats │ │ │ ├── acos.3 │ │ │ ├── asin.3 │ │ │ ├── atan.3 │ │ │ ├── ceil.3 │ │ │ ├── cos.3 │ │ │ ├── exp.3 │ │ │ ├── floatp.3 │ │ │ ├── floor.3 │ │ │ ├── log.3 │ │ │ ├── pow.3 │ │ │ ├── sin.3 │ │ │ ├── sqrt.3 │ │ │ ├── tan.3 │ │ │ └── to_int.3 │ │ ├── functions │ │ │ ├── apply.3 │ │ │ ├── bind.3 │ │ │ ├── evaluate.3 │ │ │ └── functionp.3 │ │ ├── general │ │ │ ├── map.3 │ │ │ ├── nullp.3 │ │ │ ├── restore_variable.3 │ │ │ ├── save_variable.3 │ │ │ ├── sizeof.3 │ │ │ ├── typeof.3 │ │ │ └── undefinedp.3 │ │ ├── interactive │ │ │ ├── add_action.3 │ │ │ ├── command.3 │ │ │ ├── commands.3 │ │ │ ├── disable_commands.3 │ │ │ ├── disable_wizard.3 │ │ │ ├── ed.3 │ │ │ ├── enable_commands.3 │ │ │ ├── exec.3 │ │ │ ├── find_player.3 │ │ │ ├── get_char.3 │ │ │ ├── in_edit.3 │ │ │ ├── in_input.3 │ │ │ ├── input_to.3 │ │ │ ├── interactive.3 │ │ │ ├── message.3 │ │ │ ├── notify_fail.3 │ │ │ ├── printf.3 │ │ │ ├── query_host_name.3 │ │ │ ├── query_idle.3 │ │ │ ├── query_ip_name.3 │ │ │ ├── query_ip_number.3 │ │ │ ├── query_snoop.3 │ │ │ ├── query_snooping.3 │ │ │ ├── receive.3 │ │ │ ├── remove_action.3 │ │ │ ├── resolve.3 │ │ │ ├── say.3 │ │ │ ├── set_this_player.3 │ │ │ ├── shout.3 │ │ │ ├── snoop.3 │ │ │ ├── this_interactive.3 │ │ │ ├── this_player.3 │ │ │ ├── userp.3 │ │ │ ├── users.3 │ │ │ └── write.3 │ │ ├── internals │ │ │ ├── cache_stats.3 │ │ │ ├── debug_info.3 │ │ │ ├── debugmalloc.3 │ │ │ ├── dump_file_descriptors.3 │ │ │ ├── dump_prog.3 │ │ │ ├── dump_socket_status.3 │ │ │ ├── dumpallobj.3 │ │ │ ├── get_config.3 │ │ │ ├── malloc_status.3 │ │ │ ├── memory_info.3 │ │ │ ├── moncontrol.3 │ │ │ ├── mud_status.3 │ │ │ ├── opcprof.3 │ │ │ ├── query_load_average.3 │ │ │ ├── refs.3 │ │ │ ├── rusage.3 │ │ │ ├── set_debug_level.3 │ │ │ ├── set_malloc_mask.3 │ │ │ ├── swap.3 │ │ │ ├── time_expression.3 │ │ │ ├── trace.3 │ │ │ └── traceprefix.3 │ │ ├── mappings │ │ │ ├── allocate_mapping.3 │ │ │ ├── each.3 │ │ │ ├── filter_mapping.3 │ │ │ ├── keys.3 │ │ │ ├── map_delete.3 │ │ │ ├── map_mapping.3 │ │ │ ├── mapp.3 │ │ │ ├── match_path.3 │ │ │ ├── unique_mapping.3 │ │ │ └── values.3 │ │ ├── mudlib │ │ │ ├── author_stats.3 │ │ │ ├── domain_stats.3 │ │ │ ├── enable_wizard.3 │ │ │ ├── export_uid.3 │ │ │ ├── find_living.3 │ │ │ ├── geteuid.3 │ │ │ ├── getuid.3 │ │ │ ├── living.3 │ │ │ ├── livings.3 │ │ │ ├── query_privs.3 │ │ │ ├── set_author.3 │ │ │ ├── set_light.3 │ │ │ ├── set_living_name.3 │ │ │ ├── set_privs.3 │ │ │ ├── seteuid.3 │ │ │ └── wizardp.3 │ │ ├── numbers │ │ │ ├── intp.3 │ │ │ ├── random.3 │ │ │ └── to_float.3 │ │ ├── objects │ │ │ ├── all_inventory.3 │ │ │ ├── children.3 │ │ │ ├── clone_object.3 │ │ │ ├── clonep.3 │ │ │ ├── deep_inventory.3 │ │ │ ├── destruct.3 │ │ │ ├── environment.3 │ │ │ ├── file_name.3 │ │ │ ├── find_object.3 │ │ │ ├── first_inventory.3 │ │ │ ├── load_object.3 │ │ │ ├── master.3 │ │ │ ├── move_object.3 │ │ │ ├── new.3 │ │ │ ├── next_inventory.3 │ │ │ ├── objectp.3 │ │ │ ├── objects.3 │ │ │ ├── present.3 │ │ │ ├── query_heart_beat.3 │ │ │ ├── reload_object.3 │ │ │ ├── restore_object.3 │ │ │ ├── save_object.3 │ │ │ ├── set_heart_beat.3 │ │ │ ├── set_hide.3 │ │ │ ├── tell_object.3 │ │ │ ├── tell_room.3 │ │ │ └── virtualp.3 │ │ ├── parsing │ │ │ ├── parse_command.3 │ │ │ ├── process_string.3 │ │ │ ├── process_value.3 │ │ │ └── query_verb.3 │ │ ├── sockets │ │ │ ├── socket_accept.3 │ │ │ ├── socket_acquire.3 │ │ │ ├── socket_address.3 │ │ │ ├── socket_bind.3 │ │ │ ├── socket_close.3 │ │ │ ├── socket_connect.3 │ │ │ ├── socket_create.3 │ │ │ ├── socket_error.3 │ │ │ ├── socket_listen.3 │ │ │ ├── socket_release.3 │ │ │ └── socket_write.3 │ │ ├── strings │ │ │ ├── break_string.3 │ │ │ ├── capitalize.3 │ │ │ ├── clear_bit.3 │ │ │ ├── crypt.3 │ │ │ ├── explode.3 │ │ │ ├── implode.3 │ │ │ ├── lower_case.3 │ │ │ ├── reg_assoc.3 │ │ │ ├── regexp.3 │ │ │ ├── replace_string.3 │ │ │ ├── set_bit.3 │ │ │ ├── sprintf.3 │ │ │ ├── sscanf.3 │ │ │ ├── strcmp.3 │ │ │ ├── stringp.3 │ │ │ ├── strlen.3 │ │ │ ├── strsrch.3 │ │ │ └── test_bit.3 │ │ └── system │ │ │ ├── all_previous_objects.3 │ │ │ ├── call_out_info.3 │ │ │ ├── ctime.3 │ │ │ ├── deep_inherit_list.3 │ │ │ ├── error.3 │ │ │ ├── errorp.3 │ │ │ ├── eval_cost.3 │ │ │ ├── find_call_out.3 │ │ │ ├── function_exists.3 │ │ │ ├── function_profile.3 │ │ │ ├── inherit_list.3 │ │ │ ├── inherits.3 │ │ │ ├── localtime.3 │ │ │ ├── max_eval_cost.3 │ │ │ ├── reclaim_objects.3 │ │ │ ├── replace_program.3 │ │ │ ├── reset_eval_cost.3 │ │ │ ├── set_eval_limit.3 │ │ │ ├── set_reset.3 │ │ │ ├── shutdown.3 │ │ │ ├── time.3 │ │ │ └── uptime.3 │ ├── lpc │ │ ├── constructs │ │ │ ├── for │ │ │ ├── function │ │ │ ├── if │ │ │ ├── include │ │ │ ├── inherit │ │ │ ├── prototypes │ │ │ ├── switch │ │ │ └── while │ │ ├── preprocessor │ │ │ ├── README │ │ │ ├── define │ │ │ └── include │ │ └── types │ │ │ ├── array.2d │ │ │ ├── buffer │ │ │ ├── float │ │ │ ├── function │ │ │ ├── general │ │ │ ├── mappings │ │ │ ├── strings │ │ │ └── substructures │ ├── man2ascii.sh │ └── platforms │ │ ├── Alpha-OSF1 │ │ ├── DEC-Ultrix │ │ ├── HP-UX │ │ ├── Irix │ │ ├── Linux │ │ ├── NeXT │ │ └── RS6000 └── text │ ├── applies │ ├── __INIT │ ├── clean_up │ ├── create │ ├── heart_beat │ ├── id │ ├── index │ ├── init │ ├── interactive │ │ ├── catch_tell │ │ ├── index │ │ ├── logon │ │ ├── net_dead │ │ ├── process_input │ │ ├── receive_message │ │ ├── receive_snoop │ │ ├── telnet_suboption │ │ ├── terminal_type │ │ ├── window_size │ │ └── write_prompt │ ├── master │ │ ├── author_file │ │ ├── compile_object │ │ ├── connect │ │ ├── crash │ │ ├── creator_file │ │ ├── domain_file │ │ ├── epilog │ │ ├── error_handler │ │ ├── flag │ │ ├── get_bb_uid │ │ ├── get_root_uid │ │ ├── get_save_file_name │ │ ├── index │ │ ├── log_error │ │ ├── make_path_absolute │ │ ├── object_name │ │ ├── parse_command_all_word │ │ ├── parse_command_prepos_list │ │ ├── preload │ │ ├── privs_file │ │ ├── retrieve_ed_setup │ │ ├── save_ed_setup │ │ ├── slow_shutdown │ │ ├── valid_bind │ │ ├── valid_compile_to_c │ │ ├── valid_hide │ │ ├── valid_link │ │ ├── valid_object │ │ ├── valid_override │ │ ├── valid_read │ │ ├── valid_save_binary │ │ ├── valid_seteuid │ │ ├── valid_shadow │ │ ├── valid_socket │ │ └── valid_write │ ├── move_or_destruct │ ├── parsing │ │ ├── index │ │ ├── parse_command_adjectiv_id_list │ │ ├── parse_command_id_list │ │ └── parse_command_plural_id_list │ └── reset │ ├── concepts │ ├── MudOSdriver │ ├── defines │ ├── index │ ├── lpc │ ├── message_doc │ ├── objects │ ├── oop │ ├── preprocessor │ ├── simul_efun │ └── socket_efuns │ ├── driver │ ├── adding_efuns │ ├── done-lars │ ├── done-mudos │ ├── index │ ├── malloc │ └── stackmachine │ ├── efuns │ ├── TODO │ ├── arrays │ │ ├── allocate │ │ ├── filter_array │ │ ├── index │ │ ├── map_array │ │ ├── member_array │ │ ├── sort_array │ │ └── unique_array │ ├── buffers │ │ ├── allocate_buffer │ │ ├── crc32 │ │ ├── index │ │ ├── read_buffer │ │ └── write_buffer │ ├── calls │ │ ├── call_other │ │ ├── call_out │ │ ├── call_stack │ │ ├── catch │ │ ├── index │ │ ├── origin │ │ ├── previous_object │ │ ├── query_shadowing │ │ ├── remove_call_out │ │ ├── remove_shadow │ │ ├── shadow │ │ ├── this_object │ │ └── throw │ ├── compile │ │ ├── generate_source │ │ └── index │ ├── filesystem │ │ ├── cp │ │ ├── file_length │ │ ├── file_size │ │ ├── get_dir │ │ ├── index │ │ ├── link │ │ ├── mkdir │ │ ├── read_bytes │ │ ├── read_file │ │ ├── rename │ │ ├── rm │ │ ├── rmdir │ │ ├── stat │ │ ├── write_bytes │ │ └── write_file │ ├── floats │ │ ├── acos │ │ ├── asin │ │ ├── atan │ │ ├── ceil │ │ ├── cos │ │ ├── exp │ │ ├── floor │ │ ├── index │ │ ├── log │ │ ├── pow │ │ ├── sin │ │ ├── sqrt │ │ ├── tan │ │ └── to_int │ ├── functions │ │ ├── bind │ │ ├── evaluate │ │ ├── function_owner │ │ └── index │ ├── general │ │ ├── copy │ │ ├── fetch_variable │ │ ├── filter │ │ ├── index │ │ ├── map │ │ ├── restore_variable │ │ ├── save_variable │ │ ├── sizeof │ │ ├── store_variable │ │ └── typeof │ ├── index │ ├── interactive │ │ ├── add_action │ │ ├── command │ │ ├── commands │ │ ├── disable_commands │ │ ├── disable_wizard │ │ ├── ed │ │ ├── ed_cmd │ │ ├── ed_start │ │ ├── enable_commands │ │ ├── enable_wizard │ │ ├── exec │ │ ├── find_player │ │ ├── get_char │ │ ├── in_edit │ │ ├── in_input │ │ ├── index │ │ ├── input_to │ │ ├── interactive │ │ ├── message │ │ ├── notify_fail │ │ ├── printf │ │ ├── query_ed_mode │ │ ├── query_host_name │ │ ├── query_idle │ │ ├── query_ip_name │ │ ├── query_ip_number │ │ ├── query_ip_port │ │ ├── query_notify_fail │ │ ├── query_snoop │ │ ├── query_snooping │ │ ├── receive │ │ ├── remove_action │ │ ├── remove_interactive │ │ ├── resolve │ │ ├── say │ │ ├── set_this_player │ │ ├── shout │ │ ├── snoop │ │ ├── this_interactive │ │ ├── this_player │ │ ├── this_user │ │ ├── userp │ │ ├── users │ │ ├── wizardp │ │ └── write │ ├── internals │ │ ├── cache_stats │ │ ├── debug_info │ │ ├── debugmalloc │ │ ├── dump_file_descriptors │ │ ├── dump_prog │ │ ├── dump_socket_status │ │ ├── dumpallobj │ │ ├── get_config │ │ ├── index │ │ ├── malloc_status │ │ ├── memory_info │ │ ├── mud_status │ │ ├── opcprof │ │ ├── query_load_average │ │ ├── refs │ │ ├── rusage │ │ ├── set_debug_level │ │ ├── set_malloc_mask │ │ ├── swap │ │ ├── time_expression │ │ ├── trace │ │ └── traceprefix │ ├── mappings │ │ ├── allocate_mapping │ │ ├── filter_mapping │ │ ├── index │ │ ├── keys │ │ ├── m_delete │ │ ├── m_indices │ │ ├── m_values │ │ ├── map_delete │ │ ├── map_mapping │ │ ├── match_path │ │ ├── unique_mapping │ │ └── values │ ├── mixed │ │ ├── arrayp │ │ ├── bufferp │ │ ├── classp │ │ ├── floatp │ │ ├── functionp │ │ ├── intp │ │ ├── mapp │ │ ├── objectp │ │ ├── pointerp │ │ ├── stringp │ │ └── undefinedp │ ├── mudlib │ │ ├── author_stats │ │ ├── domain_stats │ │ ├── export_uid │ │ ├── find_living │ │ ├── geteuid │ │ ├── getuid │ │ ├── index │ │ ├── living │ │ ├── livings │ │ ├── query_privs │ │ ├── set_author │ │ ├── set_light │ │ ├── set_living_name │ │ ├── set_privs │ │ └── seteuid │ ├── numbers │ │ ├── index │ │ ├── random │ │ └── to_float │ ├── objects │ │ ├── all_inventory │ │ ├── children │ │ ├── clone_object │ │ ├── clonep │ │ ├── deep_inventory │ │ ├── destruct │ │ ├── environment │ │ ├── file_name │ │ ├── find_object │ │ ├── first_inventory │ │ ├── heart_beat_info │ │ ├── heart_beats │ │ ├── index │ │ ├── load_object │ │ ├── master │ │ ├── move_object │ │ ├── new │ │ ├── next_inventory │ │ ├── objects │ │ ├── present │ │ ├── query_heart_beat │ │ ├── reload_object │ │ ├── restore_object │ │ ├── save_object │ │ ├── set_heart_beat │ │ ├── set_hide │ │ ├── tell_object │ │ ├── tell_room │ │ └── virtualp │ ├── parsing │ │ ├── TODO │ │ ├── index │ │ └── query_verb │ ├── sockets │ │ ├── index │ │ ├── socket_accept │ │ ├── socket_acquire │ │ ├── socket_address │ │ ├── socket_bind │ │ ├── socket_close │ │ ├── socket_connect │ │ ├── socket_create │ │ ├── socket_error │ │ ├── socket_error.h │ │ ├── socket_listen │ │ ├── socket_release │ │ └── socket_write │ ├── strings │ │ ├── capitalize │ │ ├── clear_bit │ │ ├── crypt │ │ ├── explode │ │ ├── implode │ │ ├── index │ │ ├── lower_case │ │ ├── pluralize │ │ ├── reg_assoc │ │ ├── regexp │ │ ├── repeat_string │ │ ├── replace_string │ │ ├── set_bit │ │ ├── sprintf │ │ ├── sscanf │ │ ├── strcmp │ │ ├── strlen │ │ ├── strsrch │ │ ├── terminal_colour │ │ ├── test_bit │ │ └── upper_case │ └── system │ │ ├── all_previous_objects │ │ ├── call_out_info │ │ ├── check_memory │ │ ├── ctime │ │ ├── deep_inherit_list │ │ ├── error │ │ ├── eval_cost │ │ ├── external_start │ │ ├── find_call_out │ │ ├── flush_messages │ │ ├── function_exists │ │ ├── function_profile │ │ ├── functions │ │ ├── index │ │ ├── inherit_list │ │ ├── inherits │ │ ├── localtime │ │ ├── lpc_info │ │ ├── max_eval_cost │ │ ├── memory_summary │ │ ├── named_livings │ │ ├── program_info │ │ ├── reclaim_objects │ │ ├── replace_program │ │ ├── replaceable │ │ ├── reset_eval_cost │ │ ├── set_eval_limit │ │ ├── set_reset │ │ ├── shallow_inherit_list │ │ ├── shutdown │ │ ├── time │ │ ├── uptime │ │ └── variables │ ├── index │ └── lpc │ ├── constructs │ ├── for │ ├── function │ ├── if │ ├── include │ ├── inherit │ ├── prototypes │ ├── ref │ ├── switch │ └── while │ └── types │ ├── array.2d │ ├── buffer │ ├── float │ ├── function │ ├── general │ ├── mappings │ ├── strings │ └── substructures └── src ├── .gitignore ├── 32bitmalloc.c ├── 64bitmalloc.c ├── Artistic.README ├── Bugs ├── ChangeLog ├── ChangeLog.alpha ├── ChangeLog.beta ├── ChangeLog.fluffos ├── ChangeLog.fluffos-2.x ├── Config.example ├── Copyright ├── Credits.LPmud ├── Credits.MudOS ├── Dependencies ├── Exit_Codes ├── GNUmakefile.debug ├── GNUmakefile.in ├── GNUmakefile.keep ├── INSTALL ├── IT_CRASHED ├── Ideas ├── Makefile ├── Makefile.in ├── Makefile.in.pre ├── NMakefile.in ├── NMakefile.in.pre ├── Performance ├── Platforms ├── README ├── Version ├── Win32 ├── ar.c ├── configure.h ├── cp.bat ├── mv.bat ├── rm.bat └── touch.c ├── add_action.c ├── add_action.h ├── addr_server.c ├── addr_server.h ├── applies ├── arch.h ├── array.c ├── array.h ├── avltree.c ├── avltree.h ├── backend.c ├── backend.h ├── bsdmalloc.c ├── bsdmalloc.h ├── buffer.c ├── buffer.h ├── build.FluffOS ├── buildMudOS.bat ├── call_out.c ├── call_out.h ├── class.c ├── class.h ├── comm.c ├── comm.h ├── compat ├── fixstatic ├── parser_error.c └── simuls │ ├── apply.c │ ├── break_string.c │ ├── dump_socket_status.c │ ├── parse_command.c │ ├── process_string.c │ └── tail.c ├── compiler.c ├── compiler.h ├── config.h ├── console.c ├── console.h ├── crc32.c ├── crc32.h ├── crctab.h ├── crypt.c ├── crypt.h ├── debug.c ├── debug.h ├── debugmalloc.c ├── debugmalloc.h ├── disassembler.c ├── dtrace_compile.c ├── dumpstat.c ├── dumpstat.h ├── ed.c ├── ed.h ├── edit_source.c ├── edit_source.h ├── efuns_incl.h ├── efuns_main.c ├── efuns_main.h ├── efuns_port.c ├── eoperators.c ├── eoperators.h ├── eval.c ├── eval.h ├── file.c ├── file.h ├── file_incl.h ├── fliconv.c ├── fliconv.h ├── fluffos.d ├── func_spec.c ├── function.c ├── function.h ├── gcmalloc.c ├── generate.c ├── generate.h ├── gnumalloc.c ├── gnumalloc.h ├── grammar.y.pre ├── hash.c ├── hash.h ├── icode.c ├── icode.h ├── include ├── function.h ├── localtime.h ├── origin.h ├── parser_error.h ├── runtime_config.h ├── semantic.cache ├── socket_err.h └── type.h ├── interpret.c ├── interpret.h ├── lag.d ├── lag.stp ├── lex.c ├── lex.h ├── local_options.ds ├── local_options.ds.debug ├── local_options.dw ├── local_options.dwclone ├── local_options.foundation ├── local_options.foundation2 ├── local_options.fr ├── local_options.lil ├── local_options.lima ├── local_options.lpuni ├── local_options.merentha ├── local_options.nm3 ├── local_options.nm4 ├── local_options.sapid ├── local_options.skylib ├── local_options.test ├── local_options.tmi2 ├── lpc.h ├── lpc_incl.h ├── macros.h ├── main.c ├── main.h ├── make_func.h ├── make_func.y ├── make_malloc.c ├── malloc_incl.h ├── mapping.c ├── mapping.h ├── master.c ├── master.h ├── md.c ├── md.h ├── mmalloc.c ├── my_malloc.h ├── network_incl.h ├── obj └── .gitignore ├── object.c ├── object.h ├── op_spec.c ├── options.h ├── origin.h ├── otable.c ├── otable.h ├── packages ├── .gitignore ├── GNUmakefile.pre ├── Makefile.master ├── Makefile.pre ├── README ├── async.c ├── async.h ├── async_spec.c ├── compress.c ├── compress_spec.c ├── contrib.c ├── contrib_spec.c ├── crypto.c ├── crypto_spec.c ├── db.c ├── db.h ├── db_spec.c ├── debug.c ├── debug.h ├── debug_spec.c ├── develop.c ├── develop_spec.c ├── dslib.c ├── dslib_spec.c ├── dwlib.c ├── dwlib_spec.c ├── external.c ├── external_spec.c ├── math.c ├── math_spec.c ├── matrix.c ├── matrix.h ├── matrix_spec.c ├── mudlib_stats.c ├── mudlib_stats.h ├── mudlib_stats_spec.c ├── parser.c ├── parser.h ├── parser_spec.c ├── pcre.c ├── pcre.h ├── pcre_spec.c ├── readme ├── sha1.c ├── sha1_spec.c ├── sockets.c ├── sockets_spec.c ├── uids.c ├── uids.h └── uids_spec.c ├── parse.c ├── parse.h ├── parse_trees ├── patchlevel.h ├── plainwrapper.c ├── port.c ├── port.h ├── portability.h ├── portbind.c ├── posix_timers.c ├── posix_timers.h ├── preprocess.c ├── preprocess.h ├── program.c ├── program.h ├── qsort.c ├── qsort.h ├── rc.c ├── rc.h ├── reclaim.c ├── reclaim.h ├── regexp.c ├── regexp.h ├── replace_program.c ├── replace_program.h ├── scratchpad.c ├── scratchpad.h ├── simul_efun.c ├── simul_efun.h ├── simulate.c ├── simulate.h ├── smalloc.c ├── smalloc.h ├── socket_ctrl.c ├── socket_ctrl.h ├── socket_efuns.c ├── socket_efuns.h ├── socket_err.c ├── socket_err.h ├── spec.h ├── sprintf.c ├── sprintf.h ├── std.h ├── std_incl.h ├── stralloc.c ├── stralloc.h ├── sysmalloc.c ├── telnet.h ├── testsuite ├── .edrc ├── README ├── clone │ ├── README │ ├── login.c │ ├── readme │ └── user.c ├── command │ ├── README │ ├── codefor.c │ ├── crasher.c │ ├── dest.c │ ├── ed.c │ ├── eval.c │ ├── quit.c │ ├── readme │ ├── rm.c │ ├── say.c │ ├── shutdown.c │ ├── speed.c │ ├── tests.c │ ├── update.c │ └── who.c ├── crasher │ ├── 1 │ ├── 2 │ ├── 4 │ ├── 5 │ ├── 7 │ ├── 8 │ ├── 9 │ ├── 11 │ ├── 12 │ ├── 13 │ ├── 14 │ ├── 16 │ └── 17 ├── data │ ├── README │ ├── readme │ └── sha1 │ │ ├── README │ │ ├── Readme.txt │ │ ├── byte-hashes.sha1 │ │ └── byte-messages.sha1 ├── etc │ ├── config.test │ └── motd ├── include │ ├── README │ ├── command.h │ ├── config.h │ ├── globals.h │ ├── lpctypes.h │ ├── readme │ └── tests.h ├── inherit │ ├── README │ ├── base.c │ ├── clean_up.c │ ├── master │ │ └── valid.c │ ├── readme │ └── tests.c ├── log │ ├── README │ └── readme ├── readme ├── single │ ├── README │ ├── inh.c │ ├── master.c │ ├── readme │ ├── simul_efun.c │ ├── tests │ │ ├── compiler │ │ │ ├── 64bit.c │ │ │ ├── at_block.c │ │ │ ├── constant_expr.c │ │ │ ├── fail │ │ │ │ ├── arr_index.c │ │ │ │ ├── bad_break.c │ │ │ │ ├── bad_continue.c │ │ │ │ ├── bad_for_init.c │ │ │ │ ├── bad_foreach.c │ │ │ │ ├── bad_init.c │ │ │ │ ├── bad_local_init.c │ │ │ │ ├── bad_local_init2.c │ │ │ │ ├── bad_param.c │ │ │ │ ├── bad_param2.c │ │ │ │ ├── bad_return.c │ │ │ │ ├── bad_return2.c │ │ │ │ ├── bad_type_init.c │ │ │ │ ├── class_redef.c │ │ │ │ ├── div_zero.c │ │ │ │ ├── div_zero3.c │ │ │ │ ├── eof_in_comment.c │ │ │ │ ├── eof_in_string.c │ │ │ │ ├── local_redef.c │ │ │ │ ├── local_redef2.c │ │ │ │ ├── lvar_func.c │ │ │ │ ├── lvar_func2.c │ │ │ │ ├── missing_endif.c │ │ │ │ ├── missing_type.c │ │ │ │ ├── mixed_case.c │ │ │ │ ├── mod_zero.c │ │ │ │ ├── no_member.c │ │ │ │ ├── no_ret_type.c │ │ │ │ ├── no_such_class.c │ │ │ │ ├── predef.c │ │ │ │ ├── redef_function.c │ │ │ │ ├── static_local.c │ │ │ │ ├── string_case.c │ │ │ │ ├── two_default.c │ │ │ │ ├── undef_class.c │ │ │ │ ├── var_to_nonvar.c │ │ │ │ ├── void_arg.c │ │ │ │ ├── void_arg2.c │ │ │ │ ├── void_for_var.c │ │ │ │ ├── void_global.c │ │ │ │ ├── void_local.c │ │ │ │ └── void_member.c │ │ │ └── succeed.c │ │ ├── efuns │ │ │ ├── README │ │ │ ├── add_action.c │ │ │ ├── add_light.c │ │ │ ├── all_inventory.c │ │ │ ├── allocate.c │ │ │ ├── allocate_buffer.c │ │ │ ├── allocate_mapping.c │ │ │ ├── badshad.c │ │ │ ├── bind.c │ │ │ ├── break_string.c │ │ │ ├── cache_stats.c │ │ │ ├── call_other.c │ │ │ ├── call_out.c │ │ │ ├── call_stack.c │ │ │ ├── capitalize.c │ │ │ ├── children.c │ │ │ ├── clear_bit.c │ │ │ ├── clone_object.c │ │ │ ├── clonep.c │ │ │ ├── command.c │ │ │ ├── cp.c │ │ │ ├── crc32.c │ │ │ ├── ctime.c │ │ │ ├── deep_inherit_list.c │ │ │ ├── deep_inventory.c │ │ │ ├── destruct.c │ │ │ ├── disable_commands.c │ │ │ ├── dumpallobj.c │ │ │ ├── ed.c │ │ │ ├── enable_wizard.c │ │ │ ├── environment.c │ │ │ ├── error.c │ │ │ ├── exec.c │ │ │ ├── explode.c │ │ │ ├── file_name.c │ │ │ ├── file_size.c │ │ │ ├── filter.c │ │ │ ├── find_call_out.c │ │ │ ├── find_living.c │ │ │ ├── find_object.c │ │ │ ├── find_player.c │ │ │ ├── function_exists.c │ │ │ ├── function_profile.c │ │ │ ├── functionp.c │ │ │ ├── generate_source.c │ │ │ ├── get_char.c │ │ │ ├── get_config.c │ │ │ ├── get_dir.c │ │ │ ├── goodshad.c │ │ │ ├── has_errors.c │ │ │ ├── implode.c │ │ │ ├── in_edit.c │ │ │ ├── inh0.c │ │ │ ├── inh1.c │ │ │ ├── inh2.c │ │ │ ├── inherit_list.c │ │ │ ├── inherits.c │ │ │ ├── input_to.c │ │ │ ├── interactive.c │ │ │ ├── intp.c │ │ │ ├── keys.c │ │ │ ├── light.c │ │ │ ├── living.c │ │ │ ├── livings.c │ │ │ ├── lower_case.c │ │ │ ├── malloc_status.c │ │ │ ├── map.c │ │ │ ├── map_delete.c │ │ │ ├── mapp.c │ │ │ ├── master.c │ │ │ ├── match_path.c │ │ │ ├── member_array.c │ │ │ ├── message.c │ │ │ ├── mkdir.c │ │ │ ├── move_object.c │ │ │ ├── mud_status.c │ │ │ ├── notify_fail.c │ │ │ ├── nullp.c │ │ │ ├── objectp.c │ │ │ ├── opcprof.c │ │ │ ├── origin.c │ │ │ ├── pointerp.c │ │ │ ├── present.c │ │ │ ├── previous_object.c │ │ │ ├── printf.c │ │ │ ├── query_ed_mode.c │ │ │ ├── query_idle.c │ │ │ ├── query_ip_name.c │ │ │ ├── query_ip_number.c │ │ │ ├── query_load_average.c │ │ │ ├── query_privs.c │ │ │ ├── query_snoop.c │ │ │ ├── query_snooping.c │ │ │ ├── query_verb.c │ │ │ ├── random.c │ │ │ ├── read_buffer.c │ │ │ ├── read_bytes.c │ │ │ ├── read_file.c │ │ │ ├── readme │ │ │ ├── receive.c │ │ │ ├── reg_assoc.c │ │ │ ├── regexp.c │ │ │ ├── remove_action.c │ │ │ ├── remove_call_out.c │ │ │ ├── rename.c │ │ │ ├── replace_string.c │ │ │ ├── restore_object.c │ │ │ ├── restore_variable.c │ │ │ ├── rm.c │ │ │ ├── rmdir.c │ │ │ ├── save_object.c │ │ │ ├── save_variable.c │ │ │ ├── say.c │ │ │ ├── set_bit.c │ │ │ ├── set_debug_level.c │ │ │ ├── set_heart_beat.c │ │ │ ├── set_hide.c │ │ │ ├── set_light.c │ │ │ ├── set_living_name.c │ │ │ ├── set_privs.c │ │ │ ├── sha1.c │ │ │ ├── shadow.c │ │ │ ├── shutdown.c │ │ │ ├── sizeof.c │ │ │ ├── snoop.c │ │ │ ├── sprintf.c │ │ │ ├── sscanf.c │ │ │ ├── talker.c │ │ │ ├── to_float.c │ │ │ ├── to_int.c │ │ │ ├── unloaded.c │ │ │ ├── users.c │ │ │ └── values.c │ │ └── operators │ │ │ └── range.c │ └── void.c ├── test_control.c └── u │ ├── README │ └── readme ├── tmp └── insttest ├── trees.c ├── trees.h ├── uvalarm.c ├── uvalarm.h ├── windows ├── MudOS.mak ├── README.win32 ├── addr_server.mak ├── clean.bat ├── configure.h ├── edit_source.mak ├── mudos.mak ├── step1.bat ├── stepdbg.bat └── steprel.bat ├── wrappedmalloc.c └── wrappedmalloc.h /Version: -------------------------------------------------------------------------------- 1 | FluffOS 2.28.3 2 | -------------------------------------------------------------------------------- /bin/.gitignore: -------------------------------------------------------------------------------- 1 | addr_server 2 | driver 3 | portbind 4 | 5 | -------------------------------------------------------------------------------- /doc/html/applies/__INIT: -------------------------------------------------------------------------------- 1 | __INIT - obsolete apply 2 | 3 | void __INIT(); 4 | 5 | This function used to be called in objects right before create. 6 | global variable initialization is now handled by another function that 7 | cannot be interfered with, so this is no longer called. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/html/applies/heart_beat: -------------------------------------------------------------------------------- 1 | heart_beat - called periodically in objects in which it is enabled 2 | 3 | void heart_beat(); 4 | 5 | If an object has called set_heart_beat(), this function will be called 6 | periodically in that object. 7 | 8 | See also: 9 | set_heart_beat 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/applies/interactive/index: -------------------------------------------------------------------------------- 1 | Interactive applies 2 | 3 | These are the functions called in 'user' objects: 4 | 5 |
6 | * catch_tell 7 | * logon 8 | * net_dead 9 | * process_input 10 | * receive_message 11 | * receive_snoop 12 | * telnet_suboption 13 | * terminal_type 14 | * window_size 15 | * write_prompt 16 |
17 | 18 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 19 | -------------------------------------------------------------------------------- /doc/html/applies/interactive/index.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/interactive/index.c.html -------------------------------------------------------------------------------- /doc/html/applies/interactive/receive_message.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/interactive/receive_message.c.html -------------------------------------------------------------------------------- /doc/html/applies/interactive/receive_snoop.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/interactive/receive_snoop.c.html -------------------------------------------------------------------------------- /doc/html/applies/interactive/telnet_suboption.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/interactive/telnet_suboption.c.html -------------------------------------------------------------------------------- /doc/html/applies/interactive/window_size: -------------------------------------------------------------------------------- 1 | window_size - report the users window size 2 | 3 | void window_size(int width, int height); 4 | 5 | window_size() is called with the user's window size, as reported by telnet 6 | negotiation. If the user's client never responds to the query, this is 7 | never called. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/html/applies/interactive/write_prompt: -------------------------------------------------------------------------------- 1 | write_prompt - called when the parser wants a prompt to be written. 2 | 3 | void write_prompt(); 4 | 5 | If write_prompt is present in the player object, the driver will call it 6 | whenever the default prompt would normally be printed. The driver will 7 | not call write_prompt when the player is in input_to or ed. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/html/applies/master/get_root_uid: -------------------------------------------------------------------------------- 1 | get_root_uid - get the root uid 2 | 3 | string get_root_uid(); 4 | 5 | This function is only used if PACKAGE_UIDS is used. 6 | 7 | This master apply is called by the driver each time 8 | it loads the master object, to verify that the master 9 | object has loaded, and to get the root uid defined by 10 | the mud. The function should return a string, eg "ROOT" 11 | 12 | See also: 13 | get_bb_uid 14 | -------------------------------------------------------------------------------- /doc/html/applies/master/make_path_absolute: -------------------------------------------------------------------------------- 1 | make_path_absolute - resolve relative path name 2 | 3 | string make_path_absolute( string rel_path ); 4 | 5 | This master apply is called by the ed() efun to 6 | resolve relative path names of a file to read/write, to an absolute path 7 | name. 8 | 9 | See also: 10 | ed 11 | -------------------------------------------------------------------------------- /doc/html/applies/master/parse_command_all_word: -------------------------------------------------------------------------------- 1 | parse_command_all_word - find out what word refers to everything 2 | 3 | string parse_command_all_word(); 4 | 5 | This routine is called in the master object to find out what word should 6 | be considered to refer to everyting. It is used by the parse_command() efun. 7 | 8 | See also: 9 | parse_command 10 | -------------------------------------------------------------------------------- /doc/html/applies/master/parse_command_prepos_list: -------------------------------------------------------------------------------- 1 | parse_command_prepos_list - find out what words are valid prepositions 2 | 3 | string array parse_command_prepos_list(); 4 | 5 | This routine is called in the master object to find out what words should 6 | be considered prepositions. It is used by the parsing package and the 7 | parse_command() efun. 8 | 9 | See also: 10 | parse_command 11 | -------------------------------------------------------------------------------- /doc/html/applies/master/retrieve_ed_setup: -------------------------------------------------------------------------------- 1 | retrieve_ed_setup - retrieve a user's editor setup or configuration settings 2 | 3 | int retrieve_ed_setup( object user ); 4 | 5 | This master apply is called by the ed() efun to retrieve 6 | a user's ed setup/configuration settings. This function 7 | should return the setup (contained in an int). 8 | 9 | See also: 10 | save_ed_setup 11 | -------------------------------------------------------------------------------- /doc/html/applies/master/save_ed_setup: -------------------------------------------------------------------------------- 1 | save_ed_setup - save a user's editor setup or configuration settings 2 | 3 | int save_ed_setup( object user, int config ); 4 | 5 | This master apply is called by the ed() efun to save 6 | a user's ed setup/configuration settings (contained in 7 | an int). This function should return an int for 8 | success (1 or TRUE)/failure (0 or FALSE). 9 | 10 | Seel also: 11 | retrieve_ed_setup 12 | -------------------------------------------------------------------------------- /doc/html/applies/parsing/index: -------------------------------------------------------------------------------- 1 | Parsing applies 2 | 3 | These are the applies used by the parse_command() efun, and also the new 4 | parsing package: 5 | 6 |
7 | * parse_command_adjectiv_id_list 8 | * parse_command_id_list 9 | * parse_command_plural_id_list 10 |
11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/applies/parsing/index.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/parsing/index.c.html -------------------------------------------------------------------------------- /doc/html/applies/parsing/parse_command_adjectiv_id_list.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/parsing/parse_command_adjectiv_id_list.c.html -------------------------------------------------------------------------------- /doc/html/applies/parsing/parse_command_id_list: -------------------------------------------------------------------------------- 1 | parse_command_id_list - returns a list of names to the parser 2 | 3 | string array parse_command_id_list(); 4 | 5 | This routine is used to find out what nouns the object responds to, and is 6 | used by the parsing package and the parse_command() efun. In addition, 7 | anything returned by the master object will work on ANY object. 8 | 9 | See also: 10 | parse_command 11 | -------------------------------------------------------------------------------- /doc/html/applies/parsing/parse_command_id_list.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/parsing/parse_command_id_list.c.html -------------------------------------------------------------------------------- /doc/html/applies/parsing/parse_command_plural_id_list.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/applies/parsing/parse_command_plural_id_list.c.html -------------------------------------------------------------------------------- /doc/html/concepts/index: -------------------------------------------------------------------------------- 1 | MudOS driver concepts 2 | 3 | This is pretty much a grab bag of stuff right now ... 4 | 5 |
6 | * MudOS driver 7 | * LPC 8 | * message() 9 | * objects 10 | * OOP 11 | * preprocessor 12 | * simul_efuns 13 | * socket_efuns 14 | * defines 15 |
16 | 17 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 18 | 19 | -------------------------------------------------------------------------------- /doc/html/driver/index: -------------------------------------------------------------------------------- 1 | Driver documentation 2 | 3 | The vast majority of this is hopefully out of date, and hopefully will be 4 | rewritten soon. It is here mostly for historical reasons. 5 | 6 |
7 | * malloc 8 | * stackmachine 9 | * done-mudos 10 | * done-lars 11 | * adding_efuns 12 |
13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/html/efuns/TODO: -------------------------------------------------------------------------------- 1 | parse_add_rule(string, string) [PACKAGE_PARSER] 2 | parse_add_synonym(string, string, void | string) [PACKAGE_PARSER] 3 | parse_dump() [PACKAGE_PARSER] 4 | parse_init() [PACKAGE_PARSER] 5 | parse_my_rules(object, string, void | int) [PACKAGE_PARSER] 6 | parse_refresh() [PACKAGE_PARSER] 7 | parse_remove(string) [PACKAGE_PARSER] 8 | parse_sentence(string, void|int) [PACKAGE_PARSER] 9 | -------------------------------------------------------------------------------- /doc/html/efuns/arrays/allocate: -------------------------------------------------------------------------------- 1 | allocate - allocate an array 2 | 3 | array allocate( int size ); 4 | 5 | Allocate an array of elements. The number of elements must be >= 0 6 | and not bigger than a system maximum (usually ~10000). All elements are 7 | initialized to 0. 8 | 9 | See also: 10 | sizeof, 11 | allocate_mapping 12 | 13 | -------------------------------------------------------------------------------- /doc/html/efuns/arrays/filter_array: -------------------------------------------------------------------------------- 1 | filter_array - return a selective sub-array 2 | 3 | array filter_array( array arr, string fun, object ob, mixed extra, ... ); 4 | 5 | array filter_array( array arr, function f, mixed extra, ...); 6 | 7 | filter_array() is really the same as the filter() efun. 8 | 9 | See also: 10 | filter 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/arrays/index: -------------------------------------------------------------------------------- 1 | Array efuns 2 | 3 | These efuns exist for the manipulation of array values: 4 | 5 |
6 | * allocate 7 | * arrayp 8 | * filter_array 9 | * map_array 10 | * member_array 11 | * pointerp 12 | * sort_array 13 | * unique_array 14 |
15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | 18 | -------------------------------------------------------------------------------- /doc/html/efuns/arrays/map_array: -------------------------------------------------------------------------------- 1 | map_array - modify an array of elements via application of a function 2 | 3 | array map_array( array arr, string fun, object ob, mixed extra, ... ); 4 | 5 | array map_array( array arr, function f, mixed extra, ... );; 6 | 7 | The map_array() efun is really just an alias for the map() efun. 8 | 9 | See also: 10 | map 11 | -------------------------------------------------------------------------------- /doc/html/efuns/buffers/crc32: -------------------------------------------------------------------------------- 1 | crc32 - compute the cycle redundancy code for a buffer or string 2 | 3 | int crc32( buffer | string x ); 4 | 5 | Computes and returns the CRC-32 code for the given buffer or string, `x'. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/buffers/index: -------------------------------------------------------------------------------- 1 | Buffer Efuns 2 | 3 | The following efuns are available for manipulating buffer values: 4 | 5 |
6 | * allocate_buffer 7 | * bufferp 8 | * crc32 9 | * read_buffer 10 | * write_buffer 11 |
12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | 15 | -------------------------------------------------------------------------------- /doc/html/efuns/calls/this_object: -------------------------------------------------------------------------------- 1 | this_object - return the object pointer of the calling object 2 | 3 | object this_object(); 4 | 5 | Return the object pointer of the current object. Useful for passing the 6 | current object to other functions. 7 | 8 | See also: 9 | this_player, 10 | previous_object, 11 | origin 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/compile/index: -------------------------------------------------------------------------------- 1 | Compilation efuns 2 | 3 | The only efun in here currently is the LPC->C one. 4 | 5 |
6 | * generate_source 7 |
8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/cp: -------------------------------------------------------------------------------- 1 | cp - copy a file 2 | 3 | int cp(string src, string dst); 4 | 5 | Copies the file 'src' to the file 'dst'. 6 | 7 | Returns 1 for success, returns -1 if the first src is unreadable, -2 if 8 | dst is unreadable, and -3 if an i/o error occurs. 9 | 10 | See also: 11 | rm, 12 | rmdir, 13 | rename, 14 | link 15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/file_size: -------------------------------------------------------------------------------- 1 | file_size - get the size of a file 2 | 3 | int file_size( string file ); 4 | 5 | file_size() returns the size of file 'file' in bytes. Size -1 6 | indicates that 'file' either does not exist, or that it is not 7 | readable. Size -2 indicates that 'file' is a directory. 8 | 9 | See also: 10 | file_length, 11 | stat, 12 | get_dir 13 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/mkdir: -------------------------------------------------------------------------------- 1 | mkdir - make a directory 2 | 3 | int mkdir( string directory ); 4 | 5 | Creates the specified directory. Returns 1 if successful, 0 if not. 6 | 7 | See also: 8 | rm, 9 | rmdir, 10 | link 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/rename: -------------------------------------------------------------------------------- 1 | rename - rename a file 2 | 3 | int rename( string src, string dst ); 4 | 5 | Renames the file 'src' to 'dst'. 6 | 7 | rename() returns zero (0) to indicate success. Nonzero indicates failure. 8 | 9 | See also: 10 | rm, 11 | rmdir, 12 | cp, 13 | link 14 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/rm: -------------------------------------------------------------------------------- 1 | rm - remove a file 2 | 3 | int rm( string file ); 4 | 5 | Remove file `file'. Returns 0 for failure and 1 for success. 6 | 7 | See also: 8 | mkdir, 9 | rmdir, 10 | link 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/rmdir: -------------------------------------------------------------------------------- 1 | rmdir - remove a directory 2 | 3 | int rmdir( string dir ); 4 | 5 | Remove directory `dir'. 6 | Returns nonzero for success, zero (0) for failure. 7 | 8 | See also: 9 | rm, 10 | mkdir, 11 | link 12 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/write_bytes: -------------------------------------------------------------------------------- 1 | write_bytes - writes a contiguous series of bytes to a file 2 | 3 | int write_bytes( string path, int start, string series ); 4 | 5 | This function writes the bytes in 'series' into the file named by 'path' 6 | beginning at byte # 'start'. It returns zero (0) upon failure, 1 otherwise. 7 | 8 | See also: 9 | write_file, 10 | read_bytes 11 | -------------------------------------------------------------------------------- /doc/html/efuns/filesystem/write_file: -------------------------------------------------------------------------------- 1 | write_file - appends a string to a file 2 | 3 | int write_file( string file, string str, int flag ); 4 | 5 | Append the string `str' into the file `file'. Returns 0 or 1 for 6 | failure or success. If flag is 1, write_file overwrites instead of 7 | appending. 8 | 9 | See also: 10 | read_file, 11 | write_buffer, 12 | file_size 13 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/acos: -------------------------------------------------------------------------------- 1 | acos - return the arccosine of a float 2 | 3 | float acos( float f ); 4 | 5 | This efun is available only if PACKAGE_MATH is compiled in to the driver. 6 | 7 | Returns the arccosine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | asin, 11 | atan, 12 | cos, 13 | sin, 14 | tan 15 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/asin: -------------------------------------------------------------------------------- 1 | asin - return the arcsine of a float 2 | 3 | float asin( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the arcsine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | atan, 12 | cos, 13 | sin, 14 | tan 15 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/atan: -------------------------------------------------------------------------------- 1 | atan - return the tangent of a float 2 | 3 | float atan( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is not compiled in. 6 | 7 | Returns the arctangent of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | cos, 13 | sin, 14 | tan 15 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/ceil: -------------------------------------------------------------------------------- 1 | ceil - round a float up to the nearest integer 2 | 3 | float ceil( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns (as a float) the nearest integer number equal to or greater than f. 8 | 9 | See also: 10 | floor, 11 | to_int, 12 | to_float 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/cos: -------------------------------------------------------------------------------- 1 | cos - return the cosine of a float 2 | 3 | float cos( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled into the driver. 6 | 7 | Returns the cosine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | atan, 13 | sin, 14 | tan 15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/exp: -------------------------------------------------------------------------------- 1 | exp - find e to the power of a float 2 | 3 | float exp( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | exp() returns e^f. 8 | 9 | See also: 10 | log, 11 | pow, 12 | sqrt 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/floor: -------------------------------------------------------------------------------- 1 | floor - round a float down to the nearest integer 2 | 3 | float floor( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns (as a float) the nearest integer number equal to or smaller than f. 8 | 9 | See also: 10 | ceil, 11 | to_int, 12 | to_float 13 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/index: -------------------------------------------------------------------------------- 1 | Float Efuns 2 | 3 | The following efuns provide general math library functions. 4 | 5 |
6 | * acos 7 | * asin 8 | * atan 9 | * ceil 10 | * cos 11 | * exp 12 | * floatp 13 | * floor 14 | * log 15 | * pow 16 | * sin 17 | * sqrt 18 | * tan 19 | * to_int 20 |
21 | 22 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 23 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/log: -------------------------------------------------------------------------------- 1 | log - returns the natural logarithm of a float 2 | 3 | float log( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the natural logarithm of its argument, `f'. `f' must be positive. 8 | 9 | See also: 10 | exp, 11 | pow, 12 | sqrt 13 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/pow: -------------------------------------------------------------------------------- 1 | pow - find an exponent of a float 2 | 3 | float pow( float x, float y ); 4 | 5 | This efun is only available if PACKAGE_MATH is defined. 6 | 7 | pow() returns x to the y power. If x is 0.0, y must be positive. If x is 8 | negative, y must be an integer. 9 | 10 | See also: 11 | exp, 12 | log, 13 | sqrt 14 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/sin: -------------------------------------------------------------------------------- 1 | sin - return the sine of a float 2 | 3 | float sin( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the sine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | atan, 13 | cos, 14 | tan 15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/sqrt: -------------------------------------------------------------------------------- 1 | sqrt - returns the square root of a float 2 | 3 | float sqrt( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | sqrt() returns the non-negative square root of its argument, `f'. The value 8 | of `f' must not be negative. 9 | 10 | See also: 11 | exp, 12 | log, 13 | pow 14 | 15 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 16 | -------------------------------------------------------------------------------- /doc/html/efuns/floats/tan: -------------------------------------------------------------------------------- 1 | tan - return the tangent of a float 2 | 3 | float tan( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the tangent of its argument, 'f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | atan, 13 | cos, 14 | sin 15 | -------------------------------------------------------------------------------- /doc/html/efuns/functions/evaluate: -------------------------------------------------------------------------------- 1 | evaluate - evaluate a function pointer 2 | 3 | mixed evaluate(mixed f, ...); 4 | 5 | If f is a function, f is called with the rest of the arguments. 6 | Otherwise, f is returned. evaluate(f, ...) is the same as (*f)(...). 7 | 8 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 9 | -------------------------------------------------------------------------------- /doc/html/efuns/functions/function_owner: -------------------------------------------------------------------------------- 1 | function_owner - return the owner of a given function. 2 | 3 | object function_owner(function); 4 | 5 | function_owner returns the object that owns the function specified by 6 | the argument. 7 | 8 | This function requires PACKAGE_CONTRIB to be defined in the options file. 9 | 10 | See also: 11 | bind 12 | -------------------------------------------------------------------------------- /doc/html/efuns/functions/index: -------------------------------------------------------------------------------- 1 | Function efuns 2 | 3 | These efuns are for use with function pointers. 4 | 5 |
6 | * bind 7 | * evaluate 8 | * functionp 9 |
10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/general/index: -------------------------------------------------------------------------------- 1 | Efuns for general LPC values 2 | 3 | These efuns act on arbitrary values of various types. 4 | 5 |
6 | * copy 7 | * fetch_variable 8 | * filter 9 | * map 10 | * restore_variable 11 | * save_variable 12 | * store_variable 13 | * sizeof 14 | * typeof 15 | * undefinedp 16 |
17 | 18 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 19 | -------------------------------------------------------------------------------- /doc/html/efuns/general/restore_variable: -------------------------------------------------------------------------------- 1 | restore_variable - restore value of a variable from a string 2 | 3 | mixed restore_variable( string value ); 4 | 5 | Restores an LPC value from a string. The format used is the 6 | same format as save/restore_object. 7 | 8 | See also: 9 | save_variable, 10 | restore_object 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/general/save_variable: -------------------------------------------------------------------------------- 1 | save_variable - save the value of variable into a string 2 | 3 | string save_variable( mixed var ); 4 | 5 | Saves an LPC value into a string. The format is the same as 6 | save/restore_object. 7 | 8 | See also: 9 | restore_variable, 10 | restore_object 11 | -------------------------------------------------------------------------------- /doc/html/efuns/general/sizeof: -------------------------------------------------------------------------------- 1 | sizeof - return the number of elements in an array 2 | 3 | int sizeof( mixed var ); 4 | 5 | Return the number of elements in an array, mapping, string, class or 6 | buffer 'var'. If `var' is not an array, mapping, string, class or 7 | buffer, then zero (0) is returned. 8 | 9 | See also: 10 | strlen 11 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/commands.c.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/html/efuns/interactive/commands.c.html -------------------------------------------------------------------------------- /doc/html/efuns/interactive/disable_commands: -------------------------------------------------------------------------------- 1 | disable_commands - makes a living object non-living 2 | 3 | void disable_commands(); 4 | 5 | This efun is only available if NO_ADD_ACTION is not defined. 6 | 7 | Causes the current object to no longer be able to execute commands. 8 | 9 | See also: 10 | enable_commands 11 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/disable_wizard: -------------------------------------------------------------------------------- 1 | disable_wizard - remove wizard priveleges from an object 2 | 3 | void disable_wizard(); 4 | 5 | This efun is only available if NO_WIZARDS is not defined. 6 | 7 | The opposite of enable_wizard(). Disables wizard privileges from the 8 | current object. 9 | 10 | See also: 11 | enable_wizard, 12 | wizardp 13 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/ed_cmd: -------------------------------------------------------------------------------- 1 | ed_cmd - perform an 'ed' command 2 | 3 | This efun is only available if OLD_ED is not defined. 4 | 5 | string ed_cmd(string cmd); 6 | 7 | Performs the ed command 'cmd'. The result of the command is returned. 8 | Ed must have been started with ed_start() in order to call this efun. 9 | 10 | See also: 11 | ed_start 12 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/find_player: -------------------------------------------------------------------------------- 1 | find_player - find a player by name 2 | 3 | object find_player( string str ); 4 | 5 | This efun is only available when NO_ADD_ACTION is not defined. 6 | 7 | Similar to find_living(), but only searches through objects that are 8 | interactive, or were once interactive. 9 | 10 | See also: 11 | find_living, 12 | livings, 13 | users, 14 | set_living_name 15 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/in_edit: -------------------------------------------------------------------------------- 1 | in_edit() - determine if a player is in the editor 2 | 3 | string in_edit(); 4 | 5 | string in_edit(object ob); 6 | 7 | If the given object is in the editor, the file being edited is 8 | returned, else zero. If no object is given, this_object() is used. 9 | 10 | See also: 11 | ed, 12 | in_input 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/in_input: -------------------------------------------------------------------------------- 1 | in_input() - determines if a player is inputting to an input_to 2 | 3 | int in_input(); 4 | 5 | int in_input(object ob); 6 | 7 | Returns 1 if the object is currently inputting to an input_to or get_char. 8 | If no object is specified, this_object() is assumed. 9 | 10 | See also: 11 | get_char, 12 | input_to 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | 16 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/interactive: -------------------------------------------------------------------------------- 1 | interactive - detects whether or not a given object is an interactive 2 | 3 | int interactive( object ob ); 4 | 5 | Return non-zero if 'ob' is an interactive player. 0 will be returned 6 | if he is link dead. 7 | 8 | See also: 9 | query_ip_number, 10 | query_ip_name, 11 | enable_commands 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/query_host_name: -------------------------------------------------------------------------------- 1 | query_host_name - return the host name 2 | 3 | string query_host_name(); 4 | 5 | query_host_name() returns the name of the host. 6 | 7 | See also: 8 | resolve, 9 | socket_address, 10 | query_ip_name, 11 | query_ip_number 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/query_idle: -------------------------------------------------------------------------------- 1 | query_idle - determine how many seconds an interactive player has been idle 2 | 3 | int query_idle( object ob ); 4 | 5 | Query how many seconds a player object (ob) has been idling. 6 | 7 | See also: 8 | in_edit, 9 | in_input 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/query_ip_number: -------------------------------------------------------------------------------- 1 | query_ip_number - return the ip number for a player object 2 | 3 | string query_ip_number( object ob ); 4 | 5 | Return the ip-number (dotted decimal form) for player `ob'. 6 | 7 | See also: 8 | query_ip_name, 9 | query_host_name, 10 | resolve, 11 | socket_address 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/query_snoop: -------------------------------------------------------------------------------- 1 | query_snoop - return the snooper of an interactive object 2 | 3 | object query_snoop( object ob ); 4 | 5 | If `ob' (an interactive object) is being snooped by another interactive object, 6 | the snooping object is returned. Otherwise, 0 is returned. 7 | 8 | See also: 9 | snoop, 10 | query_snooping 11 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/query_snooping: -------------------------------------------------------------------------------- 1 | query_snooping - return the object than an object is snooping 2 | 3 | object query_snooping( object ob ); 4 | 5 | If `ob' (an interactive object) is snooping another interactive object, the 6 | snooped object is returned. Otherwise, 0 is returned. 7 | 8 | See also: 9 | snoop, 10 | query_snoop 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/shout: -------------------------------------------------------------------------------- 1 | shout - sends a message to all living objects 2 | 3 | void shout( string str ); 4 | 5 | Sends the string `str' to all living objects except this_player(). 6 | 7 | See also: 8 | message, 9 | write, 10 | tell_object, 11 | tell_room, 12 | say 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | 16 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/this_player: -------------------------------------------------------------------------------- 1 | this_player - return the object representing the current player 2 | 3 | object this_player( int flag ); 4 | 5 | this_player() is exactly the same as this_user(). 6 | 7 | See also: 8 | this_user 9 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/userp: -------------------------------------------------------------------------------- 1 | userp - determine if a given object was once interactive 2 | 3 | int userp( object ); 4 | 5 | Returns 1 if the arg was once interactive. 6 | 7 | See also: 8 | interactive, 9 | users, 10 | living 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/users: -------------------------------------------------------------------------------- 1 | users - return an array of objects containing all interactive players 2 | 3 | object array users(); 4 | 5 | Return an array of objects, containing all interactive players. 6 | 7 | See also: 8 | livings, 9 | children, 10 | objects 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/wizardp: -------------------------------------------------------------------------------- 1 | wizardp - determines if a given object had enable_wizard() performed in it 2 | 3 | int wizardp( object ); 4 | 5 | This efun is only available if NO_WIZARDS is not compiled in. 6 | 7 | Returns 1 if the arg had enable_wizard() performed on it. 8 | 9 | See also: 10 | disable_wizard, 11 | enable_wizard 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/interactive/write: -------------------------------------------------------------------------------- 1 | write() - send a message to current player 2 | 3 | void write( mixed str ); 4 | 5 | Write a message `str' to current player. `str' can also be a number, which 6 | will be translated to a string. 7 | 8 | See also: 9 | message, 10 | tell_object, 11 | tell_room, 12 | shout, 13 | say 14 | 15 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 16 | -------------------------------------------------------------------------------- /doc/html/efuns/internals/get_config: -------------------------------------------------------------------------------- 1 | get_config - query various driver config settings 2 | 3 | mixed get_config( int ); 4 | 5 | This efun is used to query the driver's various config 6 | settings. Please refer to the "runtime_config.h" 7 | include file for a list of currently recognized options. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/html/efuns/internals/query_load_average: -------------------------------------------------------------------------------- 1 | query_load_average - forces an error to occur in an object 2 | 3 | string query_load_average(); 4 | 5 | This function returns a string which reports two things: 1) user commands 6 | per second, and 2) compiled lines per second. 7 | 8 | See also: 9 | rusage 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/mappings/filter_mapping: -------------------------------------------------------------------------------- 1 | filter_mapping - return a selective sub-mapping 2 | 3 | mapping filter_mapping(mapping map, string fun, object ob, mixed extra, ...); 4 | 5 | mapping filter_array(mapping map, function f, mixed extra, ...); 6 | 7 | filter_mapping() is really the same as the filter() efun. 8 | 9 | See also: 10 | filter 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/mappings/index: -------------------------------------------------------------------------------- 1 | Mapping Efuns 2 | 3 | The following efuns operate on mappings: 4 | 5 |
6 | * allocate_mapping 7 | * keys 8 | * map_delete 9 | * map_mapping 10 | * mapp 11 | * match_path 12 | * unique_mapping 13 | * values 14 |
15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/html/efuns/mappings/m_indices: -------------------------------------------------------------------------------- 1 | m_indices - return the keys of a mapping 2 | 3 | array m_indices(mapping); 4 | 5 | This efun is only available if COMPAT_32 is defined. It behaves exactly 6 | the same as keys(). 7 | 8 | See also: 9 | keys 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/mappings/m_values: -------------------------------------------------------------------------------- 1 | m_values - return the values of a mapping 2 | 3 | array m_values(mapping); 4 | 5 | This efun is only available if COMPAT_32 is defined. It behaves exactly 6 | the same as values(). 7 | 8 | See also: 9 | values 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/arrayp: -------------------------------------------------------------------------------- 1 | arrayp - determine whether or not a given variable is an array 2 | 3 | int arrayp( mixed arg ); 4 | 5 | Return 1 if `arg' is an array, zero otherwise. 6 | 7 | See also: 8 | typeof 9 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/bufferp: -------------------------------------------------------------------------------- 1 | bufferp - determine whether or not a given variable is a buffer 2 | 3 | int bufferp( mixed arg ); 4 | 5 | Return 1 if `arg' is a buffer value and zero otherwise. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/classp: -------------------------------------------------------------------------------- 1 | classp - determine whether or not a given variable is a class 2 | 3 | int classp(mixed); 4 | 5 | Return 1 if the argument is a class. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/floatp: -------------------------------------------------------------------------------- 1 | floatp - determine whether or not a given variable is a float 2 | 3 | int floatp( mixed arg ); 4 | 5 | Return 1 if `arg' is a float number and zero (0) otherwise. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/intp: -------------------------------------------------------------------------------- 1 | intp - determine whether or not a given variable is an integer 2 | 3 | int intp( mixed arg ); 4 | 5 | Return 1 if 'arg' is an integer number and zero (0) otherwise. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/mapp: -------------------------------------------------------------------------------- 1 | mapp - determine whether or not a given variable is a mapping 2 | 3 | int mapp( mixed arg ); 4 | 5 | Return 1 if `arg' is a mapping. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/objectp: -------------------------------------------------------------------------------- 1 | objectp - determine whether or not a given variable is an object 2 | 3 | int objectp( mixed arg ); 4 | 5 | Return 1 if `arg' is an object. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/pointerp: -------------------------------------------------------------------------------- 1 | pointerp - determine whether or not a given variable is an array 2 | 3 | int pointerp( mixed arg ); 4 | 5 | pointerp() is provided for compatibility; it is the same as the arrayp() efun. 6 | 7 | See also: 8 | arrayp 9 | -------------------------------------------------------------------------------- /doc/html/efuns/mixed/stringp: -------------------------------------------------------------------------------- 1 | stringp - determine whether or not a given variable is a string 2 | 3 | int stringp( mixed arg ); 4 | 5 | Returns 1 if 'arg' is a string, and zero if not. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/mudlib/living: -------------------------------------------------------------------------------- 1 | living - detects whether or not a given object is "living" 2 | 3 | int living( object ob ); 4 | 5 | This efun is only available if NO_ADD_ACTION is not compiled in. 6 | 7 | Return true if `ob' is a living object (that is, if "enable_commands()" has 8 | been called by `ob'). 9 | 10 | See also: 11 | enable_commands 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | 15 | -------------------------------------------------------------------------------- /doc/html/efuns/numbers/index: -------------------------------------------------------------------------------- 1 | Efuns relating to ints 2 | 3 | Pretty trivial stuff here 4 | 5 |
6 | * intp 7 | * nullp 8 | * random 9 | * to_float 10 |
11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/numbers/random: -------------------------------------------------------------------------------- 1 | random - return a pseudo-random number 2 | 3 | int random( int n ); 4 | 5 | Return a pseudo-random number from the range [0 .. (n -1)] (inclusive). 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/html/efuns/numbers/to_float: -------------------------------------------------------------------------------- 1 | to_float - convert an int to a float 2 | 3 | float to_float( int i ); 4 | 5 | The to_float() call returns the number of type 'float' that is equivalent to 6 | the int 'i'. 7 | 8 | See also: 9 | to_int, 10 | read_buffer, 11 | sprintf, 12 | sscanf 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | 16 | -------------------------------------------------------------------------------- /doc/html/efuns/objects/heart_beat_info: -------------------------------------------------------------------------------- 1 | heart_beat_info - return an array of objects with active heartbeats 2 | 3 | object array heart_beat_info(); 4 | 5 | Returns an array of all the objects with active heart_beats. This efun 6 | is only available if COMPAT_32 is defined. 7 | 8 | See also: 9 | heart_beats.html 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/objects/heart_beats: -------------------------------------------------------------------------------- 1 | heart_beats - return an array of objects with active heartbeats 2 | 3 | object array heart_beats(); 4 | 5 | Returns an array of all the objects with active heart_beats. This efun 6 | is only available if PACKAGE_CONTRIB is defined. 7 | 8 | See also: 9 | heart_beat, 10 | set_heart_beat, 11 | query_heart_beat 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/objects/master: -------------------------------------------------------------------------------- 1 | master - returns the master object 2 | 3 | object master(); 4 | 5 | Returns a pointer to the master object. 6 | 7 | See also: 8 | find_object 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/html/efuns/objects/move_object: -------------------------------------------------------------------------------- 1 | move_object - move current object to another environment 2 | 3 | void move_object( mixed dest ); 4 | 5 | Move the current object into the object `dest'. dest should either be 6 | a filename or an object. 7 | 8 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 9 | -------------------------------------------------------------------------------- /doc/html/efuns/objects/new: -------------------------------------------------------------------------------- 1 | new 2 | 3 | object x = new( string name, ...); 4 | class foo x = new(class foo); 5 | 6 | If given a string, it behaves like clone object. If given a class type, 7 | it creates a new instance of the class type. 8 | 9 | See also: 10 | clone_object, 11 | destruct, 12 | move_object 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/html/efuns/objects/virtualp: -------------------------------------------------------------------------------- 1 | virtualp - determine whether or not a given variable points to a virtual object 2 | 3 | int virtualp( object arg ); 4 | 5 | Returns true (1) if the argument is objectp() and the O_VIRTUAL flag is set. 6 | The driver sets the O_VIRTUAL flag for those objects created via the 7 | 'compile_object' function in the master object. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/html/efuns/parsing/index: -------------------------------------------------------------------------------- 1 | Parsing efuns 2 | 3 |

Various string parsing efuns:

4 | 5 |
6 | * query_verb 7 |
8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/capitalize: -------------------------------------------------------------------------------- 1 | capitalize - capitalize a string 2 | 3 | string capitalize( string str ); 4 | 5 | Convert the first character in 'str' to upper case, and return the 6 | new string. 7 | 8 | See also: 9 | lower_case 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/clear_bit: -------------------------------------------------------------------------------- 1 | clear_bit - zero a bit in a bit string 2 | 3 | string clear_bit( string str, int n ); 4 | 5 | Return the new string where bit 'n' is cleared in string 'str'. Note that 6 | the old string 'str' is not modified. See set_bit() for information on 7 | the format of the string. 8 | 9 | See also: 10 | set_bit, 11 | test_bit 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/crypt: -------------------------------------------------------------------------------- 1 | crypt - encrypt a string 2 | 3 | string crypt( string str, string seed ); 4 | 5 | Crypt the string 'str' using the first two characters from 'seed' as 6 | a seed. If 'seed' is 0, then random seed is used. 7 | 8 | The result has the first two characters as the seed. 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/lower_case: -------------------------------------------------------------------------------- 1 | lower_case - return the lowercase version of a given string 2 | 3 | string lower_case( string str ); 4 | 5 | Return the lowercase version of a given string (original string remains 6 | unchanged). 7 | 8 | See also: 9 | capitalize 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/pluralize: -------------------------------------------------------------------------------- 1 | pluralize - returns the plural of a given string 2 | 3 | string pluralize( string str ); 4 | 5 | Returns the plural of 'str'. Handles most of the oddities of the English 6 | language. 7 | 8 | This efun is only available if PACKAGE_CONTRIB is defined. 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/set_bit: -------------------------------------------------------------------------------- 1 | next_bit - find the next bit set in a bitstring 2 | 3 | int next_bit( string str, int n ); 4 | 5 | next_bit() returns the next bit set in a bitstring after 'n', or -1 if 6 | 'n' is the last set bit. 7 | 8 | See also: 9 | set_bit, 10 | test_bit 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/strlen: -------------------------------------------------------------------------------- 1 | strlen - returns the length of a string 2 | 3 | int strlen( string str ); 4 | 5 | strlen() returns the number of characters in the string 'str'. 6 | 7 | See also: 8 | sizeof 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/html/efuns/strings/test_bit: -------------------------------------------------------------------------------- 1 | set_bit - set a bit in a bitstring 2 | 3 | int test_bit( string str, int n ); 4 | 5 | Returns 1 if bit 'n' was set in string 'str', and zero otherwise. 6 | 7 | See also: 8 | set_bit, 9 | clear_bit 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/system/ctime: -------------------------------------------------------------------------------- 1 | ctime - return a time string 2 | 3 | string ctime( int clock ); 4 | 5 | Gives a nice string with current date and time, with the argument 'clock' 6 | that is the number of seconds since 1970. 7 | 8 | See also: 9 | time, 10 | localtime, 11 | uptime 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/efuns/system/deep_inherit_list: -------------------------------------------------------------------------------- 1 | deep_inherit_list - get a list of ancestors of an object 2 | 3 | string array deep_inherit_list( object obj ); 4 | 5 | Returns an array of filenames of all objects inherited (directly and 6 | indirectly) by obj. 7 | 8 | See also: 9 | inherit_list, 10 | inherits 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/system/error: -------------------------------------------------------------------------------- 1 | error - generate a run-time error 2 | 3 | void error( string err ); 4 | 5 | A run-time error 'err' will be generated when error() is called. Execution 6 | of the current thread will halt, and the trace will be recorded to the 7 | debug log. 8 | 9 | See also: 10 | catch, 11 | throw, 12 | error_handler 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/html/efuns/system/eval_cost: -------------------------------------------------------------------------------- 1 | eval_cost - returns the evaluation cost remaining 2 | 3 | void eval_cost() 4 | 5 | eval_cost() returns the number of instructions that can be executed 6 | before the driver decides it is in an infinite loop. 7 | 8 | See also: 9 | set_eval_limit, 10 | reset_eval_cost 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/system/inherits: -------------------------------------------------------------------------------- 1 | inherits - determine if an object inherits a given file 2 | 3 | int inherits( string file, object obj ); 4 | 5 | inherits() returns 0 if obj does not inherit file, 1 if it inherits the 6 | most recent copy of file, and 2 if it inherits an old copy of file. 7 | 8 | See also: 9 | deep_inherit_list, 10 | inherit_list 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | 14 | -------------------------------------------------------------------------------- /doc/html/efuns/system/lpc_info: -------------------------------------------------------------------------------- 1 | lpc_info - return information about LPC->C compiled objects 2 | 3 | string lpc_info(); 4 | 5 | lpc_info() returns a string describing which LPC->C programs are available, 6 | which are loaded, and which are out of date with respect to their source. 7 | 8 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 9 | -------------------------------------------------------------------------------- /doc/html/efuns/system/max_eval_cost: -------------------------------------------------------------------------------- 1 | max_eval_cost - returns the maximum evaluation cost 2 | 3 | void max_eval_cost() 4 | 5 | max_eval_cost() returns the number of instructions that can be executed 6 | before the driver decides it is in an infinite loop. 7 | 8 | See also: 9 | set_eval_limit, 10 | reset_eval_cost 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/system/program_info: -------------------------------------------------------------------------------- 1 | program_info - returns information about program memory usage 2 | 3 | string program_info(); 4 | 5 | string program_info(object ob); 6 | 7 | Returns a summary of the memory usage of the program for a given object. 8 | If no program is specified, a summary of the memory usage of all loaded 9 | programs is returned. 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/system/reset_eval_cost: -------------------------------------------------------------------------------- 1 | reset_eval_cost - resets the evaluation cost remaining 2 | 3 | void reset_eval_cost(); 4 | 5 | reset_eval_cost() resets the evaluation cost remaining to the maximum 6 | evaluation cost. 7 | 8 | See also: 9 | eval_cost, 10 | set_eval_limit 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/html/efuns/system/time: -------------------------------------------------------------------------------- 1 | debug_message - send a message to the driver's stdout 2 | 3 | void debug_message(string); 4 | 5 | The string argument is printed on the driver's stdout, as well as being added 6 | to the debug.log file. 7 | 8 | See also: 9 | ctime 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/efuns/system/uptime: -------------------------------------------------------------------------------- 1 | uptime - return the number of seconds elapsed since the last driver reboot 2 | 3 | int uptime(); 4 | 5 | This function returns the number of seconds since the last driver reboot. 6 | 7 | See also: 8 | time, 9 | ctime, 10 | localtime, 11 | time_expression 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/html/index: -------------------------------------------------------------------------------- 1 | MudOS Documentation 2 | 3 |
4 | * Applies 5 | * Concepts 6 | * Driver 7 | * Efuns 8 | * LPC 9 |
10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/html/lpc/constructs/prototypes: -------------------------------------------------------------------------------- 1 | * The function prototype: 2 | 3 | The LPC function prototype is very similar to that of ANSI C. The 4 | function prototype allows for better type checking and can serve as 5 | a kind of 'forward' declaration. 6 | 7 | return_type function_name(arg1_type arg1, arg2_type arg2, ...); 8 | -------------------------------------------------------------------------------- /doc/nroff/FTP: -------------------------------------------------------------------------------- 1 | 1993/09/09 2 | 3 | The latest releases of MudOS are made available via anonymous ftp from 4 | actlab.rtf.utexas.edu:/MUD/LPmud/MudOS/driver. Beta releases are available 5 | in the /MUD/LPmud/MudOS/driver/beta directory. 6 | 7 | ftp.ccs.neu.edu:/pub/mud also carries the latest releases, as well as 8 | several mudlibs (such as TMI-2 and Nightmare). 9 | -------------------------------------------------------------------------------- /doc/nroff/applies/__INIT.4: -------------------------------------------------------------------------------- 1 | .\"obsolete apply 2 | .TH __INIT 4 "5 Sep 1994" MudOS "Driver Applies" 3 | 4 | .SH NAME 5 | __INIT - obsolete apply 6 | 7 | .SH SYNOPSIS 8 | __INIT( void ); 9 | 10 | .SH DESCRIPTION 11 | This function used to be called in objects right before create. 12 | global variable initialization is now handled by another function that 13 | cannot be interfered with, so this is no longer called. 14 | -------------------------------------------------------------------------------- /doc/nroff/applies/interactive/logon.4: -------------------------------------------------------------------------------- 1 | .\"initialize a login connection 2 | .TH logon 4 "5 Sep 1994" MudOS "Driver Applies" 3 | 4 | .SH NAME 5 | logon - initialize a login connection 6 | 7 | .SH SYNOPSIS 8 | object logon( void ); 9 | 10 | .SH DESCRIPTION 11 | This apply is called on the object returned by the connect() master 12 | apply. It should set up the new user. 13 | 14 | .SH SEE ALSO 15 | connect(4) 16 | -------------------------------------------------------------------------------- /doc/nroff/applies/master/flag.4: -------------------------------------------------------------------------------- 1 | .\"handle mudlib specific flags specified at driver startup 2 | .TH flag 4 "5 Sep 1994" MudOS "Driver Applies" 3 | 4 | .SH NAME 5 | flag - handle mudlib specific flags specified at driver startup 6 | 7 | .SH SYNOPSIS 8 | void flag( string ); 9 | 10 | .SH DESCRIPTION 11 | This master apply is called for each command line 12 | option passed to the driver with the -f flag. 13 | -------------------------------------------------------------------------------- /doc/nroff/concepts/global_include_file: -------------------------------------------------------------------------------- 1 | One of the possible options in the config file is a 'Global include file' 2 | If defined, that file with be included at the top of all files just as 3 | if it had been included with a #include statement. 4 | 5 | This is useful for having certain defines available in all objects. 6 | -------------------------------------------------------------------------------- /doc/nroff/convert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | name=$1 4 | dir=`echo $name | sed -e "s/\/[^\/]*$/\//"` 5 | base1=`basename $name .3` 6 | base2=`basename $base1 .4` 7 | newname=`echo $dir$base2` 8 | echo $newname 9 | nroff -man $name | uniq > $newname 10 | rm $name 11 | -------------------------------------------------------------------------------- /doc/nroff/defines/BSDMALLOC: -------------------------------------------------------------------------------- 1 | BSD malloc is a very fast memory allocator; the down side is that it uses 2 | alot of extra memory to keep track of blocks. If speed is more important 3 | that memory usage, tho, this might be best. It also keeps track of 4 | memory usage statistics. 5 | 6 | BSD malloc requires the sbrk() system call work on your system. 7 | -------------------------------------------------------------------------------- /doc/nroff/defines/CHECK_MEMORY: -------------------------------------------------------------------------------- 1 | CHECK_MEMORY adds a special series of bytes before and after any allocated 2 | block of memory, and checks them periodically to see if any routine is 3 | writing outside of block boundaries. It also adds the check_memory() efun 4 | which checks every allocated block to see if it really should be allocated. -------------------------------------------------------------------------------- /doc/nroff/defines/DEBUGMALLOC: -------------------------------------------------------------------------------- 1 | DEBUGMALLOC provides exact information about how much memory has been 2 | allocated by what. It is considerably slower and takes up quite a bit 3 | more memory as a result. -------------------------------------------------------------------------------- /doc/nroff/defines/DEBUGMALLOC_EXTENSIONS: -------------------------------------------------------------------------------- 1 | DEBUGMALLOC_EXTENSIONS not only keeps track of how much is allocated, but 2 | also associates a numeric tag and a string label with each block, allowing 3 | it to check memory for consistency and determine where any given block 4 | was allocated from. 5 | 6 | Useful for tracking and removing memory leaks from the driver. -------------------------------------------------------------------------------- /doc/nroff/defines/DO_MSTATS: -------------------------------------------------------------------------------- 1 | DO_MSTATS adds the malloc_status() efun which will print out the total 2 | ammount of memory allocated and other statistics. Does not work with 3 | SYSMALLOC. -------------------------------------------------------------------------------- /doc/nroff/defines/HAS_STATUS_TYPE: -------------------------------------------------------------------------------- 1 | defining HAS_STATUS_TYPE adds a type 'status' which is exactly the same as 2 | 'int'. This is provided to allow older code which uses the 'status' type 3 | to compile. Another option is to just put the line: 4 | 5 | #define status int 6 | 7 | in the global include file. -------------------------------------------------------------------------------- /doc/nroff/defines/README-DEFINES: -------------------------------------------------------------------------------- 1 | Every identifier defined in options.h becomes an LPC define as well, after 2 | having __ added to the front and back. For example, if SYSMALLOC is defined 3 | in options.h, then __SYSMALLOC__ will be defined in all LPC objects. -------------------------------------------------------------------------------- /doc/nroff/defines/SMALLOC: -------------------------------------------------------------------------------- 1 | SMALLOC is a memory allocator written specifically for LPmuds. It is faster 2 | than most system mallocs because it was designed to work with LP drivers, 3 | and also provides statistics on how much memory is being used. 4 | -------------------------------------------------------------------------------- /doc/nroff/defines/WRAPPEDMALLOC: -------------------------------------------------------------------------------- 1 | WRAPPEDMALLOC adds some extra code to whatever memory allocator you have 2 | chosen to keep some memory allocation statistics. 3 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_CACHE_STATS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_CACHE_STATS -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_DEBUGMALLOC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_DEBUGMALLOC -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_DEBUG_LEVEL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_DEBUG_LEVEL -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_EACH: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_EACH -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_ED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_ED -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_LIGHT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_LIGHT -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_MATH: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_MATH -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_MATRIX: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_MATRIX -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_MUDLIB_ERROR_HANDLER: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_MUDLIB_ERROR_HANDLER -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_MUDLIB_STATS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_MUDLIB_STATS -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_OPCPROF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_OPCPROF -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_PRINTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_PRINTF -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_PRIVS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_PRIVS -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_RUSAGE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_RUSAGE -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_SHADOWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_SHADOWS -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/HAS_SOCKETS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/nroff/defines/lpc/HAS_SOCKETS -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/LPC3: -------------------------------------------------------------------------------- 1 | Always defined. 2 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/MUDOS: -------------------------------------------------------------------------------- 1 | Always defined. 2 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/MUD_NAME: -------------------------------------------------------------------------------- 1 | Defined to the name of the mud as defined in the runtime configuration file. 2 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/README: -------------------------------------------------------------------------------- 1 | Note: Every define in options.h is now passed to the mudlib surrounded by 2 | "__", so if #define XYZZY appears in options.h, then the mudlib will see 3 | __XYZZY__ defined. 4 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/SAVE_EXTENSION: -------------------------------------------------------------------------------- 1 | Defined to whatever the savefile extension (as used by save_object() and 2 | restore_object()) is configured as (at driver compile time). 3 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/USE_EUID: -------------------------------------------------------------------------------- 1 | Always defined. 2 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/__ARCH__: -------------------------------------------------------------------------------- 1 | Defined to a string naming the type of machine/OS that the driver is 2 | currently running on. 3 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/__DIR__: -------------------------------------------------------------------------------- 1 | Directory that the file currently being compiled is in. 2 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/__FILE__: -------------------------------------------------------------------------------- 1 | The name of the current file. 2 | 3 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/__PORT__: -------------------------------------------------------------------------------- 1 | The port number that the mud is receiving connections on. (in numeric form) 2 | -------------------------------------------------------------------------------- /doc/nroff/defines/lpc/__VERSION__: -------------------------------------------------------------------------------- 1 | Defined to a string representing the version number of MudOS that is running. 2 | -------------------------------------------------------------------------------- /doc/nroff/efuns/buffers/crc32.3: -------------------------------------------------------------------------------- 1 | .\"compute the cyclic redundacy code for a buffer or string 2 | .TH crc32 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | crc32() - compute the cycle redundancy code for a buffer or string 6 | 7 | .SH SYNOPSIS 8 | int crc32( buffer | string x ); 9 | 10 | .SH DESCRIPTION 11 | Computes and returns the CRC-32 code for the given buffer or string, `x'. 12 | -------------------------------------------------------------------------------- /doc/nroff/efuns/filesystem/mkdir.3: -------------------------------------------------------------------------------- 1 | .\"create a directory 2 | .TH mkdir 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | mkdir() - make a directory 6 | 7 | .SH SYNOPSIS 8 | int mkdir( string directory ); 9 | 10 | .SH DESCRIPTION 11 | Creates the specified directory. Returns 1 if successful, 0 if not. 12 | 13 | .SH SEE ALSO 14 | rm(3), rmdir(3), link(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/filesystem/rm.3: -------------------------------------------------------------------------------- 1 | .\"remove a file 2 | .TH rm 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | rm() - remove a file 6 | 7 | .SH SYNOPSIS 8 | int rm( string file ); 9 | 10 | .SH DESCRIPTION 11 | Remove file `file'. Returns 0 for failure and 1 for success. 12 | 13 | .SH SEE ALSO 14 | mkdir(3), rmdir(3), link(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/filesystem/rmdir.3: -------------------------------------------------------------------------------- 1 | .\"remove a directory 2 | .TH rmdir 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | rmdir() - remove a directory 6 | 7 | .SH SYNOPSIS 8 | int rmdir( string dir ); 9 | 10 | .SH DESCRIPTION 11 | Remove directory `dir'. 12 | 13 | .SH RETURN VALUE 14 | Returns nonzero for success, zero (0) for failure. 15 | 16 | .SH SEE ALSO 17 | rm(3), mkdir(3), link(3) 18 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/acos.3: -------------------------------------------------------------------------------- 1 | .\"return the arccosine of a float 2 | .TH acos 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | acos() - return the arccosine of a float 6 | 7 | .SH SYNOPSIS 8 | float acos( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns the arccosine of its argument, `f', measured in radians. 12 | 13 | .SH SEE ALSO 14 | asin(3), atan(3), cos(3), sin(3), tan(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/asin.3: -------------------------------------------------------------------------------- 1 | .\"return the arcsine of a float 2 | .TH asin 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | asin() - return the arcsine of a float 6 | 7 | .SH SYNOPSIS 8 | float asin( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns the arcsine of its argument, `f', measured in radians. 12 | 13 | .SH SEE ALSO 14 | acos(3), atan(3), cos(3), sin(3), tan(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/atan.3: -------------------------------------------------------------------------------- 1 | .\"return the arctangent of a float 2 | .TH atan 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | atan() - return the tangent of a float 6 | 7 | .SH SYNOPSIS 8 | float atan( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns the arctangent of its argument, `f', measured in radians. 12 | 13 | .SH SEE ALSO 14 | acos(3), asin(3), cos(3), sin(3), tan(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/ceil.3: -------------------------------------------------------------------------------- 1 | .\"round a float up to the nearest integer 2 | .TH ceil 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | ceil() - round a float up to the nearest integer 6 | 7 | .SH SYNOPSIS 8 | float ceil( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns (as a float) the nearest integer number equal to or greater than f. 12 | 13 | .SH SEE ALSO 14 | floor(3), to_int(3), to_float(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/cos.3: -------------------------------------------------------------------------------- 1 | .\"return the cosine of a float 2 | .TH cos 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | cos() - return the cosine of a float 6 | 7 | .SH SYNOPSIS 8 | float cos( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns the cosine of its argument, `f', measured in radians. 12 | 13 | .SH SEE ALSO 14 | acos(3), asin(3), atan(3), sin(3), tan(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/exp.3: -------------------------------------------------------------------------------- 1 | .\"find e to the power of a float 2 | .TH exp 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | exp() - find e to the power of a float 6 | 7 | .SH SYNOPSIS 8 | float exp( float f ); 9 | 10 | .SH DESCRIPTION 11 | exp() returns e^f. 12 | 13 | .SH SEE ALSO 14 | log(3), pow(3), sqrt(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/floor.3: -------------------------------------------------------------------------------- 1 | .\"round a float down to the nearest integer 2 | .TH floor 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | floor() - round a float down to the nearest integer 6 | 7 | .SH SYNOPSIS 8 | float floor( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns (as a float) the nearest integer number equal to or smaller than f. 12 | 13 | .SH SEE ALSO 14 | ceil(3), to_int(3), to_float(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/log.3: -------------------------------------------------------------------------------- 1 | .\"returns the natural logarithm of a float 2 | .TH log 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | log() - returns the natural logarithm of a float 6 | 7 | .SH SYNOPSIS 8 | float log( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns the natural logarithm of its argument, `f'. `f' must be positive. 12 | 13 | .SH SEE ALSO 14 | exp(3), pow(3), sqrt(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/pow.3: -------------------------------------------------------------------------------- 1 | .\"find an exponent of a float 2 | .TH pow 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | pow() - find an exponent of a float 6 | 7 | .SH SYNOPSIS 8 | float pow( float x, float y ); 9 | 10 | .SH DESCRIPTION 11 | pow() returns x to the y power. If x is 0.0, y must be positive. If x is 12 | negative, y must be an integer. 13 | 14 | .SH SEE ALSO 15 | exp(3), log(3), sqrt(3) 16 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/sin.3: -------------------------------------------------------------------------------- 1 | .\"return the sine of a float 2 | .TH sin 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | sin() - return the sine of a float 6 | 7 | .SH SYNOPSIS 8 | float sin( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns the sine of its argument, `f', measured in radians. 12 | 13 | .SH SEE ALSO 14 | acos(3), asin(3), atan(3), cos(3), tan(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/sqrt.3: -------------------------------------------------------------------------------- 1 | .\"returns the square root of a float 2 | .TH sqrt 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | sqrt() - returns the square root of a float 6 | 7 | .SH SYNOPSIS 8 | float sqrt( float f ); 9 | 10 | .SH DESCRIPTION 11 | sqrt() returns the non-negative square root of its argument, `f'. The value 12 | of `f' must not be negative. 13 | 14 | .SH SEE ALSO 15 | exp(3), log(3), pow(3) 16 | -------------------------------------------------------------------------------- /doc/nroff/efuns/floats/tan.3: -------------------------------------------------------------------------------- 1 | .\"return the tangent of a float 2 | .TH tan 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | tan() - return the tangent of a float 6 | 7 | .SH SYNOPSIS 8 | float tan( float f ); 9 | 10 | .SH DESCRIPTION 11 | Returns the tangent of its argument, `f', measured in radians. 12 | 13 | .SH SEE ALSO 14 | acos(3), asin(3), atan(3), cos(3), sin(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/functions/evaluate.3: -------------------------------------------------------------------------------- 1 | .\"evaluate a function pointer 2 | .TH evaluate 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | evaluate() - evaluate a function pointer 6 | 7 | .SH SYNOPSIS 8 | .nf 9 | mixed evaluate(mixed f, ...) 10 | 11 | .SH DESCRIPTION 12 | If f is a function, f is called with the rest of the arguments. 13 | Otherwise, f is returned. evaluate(f, ...) is the same as (*f)(...). -------------------------------------------------------------------------------- /doc/nroff/efuns/interactive/userp.3: -------------------------------------------------------------------------------- 1 | .\"determine if a given object was once interactive 2 | .TH userp 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | userp() - determine if a given object was once interactive 6 | 7 | .SH SYNOPSIS 8 | int userp( object ); 9 | 10 | .SH DESCRIPTION 11 | Returns 1 if the arg was once interactive. 12 | 13 | .SH SEE ALSO 14 | interactive(3), users(3), living(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/numbers/random.3: -------------------------------------------------------------------------------- 1 | .\"return a pseudo-random number 2 | .TH random 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | random() - return a pseudo-random number 6 | 7 | .SH SYNOPSIS 8 | int random( int n ); 9 | 10 | .SH DESCRIPTION 11 | Return a pseudo-random number from the range [0 .. (n -1)] (inclusive). 12 | -------------------------------------------------------------------------------- /doc/nroff/efuns/objects/master.3: -------------------------------------------------------------------------------- 1 | .\"returns the master object 2 | .TH master 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | master() - returns the master object 6 | 7 | .SH SYNOPSIS 8 | object master( void ); 9 | 10 | .SH DESCRIPTION 11 | Returns a pointer to the master object. 12 | 13 | .SH SEE ALSO 14 | find_object(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/strings/capitalize.3: -------------------------------------------------------------------------------- 1 | .\"capitalize a string 2 | .TH capitalize 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | capitalize() - capitalize a string 6 | 7 | .SH SYNOPSIS 8 | string capitalize( string str ); 9 | 10 | .SH DESCRIPTION 11 | Convert the first character in to upper case, and return the 12 | new string. 13 | 14 | .SH SEE ALSO 15 | lower_case(3) 16 | -------------------------------------------------------------------------------- /doc/nroff/efuns/strings/strlen.3: -------------------------------------------------------------------------------- 1 | .\"returns the length of a string 2 | .TH strlen 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | strlen() - returns the length of a string 6 | 7 | .SH SYNOPSIS 8 | int strlen( string str ); 9 | 10 | .SH DESCRIPTION 11 | strlen() returns the number of characters in the string `str'. 12 | 13 | .SH SEE ALSO 14 | sizeof(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/strings/test_bit.3: -------------------------------------------------------------------------------- 1 | .\"test a bit in a bitstring 2 | .TH test_bit 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | set_bit() - set a bit in a bitstring 6 | 7 | .SH SYNOPSIS 8 | int test_bit( string str, int n ); 9 | 10 | .SH DESCRIPTION 11 | Return 0 or 1 of bit `n' was set in string `str'. 12 | 13 | .SH SEE ALSO 14 | set_bit(3), clear_bit(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/efuns/system/time.3: -------------------------------------------------------------------------------- 1 | .\"return the current system time 2 | .TH time 3 "5 Sep 1994" MudOS "LPC Library Functions" 3 | 4 | .SH NAME 5 | time() - return the number of seconds since January 1, 1970 6 | 7 | .SH SYNOPSIS 8 | int time( void ); 9 | 10 | .SH DESCRIPTION 11 | Return the number of seconds since midnight (GMT) January 1, 1970. 12 | 13 | .SH SEE ALSO 14 | ctime(3), localtime(3), time_expression(3), uptime(3) 15 | -------------------------------------------------------------------------------- /doc/nroff/lpc/constructs/prototypes: -------------------------------------------------------------------------------- 1 | * The function prototype: 2 | 3 | The LPC function prototype is very similar to that of ANSI C. The 4 | function prototype allows for better type checking and can serve as 5 | a kind of 'forward' declaration. 6 | 7 | return_type function_name(arg1_type arg1, arg2_type arg2, ...); 8 | 9 | Also note that the arguments need not have names: 10 | 11 | return_type function_name(arg1_type, arg2_type, ...); -------------------------------------------------------------------------------- /doc/nroff/lpc/preprocessor/README: -------------------------------------------------------------------------------- 1 | A preprocessor directive is any line of an LPC program which begins with '#'. 2 | 3 | These aren't really actually statements; they just instruct the compiler to 4 | do certain things while compiling the code. For example, the #if statement 5 | can be used to compile certain sections of the code only if certain conditions 6 | are true. 7 | -------------------------------------------------------------------------------- /doc/nroff/lpc/preprocessor/define: -------------------------------------------------------------------------------- 1 | the #define preprocessor command creates a macro that can be expanded later 2 | on in the file. For example, if you have the line: 3 | 4 | #define apples oranges 5 | 6 | Then every time the word 'apples' appears after that point, it will be 7 | treated as if it were 'oranges'. 8 | -------------------------------------------------------------------------------- /doc/nroff/man2ascii.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo Converting man pages... 4 | find . -name "*.[34]" -exec convert.sh {} \; 5 | echo Done. 6 | -------------------------------------------------------------------------------- /doc/nroff/platforms/Alpha-OSF1: -------------------------------------------------------------------------------- 1 | MudOS hints for the DEC Alpha running OSF/1: 2 | 3 | Don't try to use smalloc, and probably not bsdmalloc either. 4 | 5 | Don't define any BINARIES stuff in options.h--it doesn't support 64 6 | bit machines (yet). 7 | 8 | I wasn't able to compile the driver with gcc on Alpha; only cc. And when 9 | using optimization, there were crashes. 10 | -------------------------------------------------------------------------------- /doc/nroff/platforms/Irix: -------------------------------------------------------------------------------- 1 | SGI IRIX 2 | 3 | As of gcc 2.2.1, gcc does not produce correct code and the driver does not 4 | function. Use cc. 5 | -------------------------------------------------------------------------------- /doc/nroff/platforms/Linux: -------------------------------------------------------------------------------- 1 | Some people have reported problems with using MudOS to run the TMI-2-1.0.1 2 | mudlib under Linux. It seems that the problem may be related to the socket 3 | efuns. Try emptying the file named /adm/etc/socket_preload and rebooting 4 | the MUD. 5 | -------------------------------------------------------------------------------- /doc/nroff/platforms/NeXT: -------------------------------------------------------------------------------- 1 | MudOS hints for the NeXT: 2 | 3 | Don't use bsdmalloc or smalloc. 4 | 5 | In the Makefile, comment out RESOLV. 6 | -------------------------------------------------------------------------------- /doc/nroff/platforms/RS6000: -------------------------------------------------------------------------------- 1 | MudOS hints for the RS/6000: 2 | 3 | Don't use bsdmalloc or smalloc. 4 | 5 | Some earlier versions of AIX (e.g. 3.1) have problems which affect MudOS. 6 | 7 | Read the Makefile for comments referring to the RS/6000 8 | 9 | Bison uses alloca() (at least on the RS/6000) so you should stick to yacc. 10 | -------------------------------------------------------------------------------- /doc/text/applies/__INIT: -------------------------------------------------------------------------------- 1 | __INIT - obsolete apply 2 | 3 | void __INIT(); 4 | 5 | This function used to be called in objects right before create. 6 | global variable initialization is now handled by another function that 7 | cannot be interfered with, so this is no longer called. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/text/applies/heart_beat: -------------------------------------------------------------------------------- 1 | heart_beat - called periodically in objects in which it is enabled 2 | 3 | void heart_beat(); 4 | 5 | If an object has called set_heart_beat(), this function will be called 6 | periodically in that object. 7 | 8 | See also: 9 | set_heart_beat 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/applies/interactive/index: -------------------------------------------------------------------------------- 1 | Interactive applies 2 | 3 | These are the functions called in 'user' objects: 4 | 5 |
6 | * catch_tell 7 | * logon 8 | * net_dead 9 | * process_input 10 | * receive_message 11 | * receive_snoop 12 | * telnet_suboption 13 | * terminal_type 14 | * window_size 15 | * write_prompt 16 |
17 | 18 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 19 | -------------------------------------------------------------------------------- /doc/text/applies/interactive/window_size: -------------------------------------------------------------------------------- 1 | window_size - report the users window size 2 | 3 | void window_size(int width, int height); 4 | 5 | window_size() is called with the user's window size, as reported by telnet 6 | negotiation. If the user's client never responds to the query, this is 7 | never called. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/text/applies/interactive/write_prompt: -------------------------------------------------------------------------------- 1 | write_prompt - called when the parser wants a prompt to be written. 2 | 3 | void write_prompt(); 4 | 5 | If write_prompt is present in the player object, the driver will call it 6 | whenever the default prompt would normally be printed. The driver will 7 | not call write_prompt when the player is in input_to or ed. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/text/applies/master/get_root_uid: -------------------------------------------------------------------------------- 1 | get_root_uid - get the root uid 2 | 3 | string get_root_uid(); 4 | 5 | This function is only used if PACKAGE_UIDS is used. 6 | 7 | This master apply is called by the driver each time 8 | it loads the master object, to verify that the master 9 | object has loaded, and to get the root uid defined by 10 | the mud. The function should return a string, eg "ROOT" 11 | 12 | See also: 13 | get_bb_uid 14 | -------------------------------------------------------------------------------- /doc/text/applies/master/make_path_absolute: -------------------------------------------------------------------------------- 1 | make_path_absolute - resolve relative path name 2 | 3 | string make_path_absolute( string rel_path ); 4 | 5 | This master apply is called by the ed() efun to 6 | resolve relative path names of a file to read/write, to an absolute path 7 | name. 8 | 9 | See also: 10 | ed 11 | -------------------------------------------------------------------------------- /doc/text/applies/master/parse_command_all_word: -------------------------------------------------------------------------------- 1 | parse_command_all_word - find out what word refers to everything 2 | 3 | string parse_command_all_word(); 4 | 5 | This routine is called in the master object to find out what word should 6 | be considered to refer to everyting. It is used by the parse_command() efun. 7 | 8 | See also: 9 | parse_command 10 | -------------------------------------------------------------------------------- /doc/text/applies/master/parse_command_prepos_list: -------------------------------------------------------------------------------- 1 | parse_command_prepos_list - find out what words are valid prepositions 2 | 3 | string array parse_command_prepos_list(); 4 | 5 | This routine is called in the master object to find out what words should 6 | be considered prepositions. It is used by the parsing package and the 7 | parse_command() efun. 8 | 9 | See also: 10 | parse_command 11 | -------------------------------------------------------------------------------- /doc/text/applies/master/retrieve_ed_setup: -------------------------------------------------------------------------------- 1 | retrieve_ed_setup - retrieve a user's editor setup or configuration settings 2 | 3 | int retrieve_ed_setup( object user ); 4 | 5 | This master apply is called by the ed() efun to retrieve 6 | a user's ed setup/configuration settings. This function 7 | should return the setup (contained in an int). 8 | 9 | See also: 10 | save_ed_setup 11 | -------------------------------------------------------------------------------- /doc/text/applies/master/save_ed_setup: -------------------------------------------------------------------------------- 1 | save_ed_setup - save a user's editor setup or configuration settings 2 | 3 | int save_ed_setup( object user, int config ); 4 | 5 | This master apply is called by the ed() efun to save 6 | a user's ed setup/configuration settings (contained in 7 | an int). This function should return an int for 8 | success (1 or TRUE)/failure (0 or FALSE). 9 | 10 | Seel also: 11 | retrieve_ed_setup 12 | -------------------------------------------------------------------------------- /doc/text/applies/parsing/index: -------------------------------------------------------------------------------- 1 | Parsing applies 2 | 3 | These are the applies used by the parse_command() efun, and also the new 4 | parsing package: 5 | 6 |
7 | * parse_command_adjectiv_id_list 8 | * parse_command_id_list 9 | * parse_command_plural_id_list 10 |
11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/applies/parsing/parse_command_id_list: -------------------------------------------------------------------------------- 1 | parse_command_id_list - returns a list of names to the parser 2 | 3 | string array parse_command_id_list(); 4 | 5 | This routine is used to find out what nouns the object responds to, and is 6 | used by the parsing package and the parse_command() efun. In addition, 7 | anything returned by the master object will work on ANY object. 8 | 9 | See also: 10 | parse_command 11 | -------------------------------------------------------------------------------- /doc/text/concepts/index: -------------------------------------------------------------------------------- 1 | MudOS driver concepts 2 | 3 | This is pretty much a grab bag of stuff right now ... 4 | 5 |
6 | * MudOS driver 7 | * LPC 8 | * message() 9 | * objects 10 | * OOP 11 | * preprocessor 12 | * simul_efuns 13 | * socket_efuns 14 | * defines 15 |
16 | 17 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 18 | 19 | -------------------------------------------------------------------------------- /doc/text/driver/index: -------------------------------------------------------------------------------- 1 | Driver documentation 2 | 3 | The vast majority of this is hopefully out of date, and hopefully will be 4 | rewritten soon. It is here mostly for historical reasons. 5 | 6 |
7 | * malloc 8 | * stackmachine 9 | * done-mudos 10 | * done-lars 11 | * adding_efuns 12 |
13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/text/efuns/TODO: -------------------------------------------------------------------------------- 1 | parse_add_rule(string, string) [PACKAGE_PARSER] 2 | parse_add_synonym(string, string, void | string) [PACKAGE_PARSER] 3 | parse_dump() [PACKAGE_PARSER] 4 | parse_init() [PACKAGE_PARSER] 5 | parse_my_rules(object, string, void | int) [PACKAGE_PARSER] 6 | parse_refresh() [PACKAGE_PARSER] 7 | parse_remove(string) [PACKAGE_PARSER] 8 | parse_sentence(string, void|int) [PACKAGE_PARSER] 9 | -------------------------------------------------------------------------------- /doc/text/efuns/arrays/allocate: -------------------------------------------------------------------------------- 1 | allocate - allocate an array 2 | 3 | array allocate( int size ); 4 | 5 | Allocate an array of elements. The number of elements must be >= 0 6 | and not bigger than a system maximum (usually ~10000). All elements are 7 | initialized to 0. 8 | 9 | See also: 10 | sizeof, 11 | allocate_mapping 12 | 13 | -------------------------------------------------------------------------------- /doc/text/efuns/arrays/filter_array: -------------------------------------------------------------------------------- 1 | filter_array - return a selective sub-array 2 | 3 | array filter_array( array arr, string fun, object ob, mixed extra, ... ); 4 | 5 | array filter_array( array arr, function f, mixed extra, ...); 6 | 7 | filter_array() is really the same as the filter() efun. 8 | 9 | See also: 10 | filter 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/arrays/index: -------------------------------------------------------------------------------- 1 | Array efuns 2 | 3 | These efuns exist for the manipulation of array values: 4 | 5 |
6 | * allocate 7 | * arrayp 8 | * filter_array 9 | * map_array 10 | * member_array 11 | * pointerp 12 | * sort_array 13 | * unique_array 14 |
15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | 18 | -------------------------------------------------------------------------------- /doc/text/efuns/arrays/map_array: -------------------------------------------------------------------------------- 1 | map_array - modify an array of elements via application of a function 2 | 3 | array map_array( array arr, string fun, object ob, mixed extra, ... ); 4 | 5 | array map_array( array arr, function f, mixed extra, ... );; 6 | 7 | The map_array() efun is really just an alias for the map() efun. 8 | 9 | See also: 10 | map 11 | -------------------------------------------------------------------------------- /doc/text/efuns/buffers/crc32: -------------------------------------------------------------------------------- 1 | crc32 - compute the cycle redundancy code for a buffer or string 2 | 3 | int crc32( buffer | string x ); 4 | 5 | Computes and returns the CRC-32 code for the given buffer or string, `x'. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/buffers/index: -------------------------------------------------------------------------------- 1 | Buffer Efuns 2 | 3 | The following efuns are available for manipulating buffer values: 4 | 5 |
6 | * allocate_buffer 7 | * bufferp 8 | * crc32 9 | * read_buffer 10 | * write_buffer 11 |
12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | 15 | -------------------------------------------------------------------------------- /doc/text/efuns/calls/this_object: -------------------------------------------------------------------------------- 1 | this_object - return the object pointer of the calling object 2 | 3 | object this_object(); 4 | 5 | Return the object pointer of the current object. Useful for passing the 6 | current object to other functions. 7 | 8 | See also: 9 | this_player, 10 | previous_object, 11 | origin 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/efuns/compile/index: -------------------------------------------------------------------------------- 1 | Compilation efuns 2 | 3 | The only efun in here currently is the LPC->C one. 4 | 5 |
6 | * generate_source 7 |
8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/cp: -------------------------------------------------------------------------------- 1 | cp - copy a file 2 | 3 | int cp(string src, string dst); 4 | 5 | Copies the file 'src' to the file 'dst'. 6 | 7 | Returns 1 for success, returns -1 if the first src is unreadable, -2 if 8 | dst is unreadable, and -3 if an i/o error occurs. 9 | 10 | See also: 11 | rm, 12 | rmdir, 13 | rename, 14 | link 15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/file_size: -------------------------------------------------------------------------------- 1 | file_size - get the size of a file 2 | 3 | int file_size( string file ); 4 | 5 | file_size() returns the size of file 'file' in bytes. Size -1 6 | indicates that 'file' either does not exist, or that it is not 7 | readable. Size -2 indicates that 'file' is a directory. 8 | 9 | See also: 10 | file_length, 11 | stat, 12 | get_dir 13 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/mkdir: -------------------------------------------------------------------------------- 1 | mkdir - make a directory 2 | 3 | int mkdir( string directory ); 4 | 5 | Creates the specified directory. Returns 1 if successful, 0 if not. 6 | 7 | See also: 8 | rm, 9 | rmdir, 10 | link 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/rename: -------------------------------------------------------------------------------- 1 | rename - rename a file 2 | 3 | int rename( string src, string dst ); 4 | 5 | Renames the file 'src' to 'dst'. 6 | 7 | rename() returns zero (0) to indicate success. Nonzero indicates failure. 8 | 9 | See also: 10 | rm, 11 | rmdir, 12 | cp, 13 | link 14 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/rm: -------------------------------------------------------------------------------- 1 | rm - remove a file 2 | 3 | int rm( string file ); 4 | 5 | Remove file `file'. Returns 0 for failure and 1 for success. 6 | 7 | See also: 8 | mkdir, 9 | rmdir, 10 | link 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/rmdir: -------------------------------------------------------------------------------- 1 | rmdir - remove a directory 2 | 3 | int rmdir( string dir ); 4 | 5 | Remove directory `dir'. 6 | Returns nonzero for success, zero (0) for failure. 7 | 8 | See also: 9 | rm, 10 | mkdir, 11 | link 12 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/write_bytes: -------------------------------------------------------------------------------- 1 | write_bytes - writes a contiguous series of bytes to a file 2 | 3 | int write_bytes( string path, int start, string series ); 4 | 5 | This function writes the bytes in 'series' into the file named by 'path' 6 | beginning at byte # 'start'. It returns zero (0) upon failure, 1 otherwise. 7 | 8 | See also: 9 | write_file, 10 | read_bytes 11 | -------------------------------------------------------------------------------- /doc/text/efuns/filesystem/write_file: -------------------------------------------------------------------------------- 1 | write_file - appends a string to a file 2 | 3 | int write_file( string file, string str, int flag ); 4 | 5 | Append the string `str' into the file `file'. Returns 0 or 1 for 6 | failure or success. If flag is 1, write_file overwrites instead of 7 | appending. 8 | 9 | See also: 10 | read_file, 11 | write_buffer, 12 | file_size 13 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/acos: -------------------------------------------------------------------------------- 1 | acos - return the arccosine of a float 2 | 3 | float acos( float f ); 4 | 5 | This efun is available only if PACKAGE_MATH is compiled in to the driver. 6 | 7 | Returns the arccosine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | asin, 11 | atan, 12 | cos, 13 | sin, 14 | tan 15 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/asin: -------------------------------------------------------------------------------- 1 | asin - return the arcsine of a float 2 | 3 | float asin( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the arcsine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | atan, 12 | cos, 13 | sin, 14 | tan 15 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/atan: -------------------------------------------------------------------------------- 1 | atan - return the tangent of a float 2 | 3 | float atan( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is not compiled in. 6 | 7 | Returns the arctangent of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | cos, 13 | sin, 14 | tan 15 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/ceil: -------------------------------------------------------------------------------- 1 | ceil - round a float up to the nearest integer 2 | 3 | float ceil( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns (as a float) the nearest integer number equal to or greater than f. 8 | 9 | See also: 10 | floor, 11 | to_int, 12 | to_float 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/cos: -------------------------------------------------------------------------------- 1 | cos - return the cosine of a float 2 | 3 | float cos( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled into the driver. 6 | 7 | Returns the cosine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | atan, 13 | sin, 14 | tan 15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/exp: -------------------------------------------------------------------------------- 1 | exp - find e to the power of a float 2 | 3 | float exp( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | exp() returns e^f. 8 | 9 | See also: 10 | log, 11 | pow, 12 | sqrt 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/floor: -------------------------------------------------------------------------------- 1 | floor - round a float down to the nearest integer 2 | 3 | float floor( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns (as a float) the nearest integer number equal to or smaller than f. 8 | 9 | See also: 10 | ceil, 11 | to_int, 12 | to_float 13 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/index: -------------------------------------------------------------------------------- 1 | Float Efuns 2 | 3 | The following efuns provide general math library functions. 4 | 5 |
6 | * acos 7 | * asin 8 | * atan 9 | * ceil 10 | * cos 11 | * exp 12 | * floatp 13 | * floor 14 | * log 15 | * pow 16 | * sin 17 | * sqrt 18 | * tan 19 | * to_int 20 |
21 | 22 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 23 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/log: -------------------------------------------------------------------------------- 1 | log - returns the natural logarithm of a float 2 | 3 | float log( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the natural logarithm of its argument, `f'. `f' must be positive. 8 | 9 | See also: 10 | exp, 11 | pow, 12 | sqrt 13 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/pow: -------------------------------------------------------------------------------- 1 | pow - find an exponent of a float 2 | 3 | float pow( float x, float y ); 4 | 5 | This efun is only available if PACKAGE_MATH is defined. 6 | 7 | pow() returns x to the y power. If x is 0.0, y must be positive. If x is 8 | negative, y must be an integer. 9 | 10 | See also: 11 | exp, 12 | log, 13 | sqrt 14 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/sin: -------------------------------------------------------------------------------- 1 | sin - return the sine of a float 2 | 3 | float sin( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the sine of its argument, `f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | atan, 13 | cos, 14 | tan 15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/sqrt: -------------------------------------------------------------------------------- 1 | sqrt - returns the square root of a float 2 | 3 | float sqrt( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | sqrt() returns the non-negative square root of its argument, `f'. The value 8 | of `f' must not be negative. 9 | 10 | See also: 11 | exp, 12 | log, 13 | pow 14 | 15 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 16 | -------------------------------------------------------------------------------- /doc/text/efuns/floats/tan: -------------------------------------------------------------------------------- 1 | tan - return the tangent of a float 2 | 3 | float tan( float f ); 4 | 5 | This efun is only available if PACKAGE_MATH is compiled in. 6 | 7 | Returns the tangent of its argument, 'f', measured in radians. 8 | 9 | See also: 10 | acos, 11 | asin, 12 | atan, 13 | cos, 14 | sin 15 | -------------------------------------------------------------------------------- /doc/text/efuns/functions/evaluate: -------------------------------------------------------------------------------- 1 | evaluate - evaluate a function pointer 2 | 3 | mixed evaluate(mixed f, ...); 4 | 5 | If f is a function, f is called with the rest of the arguments. 6 | Otherwise, f is returned. evaluate(f, ...) is the same as (*f)(...). 7 | 8 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 9 | -------------------------------------------------------------------------------- /doc/text/efuns/functions/function_owner: -------------------------------------------------------------------------------- 1 | function_owner - return the owner of a given function. 2 | 3 | object function_owner(function); 4 | 5 | function_owner returns the object that owns the function specified by 6 | the argument. 7 | 8 | This function requires PACKAGE_CONTRIB to be defined in the options file. 9 | 10 | See also: 11 | bind 12 | -------------------------------------------------------------------------------- /doc/text/efuns/functions/index: -------------------------------------------------------------------------------- 1 | Function efuns 2 | 3 | These efuns are for use with function pointers. 4 | 5 |
6 | * bind 7 | * evaluate 8 | * functionp 9 |
10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/general/index: -------------------------------------------------------------------------------- 1 | Efuns for general LPC values 2 | 3 | These efuns act on arbitrary values of various types. 4 | 5 |
6 | * copy 7 | * fetch_variable 8 | * filter 9 | * map 10 | * restore_variable 11 | * save_variable 12 | * store_variable 13 | * sizeof 14 | * typeof 15 | * undefinedp 16 |
17 | 18 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 19 | -------------------------------------------------------------------------------- /doc/text/efuns/general/restore_variable: -------------------------------------------------------------------------------- 1 | restore_variable - restore value of a variable from a string 2 | 3 | mixed restore_variable( string value ); 4 | 5 | Restores an LPC value from a string. The format used is the 6 | same format as save/restore_object. 7 | 8 | See also: 9 | save_variable, 10 | restore_object 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/general/save_variable: -------------------------------------------------------------------------------- 1 | save_variable - save the value of variable into a string 2 | 3 | string save_variable( mixed var ); 4 | 5 | Saves an LPC value into a string. The format is the same as 6 | save/restore_object. 7 | 8 | See also: 9 | restore_variable, 10 | restore_object 11 | -------------------------------------------------------------------------------- /doc/text/efuns/general/sizeof: -------------------------------------------------------------------------------- 1 | sizeof - return the number of elements in an array 2 | 3 | int sizeof( mixed var ); 4 | 5 | Return the number of elements in an array, mapping, string, class or 6 | buffer 'var'. If `var' is not an array, mapping, string, class or 7 | buffer, then zero (0) is returned. 8 | 9 | See also: 10 | strlen 11 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/disable_commands: -------------------------------------------------------------------------------- 1 | disable_commands - makes a living object non-living 2 | 3 | void disable_commands(); 4 | 5 | This efun is only available if NO_ADD_ACTION is not defined. 6 | 7 | Causes the current object to no longer be able to execute commands. 8 | 9 | See also: 10 | enable_commands 11 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/disable_wizard: -------------------------------------------------------------------------------- 1 | disable_wizard - remove wizard priveleges from an object 2 | 3 | void disable_wizard(); 4 | 5 | This efun is only available if NO_WIZARDS is not defined. 6 | 7 | The opposite of enable_wizard(). Disables wizard privileges from the 8 | current object. 9 | 10 | See also: 11 | enable_wizard, 12 | wizardp 13 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/ed_cmd: -------------------------------------------------------------------------------- 1 | ed_cmd - perform an 'ed' command 2 | 3 | This efun is only available if OLD_ED is not defined. 4 | 5 | string ed_cmd(string cmd); 6 | 7 | Performs the ed command 'cmd'. The result of the command is returned. 8 | Ed must have been started with ed_start() in order to call this efun. 9 | 10 | See also: 11 | ed_start 12 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/find_player: -------------------------------------------------------------------------------- 1 | find_player - find a player by name 2 | 3 | object find_player( string str ); 4 | 5 | This efun is only available when NO_ADD_ACTION is not defined. 6 | 7 | Similar to find_living(), but only searches through objects that are 8 | interactive, or were once interactive. 9 | 10 | See also: 11 | find_living, 12 | livings, 13 | users, 14 | set_living_name 15 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/in_edit: -------------------------------------------------------------------------------- 1 | in_edit() - determine if a player is in the editor 2 | 3 | string in_edit(); 4 | 5 | string in_edit(object ob); 6 | 7 | If the given object is in the editor, the file being edited is 8 | returned, else zero. If no object is given, this_object() is used. 9 | 10 | See also: 11 | ed, 12 | in_input 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/interactive: -------------------------------------------------------------------------------- 1 | interactive - detects whether or not a given object is an interactive 2 | 3 | int interactive( object ob ); 4 | 5 | Return non-zero if 'ob' is an interactive player. 0 will be returned 6 | if he is link dead. 7 | 8 | See also: 9 | query_ip_number, 10 | query_ip_name, 11 | enable_commands 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/query_host_name: -------------------------------------------------------------------------------- 1 | query_host_name - return the host name 2 | 3 | string query_host_name(); 4 | 5 | query_host_name() returns the name of the host. 6 | 7 | See also: 8 | resolve, 9 | socket_address, 10 | query_ip_name, 11 | query_ip_number 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/query_idle: -------------------------------------------------------------------------------- 1 | query_idle - determine how many seconds an interactive player has been idle 2 | 3 | int query_idle( object ob ); 4 | 5 | Query how many seconds a player object (ob) has been idling. 6 | 7 | See also: 8 | in_edit, 9 | in_input 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/query_ip_number: -------------------------------------------------------------------------------- 1 | query_ip_number - return the ip number for a player object 2 | 3 | string query_ip_number( object ob ); 4 | 5 | Return the ip-number (dotted decimal form) for player `ob'. 6 | 7 | See also: 8 | query_ip_name, 9 | query_host_name, 10 | resolve, 11 | socket_address 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/query_snoop: -------------------------------------------------------------------------------- 1 | query_snoop - return the snooper of an interactive object 2 | 3 | object query_snoop( object ob ); 4 | 5 | If `ob' (an interactive object) is being snooped by another interactive object, 6 | the snooping object is returned. Otherwise, 0 is returned. 7 | 8 | See also: 9 | snoop, 10 | query_snooping 11 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/query_snooping: -------------------------------------------------------------------------------- 1 | query_snooping - return the object than an object is snooping 2 | 3 | object query_snooping( object ob ); 4 | 5 | If `ob' (an interactive object) is snooping another interactive object, the 6 | snooped object is returned. Otherwise, 0 is returned. 7 | 8 | See also: 9 | snoop, 10 | query_snoop 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/shout: -------------------------------------------------------------------------------- 1 | shout - sends a message to all living objects 2 | 3 | void shout( string str ); 4 | 5 | Sends the string `str' to all living objects except this_player(). 6 | 7 | See also: 8 | message, 9 | write, 10 | tell_object, 11 | tell_room, 12 | say 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | 16 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/this_player: -------------------------------------------------------------------------------- 1 | this_player - return the object representing the current player 2 | 3 | object this_player( int flag ); 4 | 5 | this_player() is exactly the same as this_user(). 6 | 7 | See also: 8 | this_user 9 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/userp: -------------------------------------------------------------------------------- 1 | userp - determine if a given object was once interactive 2 | 3 | int userp( object ); 4 | 5 | Returns 1 if the arg was once interactive. 6 | 7 | See also: 8 | interactive, 9 | users, 10 | living 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/users: -------------------------------------------------------------------------------- 1 | users - return an array of objects containing all interactive players 2 | 3 | object array users(); 4 | 5 | Return an array of objects, containing all interactive players. 6 | 7 | See also: 8 | livings, 9 | children, 10 | objects 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/wizardp: -------------------------------------------------------------------------------- 1 | wizardp - determines if a given object had enable_wizard() performed in it 2 | 3 | int wizardp( object ); 4 | 5 | This efun is only available if NO_WIZARDS is not compiled in. 6 | 7 | Returns 1 if the arg had enable_wizard() performed on it. 8 | 9 | See also: 10 | disable_wizard, 11 | enable_wizard 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/efuns/interactive/write: -------------------------------------------------------------------------------- 1 | write() - send a message to current player 2 | 3 | void write( mixed str ); 4 | 5 | Write a message `str' to current player. `str' can also be a number, which 6 | will be translated to a string. 7 | 8 | See also: 9 | message, 10 | tell_object, 11 | tell_room, 12 | shout, 13 | say 14 | 15 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 16 | -------------------------------------------------------------------------------- /doc/text/efuns/internals/get_config: -------------------------------------------------------------------------------- 1 | get_config - query various driver config settings 2 | 3 | mixed get_config( int ); 4 | 5 | This efun is used to query the driver's various config 6 | settings. Please refer to the "runtime_config.h" 7 | include file for a list of currently recognized options. 8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/text/efuns/internals/query_load_average: -------------------------------------------------------------------------------- 1 | query_load_average - forces an error to occur in an object 2 | 3 | string query_load_average(); 4 | 5 | This function returns a string which reports two things: 1) user commands 6 | per second, and 2) compiled lines per second. 7 | 8 | See also: 9 | rusage 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/mappings/filter_mapping: -------------------------------------------------------------------------------- 1 | filter_mapping - return a selective sub-mapping 2 | 3 | mapping filter_mapping(mapping map, string fun, object ob, mixed extra, ...); 4 | 5 | mapping filter_array(mapping map, function f, mixed extra, ...); 6 | 7 | filter_mapping() is really the same as the filter() efun. 8 | 9 | See also: 10 | filter 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/mappings/index: -------------------------------------------------------------------------------- 1 | Mapping Efuns 2 | 3 | The following efuns operate on mappings: 4 | 5 |
6 | * allocate_mapping 7 | * keys 8 | * map_delete 9 | * map_mapping 10 | * mapp 11 | * match_path 12 | * unique_mapping 13 | * values 14 |
15 | 16 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 17 | -------------------------------------------------------------------------------- /doc/text/efuns/mappings/m_indices: -------------------------------------------------------------------------------- 1 | m_indices - return the keys of a mapping 2 | 3 | array m_indices(mapping); 4 | 5 | This efun is only available if COMPAT_32 is defined. It behaves exactly 6 | the same as keys(). 7 | 8 | See also: 9 | keys 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/mappings/m_values: -------------------------------------------------------------------------------- 1 | m_values - return the values of a mapping 2 | 3 | array m_values(mapping); 4 | 5 | This efun is only available if COMPAT_32 is defined. It behaves exactly 6 | the same as values(). 7 | 8 | See also: 9 | values 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/arrayp: -------------------------------------------------------------------------------- 1 | arrayp - determine whether or not a given variable is an array 2 | 3 | int arrayp( mixed arg ); 4 | 5 | Return 1 if `arg' is an array, zero otherwise. 6 | 7 | See also: 8 | typeof 9 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/bufferp: -------------------------------------------------------------------------------- 1 | bufferp - determine whether or not a given variable is a buffer 2 | 3 | int bufferp( mixed arg ); 4 | 5 | Return 1 if `arg' is a buffer value and zero otherwise. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/classp: -------------------------------------------------------------------------------- 1 | classp - determine whether or not a given variable is a class 2 | 3 | int classp(mixed); 4 | 5 | Return 1 if the argument is a class. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/floatp: -------------------------------------------------------------------------------- 1 | floatp - determine whether or not a given variable is a float 2 | 3 | int floatp( mixed arg ); 4 | 5 | Return 1 if `arg' is a float number and zero (0) otherwise. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/intp: -------------------------------------------------------------------------------- 1 | intp - determine whether or not a given variable is an integer 2 | 3 | int intp( mixed arg ); 4 | 5 | Return 1 if 'arg' is an integer number and zero (0) otherwise. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/mapp: -------------------------------------------------------------------------------- 1 | mapp - determine whether or not a given variable is a mapping 2 | 3 | int mapp( mixed arg ); 4 | 5 | Return 1 if `arg' is a mapping. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/objectp: -------------------------------------------------------------------------------- 1 | objectp - determine whether or not a given variable is an object 2 | 3 | int objectp( mixed arg ); 4 | 5 | Return 1 if `arg' is an object. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/pointerp: -------------------------------------------------------------------------------- 1 | pointerp - determine whether or not a given variable is an array 2 | 3 | int pointerp( mixed arg ); 4 | 5 | pointerp() is provided for compatibility; it is the same as the arrayp() efun. 6 | 7 | See also: 8 | arrayp 9 | -------------------------------------------------------------------------------- /doc/text/efuns/mixed/stringp: -------------------------------------------------------------------------------- 1 | stringp - determine whether or not a given variable is a string 2 | 3 | int stringp( mixed arg ); 4 | 5 | Returns 1 if 'arg' is a string, and zero if not. 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/mudlib/living: -------------------------------------------------------------------------------- 1 | living - detects whether or not a given object is "living" 2 | 3 | int living( object ob ); 4 | 5 | This efun is only available if NO_ADD_ACTION is not compiled in. 6 | 7 | Return true if `ob' is a living object (that is, if "enable_commands()" has 8 | been called by `ob'). 9 | 10 | See also: 11 | enable_commands 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | 15 | -------------------------------------------------------------------------------- /doc/text/efuns/numbers/index: -------------------------------------------------------------------------------- 1 | Efuns relating to ints 2 | 3 | Pretty trivial stuff here 4 | 5 |
6 | * intp 7 | * nullp 8 | * random 9 | * to_float 10 |
11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/numbers/random: -------------------------------------------------------------------------------- 1 | random - return a pseudo-random number 2 | 3 | int random( int n ); 4 | 5 | Return a pseudo-random number from the range [0 .. (n -1)] (inclusive). 6 | 7 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 8 | -------------------------------------------------------------------------------- /doc/text/efuns/numbers/to_float: -------------------------------------------------------------------------------- 1 | to_float - convert an int to a float 2 | 3 | float to_float( int i ); 4 | 5 | The to_float() call returns the number of type 'float' that is equivalent to 6 | the int 'i'. 7 | 8 | See also: 9 | to_int, 10 | read_buffer, 11 | sprintf, 12 | sscanf 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | 16 | -------------------------------------------------------------------------------- /doc/text/efuns/objects/heart_beat_info: -------------------------------------------------------------------------------- 1 | heart_beat_info - return an array of objects with active heartbeats 2 | 3 | object array heart_beat_info(); 4 | 5 | Returns an array of all the objects with active heart_beats. This efun 6 | is only available if COMPAT_32 is defined. 7 | 8 | See also: 9 | heart_beats.html 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/objects/heart_beats: -------------------------------------------------------------------------------- 1 | heart_beats - return an array of objects with active heartbeats 2 | 3 | object array heart_beats(); 4 | 5 | Returns an array of all the objects with active heart_beats. This efun 6 | is only available if PACKAGE_CONTRIB is defined. 7 | 8 | See also: 9 | heart_beat, 10 | set_heart_beat, 11 | query_heart_beat 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/efuns/objects/master: -------------------------------------------------------------------------------- 1 | master - returns the master object 2 | 3 | object master(); 4 | 5 | Returns a pointer to the master object. 6 | 7 | See also: 8 | find_object 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/text/efuns/objects/move_object: -------------------------------------------------------------------------------- 1 | move_object - move current object to another environment 2 | 3 | void move_object( mixed dest ); 4 | 5 | Move the current object into the object `dest'. dest should either be 6 | a filename or an object. 7 | 8 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 9 | -------------------------------------------------------------------------------- /doc/text/efuns/objects/new: -------------------------------------------------------------------------------- 1 | new 2 | 3 | object x = new( string name, ...); 4 | class foo x = new(class foo); 5 | 6 | If given a string, it behaves like clone object. If given a class type, 7 | it creates a new instance of the class type. 8 | 9 | See also: 10 | clone_object, 11 | destruct, 12 | move_object 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/text/efuns/parsing/index: -------------------------------------------------------------------------------- 1 | Parsing efuns 2 | 3 |

Various string parsing efuns:

4 | 5 |
6 | * query_verb 7 |
8 | 9 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 10 | -------------------------------------------------------------------------------- /doc/text/efuns/sockets/socket_error.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/doc/text/efuns/sockets/socket_error.h -------------------------------------------------------------------------------- /doc/text/efuns/strings/capitalize: -------------------------------------------------------------------------------- 1 | capitalize - capitalize a string 2 | 3 | string capitalize( string str ); 4 | 5 | Convert the first character in 'str' to upper case, and return the 6 | new string. 7 | 8 | See also: 9 | lower_case 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/strings/crypt: -------------------------------------------------------------------------------- 1 | crypt - encrypt a string 2 | 3 | string crypt( string str, string seed ); 4 | 5 | Crypt the string 'str' using the first two characters from 'seed' as 6 | a seed. If 'seed' is 0, then random seed is used. 7 | 8 | The result has the first two characters as the seed. 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/text/efuns/strings/lower_case: -------------------------------------------------------------------------------- 1 | lower_case - return the lowercase version of a given string 2 | 3 | string lower_case( string str ); 4 | 5 | Return the lowercase version of a given string (original string remains 6 | unchanged). 7 | 8 | See also: 9 | capitalize 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/strings/pluralize: -------------------------------------------------------------------------------- 1 | pluralize - returns the plural of a given string 2 | 3 | string pluralize( string str ); 4 | 5 | Returns the plural of 'str'. Handles most of the oddities of the English 6 | language. 7 | 8 | This efun is only available if PACKAGE_CONTRIB is defined. 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/text/efuns/strings/set_bit: -------------------------------------------------------------------------------- 1 | next_bit - find the next bit set in a bitstring 2 | 3 | int next_bit( string str, int n ); 4 | 5 | next_bit() returns the next bit set in a bitstring after 'n', or -1 if 6 | 'n' is the last set bit. 7 | 8 | See also: 9 | set_bit, 10 | test_bit 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/strings/strlen: -------------------------------------------------------------------------------- 1 | strlen - returns the length of a string 2 | 3 | int strlen( string str ); 4 | 5 | strlen() returns the number of characters in the string 'str'. 6 | 7 | See also: 8 | sizeof 9 | 10 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 11 | -------------------------------------------------------------------------------- /doc/text/efuns/strings/test_bit: -------------------------------------------------------------------------------- 1 | set_bit - set a bit in a bitstring 2 | 3 | int test_bit( string str, int n ); 4 | 5 | Returns 1 if bit 'n' was set in string 'str', and zero otherwise. 6 | 7 | See also: 8 | set_bit, 9 | clear_bit 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/system/ctime: -------------------------------------------------------------------------------- 1 | ctime - return a time string 2 | 3 | string ctime( int clock ); 4 | 5 | Gives a nice string with current date and time, with the argument 'clock' 6 | that is the number of seconds since 1970. 7 | 8 | See also: 9 | time, 10 | localtime, 11 | uptime 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/efuns/system/deep_inherit_list: -------------------------------------------------------------------------------- 1 | deep_inherit_list - get a list of ancestors of an object 2 | 3 | string array deep_inherit_list( object obj ); 4 | 5 | Returns an array of filenames of all objects inherited (directly and 6 | indirectly) by obj. 7 | 8 | See also: 9 | inherit_list, 10 | inherits 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/system/error: -------------------------------------------------------------------------------- 1 | error - generate a run-time error 2 | 3 | void error( string err ); 4 | 5 | A run-time error 'err' will be generated when error() is called. Execution 6 | of the current thread will halt, and the trace will be recorded to the 7 | debug log. 8 | 9 | See also: 10 | catch, 11 | throw, 12 | error_handler 13 | 14 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 15 | -------------------------------------------------------------------------------- /doc/text/efuns/system/eval_cost: -------------------------------------------------------------------------------- 1 | eval_cost - returns the evaluation cost remaining 2 | 3 | void eval_cost() 4 | 5 | eval_cost() returns the number of instructions that can be executed 6 | before the driver decides it is in an infinite loop. 7 | 8 | See also: 9 | set_eval_limit, 10 | reset_eval_cost 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/system/lpc_info: -------------------------------------------------------------------------------- 1 | lpc_info - return information about LPC->C compiled objects 2 | 3 | string lpc_info(); 4 | 5 | lpc_info() returns a string describing which LPC->C programs are available, 6 | which are loaded, and which are out of date with respect to their source. 7 | 8 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 9 | -------------------------------------------------------------------------------- /doc/text/efuns/system/max_eval_cost: -------------------------------------------------------------------------------- 1 | max_eval_cost - returns the maximum evaluation cost 2 | 3 | void max_eval_cost() 4 | 5 | max_eval_cost() returns the number of instructions that can be executed 6 | before the driver decides it is in an infinite loop. 7 | 8 | See also: 9 | set_eval_limit, 10 | reset_eval_cost 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/system/program_info: -------------------------------------------------------------------------------- 1 | program_info - returns information about program memory usage 2 | 3 | string program_info(); 4 | 5 | string program_info(object ob); 6 | 7 | Returns a summary of the memory usage of the program for a given object. 8 | If no program is specified, a summary of the memory usage of all loaded 9 | programs is returned. 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/system/reset_eval_cost: -------------------------------------------------------------------------------- 1 | reset_eval_cost - resets the evaluation cost remaining 2 | 3 | void reset_eval_cost(); 4 | 5 | reset_eval_cost() resets the evaluation cost remaining to the maximum 6 | evaluation cost. 7 | 8 | See also: 9 | eval_cost, 10 | set_eval_limit 11 | 12 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 13 | -------------------------------------------------------------------------------- /doc/text/efuns/system/time: -------------------------------------------------------------------------------- 1 | debug_message - send a message to the driver's stdout 2 | 3 | void debug_message(string); 4 | 5 | The string argument is printed on the driver's stdout, as well as being added 6 | to the debug.log file. 7 | 8 | See also: 9 | ctime 10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/efuns/system/uptime: -------------------------------------------------------------------------------- 1 | uptime - return the number of seconds elapsed since the last driver reboot 2 | 3 | int uptime(); 4 | 5 | This function returns the number of seconds since the last driver reboot. 6 | 7 | See also: 8 | time, 9 | ctime, 10 | localtime, 11 | time_expression 12 | 13 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 14 | -------------------------------------------------------------------------------- /doc/text/index: -------------------------------------------------------------------------------- 1 | MudOS Documentation 2 | 3 |
4 | * Applies 5 | * Concepts 6 | * Driver 7 | * Efuns 8 | * LPC 9 |
10 | 11 | Tim Hollebeek Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere 12 | -------------------------------------------------------------------------------- /doc/text/lpc/constructs/prototypes: -------------------------------------------------------------------------------- 1 | * The function prototype: 2 | 3 | The LPC function prototype is very similar to that of ANSI C. The 4 | function prototype allows for better type checking and can serve as 5 | a kind of 'forward' declaration. 6 | 7 | return_type function_name(arg1_type arg1, arg2_type arg2, ...); 8 | -------------------------------------------------------------------------------- /src/Dependencies: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/Dependencies -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | @echo MudOS is currently configured to use 'GNUmakefile'. Edit 'build.MudOS' 3 | @echo if this is not what you want. 4 | 5 | .DEFAULT: 6 | @echo MudOS is currently configured to use 'GNUmakefile'. Edit 'build.MudOS' 7 | @echo if this is not what you want. 8 | 9 | nothing: 10 | 11 | which_makefile: 12 | echo MakeIsMake 13 | -------------------------------------------------------------------------------- /src/Makefile.in.pre: -------------------------------------------------------------------------------- 1 | %define NORMAL 2 | 3 | %include "Makefile.master" 4 | -------------------------------------------------------------------------------- /src/NMakefile.in.pre: -------------------------------------------------------------------------------- 1 | %define NMAKE 2 | 3 | %include "Makefile.master" 4 | -------------------------------------------------------------------------------- /src/Version: -------------------------------------------------------------------------------- 1 | FluffOS 2.28.2 2 | -------------------------------------------------------------------------------- /src/Win32/cp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | :loop 3 | if "%1" == "-f" shift 4 | if "%1" == "." shift 5 | if "%1" == ".." shift 6 | if "%1x" == "x" goto end 7 | copy %1 8 | shift 9 | goto loop 10 | :end 11 | -------------------------------------------------------------------------------- /src/Win32/mv.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | if "%1" == "-f" shift 3 | move %1 %2 4 | -------------------------------------------------------------------------------- /src/Win32/rm.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | :loop 3 | if "%1x" == "x" goto end 4 | if "%1" == "-f" shift 5 | del %1 >nul 6 | shift 7 | goto loop 8 | :end 9 | -------------------------------------------------------------------------------- /src/bsdmalloc.h: -------------------------------------------------------------------------------- 1 | #ifndef BSDMALLOC_H 2 | #define BSDMALLOC_H 3 | 4 | #ifdef BSDMALLOC 5 | void *bsdmalloc_malloc (size_t); 6 | void *bsdmalloc_calloc (size_t, size_t); 7 | void *bsdmalloc_realloc (void *, size_t); 8 | void bsdmalloc_free (void *); 9 | #ifdef DO_MSTATS 10 | void show_mstats (outbuffer_t *, char *); 11 | #endif 12 | #endif 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /src/compat/simuls/apply.c: -------------------------------------------------------------------------------- 1 | /* Like evaluate(), but expand out an array of arguments. No longer necessary 2 | because of the ... syntax */ 3 | 4 | mixed apply(mixed f, mixed *arr...) { 5 | if (sizeof(arr) && arrayp(arr[<1])) 6 | arr = arr[0..<2] + arr[<1]; 7 | 8 | return evaluate(f, arr...); 9 | } 10 | -------------------------------------------------------------------------------- /src/console.h: -------------------------------------------------------------------------------- 1 | /* 2 | * console.h -- definitions and prototypes for console.c 3 | * 4 | */ 5 | 6 | #ifndef CONSOLE_H 7 | #define CONSOLE_H 8 | 9 | #include "options_incl.h" 10 | 11 | #ifdef HAS_CONSOLE 12 | extern void console_command(char *); 13 | #endif 14 | 15 | #endif 16 | 17 | -------------------------------------------------------------------------------- /src/crc32.h: -------------------------------------------------------------------------------- 1 | #ifndef CRC32_H 2 | #define CRC32_H 3 | 4 | /* 5 | * crc32.c 6 | */ 7 | UINT32 compute_crc32 (unsigned char *, int); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/dtrace_compile.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "std.h" 3 | int main(){ 4 | #ifdef DTRACE 5 | #ifdef _LP64 6 | system("dtrace -G -64 -s fluffos.d obj/*.o > /dev/null"); 7 | #else 8 | system("dtrace -G -32 -s fluffos.d obj/*.o > /dev/null"); 9 | #endif 10 | printf("fluffos.o"); 11 | #endif 12 | return 0; 13 | } 14 | -------------------------------------------------------------------------------- /src/dumpstat.h: -------------------------------------------------------------------------------- 1 | #ifndef DUMPSTAT_H 2 | #define DUMPSTAT_H 3 | 4 | #include "lpc_incl.h" 5 | 6 | /* 7 | * dumpstat.c 8 | */ 9 | int data_size (object_t *); 10 | void dumpstat (const char *); 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /src/edit_source.h: -------------------------------------------------------------------------------- 1 | #ifndef EDIT_SOURCE_H 2 | #define EDIT_SOURCE_H 3 | 4 | extern FILE *yyin; 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/efuns_incl.h: -------------------------------------------------------------------------------- 1 | #ifndef EFUNS_INCL_H 2 | #define EFUNS_INCL_H 3 | 4 | #include "efun_protos.h" 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/eval.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUFF_EVAL_H 2 | #define FLUFF_EVAL_H 3 | extern int outoftime; 4 | extern LPC_INT max_cost; 5 | void set_eval(LPC_INT time); 6 | LPC_INT get_eval(); 7 | #endif 8 | -------------------------------------------------------------------------------- /src/fluffos.d: -------------------------------------------------------------------------------- 1 | provider fluffos { 2 | probe lpc__entry(string, string, string); 3 | probe lpc__return(string, string, string); 4 | probe error(string); 5 | }; 6 | 7 | -------------------------------------------------------------------------------- /src/gcmalloc.c: -------------------------------------------------------------------------------- 1 | #define IN_MALLOC_WRAPPER 2 | #include 3 | 4 | void malloc_init() { 5 | GC_INIT(); 6 | } 7 | #ifdef DO_MSTATS 8 | void show_mstats (outbuffer_t * ob, char * s) { 9 | outbuf_add(ob, "No malloc statistics available with SYSMALLOC\n"); 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /src/hash.c: -------------------------------------------------------------------------------- 1 | #define EDIT_SOURCE 2 | #define NO_SOCKETS 3 | #define NO_OPCODES 4 | 5 | #include "std.h" 6 | #include "hash.h" 7 | 8 | unsigned int whashstr (const char * s) 9 | { 10 | int i = 0; 11 | unsigned long __h = 0; 12 | for ( ; *s && i++ <100 ; ++s) 13 | __h = 37 * __h + *s; 14 | return __h; 15 | } 16 | -------------------------------------------------------------------------------- /src/hash.h: -------------------------------------------------------------------------------- 1 | #ifndef HASH_H 2 | #define HASH_H 3 | 4 | /* 5 | * hash.c 6 | */ 7 | unsigned int whashstr (const char *); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/include/localtime.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Definitions for localtime() efun 4 | */ 5 | #define LT_SEC 0 6 | #define LT_MIN 1 7 | #define LT_HOUR 2 8 | #define LT_MDAY 3 9 | #define LT_MON 4 10 | #define LT_YEAR 5 11 | #define LT_WDAY 6 12 | #define LT_YDAY 7 13 | #define LT_GMTOFF 8 14 | #define LT_ZONE 9 15 | #define LT_ISDST 10 16 | -------------------------------------------------------------------------------- /src/include/parser_error.h: -------------------------------------------------------------------------------- 1 | #ifndef PARSER_ERROR_H 2 | #define PARSER_ERROR_H 3 | 4 | #define ERR_IS_NOT 1 5 | #define ERR_NOT_LIVING 2 6 | #define ERR_NOT_ACCESSIBLE 3 7 | #define ERR_AMBIG 4 8 | #define ERR_ORDINAL 5 9 | #define ERR_ALLOCATED 6 10 | #define ERR_THERE_IS_NO 7 11 | #define ERR_BAD_MULTIPLE 8 12 | #define ERR_MANY_PATHS 9 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /src/include/type.h: -------------------------------------------------------------------------------- 1 | /* /include/type.h */ 2 | 3 | #ifndef _TYPE_H 4 | #define _TYPE_H 5 | 6 | #define INT "int" 7 | #define STRING "string" 8 | #define ARRAY "array" 9 | #define OBJECT "object" 10 | #define MAPPING "mapping" 11 | #define FUNCTION "function" 12 | #define FLOAT "float" 13 | #define BUFFER "buffer" 14 | #define CLASS "class" 15 | #endif 16 | -------------------------------------------------------------------------------- /src/obj/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | -------------------------------------------------------------------------------- /src/packages/.gitignore: -------------------------------------------------------------------------------- 1 | GNUmakefile 2 | Makefile 3 | packages 4 | packages.a 5 | -------------------------------------------------------------------------------- /src/packages/GNUmakefile.pre: -------------------------------------------------------------------------------- 1 | %define GNU 2 | 3 | %include "packages/Makefile.master" 4 | -------------------------------------------------------------------------------- /src/packages/Makefile.pre: -------------------------------------------------------------------------------- 1 | %define NORMAL 2 | 3 | %include "packages/Makefile.master" 4 | -------------------------------------------------------------------------------- /src/packages/README: -------------------------------------------------------------------------------- 1 | In order to add a package, do the following: 2 | 3 | (1) Pick a name for your package (we will use 'foo' here) 4 | 5 | (2) Put the prototypes for the efuns in foo_spec.c 6 | 7 | (3) implement the efuns in foo.c 8 | 9 | (4) add #define PACKAGE_FOO to options.h or local_options 10 | 11 | (5) do a full recompile (make remake) 12 | 13 | -------------------------------------------------------------------------------- /src/packages/async.h: -------------------------------------------------------------------------------- 1 | #ifndef ASYNC_H_ 2 | #define ASYNC_H_ 3 | 4 | void check_reqs(); 5 | void complete_all_asyncio(); 6 | #endif /*ASYNC_H_*/ 7 | -------------------------------------------------------------------------------- /src/packages/async_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | void async_read(string, function); 4 | void async_write(string, string, int, function); 5 | #ifdef __linux__ 6 | void async_getdir(string, function); 7 | #endif 8 | #ifdef PACKAGE_DB 9 | void async_db_exec(int, string, function); 10 | #endif 11 | -------------------------------------------------------------------------------- /src/packages/compress_spec.c: -------------------------------------------------------------------------------- 1 | /* Compression efun specifications. 2 | * Started Wed Mar 21 01:52:25 PST 2001 3 | * by David Bennett (ddt@discworld.imaginary.com) 4 | */ 5 | 6 | int compress_file(string, string|void); 7 | int uncompress_file(string, string|void); 8 | 9 | buffer compress(string|buffer); 10 | buffer uncompress(string|buffer); 11 | -------------------------------------------------------------------------------- /src/packages/crypto_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | string hash(string, string); 4 | -------------------------------------------------------------------------------- /src/packages/db_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | int db_close(int); 4 | int db_commit(int); 5 | int db_connect(string, string, string|void, int|void); 6 | mixed db_exec(int, string); 7 | mixed *db_fetch(int, int); 8 | int db_rollback(int); 9 | string db_status(void); 10 | -------------------------------------------------------------------------------- /src/packages/debug.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/packages/debug.h -------------------------------------------------------------------------------- /src/packages/debug_spec.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/packages/debug_spec.c -------------------------------------------------------------------------------- /src/packages/dslib.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/packages/dslib.c -------------------------------------------------------------------------------- /src/packages/dslib_spec.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/packages/dslib_spec.c -------------------------------------------------------------------------------- /src/packages/external_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | int external_start(int, string | string *, string | function, string | function, string | function | void); 4 | -------------------------------------------------------------------------------- /src/packages/mudlib_stats_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | mapping domain_stats(void | string); 4 | void set_author(string); 5 | mapping author_stats(void | string); 6 | -------------------------------------------------------------------------------- /src/packages/parser_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | void parse_init(); 4 | void parse_refresh(); 5 | mixed parse_sentence(string, void | int, void | object *, void | mapping); 6 | void parse_add_rule(string, string); 7 | void parse_remove(string); 8 | void parse_add_synonym(string, string, void | string); 9 | string parse_dump(); 10 | mixed parse_my_rules(object, string, void | int); 11 | -------------------------------------------------------------------------------- /src/packages/pcre_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | string pcre_version(void); 4 | mixed pcre_match(string | string *, string, void | int); 5 | mixed *pcre_assoc(string, string *, mixed *, mixed | void); 6 | string *pcre_extract(string, string); 7 | string pcre_replace(string, string, string *); 8 | string pcre_replace_callback(string, string, string | function, ...); 9 | mapping pcre_cache(void); 10 | -------------------------------------------------------------------------------- /src/packages/readme: -------------------------------------------------------------------------------- 1 | In order to add a package, do the following: 2 | 3 | (1) Pick a name for your package (we will use 'foo' here) 4 | 5 | (2) Put the prototypes for the efuns in foo_spec.c 6 | 7 | (3) implement the efuns in foo.c 8 | 9 | (4) add #define PACKAGE_FOO to options.h or local_options 10 | 11 | (5) do a full recompile (make remake) 12 | 13 | -------------------------------------------------------------------------------- /src/packages/sha1_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | string sha1(string|buffer); 4 | -------------------------------------------------------------------------------- /src/packages/uids_spec.c: -------------------------------------------------------------------------------- 1 | #include "spec.h" 2 | 3 | int export_uid(object); 4 | string geteuid(function | object default:F__THIS_OBJECT); 5 | string getuid(object default:F__THIS_OBJECT); 6 | int seteuid(string | int); 7 | -------------------------------------------------------------------------------- /src/parse.h: -------------------------------------------------------------------------------- 1 | #ifndef PARSE_H 2 | #define PARSE_H 3 | 4 | #include "lpc_incl.h" 5 | 6 | int parse (const char *, svalue_t *, const char *, svalue_t *, int); 7 | char *process_string (char *); 8 | svalue_t *process_value (char *); 9 | char *break_string (char *, int, svalue_t *); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/patchlevel.h: -------------------------------------------------------------------------------- 1 | #define PATCH_LEVEL "v2.28.3" 2 | -------------------------------------------------------------------------------- /src/plainwrapper.c: -------------------------------------------------------------------------------- 1 | #ifdef PEDANTIC 2 | int I_really_could_do_without_warnings_about_ANSI_C_not_allowing_files_with_no_definitions; 3 | #endif 4 | -------------------------------------------------------------------------------- /src/posix_timers.h: -------------------------------------------------------------------------------- 1 | #ifndef POSIX_TIMERS_H 2 | #define POSIX_TIMERS_H 3 | #ifdef SIGNAL_FUNC_TAKES_INT 4 | void sigalrm_handler (int, siginfo_t *, void *); 5 | #else 6 | void sigalrm_handler (void); 7 | #endif 8 | #ifdef POSIX_TIMERS 9 | void init_posix_timers(void); 10 | void posix_eval_timer_set(int micros); 11 | int posix_eval_timer_get(void); 12 | #endif 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /src/preprocess.h: -------------------------------------------------------------------------------- 1 | #ifndef PREPROCESS_H 2 | #define PREPROCESS_H 3 | 4 | defn_t *lookup_define (const char *); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/qsort.h: -------------------------------------------------------------------------------- 1 | #ifndef QSORT_H 2 | #define QSORT_H 3 | 4 | /* 5 | * qsort.c 6 | */ 7 | void quickSort (void *, int, int, int (*) (void *, void *)); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/rc.h: -------------------------------------------------------------------------------- 1 | #ifndef RC_H 2 | #define RC_H 3 | 4 | #include "lpc_incl.h" 5 | 6 | /* 7 | * rc.c 8 | */ 9 | 10 | void set_defaults (char *); 11 | int get_config_int (int); 12 | char *get_config_str (int); 13 | int get_config_item (svalue_t *, svalue_t *); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /src/reclaim.h: -------------------------------------------------------------------------------- 1 | #ifndef RECLAIM_H 2 | #define RECLAIM_H 3 | 4 | /* 5 | * reclaim.c 6 | */ 7 | int reclaim_objects (void); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/simul_efun.h: -------------------------------------------------------------------------------- 1 | #ifndef SIMUL_EFUN_H 2 | #define SIMUL_EFUN_H 3 | 4 | #include "lpc_incl.h" 5 | 6 | /* 7 | * simul_efun.c 8 | */ 9 | 10 | extern object_t *simul_efun_ob; 11 | extern function_lookup_info_t *simuls; 12 | 13 | void init_simul_efun (char *); 14 | void set_simul_efun (object_t *); 15 | 16 | #ifdef DEBUGMALLOC_EXTENSIONS 17 | void mark_simuls (void); 18 | #endif 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /src/smalloc.h: -------------------------------------------------------------------------------- 1 | #ifndef SMALLOC_H 2 | #define SMALLOC_H 3 | 4 | #ifdef SMALLOC 5 | void * CDECL smalloc_malloc (size_t); 6 | void * CDECL smalloc_realloc (void *, size_t); 7 | void * CDECL smalloc_calloc (size_t, size_t); 8 | void CDECL smalloc_free (void *); 9 | #ifdef DO_MSTATS 10 | void show_mstats (outbuffer_t *, char *); 11 | #endif 12 | #endif 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /src/socket_ctrl.h: -------------------------------------------------------------------------------- 1 | #ifndef SOCKET_CTRL_H 2 | #define SOCKET_CTRL_H 3 | 4 | /* 5 | * socket_ctrl.c 6 | */ 7 | int set_socket_nonblocking (int, int); 8 | int set_socket_owner (int, int); 9 | int set_socket_async (int, int); 10 | 11 | #ifdef WIN32 12 | void SocketPerror (char *, char *); 13 | void CDECL cleanup_sockets (void); 14 | #endif 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /src/socket_err.h: -------------------------------------------------------------------------------- 1 | #ifndef SOCKET_ERR_H 2 | #define SOCKET_ERR_H 3 | /* 4 | * socket_err.h 5 | */ 6 | extern const char *error_strings[]; 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/spec.h: -------------------------------------------------------------------------------- 1 | /* This is the correct file to include in efun specification files; e.g. 2 | func_spec.c and packages/anything_spec.c */ 3 | 4 | #define _FUNC_SPEC_ 5 | #include "std.h" 6 | -------------------------------------------------------------------------------- /src/sprintf.h: -------------------------------------------------------------------------------- 1 | #ifndef SPRINTF_H 2 | #define SPRINTF_H 3 | 4 | #include "lpc_incl.h" 5 | 6 | void svalue_to_string (svalue_t *, outbuffer_t *, int, int, int); 7 | char *string_print_formatted (const char *, int, svalue_t *); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/sysmalloc.c: -------------------------------------------------------------------------------- 1 | #define IN_MALLOC_WRAPPER 2 | #define NO_OPCODES 3 | #include "std.h" 4 | #include "lpc_incl.h" 5 | #include "simulate.h" 6 | #include "comm.h" 7 | 8 | #ifdef DO_MSTATS 9 | void show_mstats (outbuffer_t * ob, char * s) { 10 | outbuf_add(ob, "No malloc statistics available with SYSMALLOC\n"); 11 | } 12 | #endif 13 | 14 | -------------------------------------------------------------------------------- /src/testsuite/.edrc: -------------------------------------------------------------------------------- 1 | 148 2 | -------------------------------------------------------------------------------- /src/testsuite/clone/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/testsuite/clone/README -------------------------------------------------------------------------------- /src/testsuite/clone/readme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/testsuite/clone/readme -------------------------------------------------------------------------------- /src/testsuite/command/README: -------------------------------------------------------------------------------- 1 | This directory is to contain the objects implementing the commands that 2 | interactives can use (movement, building, communication, etc). 3 | -------------------------------------------------------------------------------- /src/testsuite/command/ed.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int 4 | main(string file) 5 | { 6 | // need to call resolve_path() and query_cwd() 7 | #ifdef __OLD_ED__ 8 | ed(file); 9 | #else 10 | this_player()->start_ed(file); 11 | #endif 12 | return 1; 13 | } 14 | -------------------------------------------------------------------------------- /src/testsuite/command/eval.c: -------------------------------------------------------------------------------- 1 | int 2 | main(string arg) 3 | { 4 | /* clean up first */ 5 | if (file_size("/tmp_eval_file.c") != -1) 6 | rm ("/tmp_eval_file.c"); 7 | if (find_object("/tmp_eval_file")) 8 | destruct(find_object("/tmp_eval_file")); 9 | 10 | write_file("/tmp_eval_file.c","mixed eval() { "+arg+"; }\n"); 11 | printf("Result = %O\n", "/tmp_eval_file"->eval()); 12 | return 1; 13 | } 14 | -------------------------------------------------------------------------------- /src/testsuite/command/quit.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifdef __NO_ENVIRONMENT__ 4 | #define say(x) shout(x) 5 | #endif 6 | 7 | int 8 | main(string arg) 9 | { 10 | write("Bye.\n"); 11 | say((string)previous_object()->query_name() 12 | + " leaves this reality.\n"); 13 | previous_object()->remove(); 14 | return 1; 15 | } 16 | -------------------------------------------------------------------------------- /src/testsuite/command/readme: -------------------------------------------------------------------------------- 1 | This directory is to contain the objects implementing the commands that 2 | interactives can use (movement, building, communication, etc). 3 | -------------------------------------------------------------------------------- /src/testsuite/command/rm.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int 4 | main(string file) 5 | { 6 | // need to call resolve_path() and query_cwd() 7 | rm(file); 8 | return 1; 9 | } 10 | -------------------------------------------------------------------------------- /src/testsuite/command/say.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifdef __NO_ENVIRONMENT__ 4 | #define say(x) shout(x) 5 | #endif 6 | 7 | int main(string arg) 8 | { 9 | say((string)previous_object()->query_name() 10 | + " says: " + arg + "\n"); 11 | return 1; 12 | } 13 | -------------------------------------------------------------------------------- /src/testsuite/command/shutdown.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int 4 | main(string arg) 5 | { 6 | shutdown(0); 7 | return 1; 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/crasher/1: -------------------------------------------------------------------------------- 1 | calling send_gmcp with ({ /* sizeof() == 1 */ 2 | "^^^^^^" 3 | }) 4 | 5 | -------------------------------------------------------------------------------- /src/testsuite/crasher/11: -------------------------------------------------------------------------------- 1 | calling localtime with ({ /* sizeof() == 1 */ 2 | 9223372036854775807 3 | }) 4 | -------------------------------------------------------------------------------- /src/testsuite/crasher/12: -------------------------------------------------------------------------------- 1 | calling unique_mapping with ({ /* sizeof() == 2 */ 2 | ({ /* sizeof() == 1 */ 3 | ([ ]) 4 | }), 5 | "_" 6 | }) 7 | -------------------------------------------------------------------------------- /src/testsuite/crasher/13: -------------------------------------------------------------------------------- 1 | calling terminal_colour with ({ /* sizeof() == 4 */ 2 | " - - - - ", 3 | ([ ]), 4 | (: shout :), 5 | -5050211 6 | }) 7 | -------------------------------------------------------------------------------- /src/testsuite/crasher/14: -------------------------------------------------------------------------------- 1 | calling save_object with ({ /* sizeof() == 2 */ 2 | 32, 3 | 40 4 | }) 5 | -------------------------------------------------------------------------------- /src/testsuite/crasher/16: -------------------------------------------------------------------------------- 1 | calling remove_get_char with ({ /* sizeof() == 1 */ 2 | /clone/login#2 3 | }) 4 | -------------------------------------------------------------------------------- /src/testsuite/crasher/17: -------------------------------------------------------------------------------- 1 | calling zonetime with ({ 2 | string: "" 3 | int: 9223372036854775807 4 | }) 5 | -------------------------------------------------------------------------------- /src/testsuite/crasher/2: -------------------------------------------------------------------------------- 1 | calling clear_debug_level with ({ /* sizeof() == 1 */ 2 | "%d %q %T" 3 | }) 4 | -------------------------------------------------------------------------------- /src/testsuite/crasher/4: -------------------------------------------------------------------------------- 1 | calling unique_mapping with ({ /* sizeof() == 2 */ 2 | ({ /* sizeof() == 1 */ 3 | (: () :) 4 | }), 5 | "#^# #^#" 6 | }) 7 | -------------------------------------------------------------------------------- /src/testsuite/crasher/5: -------------------------------------------------------------------------------- 1 | calling zonetime with ({ /* sizeof() == 2 */ 2 | " ", 3 | -9223372036854775807 4 | }) 5 | -------------------------------------------------------------------------------- /src/testsuite/crasher/7: -------------------------------------------------------------------------------- 1 | calling save_object with ({ /* sizeof() == 2 */ 2 | -40, 3 | -32 4 | }) 5 | 6 | -------------------------------------------------------------------------------- /src/testsuite/crasher/8: -------------------------------------------------------------------------------- 1 | calling remove_get_char with ({ /* sizeof() == 1 */ 2 | /clone/login#2 3 | }) 4 | -------------------------------------------------------------------------------- /src/testsuite/crasher/9: -------------------------------------------------------------------------------- 1 | calling ed with ({ /* sizeof() == 4 */ 2 | -5050211, 3 | " ^", 4 | "°°°°°°°°°°°°°°°°°°°°°", 5 | 1 6 | }) 7 | 8 | -------------------------------------------------------------------------------- /src/testsuite/data/README: -------------------------------------------------------------------------------- 1 | This directory is to contain the .o files created by the save_object() efun. 2 | -------------------------------------------------------------------------------- /src/testsuite/data/readme: -------------------------------------------------------------------------------- 1 | This directory is to contain the .o files created by the save_object() efun. 2 | -------------------------------------------------------------------------------- /src/testsuite/data/sha1/README: -------------------------------------------------------------------------------- 1 | The files in this directory came from: 2 | 3 | http://www.nsrl.nist.gov/testdata/NSRLvectors.zip 4 | -------------------------------------------------------------------------------- /src/testsuite/etc/motd: -------------------------------------------------------------------------------- 1 | The only commands in this little mudlib are: 2 | 3 | dest, update, ed, eval, efun, rm, say, who, quit, and shutdown. 4 | 5 | All of update, dest, ed, and rm require full pathnames as arguments. 6 | 7 | More commands: 8 | tests : run a series test to validate driver function. 9 | speed : run a benchmark. 10 | crasher: calling efun with random argument, attempt to crash driver. 11 | 12 | Have fun. 13 | -------------------------------------------------------------------------------- /src/testsuite/include/README: -------------------------------------------------------------------------------- 1 | This directory contains files that are included via the #include 2 | preprocessor directive. 3 | -------------------------------------------------------------------------------- /src/testsuite/include/command.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | inherit CLEAN_UP; 4 | -------------------------------------------------------------------------------- /src/testsuite/include/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * if "global include file" is specified in the config file, this header 3 | * file is automatically included by all objects; otherwise, you have to 4 | * #include it manually 5 | */ 6 | #ifndef __CONFIG_H__ 7 | #define __CONFIG_H__ 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/testsuite/include/readme: -------------------------------------------------------------------------------- 1 | This directory contains files that are included via the #include 2 | preprocessor directive. 3 | -------------------------------------------------------------------------------- /src/testsuite/inherit/README: -------------------------------------------------------------------------------- 1 | This directory contains files that are typically inherited (rather than 2 | cloned). 3 | -------------------------------------------------------------------------------- /src/testsuite/inherit/clean_up.c: -------------------------------------------------------------------------------- 1 | 2 | int 3 | clean_up(int inh) 4 | { 5 | destruct(this_object()); 6 | return 0; 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/inherit/readme: -------------------------------------------------------------------------------- 1 | This directory contains files that are typically inherited (rather than 2 | cloned). 3 | -------------------------------------------------------------------------------- /src/testsuite/inherit/tests.c: -------------------------------------------------------------------------------- 1 | string test_desc; 2 | 3 | void 4 | describe_test(string desc) 5 | { 6 | test_desc = desc; 7 | } 8 | 9 | string 10 | query_test_info() 11 | { 12 | return test_desc; 13 | } 14 | -------------------------------------------------------------------------------- /src/testsuite/log/README: -------------------------------------------------------------------------------- 1 | This directory contains logfiles produced by the mudlib and the driver. 2 | -------------------------------------------------------------------------------- /src/testsuite/log/readme: -------------------------------------------------------------------------------- 1 | This directory contains logfiles produced by the mudlib and the driver. 2 | -------------------------------------------------------------------------------- /src/testsuite/single/README: -------------------------------------------------------------------------------- 1 | This directory is for objects that are intended to only have a _single_ 2 | instance (no clones) yet are not typically inherited. This sort of object 3 | includes what are sometimes known as daemons. 4 | -------------------------------------------------------------------------------- /src/testsuite/single/inh.c: -------------------------------------------------------------------------------- 1 | /* this file is used by commands/speed.c */ 2 | void ifun() { 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/readme: -------------------------------------------------------------------------------- 1 | This directory is for objects that are intended to only have a _single_ 2 | instance (no clones) yet are not typically inherited. This sort of object 3 | includes what are sometimes known as daemons. 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/at_block.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mixed *a; 3 | string s = @END 4 | xxx 5 | yyy 6 | END; 7 | ASSERT( s == "xxx\nyyy\n"); 8 | a = @@END 9 | xxx 10 | yyy 11 | END; 12 | ASSERT(sizeof(a) == 2); 13 | } 14 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/arr_index.c: -------------------------------------------------------------------------------- 1 | void foo { 2 | ({ })[1]; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_break.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | break; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_continue.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | continue; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_for_init.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | for (int x += 1; ; ) ; 3 | } 4 | 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_foreach.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | foreach (x in ({})) ; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_init.c: -------------------------------------------------------------------------------- 1 | int x += 1; 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_local_init.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | int x += 1; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_local_init2.c: -------------------------------------------------------------------------------- 1 | TYPETEST 2 | 3 | void foo() { 4 | int x = "hi"; 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_param.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | (: $-1 :); 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_param2.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | (: $1000 :); 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_return.c: -------------------------------------------------------------------------------- 1 | TYPETEST 2 | 3 | void foo() { 4 | return 1; 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_return2.c: -------------------------------------------------------------------------------- 1 | TYPETEST 2 | 3 | int foo() { 4 | return "hi"; 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/bad_type_init.c: -------------------------------------------------------------------------------- 1 | TYPETEST 2 | 3 | int x = "hi"; 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/class_redef.c: -------------------------------------------------------------------------------- 1 | class foo { 2 | int x; 3 | } 4 | 5 | class foo { 6 | string y; 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/div_zero.c: -------------------------------------------------------------------------------- 1 | void foo(mixed x) { 2 | switch(x) { 3 | case 1 / 0: 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/div_zero3.c: -------------------------------------------------------------------------------- 1 | int foo() { 2 | return 1/0.0; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/eof_in_comment.c: -------------------------------------------------------------------------------- 1 | /* 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/eof_in_string.c: -------------------------------------------------------------------------------- 1 | void create() { 2 | " 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/local_redef.c: -------------------------------------------------------------------------------- 1 | void foo(int x) { 2 | int x; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/local_redef2.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | int x; 3 | { 4 | int x; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/lvar_func.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | int x; 3 | (: x :); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/lvar_func2.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | int x; 3 | (: x + 1 :); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/missing_endif.c: -------------------------------------------------------------------------------- 1 | #if 1 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/missing_type.c: -------------------------------------------------------------------------------- 1 | #pragma strict_types 2 | 3 | foo; 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/mixed_case.c: -------------------------------------------------------------------------------- 1 | void foo(mixed x) { 2 | switch (x) { 3 | case 1: 4 | case "hi": 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/mod_zero.c: -------------------------------------------------------------------------------- 1 | void foo(mixed x) { 2 | switch(x) { 3 | case 1 % 0: 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/no_member.c: -------------------------------------------------------------------------------- 1 | class foo { 2 | int x; 3 | } 4 | 5 | void foo() { 6 | foo y; 7 | y->z; 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/no_ret_type.c: -------------------------------------------------------------------------------- 1 | #pragma strict_types 2 | 3 | foo() { 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/no_such_class.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | new(class foo); 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/predef.c: -------------------------------------------------------------------------------- 1 | #undef __VERSION__ 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/redef_function.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | } 3 | 4 | void foo() { 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/static_local.c: -------------------------------------------------------------------------------- 1 | void main() { 2 | static int x = 5; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/string_case.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | switch ("hi") { 3 | case "foo".."bar": 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/two_default.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | switch (1) { 3 | default: 4 | default: 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/undef_class.c: -------------------------------------------------------------------------------- 1 | class foo x; 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/var_to_nonvar.c: -------------------------------------------------------------------------------- 1 | TYPETEST 2 | 3 | void foo(int x) { 4 | } 5 | 6 | void bar() { 7 | foo( ({ })...); 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/void_arg.c: -------------------------------------------------------------------------------- 1 | void foo(void x) { 2 | } 3 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/void_arg2.c: -------------------------------------------------------------------------------- 1 | void foo(void, int bar); 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/void_for_var.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | for (void x = 1; ; ) ; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/void_global.c: -------------------------------------------------------------------------------- 1 | void x; 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/void_local.c: -------------------------------------------------------------------------------- 1 | void foo() { 2 | void x; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/fail/void_member.c: -------------------------------------------------------------------------------- 1 | class foo { 2 | void x; 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/compiler/succeed.c: -------------------------------------------------------------------------------- 1 | #pragma no_strict_types 2 | foo() { } 3 | bar(x) { } 4 | #pragma strict_types 5 | create() { } 6 | 7 | void foo(int); 8 | 9 | ; // only a warning 10 | 11 | int ident; 12 | #define X1 id 13 | #define X2 ent 14 | int paste = X1##X2; 15 | string x = @END 16 | xxx 17 | END; 18 | string * y = @@END 19 | xxx 20 | yyy 21 | zzz 22 | END 23 | ; 24 | 25 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/testsuite/single/tests/efuns/README -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/add_light.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/allocate.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | for (int i = 0; i < 10; i++) { 3 | ASSERT(sizeof(allocate(i)) == i); 4 | ASSERT(filter(allocate(i), (: $1 :)) == ({})); 5 | } 6 | ASSERT(allocate(0) == ({})); 7 | ASSERT(catch(allocate(-10))); 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/allocate_buffer.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_BUFFER_TYPE__ 3 | int i = random(100000); 4 | 5 | ASSERT(sizeof(allocate_buffer(i)) == i); 6 | ASSERT(catch(allocate_buffer(-20))); 7 | #endif 8 | } 9 | 10 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/allocate_mapping.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mapping m = allocate_mapping(random(1000)); 3 | mixed x, y; 4 | 5 | foreach (x, y in m) { 6 | ASSERT(0); // shouldn't get here 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/badshad.c: -------------------------------------------------------------------------------- 1 | void create(int arg) { 2 | if (arg) { 3 | #ifndef __NO_SHADOWS__ 4 | ASSERT(catch(shadow(previous_object()))); 5 | destruct(this_object()); 6 | #endif 7 | } 8 | } 9 | 10 | void i_am_bad() { 11 | } 12 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/break_string.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | /* tests later */ 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/cache_stats.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifdef __CACHE_STATS__ 3 | ASSERT(stringp(cache_stats())); 4 | #endif 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/children.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | object x; 3 | 4 | foreach (x in children(__FILE__)) 5 | if (x != this_object()) destruct(x); 6 | 7 | for (int i = 0; i < 5; i++) 8 | new(__FILE__); 9 | 10 | ASSERT(sizeof(children(__FILE__)) == 6); 11 | } 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/clonep.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(!clonep()); 3 | ASSERT(!clonep(this_object())); 4 | ASSERT(clonep(new(__FILE__))); 5 | ASSERT(!clonep( ({ 1, 2 }) )); 6 | ASSERT(!clonep(1)); 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/cp.c: -------------------------------------------------------------------------------- 1 | #define TESTFILE "/testfile" 2 | 3 | void do_tests() { 4 | rm(TESTFILE); 5 | ASSERT(file_size(TESTFILE) == -1); 6 | ASSERT(cp("/single/master.c", TESTFILE)); 7 | ASSERT(file_size(TESTFILE)); 8 | ASSERT(read_file("/single/master.c") == read_file(TESTFILE)); 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/crc32.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(catch(crc32(0))); 3 | ASSERT(intp(crc32("foobarbazz"))); 4 | } 5 | 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/ctime.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | string tm = ctime(0); 3 | ASSERT(stringp(tm)); 4 | ASSERT(strsrch(tm, '\n') == -1); 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/deep_inherit_list.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mixed *x; 3 | 4 | ASSERT(deep_inherit_list(this_object()) == ({ })); 5 | x = deep_inherit_list(load_object("/single/tests/efuns/inh2.c")); 6 | ASSERT(sizeof(x) == 2); 7 | ASSERT(x[0] == "/single/tests/efuns/inh1.c"); 8 | ASSERT(x[1] == "/single/tests/efuns/inh0.c"); 9 | } 10 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/destruct.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | object ob = new(__FILE__); 3 | ASSERT(ob); 4 | destruct(ob); 5 | ASSERT(!ob); 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/dumpallobj.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | dumpallobj(); 3 | dumpallobj("/OBJ_DUMP2"); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/ed.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __OLD_ED__ 3 | ASSERT(catch(ed_cmd("foo"))); 4 | rm("/ed_test"); 5 | write_file("/ed_test", "xyzzy\nxxx"); 6 | ed_start("/ed_test"); 7 | ASSERT(ed_cmd("1s/y/a/g")); 8 | ASSERT(ed_cmd("2s!x!b!")); 9 | ASSERT(catch(ed_start("foo"))); 10 | ASSERT(ed_cmd("x")); 11 | ASSERT(read_file("/ed_test") == "xazza\nbxx\n"); 12 | #endif 13 | } 14 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/error.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(catch(error("hi")) == "*hi\n"); 3 | ASSERT(catch(error("hi\n")) == "*hi\n"); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/exec.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | object tp = this_player(); 3 | 4 | if (tp) { 5 | ASSERT(exec(this_object(), tp)); 6 | ASSERT(userp(this_object())); 7 | ASSERT(exec(tp, this_object())); 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/file_name.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(file_name() + ".c" == __FILE__); 3 | } 4 | 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/file_size.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | string str = "This is a test"; 3 | rm("/test_file"); 4 | write_file("/test_file", str); 5 | ASSERT(file_size("test_file") == strlen(str)); 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/find_call_out.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(find_call_out("foo") == -1); 3 | call_out("foo", 10); 4 | ASSERT(find_call_out("foo") == 10); 5 | ASSERT(find_call_out("bar") == -1); 6 | remove_call_out("foo"); 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/find_living.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_ADD_ACTION__ 3 | object ob; 4 | object tp; 5 | 6 | ASSERT(!find_living("bar")); 7 | SAVETP; 8 | enable_commands(); 9 | set_living_name("bar"); 10 | ob = find_living("bar"); 11 | disable_commands(); 12 | RESTORETP; 13 | ASSERT(ob == this_object()); 14 | ASSERT(!find_living("bar")); 15 | #endif 16 | } 17 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/function_profile.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifdef __PROFILE_FUNCTIONS__ 3 | mixed *hmm = function_profile(this_object()); 4 | ASSERT(sizeof(hmm) == 1); 5 | ASSERT(hmm[0]["calls"]); 6 | ASSERT(!undefinedp(hmm[0]["self"])); 7 | ASSERT(!undefinedp(hmm[0]["children"])); 8 | ASSERT(hmm[0]["name"] == "do_tests"); 9 | #endif 10 | } 11 | 12 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/functionp.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(!functionp(0)); 3 | ASSERT(!functionp("foo")); 4 | ASSERT(functionp((: do_tests :))); 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/generate_source.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | // maybe later 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/get_char.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | // maybe later 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/get_config.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(get_config(0) == MUD_NAME); 3 | ASSERT(catch(get_config(-1))); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/get_dir.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | // more later 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/goodshad.c: -------------------------------------------------------------------------------- 1 | void create(int arg) { 2 | #ifndef __NO_SHADOWS__ 3 | if (arg) { 4 | ASSERT(shadow(previous_object())); 5 | ASSERT(catch(shadow(previous_object()))); 6 | } 7 | #endif 8 | } 9 | 10 | object foo() { 11 | return this_object(); 12 | } 13 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/has_errors.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/testsuite/single/tests/efuns/has_errors.c -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/in_edit.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __OLD_ED__ 3 | ASSERT(!in_edit(this_object())); 4 | ed_start("/ed_test"); 5 | ASSERT(in_edit(this_object()) == "/ed_test"); 6 | destruct(this_object()); 7 | #endif 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/inh0.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/testsuite/single/tests/efuns/inh0.c -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/inh1.c: -------------------------------------------------------------------------------- 1 | inherit "/single/tests/efuns/inh0.c"; 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/inh2.c: -------------------------------------------------------------------------------- 1 | inherit "/single/tests/efuns/inh1.c"; 2 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/inherit_list.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mixed *x; 3 | ASSERT(inherit_list(this_object()) == ({})); 4 | x = inherit_list(load_object("/single/tests/efuns/inh2.c")); 5 | ASSERT(sizeof(x) == 1); 6 | ASSERT(x[0] == "/single/tests/efuns/inh1.c"); 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/input_to.c: -------------------------------------------------------------------------------- 1 | void foo() {} 2 | 3 | void do_tests() { 4 | // We can only set up one input_to, which makes this hard to test 5 | // exhaustively 6 | if (this_player()) 7 | ASSERT(input_to((: foo, "bazz" :), 1, "bar")); 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/interactive.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | if (this_player()) 3 | ASSERT(interactive(this_player())); 4 | ASSERT(!interactive(this_object())); 5 | ASSERT(sizeof(users()) == sizeof(filter(users(), (: interactive :)))); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/intp.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(intp(5)); 3 | ASSERT(intp(([])[0])); 4 | ASSERT(!intp( ({}) )); 5 | ASSERT(!intp(([]))); 6 | ASSERT(!intp(this_object())); 7 | destruct(this_object()); 8 | ASSERT(intp(this_object())); 9 | } 10 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/keys.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mapping m = ([ 1 : 2, 3 : 4, 5 : 6 ]); 3 | mixed *k = keys(m); 4 | mixed x, y; 5 | 6 | foreach (x, y in m) { 7 | k -= ({ x }); 8 | } 9 | ASSERT(k == ({})); 10 | } 11 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/light.c: -------------------------------------------------------------------------------- 1 | void create() { 2 | #ifndef __NO_LIGHT__ 3 | set_light(3); 4 | #endif 5 | } 6 | 7 | void move(object ob) { 8 | #ifndef __NO_ENVIRONMENT__ 9 | move_object(ob); 10 | #endif 11 | } 12 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/living.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_ADD_ACTION__ 3 | if (this_player()) 4 | ASSERT(living(this_player())); 5 | ASSERT(!living(this_object())); 6 | #endif 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/livings.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_ADD_ACTION__ 3 | ASSERT(!sizeof(filter(livings(), (: !living($1) :)))); 4 | if (this_player()) 5 | ASSERT(member_array(this_player(), livings()) != -1); 6 | #endif 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/malloc_status.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(stringp(malloc_status())); 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/map_delete.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mapping m = ([ 1 : 2, "foo" : 3, this_object() : 5 ]); 3 | 4 | map_delete(m, 1); 5 | ASSERT(undefinedp(m[1])); 6 | map_delete(m, ({})); 7 | map_delete(m, "foo"); 8 | ASSERT(undefinedp(m["foo"])); 9 | map_delete(m, this_object()); 10 | ASSERT(undefinedp(m[this_object()])); 11 | } 12 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/mapp.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(mapp(([]))); 3 | ASSERT(!mapp(0)); 4 | ASSERT(!mapp("foo")); 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/master.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(master()); 3 | ASSERT(objectp(master())); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/member_array.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(member_array('c', "foo") == -1); 3 | ASSERT(member_array('b', "abar") == 1); 4 | ASSERT(member_array('y', "xyzzy") == 1); 5 | ASSERT(member_array('y', "xyzzy", 2) == 4); 6 | ASSERT(member_array(2, ({ 1, 2, 3 })) == 1); 7 | ASSERT(member_array("foo", ({ 1, "foo", 3 })) == 1); 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/message.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | // later 3 | } 4 | 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/mkdir.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | // later 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/move_object.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_ENVIRONMENT__ 3 | ASSERT(catch(move_object("foo"))); 4 | ASSERT(catch(move_object(__FILE__))); 5 | ASSERT(catch(move_object(this_object()))); 6 | move_object(master()); 7 | ASSERT(environment(this_object()) == master()); 8 | destruct(this_object()); 9 | ASSERT(catch(move_object(master()))); 10 | #endif 11 | } 12 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/mud_status.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(stringp(mud_status())); 3 | ASSERT(stringp(mud_status(1))); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/notify_fail.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_ADD_ACTION__ 3 | notify_fail("foo"); 4 | notify_fail((: write("hi!\n") :)); 5 | #endif 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/nullp.c: -------------------------------------------------------------------------------- 1 | int x; 2 | 3 | void do_tests() { 4 | ASSERT(evaluate( (: nullp($1) :) )); 5 | ASSERT(nullp(x)); 6 | ASSERT(!nullp(1)); 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/objectp.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(objectp(this_object())); 3 | ASSERT(!objectp(0)); 4 | } 5 | 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/opcprof.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #if defined(__OPCPROF__) || defined(__OPCPROF_2D__) 3 | opcprof(); 4 | opcprof("/opc"); 5 | #endif 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/pointerp.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(pointerp( ({}) )); 3 | ASSERT(!pointerp( ([]) )); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/previous_object.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | object *obs = previous_object(-1); 3 | 4 | for (int i = 0; i < sizeof(obs); i++) { 5 | ASSERT(obs[i] == previous_object(i)); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/printf.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | // more complete testing done under sprintf() 3 | printf("Printf test.\n"); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_idle.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | if (this_player()) 3 | ASSERT(intp(query_idle(this_player()))); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_ip_name.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(query_ip_number(this_object()) == 0); 3 | if (this_player()) 4 | ASSERT(stringp(query_ip_number(this_player()))); 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_ip_number.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(query_ip_number(this_object()) == 0); 3 | if (this_player()) 4 | ASSERT(stringp(query_ip_number(this_player()))); 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_load_average.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(stringp(query_load_average())); 3 | } 4 | 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_privs.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifdef __PRIVS__ 3 | ASSERT(query_privs(this_object())); 4 | #endif 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_snoop.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_SNOOP__ 3 | ASSERT(query_snoop(this_object()) == 0); 4 | #endif 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_snooping.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifndef __NO_SNOOP__ 3 | ASSERT(query_snooping(this_object()) == 0); 4 | #endif 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/query_verb.c: -------------------------------------------------------------------------------- 1 | #ifndef __NO_ADD_ACTION__ 2 | void func() { 3 | ASSERT(query_verb() == "foo"); 4 | } 5 | #endif 6 | 7 | void do_tests() { 8 | #ifndef __NO_ADD_ACTION__ 9 | object tp; 10 | SAVETP; 11 | enable_commands(); 12 | add_action( (: func :), "foo"); 13 | RESTORETP; 14 | command("foo"); 15 | #endif 16 | } 17 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/random.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | for (int i = 0; i < 100; i++) { 3 | ASSERT(random(5) >= 0); 4 | ASSERT(random(5) < 5); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/readme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/testsuite/single/tests/efuns/readme -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/receive.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(!receive("")); 3 | ASSERT(!receive("recieve_test")); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/remove_action.c: -------------------------------------------------------------------------------- 1 | int called = 0; 2 | 3 | void func() { called = 1; } 4 | 5 | void do_tests() { 6 | #ifndef __NO_ADD_ACTION__ 7 | object tp; 8 | 9 | SAVETP; 10 | enable_commands(); 11 | add_action( "func", "bar" ); 12 | ASSERT(remove_action( "func", "bar" )); 13 | RESTORETP; 14 | command("bar"); 15 | ASSERT(!called); 16 | #endif 17 | } 18 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/rename.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | write_file("/rename_test", "Hmm."); 3 | rename("/rename_test", "/ren_test"); 4 | ASSERT(file_size("/rename_test") == -1); 5 | ASSERT(read_file("/ren_test") == "Hmm."); 6 | rename("/ren_test", "/single"); 7 | ASSERT(file_size("/ren_test") == -1); 8 | ASSERT(read_file("/single/ren_test") == "Hmm."); 9 | rm("/single/ren_test"); 10 | } 11 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/rm.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | write_file("/rm_test", "foo"); 3 | ASSERT(file_size("/rm_test")); 4 | rm("/rm_test"); 5 | ASSERT(file_size("/rm_test") == -1); 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/rmdir.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mkdir("/rm_dir"); 3 | ASSERT(file_size("/rm_dir") == -2); 4 | rmdir("/rm_dir"); 5 | ASSERT(file_size("/rm_dir") == -1); 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/set_debug_level.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifdef __DEBUG_MACRO__ 3 | set_debug_level(10); 4 | set_debug_level(0); 5 | #endif 6 | } 7 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/set_hide.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | set_hide(1); 3 | set_hide(0); 4 | } 5 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/set_privs.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | #ifdef __PRIVS__ 3 | set_privs(this_object(), "foo"); 4 | ASSERT(query_privs(this_object()) == "foo"); 5 | set_privs(this_object(), 0); 6 | ASSERT(query_privs(this_object()) == 0); 7 | #endif 8 | } 9 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/shutdown.c: -------------------------------------------------------------------------------- 1 | void do_the_nasty_deed() { 2 | shutdown(55); 3 | ASSERT(0); 4 | } 5 | 6 | void do_tests() { 7 | // This one is hard to test :-) 8 | call_out( (: do_the_nasty_deed :), 60); 9 | } 10 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/sizeof.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(sizeof(({ 1, 2, 3 })) == 3); 3 | ASSERT(sizeof(allocate(50)) == 50); 4 | ASSERT(sizeof(allocate_mapping(5)) == 0); 5 | ASSERT(sizeof( ([ 1 : 2, 3 : 4 ]) ) == 2); 6 | ASSERT(sizeof("foo") == 3); 7 | ASSERT(sizeof((: sizeof :)) == 0); 8 | ASSERT(sizeof(6) == 0); 9 | } 10 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/snoop.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | // maybe when it is possible for arbitrary objects to snoop. 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/sscanf.c: -------------------------------------------------------------------------------- 1 | inherit "/inherit/tests"; 2 | 3 | void do_tests() { 4 | string s; 5 | 6 | ASSERT(catch(sscanf("you%", "%s%", s))); 7 | ASSERT(catch(sscanf("you%", "%su%", s))); 8 | sscanf("you%", "%s%%", s); 9 | ASSERT(s == "you"); 10 | sscanf("you%", "%su%%", s); 11 | ASSERT(s == "yo"); 12 | } 13 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/to_float.c: -------------------------------------------------------------------------------- 1 | inherit "/inherit/tests"; 2 | 3 | void do_tests() { 4 | int i = 5; 5 | float f = 6.7; 6 | 7 | f = to_float(i); 8 | ASSERT(f == 5.0); 9 | 10 | f = i; 11 | ASSERT(f == 5.0); 12 | 13 | f = to_float("1.23"); 14 | ASSERT(f == 1.23); 15 | 16 | f = to_float("ajdfj"); 17 | ASSERT(f == 0.00); 18 | } 19 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/to_int.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | int i = 5; 3 | float f = 6.7; 4 | 5 | i = to_int(f); 6 | ASSERT(i == 6); 7 | 8 | i = f; 9 | ASSERT(i == 6); 10 | 11 | i = to_int("7"); 12 | ASSERT(i == 7); 13 | 14 | i = to_int("ajdfj"); 15 | ASSERT(i == 0); 16 | } 17 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/unloaded.c: -------------------------------------------------------------------------------- 1 | void create() { 2 | } 3 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/users.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | ASSERT(arrayp(users())); 3 | if (this_player()) 4 | ASSERT(member_array(this_player(), users()) != -1); 5 | } 6 | -------------------------------------------------------------------------------- /src/testsuite/single/tests/efuns/values.c: -------------------------------------------------------------------------------- 1 | void do_tests() { 2 | mapping m = ([ 1 : 2, 3 : 4, 5 : 6 ]); 3 | mixed *k = values(m); 4 | mixed x, y; 5 | 6 | foreach (x, y in m) { 7 | k -= ({ y }); 8 | } 9 | ASSERT(k == ({})); 10 | } 11 | -------------------------------------------------------------------------------- /src/testsuite/single/void.c: -------------------------------------------------------------------------------- 1 | void dummy() 2 | { 3 | } 4 | -------------------------------------------------------------------------------- /src/testsuite/test_control.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quixadhal/fluffos/a845107aab294f1d6533813c7f996ace6404f908/src/testsuite/test_control.c -------------------------------------------------------------------------------- /src/testsuite/u/README: -------------------------------------------------------------------------------- 1 | This directory contains individual directories for those who will building 2 | the mud. 3 | -------------------------------------------------------------------------------- /src/testsuite/u/readme: -------------------------------------------------------------------------------- 1 | This directory contains individual directories for those who will building 2 | the mud. 3 | -------------------------------------------------------------------------------- /src/tmp/insttest: -------------------------------------------------------------------------------- 1 | whatever 2 | -------------------------------------------------------------------------------- /src/uvalarm.h: -------------------------------------------------------------------------------- 1 | unsigned uvalarm(unsigned int, unsigned int); 2 | -------------------------------------------------------------------------------- /src/windows/clean.bat: -------------------------------------------------------------------------------- 1 | del efunction*.h 2 | del efun_d*.c 3 | del efun_p*.h 4 | del func_s*.cpp 5 | del grammar_tab.c 6 | del grammar_tab.h 7 | del grammar.y 8 | del make_f*.c 9 | del malloc.c 10 | del mallocwrapper.c 11 | del opc.h 12 | del opcodes.h 13 | del option_defs.* 14 | del configure.h -------------------------------------------------------------------------------- /src/windows/configure.h: -------------------------------------------------------------------------------- 1 | #define INCL_STDLIB_H 2 | #define INCL_TIME_H 3 | #define INCL_FCNTL_H 4 | #define INCL_DOS_H 5 | #define INCL_SYS_STAT_H 6 | #define INCL_LIMITS_H 7 | #define USE_STRUCT_DIRENT 8 | #define INCL_STDARG_H 9 | #define HAS_MEMMOVE 10 | #define RAND 11 | #define HAS_STRERROR 12 | #define HAS_GETCWD 13 | 14 | #define SIZEOF_INT 4 15 | #define SIZEOF_PTR 4 16 | #define SIZEOF_SHORT 2 17 | #define SIZEOF_FLOAT 4 18 | -------------------------------------------------------------------------------- /src/windows/step1.bat: -------------------------------------------------------------------------------- 1 | bison make_func.y 2 |  -------------------------------------------------------------------------------- /src/windows/stepdbg.bat: -------------------------------------------------------------------------------- 1 | .\windebug\edit_source -configure 2 | .\windebug\edit_source -options -process grammar.y.pre -malloc -build_func_spec "e:\lang\msdev\bin\cl /E /D "DEBUG" " -build_efuns 3 |  -------------------------------------------------------------------------------- /src/windows/steprel.bat: -------------------------------------------------------------------------------- 1 | .\winrel\edit_source -configure 2 | .\winrel\edit_source -options -process grammar.y.pre -malloc -build_func_spec "e:\lang\msdev\bin\cl /E" -build_efuns 3 | 4 | ren efun_protos.h efun_tmp.h 5 | sed -f sed.cmd efun_tmp.h > efun_protos.h 6 | 7 |  -------------------------------------------------------------------------------- /src/wrappedmalloc.h: -------------------------------------------------------------------------------- 1 | #ifndef WRAPPED_MALLOC_H 2 | #define WRAPPED_MALLOC_H 3 | #ifdef WRAPPEDMALLOC 4 | void *wrappedmalloc (int); 5 | void *wrappedrealloc (void *, int); 6 | void *wrappedcalloc (int, int); 7 | void wrappedfree (void *); 8 | 9 | void wrappedmalloc_init (void); 10 | void dump_malloc_data (outbuffer_t *); 11 | #endif 12 | #endif 13 | --------------------------------------------------------------------------------