mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Corrected spelling in copyright text Makefile.am: Don't update the files from BitKeeper Many files: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header Many files: Added GPL copyright text Removed files: Docs/Support/colspec-fix.pl Docs/Support/docbook-fixup.pl Docs/Support/docbook-prefix.pl Docs/Support/docbook-split Docs/Support/make-docbook Docs/Support/make-makefile Docs/Support/test-make-manual Docs/Support/test-make-manual-de Docs/Support/xwf CMakeLists.txt: Added GPL copyright text bdb/CMakeLists.txt: Added GPL copyright text client/CMakeLists.txt: Added GPL copyright text dbug/CMakeLists.txt: Added GPL copyright text extra/CMakeLists.txt: Added GPL copyright text extra/yassl/CMakeLists.txt: Added GPL copyright text extra/yassl/taocrypt/CMakeLists.txt: Added GPL copyright text heap/CMakeLists.txt: Added GPL copyright text innobase/CMakeLists.txt: Added GPL copyright text libmysql/CMakeLists.txt: Added GPL copyright text myisam/CMakeLists.txt: Added GPL copyright text myisammrg/CMakeLists.txt: Added GPL copyright text mysys/CMakeLists.txt: Added GPL copyright text regex/CMakeLists.txt: Added GPL copyright text server-tools/CMakeLists.txt: Added GPL copyright text server-tools/instance-manager/CMakeLists.txt: Added GPL copyright text sql/CMakeLists.txt: Added GPL copyright text sql/examples/CMakeLists.txt: Added GPL copyright text strings/CMakeLists.txt: Added GPL copyright text tests/CMakeLists.txt: Added GPL copyright text vio/CMakeLists.txt: Added GPL copyright text zlib/CMakeLists.txt: Added GPL copyright text VC++Files/copy_mysql_files.bat: Added GPL copyright text extra/yassl/src/make.bat: Added GPL copyright text extra/yassl/taocrypt/benchmark/make.bat: Added GPL copyright text extra/yassl/taocrypt/src/make.bat: Added GPL copyright text extra/yassl/taocrypt/test/make.bat: Added GPL copyright text extra/yassl/testsuite/make.bat: Added GPL copyright text Docs/Support/generate-text-files.pl: Added GPL copyright text VC++Files/prepare: Added GPL copyright text VC++Files/test1/mysql_thr.c: Added GPL copyright text VC++Files/thr_test/thr_test.c: Added GPL copyright text include/help_end.h: Added GPL copyright text include/help_start.h: Added GPL copyright text mysql-test/install_test_db.sh: Added GPL copyright text mysql-test/my_create_tables.c: Added GPL copyright text mysql-test/ndb/ndbcluster.sh: Added GPL copyright text scripts/fill_func_tables.sh: Added GPL copyright text scripts/fill_help_tables.sh: Added GPL copyright text scripts/mysql_create_system_tables.sh: Added GPL copyright text scripts/mysql_install_db.sh: Added GPL copyright text scripts/mysql_upgrade_shell.sh: Added GPL copyright text server-tools/instance-manager/IMService.cpp: Added GPL copyright text server-tools/instance-manager/IMService.h: Added GPL copyright text server-tools/instance-manager/WindowsService.cpp: Added GPL copyright text server-tools/instance-manager/WindowsService.h: Added GPL copyright text server-tools/instance-manager/portability.h: Added GPL copyright text strings/ctype-extra.c: Added GPL copyright text strings/dump_map.c: Added GPL copyright text strings/uca-dump.c: Added GPL copyright text strings/utr11-dump.c: Added GPL copyright text win/build-vs71.bat: Added GPL copyright text win/build-vs8.bat: Added GPL copyright text win/build-vs8_x64.bat: Added GPL copyright text win/configure.js: Added GPL copyright text mysql-test/lib/mtr_cases.pl: Added GPL copyright text mysql-test/lib/mtr_diff.pl: Added GPL copyright text mysql-test/lib/mtr_gcov.pl: Added GPL copyright text mysql-test/lib/mtr_gprof.pl: Added GPL copyright text mysql-test/lib/mtr_im.pl: Added GPL copyright text mysql-test/lib/mtr_io.pl: Added GPL copyright text mysql-test/lib/mtr_match.pl: Added GPL copyright text mysql-test/lib/mtr_misc.pl: Added GPL copyright text mysql-test/lib/mtr_process.pl: Added GPL copyright text mysql-test/lib/mtr_report.pl: Added GPL copyright text mysql-test/lib/mtr_stress.pl: Added GPL copyright text mysql-test/lib/mtr_timer.pl: Added GPL copyright text mysql-test/lib/mtr_unique.pl: Added GPL copyright text strings/my_strtoll10-x86.s: Corrected spelling in copyright text BUILD/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header Docs/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header SSL/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header bdb/Makefile.in: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header client/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header client/client_priv.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header client/completion_hash.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header client/mysqladmin.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header client/mysqlimport.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header client/mysqlshow.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header dbug/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header extra/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/_check.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/_rectest.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/heapdef.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_block.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_clear.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_close.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_create.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_delete.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_extra.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_hash.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_info.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_open.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_panic.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rename.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rfirst.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rkey.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rlast.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rnext.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rprev.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rrnd.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_rsame.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_scan.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_static.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_test1.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_test2.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_update.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header heap/hp_write.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/my_aes.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/my_getopt.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/my_handler.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/my_time.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/mysql_time.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/rijndael.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/sha1.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header include/sql_common.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header libmysql/client_settings.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header libmysqld/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header libmysqld/emb_qcache.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header libmysqld/embedded_priv.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header man/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_boolean_search.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_eval.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_nlq_search.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_parser.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_static.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_stem.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_stopwords.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_test1.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_test1.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ft_update.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/ftdefs.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/fulltext.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_cache.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_changed.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_check.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_checksum.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_close.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_create.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_dbug.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_delete.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_delete_all.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_delete_table.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_dynrec.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_extra.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_info.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_key.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_locking.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_log.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_open.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_packrec.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_page.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_panic.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_preload.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_range.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rename.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rfirst.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rkey.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rlast.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rnext.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rnext_same.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rprev.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rrnd.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rsame.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_rsamepos.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_scan.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_search.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_static.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_statrec.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_test1.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_test2.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_test3.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_unique.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_update.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/mi_write.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/myisam_ftdump.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/myisamdef.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/myisamlog.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/myisampack.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/rt_index.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/rt_index.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/rt_key.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/rt_mbr.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/rt_mbr.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/rt_split.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/rt_test.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/sort.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/sp_defs.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisam/sp_test.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_close.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_create.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_def.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_delete.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_extra.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_info.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_locking.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_open.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_panic.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_queue.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_range.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rfirst.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rkey.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rlast.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rnext.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rnext_same.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rprev.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rrnd.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_rsame.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_static.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_update.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header myisammrg/myrg_write.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysql-test/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_aes.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_gethostbyname.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_gethwaddr.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_getopt.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_getsystime.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_handler.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_port.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/my_semaphore.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/rijndael.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header mysys/sha1.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header os2/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header os2/ReadMe.txt: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header os2/include/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header os2/include/sys/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header pstack/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header regex/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header scripts/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header scripts/mysql_config.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/listener.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/listener.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/log.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/log.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/manager.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/manager.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/messages.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/messages.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/mysql_connection.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/mysql_connection.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/mysqlmanager.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/options.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/options.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/priv.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/priv.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/protocol.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/protocol.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/thread_registry.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/thread_registry.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/user_map.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header server-tools/instance-manager/user_map.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/as3ap.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/bench-count-distinct.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/bench-init.pl.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/compare-results.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/copy-db.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/crash-me.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/print-limit-table: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/run-all-tests.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/server-cfg.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-ATIS.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-alter-table.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-big-tables.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-connect.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-create.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-insert.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-select.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-transactions.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-bench/test-wisconsin.sh: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-common/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql-common/my_time.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/client_settings.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/custom_conf.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/derror.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/des_key_file.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/discover.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/field.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/field.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/filesort.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/frm_crypt.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/gen_lex_hash.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/gstream.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_berkeley.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_berkeley.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_heap.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_heap.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_myisam.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_myisam.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_myisammrg.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/ha_myisammrg.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/handler.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/handler.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/hash_filo.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/hash_filo.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/hostname.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/init.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_buff.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_cmpfunc.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_create.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_func.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_geofunc.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_strfunc.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_sum.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_timefunc.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_uniq.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/item_uniq.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/key.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/lex_symbol.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/lock.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/log_event.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/matherr.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/mf_iocache.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/my_decimal.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/my_decimal.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/my_lock.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/opt_range.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/opt_range.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/password.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/procedure.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/procedure.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/protocol.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/records.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/repl_failsafe.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/repl_failsafe.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/set_var.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/spatial.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_acl.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_analyse.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_analyse.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_base.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_cache.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_class.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_class.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_client.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_crypt.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_crypt.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_cursor.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_cursor.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_do.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_insert.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_lex.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_lex.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_list.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_load.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_manager.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_manager.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_map.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_map.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_olap.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_rename.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_repl.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_repl.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_select.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_select.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_test.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_udf.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/sql_update.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/structs.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/table.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/table.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/thr_malloc.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/time.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/unireg.cc: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header sql/unireg.h: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/bmove_upp-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/macros.asm: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/ptr_cmp.asm: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strappend-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strend-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strings.asm: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strinstr-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strmake-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strmov-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strnmov-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strstr-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strxmov-sparc.s: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header strings/strxmov.asm: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header support-files/MacOSX/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header support-files/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header tests/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header tests/deadlock_test.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header tools/mysqlmanager.c: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header vio/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header win/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header innobase/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header innobase/ibuf/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header innobase/include/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header innobase/os/Makefile.am: Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header Adjusted year(s) in copyright header ndb/include/Makefile.am: Added GPL copyright text ndb/src/common/debugger/Makefile.am: Added GPL copyright text ndb/src/common/debugger/signaldata/Makefile.am: Added GPL copyright text ndb/src/common/logger/Makefile.am: Added GPL copyright text ndb/src/common/mgmcommon/Makefile.am: Added GPL copyright text ndb/src/common/transporter/Makefile.am: Added GPL copyright text ndb/src/common/util/Makefile.am: Added GPL copyright text ndb/src/cw/cpcd/Makefile.am: Added GPL copyright text ndb/src/kernel/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/backup/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/cmvmi/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dbacc/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dbdict/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dbdih/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dblqh/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dbtc/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dbtup/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dbtux/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/dbutil/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/ndbcntr/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/ndbfs/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/qmgr/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/suma/Makefile.am: Added GPL copyright text ndb/src/kernel/blocks/trix/Makefile.am: Added GPL copyright text ndb/src/kernel/error/Makefile.am: Added GPL copyright text ndb/src/kernel/vm/Makefile.am: Added GPL copyright text ndb/src/mgmapi/Makefile.am: Added GPL copyright text ndb/src/mgmclient/Makefile.am: Added GPL copyright text ndb/src/mgmsrv/Makefile.am: Added GPL copyright text ndb/src/ndbapi/Makefile.am: Added GPL copyright text ndb/test/ndbapi/Makefile.am: Added GPL copyright text ndb/test/ndbapi/bank/Makefile.am: Added GPL copyright text ndb/test/run-test/Makefile.am: Added GPL copyright text ndb/test/src/Makefile.am: Added GPL copyright text ndb/test/tools/Makefile.am: Added GPL copyright text ndb/tools/Makefile.am: Added GPL copyright text scripts/make_binary_distribution.sh: Added GPL copyright text scripts/make_sharedlib_distribution.sh: Added GPL copyright text scripts/make_win_bin_dist: Added GPL copyright text scripts/make_win_src_distribution.sh: Added GPL copyright text scripts/mysql_convert_table_format.sh: Added GPL copyright text scripts/mysql_explain_log.sh: Added GPL copyright text scripts/mysql_find_rows.sh: Added GPL copyright text scripts/mysql_fix_privilege_tables.sh: Added GPL copyright text scripts/mysql_zap.sh: Added GPL copyright text scripts/mysqlbug.sh: Added GPL copyright text BitKeeper/deleted/.del-colspec-fix.pl: Delete: Docs/Support/colspec-fix.pl BitKeeper/deleted/.del-docbook-fixup.pl: Delete: Docs/Support/docbook-fixup.pl BitKeeper/deleted/.del-docbook-prefix.pl: Delete: Docs/Support/docbook-prefix.pl BitKeeper/deleted/.del-docbook-split: Delete: Docs/Support/docbook-split BitKeeper/deleted/.del-make-docbook: Delete: Docs/Support/make-docbook BitKeeper/deleted/.del-make-makefile: Delete: Docs/Support/make-makefile BitKeeper/deleted/.del-test-make-manual-de: Delete: Docs/Support/test-make-manual-de BitKeeper/deleted/.del-test-make-manual: Delete: Docs/Support/test-make-manual BitKeeper/deleted/.del-xwf: Delete: Docs/Support/xwf Makefile.am: Don't update the files from BitKeeper extra/yassl/Makefile.am: Don't update the files from BitKeeper extra/yassl/taocrypt/Makefile.am: Don't update the files from BitKeeper extra/yassl/taocrypt/benchmark/Makefile.am: Don't update the files from BitKeeper extra/yassl/taocrypt/test/Makefile.am: Don't update the files from BitKeeper innobase/btr/Makefile.am: Don't update the files from BitKeeper innobase/buf/Makefile.am: Don't update the files from BitKeeper innobase/data/Makefile.am: Don't update the files from BitKeeper innobase/dict/Makefile.am: Don't update the files from BitKeeper innobase/dyn/Makefile.am: Don't update the files from BitKeeper innobase/eval/Makefile.am: Don't update the files from BitKeeper innobase/fil/Makefile.am: Don't update the files from BitKeeper innobase/fsp/Makefile.am: Don't update the files from BitKeeper innobase/fut/Makefile.am: Don't update the files from BitKeeper innobase/ha/Makefile.am: Don't update the files from BitKeeper innobase/lock/Makefile.am: Don't update the files from BitKeeper innobase/log/Makefile.am: Don't update the files from BitKeeper innobase/mach/Makefile.am: Don't update the files from BitKeeper innobase/mem/Makefile.am: Don't update the files from BitKeeper innobase/mtr/Makefile.am: Don't update the files from BitKeeper innobase/page/Makefile.am: Don't update the files from BitKeeper innobase/pars/Makefile.am: Don't update the files from BitKeeper innobase/que/Makefile.am: Don't update the files from BitKeeper innobase/read/Makefile.am: Don't update the files from BitKeeper innobase/rem/Makefile.am: Don't update the files from BitKeeper innobase/row/Makefile.am: Don't update the files from BitKeeper innobase/srv/Makefile.am: Don't update the files from BitKeeper innobase/sync/Makefile.am: Don't update the files from BitKeeper innobase/thr/Makefile.am: Don't update the files from BitKeeper innobase/trx/Makefile.am: Don't update the files from BitKeeper innobase/usr/Makefile.am: Don't update the files from BitKeeper innobase/ut/Makefile.am: Don't update the files from BitKeeper libmysql/Makefile.am: Don't update the files from BitKeeper libmysql_r/Makefile.am: Don't update the files from BitKeeper ndb/Makefile.am: Don't update the files from BitKeeper ndb/docs/Makefile.am: Don't update the files from BitKeeper ndb/src/Makefile.am: Don't update the files from BitKeeper ndb/src/common/Makefile.am: Don't update the files from BitKeeper ndb/src/common/portlib/Makefile.am: Don't update the files from BitKeeper ndb/src/cw/Makefile.am: Don't update the files from BitKeeper ndb/src/kernel/blocks/Makefile.am: Don't update the files from BitKeeper ndb/test/Makefile.am: Don't update the files from BitKeeper pstack/aout/Makefile.am: Don't update the files from BitKeeper server-tools/Makefile.am: Don't update the files from BitKeeper zlib/Makefile.am: Don't update the files from BitKeeper ndb/config/common.mk.am: Added GPL copyright text ndb/config/type_kernel.mk.am: Added GPL copyright text ndb/config/type_mgmapiclient.mk.am: Added GPL copyright text ndb/config/type_ndbapi.mk.am: Added GPL copyright text ndb/config/type_ndbapiclient.mk.am: Added GPL copyright text ndb/config/type_ndbapitest.mk.am: Added GPL copyright text ndb/config/type_ndbapitools.mk.am: Added GPL copyright text ndb/config/type_util.mk.am: Added GPL copyright text ndb/include/kernel/kernel_config_parameters.h: Added GPL copyright text ndb/include/kernel/signaldata/CntrStart.hpp: Added GPL copyright text ndb/include/kernel/signaldata/ReadConfig.hpp: Added GPL copyright text ndb/include/kernel/signaldata/UpgradeStartup.hpp: Added GPL copyright text ndb/include/mgmapi/mgmapi_config_parameters.h: Added GPL copyright text ndb/include/mgmapi/mgmapi_config_parameters_debug.h: Added GPL copyright text ndb/include/ndb_net.h: Added GPL copyright text ndb/include/util/ConfigValues.hpp: Added GPL copyright text ndb/src/common/debugger/signaldata/CntrStart.cpp: Added GPL copyright text ndb/src/common/debugger/signaldata/ReadNodesConf.cpp: Added GPL copyright text ndb/src/common/debugger/signaldata/print.awk: Added GPL copyright text ndb/src/common/util/Bitmask.cpp: Added GPL copyright text ndb/src/common/util/ConfigValues.cpp: Added GPL copyright text ndb/src/common/util/new.cpp: Added GPL copyright text ndb/src/common/util/testConfigValues/testConfigValues.cpp: Added GPL copyright text ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl: Added GPL copyright text ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl: Added GPL copyright text ndb/src/mgmapi/mgmapi_configuration.cpp: Added GPL copyright text
		
			
				
	
	
		
			1061 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			1061 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
; Copyright (C) 2000, 2003 MySQL AB
 | 
						|
; 
 | 
						|
; This library is free software; you can redistribute it and/or
 | 
						|
; modify it under the terms of the GNU Library General Public
 | 
						|
; License as published by the Free Software Foundation; version 2
 | 
						|
; of the License.
 | 
						|
; 
 | 
						|
; This library is distributed in the hope that it will be useful,
 | 
						|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
; Library General Public License for more details.
 | 
						|
; 
 | 
						|
; You should have received a copy of the GNU Library General Public
 | 
						|
; License along with this library; if not, write to the Free
 | 
						|
; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 | 
						|
; MA 02111-1307, USA
 | 
						|
 | 
						|
; Note that if you don't have a macro assembler (like MASM) to compile
 | 
						|
; this file, you can instead compile all *.c files in the string
 | 
						|
; directory.
 | 
						|
 | 
						|
	TITLE   Stringfunctions that we use often at MSDOS / Intel 8086
 | 
						|
 | 
						|
ifndef M_I386
 | 
						|
	.8087
 | 
						|
	DOSSEG
 | 
						|
	.MODEL LARGE
 | 
						|
	.CODE
 | 
						|
 | 
						|
	;
 | 
						|
	; Some macros
 | 
						|
	;
 | 
						|
 | 
						|
q_movs	MACRO				; as rep movsb but quicker
 | 
						|
	shr	cx,1
 | 
						|
	rep	movsw			; Move 2 bytes at a time
 | 
						|
	adc	cx,cx
 | 
						|
	rep	movsb			; Move last byte if any
 | 
						|
	ENDM
 | 
						|
 | 
						|
q_stos	MACRO				; as rep stosb but quicker
 | 
						|
	mov	ah,al			; For word store
 | 
						|
	shr	cx,1
 | 
						|
	rep	stosw			; Move 2 bytes at a time
 | 
						|
	adc	cx,cx
 | 
						|
	rep	stosb			; Move last byte if any
 | 
						|
 	ENDM
 | 
						|
 | 
						|
ifndef  ZTC				; If not using ZORTECH compiler
 | 
						|
	;
 | 
						|
	; Compare memory
 | 
						|
	; Args: s1,s2,length
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_bcmp
 | 
						|
_bcmp	PROC
 | 
						|
	mov	bx,bp			; Save bp
 | 
						|
	mov	dx,di			; Save di
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	push	si
 | 
						|
	les	di,DWORD PTR [bp+8]	; s2
 | 
						|
	lds	si,DWORD PTR [bp+4]	; s1
 | 
						|
	mov	cx,WORD PTR [bp+12]	; Length of memory-area
 | 
						|
	jcxz	@F			; Length = 0, return same
 | 
						|
;	cld				; Work uppward
 | 
						|
	repe	cmpsb			; Compare strings
 | 
						|
	jz	@F			; Match found
 | 
						|
	inc	cx			; return matchpoint +1
 | 
						|
@@:	mov	ax,cx			; Return 0 if match, else pos from end
 | 
						|
	pop	si
 | 
						|
	pop	ds
 | 
						|
	mov	di,dx
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_bcmp	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Find a char in a string
 | 
						|
	; Arg: str,char
 | 
						|
	; Ret: pointer to found char or NullS
 | 
						|
	;
 | 
						|
 | 
						|
ifdef better_stringfunctions		; Breaks window linkage (broken linking)
 | 
						|
 | 
						|
	PUBLIC	_strchr
 | 
						|
_strchr	PROC
 | 
						|
	mov	bx,bp			; Save bp and di
 | 
						|
	mov	dx,di
 | 
						|
	mov	bp,sp
 | 
						|
	les	di,DWORD PTR [bp+4]	; str
 | 
						|
	mov	ah,BYTE PTR [bp+8]	; search
 | 
						|
	xor	al,al			; for scasb to find end
 | 
						|
 | 
						|
@@:	cmp	ah,es:[di]
 | 
						|
	jz	@F			; Found char
 | 
						|
	scasb
 | 
						|
	jnz	@B			; Not end
 | 
						|
	xor	di,di			; Not found
 | 
						|
	mov	es,di
 | 
						|
@@:	mov	ax,di
 | 
						|
	mov	di,dx			; Restore
 | 
						|
	mov	dx,es			; Seg adr
 | 
						|
	mov	bp,bx			; Restore
 | 
						|
	ret
 | 
						|
_strchr	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Find length of string
 | 
						|
	; arg: str
 | 
						|
	; ret: length
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strlen
 | 
						|
_strlen	PROC
 | 
						|
	mov	bx,sp
 | 
						|
	mov	dx,di
 | 
						|
	les	di,DWORD PTR ss:[bx+4]	; Str
 | 
						|
	xor	al,al			; Find end of string
 | 
						|
	mov	cx,-1
 | 
						|
;	cld
 | 
						|
	repne	scasb			; Find strend or length
 | 
						|
	inc	cx			; Calc strlength
 | 
						|
	not	cx
 | 
						|
	mov	ax,cx
 | 
						|
	mov	di,dx			; Restore register
 | 
						|
	ret
 | 
						|
_strlen	ENDP
 | 
						|
 | 
						|
endif
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a string
 | 
						|
	; arg: dst,src
 | 
						|
	; ret: end-null of to
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strmov
 | 
						|
_strmov	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	cx,si
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	push	di
 | 
						|
	les	di,DWORD PTR [bp+4]	; dst
 | 
						|
	lds	si,DWORD PTR [bp+8]	; src
 | 
						|
;	cld
 | 
						|
@@:	mov	al,ds:[si]
 | 
						|
	movsb				; move arg
 | 
						|
	and	al,al
 | 
						|
	jnz	@B			; Not last
 | 
						|
	lea	ax,WORD PTR [di-1]	; Set DX:AX to point at last null
 | 
						|
	mov	dx,es
 | 
						|
	pop	di
 | 
						|
	pop	ds
 | 
						|
	mov	si,cx
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_strmov	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Fill a area of memory with a walue
 | 
						|
	; Args: to,length,fillchar
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_bfill
 | 
						|
_bfill	PROC
 | 
						|
	mov	bx,sp			; Get args through BX
 | 
						|
	mov	al,BYTE PTR ss:[bx+10]	; Fill
 | 
						|
bfill_10:
 | 
						|
	mov	dx,di			; Save di
 | 
						|
	les	di,DWORD PTR ss:[bx+4]	; Memory pointer
 | 
						|
	mov	cx,WORD PTR ss:[bx+8]	; Length
 | 
						|
;	cld
 | 
						|
	q_stos
 | 
						|
	mov	di,dx
 | 
						|
	ret
 | 
						|
_bfill	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Fill a area with null
 | 
						|
	; Args: to,length
 | 
						|
 | 
						|
	PUBLIC	_bzero
 | 
						|
_bzero	PROC
 | 
						|
	mov	bx,sp			; Get args through BX
 | 
						|
	mov	al,0			; Fill with null
 | 
						|
	jmp	short bfill_10
 | 
						|
_bzero	ENDP
 | 
						|
 | 
						|
endif	; ZTC
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a memory area
 | 
						|
	; Args: to,from,length
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_bmove
 | 
						|
_bmove	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	dx,di
 | 
						|
	mov	ax,si
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	lds	si,DWORD PTR [bp+8]	; from
 | 
						|
	les	di,DWORD PTR [bp+4]	; to
 | 
						|
	mov	cx,WORD PTR [bp+12]	; Length of memory-area
 | 
						|
;	cld				; Work uppward
 | 
						|
	rep	movsb			; Not q_movs because overlap ?
 | 
						|
	pop	ds
 | 
						|
	mov	si,ax
 | 
						|
	mov	di,dx
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_bmove	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a alligned, not overlapped, by (long) divided memory area
 | 
						|
	; Args: to,from,length
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_bmove_align
 | 
						|
_bmove_align	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	dx,di
 | 
						|
	mov	ax,si
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	lds	si,DWORD PTR [bp+8]	; from
 | 
						|
	les	di,DWORD PTR [bp+4]	; to
 | 
						|
	mov	cx,WORD PTR [bp+12]	; Length of memory-area
 | 
						|
;	cld				; Work uppward
 | 
						|
	inc	cx			; fix if not divisible with word
 | 
						|
	shr	cx,1
 | 
						|
	rep	movsw			; Move 2 bytes at a time
 | 
						|
	pop	ds
 | 
						|
	mov	si,ax
 | 
						|
	mov	di,dx
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_bmove_align	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a string from higher to lower
 | 
						|
	; Arg from+1,to+1,length
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_bmove_upp
 | 
						|
_bmove_upp	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	dx,di
 | 
						|
	mov	ax,si
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	lds	si,DWORD PTR [bp+8]	; from
 | 
						|
	les	di,DWORD PTR [bp+4]	; to
 | 
						|
	mov	cx,WORD PTR [bp+12]	; Length of memory-area
 | 
						|
	dec	di			; Don't move last arg
 | 
						|
	dec	si
 | 
						|
	std				; Work downward
 | 
						|
	rep	movsb			; Not q_movs because overlap ?
 | 
						|
	cld				; C compilator want cld
 | 
						|
	pop	ds
 | 
						|
	mov	si,ax
 | 
						|
	mov	di,dx
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_bmove_upp ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Append fillchars to string
 | 
						|
	; Args: dest,len,fill
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strappend
 | 
						|
_strappend	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	dx,di
 | 
						|
	mov	bp,sp
 | 
						|
	les	di,DWORD PTR [bp+4]	; Memory pointer
 | 
						|
	mov	cx,WORD PTR [bp+8]	; Length
 | 
						|
	sub	al,al			; Find end of string
 | 
						|
;	cld
 | 
						|
	repne	scasb
 | 
						|
	jnz	sa_99			; String to long, shorten it
 | 
						|
	mov	al,BYTE PTR [bp+10]	; Fillchar
 | 
						|
	dec	di			; Point at end null
 | 
						|
	inc	cx			; rep made one dec for null-char
 | 
						|
	q_stos				; Store al in string
 | 
						|
sa_99:	mov	BYTE PTR es:[di],0	; End of string
 | 
						|
	mov	di,dx
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_strappend	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Find if string contains any char in another string
 | 
						|
	; Arg: str,set
 | 
						|
	; Ret: Pointer to first found char in str
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strcont
 | 
						|
_strcont	PROC
 | 
						|
	mov	bx,bp			; Save bp and di in regs
 | 
						|
	mov	dx,di
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	push	si
 | 
						|
	lds	si,DWORD PTR [bp+4]	; str
 | 
						|
	les	di,DWORD PTR [bp+8]	; Set
 | 
						|
	mov	cx,di			; Save for loop
 | 
						|
	xor	ah,ah			; For endtest
 | 
						|
	jmp	sc_60
 | 
						|
 | 
						|
sc_10:	scasb
 | 
						|
	jz	sc_fo			; Found char
 | 
						|
sc_20:	cmp	ah,es:[di]		; Test if null
 | 
						|
	jnz	sc_10			; Not end of set yet
 | 
						|
	inc	si			; Next char in str
 | 
						|
	mov	di,cx			; es:di = Set
 | 
						|
sc_60:	mov	al,ds:[si]		; Test if this char exist
 | 
						|
	and	al,al
 | 
						|
	jnz	sc_20			; Not end of string
 | 
						|
	sub	si,si			; Return Null
 | 
						|
	mov	ds,si
 | 
						|
sc_fo:	mov	ax,si			; Char found here
 | 
						|
	mov	di,dx			; Restore
 | 
						|
	mov	dx,ds			; Seg of found char
 | 
						|
	pop	si
 | 
						|
	pop	ds
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_strcont	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Found end of string
 | 
						|
	; Arg: str
 | 
						|
	; ret: Pointer to end null
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strend
 | 
						|
_strend	PROC
 | 
						|
	mov	bx,sp
 | 
						|
	mov	dx,di			; Save
 | 
						|
	les	di,DWORD PTR ss:[bx+4]	; str
 | 
						|
	mov	cx,-1
 | 
						|
	sub	al,al			; Find end of string
 | 
						|
;	cld
 | 
						|
	repne	scasb
 | 
						|
	lea	ax,WORD PTR [di-1]	; Endpos i DX:AX
 | 
						|
	mov	di,dx			; Restore
 | 
						|
	mov	dx,es
 | 
						|
	ret
 | 
						|
_strend	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Make a string with len fill-chars and endnull
 | 
						|
	; Args: dest,len,fill
 | 
						|
	; Ret:  dest+len
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strfill
 | 
						|
_strfill	PROC
 | 
						|
	mov	bx,bp			; Save sp
 | 
						|
	mov	bp,sp
 | 
						|
	push	di
 | 
						|
	les	di,DWORD PTR [bp+4]	; Memory pointer
 | 
						|
	mov	cx,WORD PTR [bp+8]	; Length
 | 
						|
	mov	al,BYTE PTR [bp+10]	; Fill
 | 
						|
;	cld
 | 
						|
	q_stos
 | 
						|
	mov	BYTE PTR es:[di],0	; End NULL
 | 
						|
	mov	ax,di			; End i DX:AX
 | 
						|
	mov	dx,es
 | 
						|
	pop	di
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_strfill	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Find a char in or end of a string
 | 
						|
	; Arg: str,char
 | 
						|
	; Ret: pointer to found char or NullS
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strcend
 | 
						|
_strcend	PROC
 | 
						|
	mov	bx,bp			; Save bp and di
 | 
						|
	mov	dx,di
 | 
						|
	mov	bp,sp
 | 
						|
	les	di,DWORD PTR [bp+4]	; str
 | 
						|
	mov	ah,BYTE PTR [bp+8]	; search
 | 
						|
	xor	al,al			; for scasb to find end
 | 
						|
 | 
						|
@@:	cmp	ah,es:[di]
 | 
						|
	jz	@F			; Found char
 | 
						|
	scasb
 | 
						|
	jnz	@B			; Not end
 | 
						|
	dec 	di			; Not found, point at end of string
 | 
						|
@@:	mov	ax,di
 | 
						|
	mov	di,dx			; Restore
 | 
						|
	mov	dx,es			; Seg adr
 | 
						|
	mov	bp,bx			; Restore
 | 
						|
	ret
 | 
						|
_strcend	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Test if string has a given suffix
 | 
						|
	;
 | 
						|
 | 
						|
PUBLIC  _is_prefix
 | 
						|
_is_prefix PROC
 | 
						|
	mov	dx,di			; Save di
 | 
						|
	mov	bx,sp			; Arguments through bx
 | 
						|
	push	ds
 | 
						|
	push	si
 | 
						|
	les	di,DWORD PTR ss:[bx+8]	; s2
 | 
						|
	lds	si,DWORD PTR ss:[bx+4]	; s1
 | 
						|
	mov	ax,1			; Ok and zero-test
 | 
						|
;	cld				; Work uppward
 | 
						|
@@:	cmp	ah,es:[di]
 | 
						|
	jz	suf_ok			; End of string; found suffix
 | 
						|
	cmpsb				; Compare strings
 | 
						|
	jz	@B			; Same, possible prefix
 | 
						|
	xor	ax,ax			; Not suffix
 | 
						|
suf_ok:	pop	si
 | 
						|
	pop	ds
 | 
						|
	mov	di,dx
 | 
						|
	ret
 | 
						|
_is_prefix ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Find a substring in string
 | 
						|
	; Arg: str,search
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strstr
 | 
						|
_strstr	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	push	di
 | 
						|
	push	si
 | 
						|
	lds	si,DWORD PTR [bp+4]	; str
 | 
						|
	les	di,DWORD PTR [bp+8]	; search
 | 
						|
	mov	cx,di
 | 
						|
	inc	cx			; CX = search+1
 | 
						|
	mov	ah,es:[di]		; AH = First char in search
 | 
						|
	jmp	sf_10
 | 
						|
 | 
						|
sf_00:	mov	si,dx			; si = Current str-pos
 | 
						|
sf_10:	mov	al,ds:[si]		; Test if this char exist
 | 
						|
	and	al,al
 | 
						|
	jz	sf_90			; End of string, didn't find search
 | 
						|
	inc	si
 | 
						|
	cmp	al,ah
 | 
						|
	jnz	sf_10			; Didn't find first char, continue
 | 
						|
	mov	dx,si			; Save str-pos in DX
 | 
						|
	mov	di,cx
 | 
						|
sf_20:	cmp	BYTE PTR es:[di],0
 | 
						|
	jz	sf_fo			; Found substring
 | 
						|
	cmpsb
 | 
						|
	jz	sf_20			; Char ok
 | 
						|
	jmp	sf_00			; Next str-pos
 | 
						|
 | 
						|
sf_90:	sub	dx,dx			; Return Null
 | 
						|
	mov	ds,dx
 | 
						|
	inc	dx			; Because of following dec
 | 
						|
sf_fo:	mov	ax,dx			; Char found here
 | 
						|
	dec	ax			; Pointed one after
 | 
						|
	mov	dx,ds
 | 
						|
	pop	si
 | 
						|
	pop	di			; End
 | 
						|
	pop	ds
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_strstr	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Find a substring in string, return index
 | 
						|
	; Arg: str,search
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strinstr
 | 
						|
_strinstr	PROC
 | 
						|
	push	bp
 | 
						|
	mov	bp,sp
 | 
						|
	push	di
 | 
						|
	les	di,DWORD PTR [bp+10]	; search
 | 
						|
	push	es
 | 
						|
	push	di
 | 
						|
	les	di,DWORD PTR [bp+6]	; str
 | 
						|
	push	es
 | 
						|
	push	di
 | 
						|
	call	_strstr
 | 
						|
	mov	cx,ax
 | 
						|
	or	cx,dx
 | 
						|
	jz	si_99
 | 
						|
	sub	ax,di			; Pos from start
 | 
						|
	inc	ax			; And first pos = 1
 | 
						|
si_99:	add	sp,8
 | 
						|
	pop	di
 | 
						|
	pop	bp
 | 
						|
	ret
 | 
						|
_strinstr	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Make a string of len length from another string
 | 
						|
	; Arg: dst,src,length
 | 
						|
	; ret: end of dst
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strmake
 | 
						|
_strmake	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	push	di
 | 
						|
	push	si
 | 
						|
	les	di,DWORD PTR [bp+4]	; dst
 | 
						|
	lds	si,DWORD PTR [bp+8]	; src
 | 
						|
	mov	cx,WORD PTR [bp+12]	; Length of memory-area
 | 
						|
	xor	al,al			; For test of end-null
 | 
						|
	jcxz	sm_90			; Nothing to move, put zero at end.
 | 
						|
;	cld				; Work uppward
 | 
						|
 | 
						|
@@:	cmp	al,ds:[si]		; Next char to move
 | 
						|
	movsb				; move arg
 | 
						|
	jz	sm_99			; last char, we are ready
 | 
						|
	loop	@B			; Continue moving
 | 
						|
sm_90:	mov	BYTE PTR es:[di],al	; Set end pos
 | 
						|
	inc	di			; Fix that di points at end null
 | 
						|
sm_99:	dec	di			; di points now at end null
 | 
						|
	mov	ax,di			; Ret value in DX:AX
 | 
						|
	mov	dx,es
 | 
						|
	pop	si
 | 
						|
	pop	di
 | 
						|
	pop	ds
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_strmake	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Find length of string with maxlength
 | 
						|
	; arg: str,maxlength
 | 
						|
	; ret: length
 | 
						|
	;
 | 
						|
 | 
						|
	PUBLIC	_strnlen
 | 
						|
_strnlen	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	bp,sp
 | 
						|
	push	di
 | 
						|
	les	di,DWORD PTR [bp+4]	; Str
 | 
						|
	mov	cx,WORD PTR [bp+8]	; length
 | 
						|
	mov	dx,di			; Save str to calc length
 | 
						|
	jcxz	sn_10			; Length = 0
 | 
						|
	xor	al,al			; Find end of string
 | 
						|
;	cld
 | 
						|
	repne	scasb			; Find strend or length
 | 
						|
	jnz	sn_10
 | 
						|
	dec	di			; DI points at last null
 | 
						|
sn_10:	mov	ax,di
 | 
						|
	sub	ax,dx			; Ax = length
 | 
						|
	pop	di
 | 
						|
	mov	bp,bx
 | 
						|
	ret
 | 
						|
_strnlen	ENDP
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a string with max len chars
 | 
						|
	; arg: dst,src,len
 | 
						|
	; ret: pos to first null or dst+len
 | 
						|
 | 
						|
	PUBLIC	_strnmov
 | 
						|
_strnmov	PROC
 | 
						|
	mov	bx,bp
 | 
						|
	mov	bp,sp
 | 
						|
	push	ds
 | 
						|
	push	di
 | 
						|
	push	si
 | 
						|
	les	di,DWORD PTR [bp+4]	; dst
 | 
						|
	lds	si,DWORD PTR [bp+8]	; src
 | 
						|
	mov	cx,WORD PTR [bp+12]	; length
 | 
						|
	jcxz	snm_99			; Nothing to do
 | 
						|
	xor	al,al			; For test of end-null
 | 
						|
;	cld
 | 
						|
 | 
						|
@@:	cmp	al,ds:[si]		; Next char to move
 | 
						|
	movsb				; move arg
 | 
						|
	jz	snm_20			; last char, fill with null
 | 
						|
	loop	@B			; Continue moving
 | 
						|
	inc	di			; Point two after last
 | 
						|
snm_20:	dec	di			; Point at first null (or last+1)
 | 
						|
snm_99:	mov	ax,di			; Pointer at last char
 | 
						|
	mov	dx,es			; To-segment
 | 
						|
	pop	si
 | 
						|
	pop	di
 | 
						|
	pop	ds
 | 
						|
	mov	bp,bx			; Restore
 | 
						|
	ret
 | 
						|
_strnmov	ENDP
 | 
						|
 | 
						|
else	; M_I386
 | 
						|
 | 
						|
include macros.asm
 | 
						|
 | 
						|
q_stos	MACRO				; as rep stosb but quicker, Uses edx
 | 
						|
	mov	ah,al			;(2) Set up a 32 bit pattern.
 | 
						|
	mov	edx,eax			;(2)
 | 
						|
	shl	edx,16			;(3)
 | 
						|
	or	eax,edx			;(2) EAX has the 32 bit pattern.
 | 
						|
 | 
						|
	mov	edx,ecx			;(2) Save the count of bytes.
 | 
						|
	shr	ecx,2			;(2) Number of dwords.
 | 
						|
	rep	stosd			;(5 + 5n)
 | 
						|
	mov	cl,3			;(2)
 | 
						|
	and	ecx,edx			;(2) Fill in the remaining odd bytes.
 | 
						|
	rep	stosb			; Move last bytes if any
 | 
						|
	ENDM
 | 
						|
 | 
						|
fix_es	MACRO	fix_cld			; Load ES if neaded
 | 
						|
  ife ESeqDS
 | 
						|
	mov	ax,ds
 | 
						|
	mov	es,ax
 | 
						|
  endif
 | 
						|
  ifnb <fix_cld>
 | 
						|
	cld
 | 
						|
  endif
 | 
						|
	ENDM
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a memory area
 | 
						|
	; Args: to,from,length
 | 
						|
	; Acts as one byte was moved a-time from dst to source.
 | 
						|
	;
 | 
						|
 | 
						|
	begcode bmove
 | 
						|
	public	_bmove
 | 
						|
_bmove	proc near
 | 
						|
	fix_es	1
 | 
						|
	mov	edx,edi
 | 
						|
	mov	eax,esi
 | 
						|
	mov	edi,P-SIZEPTR[esp]	;p1
 | 
						|
	mov	esi,P[esp]		;p2
 | 
						|
	mov	ecx,P+SIZEPTR[esp]
 | 
						|
	rep	movsb			; Not q_movs because overlap ?
 | 
						|
	mov	esi,eax
 | 
						|
	mov	edi,edx
 | 
						|
	ret
 | 
						|
_bmove	ENDP
 | 
						|
	endcode bmove
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a alligned, not overlapped, by (long) divided memory area
 | 
						|
	; Args: to,from,length
 | 
						|
	;
 | 
						|
 | 
						|
	begcode	bmove_align
 | 
						|
	public	_bmove_align
 | 
						|
_bmove_align	proc near
 | 
						|
	fix_es	1
 | 
						|
	mov	edx,edi
 | 
						|
	mov	eax,esi
 | 
						|
	mov	edi,P-SIZEPTR[esp]	;to
 | 
						|
	mov	esi,P[esp]		;from
 | 
						|
	mov	ecx,P+SIZEPTR[esp]	;length
 | 
						|
	add	cx,3			;fix if not divisible with long
 | 
						|
	shr	cx,2
 | 
						|
	rep	movsd
 | 
						|
	mov	esi,eax
 | 
						|
	mov	edi,edx
 | 
						|
	ret
 | 
						|
_bmove_align	ENDP
 | 
						|
	endcode bmove_align
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a string from higher to lower
 | 
						|
	; Arg from+1,to+1,length
 | 
						|
	;
 | 
						|
 | 
						|
	begcode	bmove_upp
 | 
						|
	public	_bmove_upp
 | 
						|
_bmove_upp	proc near
 | 
						|
	fix_es
 | 
						|
	std				; Work downward
 | 
						|
	mov	edx,edi
 | 
						|
	mov	eax,esi
 | 
						|
	mov	edi,P-SIZEPTR[esp]	;p1
 | 
						|
	mov	esi,P[esp]		;p2
 | 
						|
	mov	ecx,P+SIZEPTR[esp]
 | 
						|
	dec	edi			; Don't move last arg
 | 
						|
	dec	esi
 | 
						|
	rep	movsb			; One byte a time because overlap !
 | 
						|
	cld				; C compilator wants cld
 | 
						|
	mov	esi,eax
 | 
						|
	mov	edi,edx
 | 
						|
	ret
 | 
						|
_bmove_upp ENDP
 | 
						|
	endcode bmove_upp
 | 
						|
 | 
						|
	;
 | 
						|
	; Append fillchars to string
 | 
						|
	; Args: dest,len,fill
 | 
						|
	;
 | 
						|
 | 
						|
	begcode	strappend
 | 
						|
	public	_strappend
 | 
						|
_strappend	proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es  1
 | 
						|
	push	edi
 | 
						|
	mov	edi,P[ebp]		; Memory pointer
 | 
						|
	mov	ecx,P+SIZEPTR[ebp]	; Length
 | 
						|
	clr	eax			; Find end of string
 | 
						|
	repne	scasb
 | 
						|
	jnz	sa_99			; String to long, shorten it
 | 
						|
	movzx	eax,byte ptr P+(2*SIZEPTR)[ebp]	; Fillchar
 | 
						|
	dec	edi			; Point at end null
 | 
						|
	inc	ecx			; rep made one dec for null-char
 | 
						|
	q_stos				; Store al in string
 | 
						|
sa_99:	mov	BYTE PTR [edi],0	; End of string
 | 
						|
	pop	edi
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strappend	ENDP
 | 
						|
	endcode strappend
 | 
						|
 | 
						|
	;
 | 
						|
	; Find if string contains any char in another string
 | 
						|
	; Arg: str,set
 | 
						|
	; Ret: Pointer to first found char in str
 | 
						|
	;
 | 
						|
 | 
						|
	begcode strcont
 | 
						|
	PUBLIC	_strcont
 | 
						|
_strcont proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es	1
 | 
						|
	mov	edx,edi
 | 
						|
	push	esi
 | 
						|
	mov	esi,P[ebp]		; str
 | 
						|
	mov	ecx,P+SIZEPTR[ebp]	; Set
 | 
						|
	clr	ah			; For endtest
 | 
						|
	jmps	sc_60
 | 
						|
 | 
						|
sc_10:	scasb
 | 
						|
	jz	sc_fo			; Found char
 | 
						|
sc_20:	cmp	ah,[edi]		; Test if null
 | 
						|
	jnz	sc_10			; Not end of set yet
 | 
						|
	inc	esi			; Next char in str
 | 
						|
sc_60:	mov	edi,ecx			; edi = Set
 | 
						|
	mov	al,[esi]		; Test if this char exist
 | 
						|
	and	al,al
 | 
						|
	jnz	sc_20			; Not end of string
 | 
						|
	clr	esi			; Return Null
 | 
						|
sc_fo:	mov	eax,esi			; Char found here
 | 
						|
	mov	edi,edx			; Restore
 | 
						|
	pop	esi
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strcont	ENDP
 | 
						|
	endcode strcont
 | 
						|
 | 
						|
	;
 | 
						|
	; Found end of string
 | 
						|
	; Arg: str
 | 
						|
	; ret: Pointer to end null
 | 
						|
	;
 | 
						|
 | 
						|
	begcode strend
 | 
						|
	public	_strend
 | 
						|
_strend	proc near
 | 
						|
	fix_es	1
 | 
						|
	mov	edx,edi			; Save
 | 
						|
	mov	edi,P-SIZEPTR[esp]	; str
 | 
						|
	clr	eax			; Find end of string
 | 
						|
	mov	ecx,eax
 | 
						|
	dec	ecx			; ECX = -1
 | 
						|
	repne	scasb
 | 
						|
	mov	eax,edi
 | 
						|
	dec	eax
 | 
						|
	mov	edi,edx			; Restore
 | 
						|
	ret
 | 
						|
_strend	endp
 | 
						|
	endcode strend
 | 
						|
 | 
						|
	;
 | 
						|
	; Make a string with len fill-chars and endnull
 | 
						|
	; Args: dest,len,fill
 | 
						|
	; Ret:  dest+len
 | 
						|
	;
 | 
						|
 | 
						|
	begcode	strfill
 | 
						|
	public	_strfill
 | 
						|
_strfill proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es  1
 | 
						|
	push	edi
 | 
						|
	mov	edi,P[ebp]		; Memory pointer
 | 
						|
	mov	ecx,P+SIZEPTR[ebp]	; Length
 | 
						|
	movzx	eax,byte ptr P+(2*SIZEPTR)[ebp]	; Fill
 | 
						|
	q_stos
 | 
						|
	mov	BYTE PTR [edi],0	; End NULL
 | 
						|
	mov	eax,edi			; End i DX:AX
 | 
						|
	pop	edi
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strfill endp
 | 
						|
	endcode strfill
 | 
						|
 | 
						|
	;
 | 
						|
	; Find a char in or end of a string
 | 
						|
	; Arg: str,char
 | 
						|
	; Ret: pointer to found char or NullS
 | 
						|
	;
 | 
						|
 | 
						|
	begcode strcend
 | 
						|
	public	_strcend
 | 
						|
_strcend proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es  1
 | 
						|
	mov	edx,edi
 | 
						|
	mov	edi,P[ebp]		; str
 | 
						|
	mov	ah,P+SIZEPTR[ebp]	; search
 | 
						|
	clr	al			; for scasb to find end
 | 
						|
 | 
						|
@@:	cmp	ah,[edi]
 | 
						|
	jz	@F			; Found char
 | 
						|
	scasb
 | 
						|
	jnz	@B			; Not end
 | 
						|
	dec 	edi			; Not found, point at end of string
 | 
						|
@@:	mov	eax,edi
 | 
						|
	mov	edi,edx			; Restore
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strcend	ENDP
 | 
						|
	endcode strcend
 | 
						|
 | 
						|
	;
 | 
						|
	; Test if string has a given suffix
 | 
						|
	;
 | 
						|
 | 
						|
	begcode is_prefix
 | 
						|
	public	_is_prefix
 | 
						|
_is_prefix proc near
 | 
						|
	fix_es	1
 | 
						|
	mov	edx,edi			; Save edi
 | 
						|
	mov	eax,esi			; Save esi
 | 
						|
	mov	esi,P[esp]		; get suffix
 | 
						|
	mov	edi,P-SIZEPTR[esp]	; s1
 | 
						|
	push	eax			; push esi
 | 
						|
	mov	eax,1			; Ok and zero-test
 | 
						|
@@:	cmp	ah,[esi]
 | 
						|
	jz	suf_ok			; End of string; found suffix
 | 
						|
	cmpsb				; Compare strings
 | 
						|
	jz	@B			; Same, possible prefix
 | 
						|
	xor	eax,eax			; Not suffix
 | 
						|
suf_ok:	pop	esi
 | 
						|
	mov	edi,edx
 | 
						|
	ret
 | 
						|
_is_prefix endp
 | 
						|
	endcode	_is_prefix
 | 
						|
 | 
						|
	;
 | 
						|
	; Find a substring in string
 | 
						|
	; Arg: str,search
 | 
						|
	;
 | 
						|
 | 
						|
	begcode strstr
 | 
						|
	public	_strstr
 | 
						|
_strstr proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es	1
 | 
						|
	push	EDI
 | 
						|
	push	ESI
 | 
						|
	mov	esi,P[ebp]		; str
 | 
						|
	mov	edi,P+SIZEPTR[ebp]	; search
 | 
						|
	mov	ecx,edi
 | 
						|
	inc	ecx			; ECX = search+1
 | 
						|
	mov	ah,[edi]		; AH = First char in search
 | 
						|
	jmps	sf_10
 | 
						|
 | 
						|
sf_00:	mov	esi,edx			; si = Current str-pos
 | 
						|
sf_10:	mov	al,[esi]		; Test if this char exist
 | 
						|
	and	al,al
 | 
						|
	jz	sf_90			; End of string, didn't find search
 | 
						|
	inc	esi
 | 
						|
	cmp	al,ah
 | 
						|
	jnz	sf_10			; Didn't find first char, continue
 | 
						|
	mov	edx,esi			; Save str-pos in EDX
 | 
						|
	mov	edi,ecx
 | 
						|
sf_20:	cmp	BYTE PTR [edi],0
 | 
						|
	jz	sf_fo			; Found substring
 | 
						|
	cmpsb
 | 
						|
	jz	sf_20			; Char ok
 | 
						|
	jmps	sf_00			; Next str-pos
 | 
						|
 | 
						|
sf_90:	mov	edx,1			; Return Null
 | 
						|
sf_fo:	mov	eax,edx			; Char found here
 | 
						|
	dec	eax			; Pointed one after
 | 
						|
	pop	ESI
 | 
						|
	pop	EDI
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strstr endp
 | 
						|
	endcode strstr
 | 
						|
 | 
						|
	;
 | 
						|
	; Find a substring in string, return index
 | 
						|
	; Arg: str,search
 | 
						|
	;
 | 
						|
 | 
						|
	begcode	strinstr
 | 
						|
	public	_strinstr
 | 
						|
_strinstr proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	push	P+SIZEPTR[ebp]		; search
 | 
						|
	push	P[ebp]			; str
 | 
						|
	call	_strstr
 | 
						|
	add	esp,SIZEPTR*2
 | 
						|
	or	eax,eax
 | 
						|
	jz	si_99			; Not found, return NULL
 | 
						|
	sub	eax,P[ebp]		; Pos from start
 | 
						|
	inc	eax			; And first pos = 1
 | 
						|
si_99:	pop	ebp
 | 
						|
	ret
 | 
						|
_strinstr	endp
 | 
						|
	endcode strinstr
 | 
						|
 | 
						|
	;
 | 
						|
	; Make a string of len length from another string
 | 
						|
	; Arg: dst,src,length
 | 
						|
	; ret: end of dst
 | 
						|
	;
 | 
						|
 | 
						|
	begcode strmake
 | 
						|
	public	_strmake
 | 
						|
_strmake proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es	1
 | 
						|
	push	EDI
 | 
						|
	push	ESI
 | 
						|
	mov	edi,P[ebp]		; dst
 | 
						|
	mov	esi,P+SIZEPTR[ebp]	; src
 | 
						|
	mov	ecx,P+SIZEPTR*2[ebp]	; Length of memory-area
 | 
						|
	clr	al			; For test of end-null
 | 
						|
	jcxz	sm_90			; Nothing to move, put zero at end.
 | 
						|
 | 
						|
@@:	cmp	al,[esi]		; Next char to move
 | 
						|
	movsb				; move arg
 | 
						|
	jz	sm_99			; last char, we are ready
 | 
						|
	loop	@B			; Continue moving
 | 
						|
sm_90:	mov	BYTE PTR [edi],al	; Set end pos
 | 
						|
	inc	edi			; Fix that di points at end null
 | 
						|
sm_99:	dec	edi			; di points now at end null
 | 
						|
	mov	eax,edi			; Ret value in DX:AX
 | 
						|
	pop	ESI
 | 
						|
	pop	EDI
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strmake	ENDP
 | 
						|
	endcode strmake
 | 
						|
 | 
						|
	;
 | 
						|
	; Find length of string with maxlength
 | 
						|
	; arg: str,maxlength
 | 
						|
	; ret: length
 | 
						|
	;
 | 
						|
 | 
						|
	begcode	strnlen
 | 
						|
	public	_strnlen
 | 
						|
_strnlen proc near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es	1
 | 
						|
	push	edi
 | 
						|
	mov	edi,P[ebp]		; Str
 | 
						|
	mov	ecx,P+SIZEPTR[ebp]	; length
 | 
						|
	mov	edx,edi			; Save str to calc length
 | 
						|
	jcxz	sn_10			; Length = 0
 | 
						|
	clr	al			; Find end of string
 | 
						|
	repne	scasb			; Find strend or length
 | 
						|
	jnz	sn_10
 | 
						|
	dec	edi			; DI points at last null
 | 
						|
sn_10:	mov	eax,edi
 | 
						|
	sub	eax,edx			; Ax = length
 | 
						|
	pop	edi
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strnlen	ENDP
 | 
						|
	endcode strnlen
 | 
						|
 | 
						|
	;
 | 
						|
	; Move a string with max len chars
 | 
						|
	; arg: dst,src,len
 | 
						|
	; ret: pos to first null or dst+len
 | 
						|
 | 
						|
	begcode	strnmov
 | 
						|
	public	_strnmov
 | 
						|
_strnmov PROC near
 | 
						|
	push	ebp
 | 
						|
	mov	ebp,esp
 | 
						|
	fix_es	1
 | 
						|
	push	EDI
 | 
						|
	push	ESI
 | 
						|
	mov	edi,P[ebp]		; dst
 | 
						|
	mov	esi,P+SIZEPTR[ebp]	; src
 | 
						|
	mov	ecx,P+(SIZEPTR*2)[ebp]	; length
 | 
						|
	jcxz	snm_99			; Nothing to do
 | 
						|
	clr	al			; For test of end-null
 | 
						|
 | 
						|
@@:	cmp	al,[esi]		; Next char to move
 | 
						|
	movsb				; move arg
 | 
						|
	jz	snm_20			; last char, fill with null
 | 
						|
	loop	@B			; Continue moving
 | 
						|
	inc	edi			; Point two after last
 | 
						|
snm_20:	dec	edi			; Point at first null (or last+1)
 | 
						|
snm_99:	mov	eax,edi			; Pointer at last char
 | 
						|
	pop	ESI
 | 
						|
	pop	EDI
 | 
						|
	pop	ebp
 | 
						|
	ret
 | 
						|
_strnmov	ENDP
 | 
						|
	endcode strnmov
 | 
						|
 | 
						|
;
 | 
						|
; Zortech has this one in standard library
 | 
						|
;
 | 
						|
 | 
						|
	begcode strmov
 | 
						|
	public	_strmov
 | 
						|
_strmov proc	near
 | 
						|
	mov	ecx,esi			; Save old esi and edi
 | 
						|
	mov	edx,edi
 | 
						|
	mov	esi,P[esp]		; get source pointer (s2)
 | 
						|
	mov	edi,P-SIZEPTR[esp]	; EDI -> s1
 | 
						|
	fix_es	1
 | 
						|
@@:	mov	al,[esi]
 | 
						|
	movsb				; move arg
 | 
						|
	and	al,al
 | 
						|
	jnz	@B			; Not last
 | 
						|
	mov	eax,edi
 | 
						|
	dec	eax
 | 
						|
	mov	esi,ecx			; Restore args
 | 
						|
	mov	edi,edx
 | 
						|
	ret
 | 
						|
_strmov endp
 | 
						|
	endcode strmov
 | 
						|
 | 
						|
endif ; M_I386
 | 
						|
 | 
						|
	END
 |