diff -ur wizd_0_12f/source/wizd.h wizd_0_12fa/source/wizd.h --- wizd_0_12f/source/wizd.h Tue Mar 9 16:32:12 2004 +++ wizd_0_12fa/source/wizd.h Wed Mar 10 13:47:54 2004 @@ -4,8 +4,8 @@ // wizd: MediaWiz Server daemon. // // wizd.h -// $Revision: 1.21 $ -// $Date: 2004/03/09 07:32:12 $ +// $Revision: 1.22 $ +// $Date: 2004/03/10 04:47:54 $ // // すべて自己責任でおながいしまつ。 // このソフトについてVertexLinkに問い合わせないでください。 @@ -20,7 +20,7 @@ // define いろいろ // ====================== -#define SERVER_NAME "wizd 0.12f" +#define SERVER_NAME "wizd 0.12fa" #define SERVER_DETAIL "MediaWiz Server Daemon." diff -ur wizd_0_12f/source/wizd_http.c wizd_0_12fa/source/wizd_http.c --- wizd_0_12f/source/wizd_http.c Tue Mar 9 16:32:12 2004 +++ wizd_0_12fa/source/wizd_http.c Wed Mar 10 13:47:55 2004 @@ -4,8 +4,8 @@ // wizd: MediaWiz Server daemon. // // wizd_http.c -// $Revision: 1.12 $ -// $Date: 2004/03/09 07:32:12 $ +// $Revision: 1.13 $ +// $Date: 2004/03/10 04:47:55 $ // // すべて自己責任でおながいしまつ。 // このソフトについてVertexLinkに問い合わせないでください。 @@ -147,7 +147,7 @@ // ---------------------------------------- // 受け取ったURIの拡張子がrename対象ならばrename // ---------------------------------------- - extension_del_rename(http_recv_info.recv_uri); + extension_del_rename(http_recv_info.recv_uri, sizeof(http_recv_info.recv_uri)); // ============================ diff -ur wizd_0_12f/source/wizd_menu.c wizd_0_12fa/source/wizd_menu.c --- wizd_0_12f/source/wizd_menu.c Tue Mar 9 16:32:12 2004 +++ wizd_0_12fa/source/wizd_menu.c Wed Mar 10 13:47:55 2004 @@ -3,8 +3,8 @@ // wizd: MediaWiz Server daemon. // // wizd_menu.c -// $Revision: 1.21 $ -// $Date: 2004/03/09 07:32:12 $ +// $Revision: 1.22 $ +// $Date: 2004/03/10 04:47:55 $ // // すべて自己責任でおながいしまつ。 // このソフトについてVertexLinkに問い合わせないでください。 @@ -868,6 +868,7 @@ // --------------------------------- for ( i=start_file_num, count=0; i<(start_file_num + now_page_line) ; i++, count++ ) { + debug_log_output("-----< file info generate, count = %d >-----", count); // -------------------------------------------------------------------------------- // 拡張子無しファイル名(表示用) 生成 // ファイル名 長さ制限に合わせてCutもやる @@ -1060,7 +1061,7 @@ strncpy(skin_rep_data_line_p[count].vod_string, "vod=\"0\"", sizeof(skin_rep_data_line_p[count].vod_string) ); // 拡張子置き換え処理。 - extension_add_rename(skin_rep_data_line_p[count].file_uri_link); + extension_add_rename(skin_rep_data_line_p[count].file_uri_link, sizeof(skin_rep_data_line_p[count].file_uri_link)); switch (skin_rep_data_line_p[count].menu_file_type) { case TYPE_SVI: @@ -1075,9 +1076,12 @@ strncat(work_filename, "/", sizeof(work_filename) - strlen(work_filename) ); } strncat(work_filename, file_info_p[i].org_name, sizeof(work_filename) - strlen(work_filename)); - cut_after_last_character(work_filename, '.'); - strncat(work_filename, ".svi", sizeof(work_filename) - strlen(work_filename)); - //debug_log_output("avi -> svi: %s", work_filename); + filename_to_extension(work_filename, work_data, sizeof(work_data)); + if (strcasecmp(work_data, "svi") != 0) { + cut_after_last_character(work_filename, '.'); + strncat(work_filename, ".svi", sizeof(work_filename) - strlen(work_filename)); + debug_log_output("extension rename (%s -> svi): %s", work_data, work_filename); + } // -------------------------------------------------- // SVIファイルから情報をゲットして、文字コード変換。 @@ -1269,7 +1273,7 @@ } } - debug_log_output("\ncount=%d", count); + debug_log_output("-----< end file info generate, count = %d >-----", count); @@ -2535,7 +2539,7 @@ debug_log_output("file_uri_link='%s'\n", file_uri_link); // URIの拡張子置き換え処理。 - extension_add_rename(file_uri_link); + extension_add_rename(file_uri_link, sizeof(file_uri_link)); // ------------------------------------ @@ -3096,7 +3100,7 @@ debug_log_output("file_uri_link='%s'\n", file_uri_link); // URIの拡張子置き換え処理。 - extension_add_rename(file_uri_link); + extension_add_rename(file_uri_link, sizeof(file_uri_link)); // ========================================= @@ -3298,7 +3302,7 @@ debug_log_output("file_uri_link(encoded):'%s'", file_uri_link); // URIの拡張子置き換え処理。 - extension_add_rename(file_uri_link); + extension_add_rename(file_uri_link, sizeof(file_uri_link)); // ------------------------------------ diff -ur wizd_0_12f/source/wizd_param.c wizd_0_12fa/source/wizd_param.c --- wizd_0_12f/source/wizd_param.c Wed Mar 10 00:47:43 2004 +++ wizd_0_12fa/source/wizd_param.c Wed Mar 10 13:47:55 2004 @@ -4,8 +4,8 @@ // wizd: MediaWiz Server daemon. // // wizd_param.c -// $Revision: 1.12 $ -// $Date: 2004/03/09 15:47:43 $ +// $Revision: 1.13 $ +// $Date: 2004/03/10 04:47:55 $ // // すべて自己責任でおながいしまつ。 // このソフトについてVertexLinkに問い合わせないでください。 @@ -70,11 +70,15 @@ // ******************************************** // 拡張子変換リスト // ******************************************** +// WARNING: hoge.m2p -> hoge.mpg 「ではない」 +// hoge.m2p -> hoge.m2p.mpg になる。 +// hoge.m2p.mpg -> hoge.m2p になる。 +// hoge.SVI.mpg -> hoge.SVI になる。 EXTENSION_CONVERT_LIST_T extension_convert_list[] = { // {org_extension , rename_extension } - {"m2p" , "m2p.mpg" }, - {"svi" , "svi.mpg" }, - {"hnl" , "hnl.mpg" }, + {"m2p" , "mpg" }, + {"svi" , "mpg" }, + {"hnl" , "mpg" }, { NULL, NULL } }; diff -ur wizd_0_12f/source/wizd_tools.c wizd_0_12fa/source/wizd_tools.c --- wizd_0_12f/source/wizd_tools.c Sun Mar 7 23:14:05 2004 +++ wizd_0_12fa/source/wizd_tools.c Wed Mar 10 13:47:55 2004 @@ -4,8 +4,8 @@ // wizd: MediaWiz Server daemon. // // wizd_tools.c -// $Revision: 1.10 $ -// $Date: 2004/03/07 14:14:05 $ +// $Revision: 1.11 $ +// $Date: 2004/03/10 04:47:55 $ // // すべて自己責任でおながいしまつ。 // このソフトについてVertexLinkに問い合わせないでください。 @@ -1094,41 +1094,34 @@ // // 例) "hogehoge.m2p" → "hogehoge.m2p.mpg" // ************************************************************************** -void extension_add_rename(unsigned char *rename_filename_p) +void extension_add_rename(unsigned char *rename_filename_p, size_t rename_filename_size) { int i; - unsigned char work[FILENAME_MAX]; - int rename_filename_len; - + unsigned char ext[FILENAME_MAX]; if ( rename_filename_p == NULL ) return; - rename_filename_len = strlen(rename_filename_p); - - for ( i=0; ; i++ ) - { - if ( extension_convert_list[i].org_extension == NULL ) - break; - - debug_log_output("org='%s', rename='%s'", extension_convert_list[i].org_extension, - extension_convert_list[i].rename_extension); + filename_to_extension(rename_filename_p, ext, sizeof(ext)); - strncpy(work, rename_filename_p, sizeof(work)); + if (strlen(ext) <= 0) return; - // 比較する拡張子と同じ長さにそろえる。 - cat_before_n_length(work, strlen(extension_convert_list[i].org_extension)); + for ( i=0; extension_convert_list[i].org_extension != NULL; i++ ) + { + debug_log_output("org='%s', rename='%s'" + , extension_convert_list[i].org_extension + , extension_convert_list[i].rename_extension); // 拡張子一致? - if ( strcasecmp(work, extension_convert_list[i].org_extension) == 0 ) + if ( strcasecmp(ext, extension_convert_list[i].org_extension) == 0 ) { debug_log_output(" HIT!!!" ); - // 元のファイルから、拡張子分を削除。 - strncpy(work, rename_filename_p, sizeof(work)); - cat_after_n_length(work, strlen(extension_convert_list[i].org_extension)); - // renameされた拡張子を追加。 - strncat(work, extension_convert_list[i].rename_extension, sizeof(work) - strlen(work) ); - strncpy(rename_filename_p, work, rename_filename_len + strlen(extension_convert_list[i].rename_extension)+1 ); + // 拡張子を「追加」 + strncat(rename_filename_p, "." + , rename_filename_size - strlen(rename_filename_p)); + strncat(rename_filename_p + , extension_convert_list[i].rename_extension + , rename_filename_size - strlen(rename_filename_p)); debug_log_output("rename_filename_p='%s'", rename_filename_p); break; @@ -1146,46 +1139,45 @@ // // 例) "hogehoge.m2p.mpg" → "hogehoge.m2p" // ************************************************************************** -void extension_del_rename(unsigned char *rename_filename_p) +void extension_del_rename(unsigned char *rename_filename_p, size_t rename_filename_size) { int i; - unsigned char work[FILENAME_MAX]; + unsigned char renamed_ext[FILENAME_MAX]; + unsigned char ext[FILENAME_MAX]; - for ( i=0; ; i++ ) - { - if ( extension_convert_list[i].org_extension == NULL ) - break; - - debug_log_output("org='%s', rename='%s'", extension_convert_list[i].org_extension, - extension_convert_list[i].rename_extension); + if ( rename_filename_p == NULL ) + return; - strncpy(work, rename_filename_p, sizeof(work)); + for ( i=0; extension_convert_list[i].org_extension != NULL; i++ ) + { + debug_log_output("org='%s', rename='%s'" + , extension_convert_list[i].org_extension + , extension_convert_list[i].rename_extension); + + snprintf(renamed_ext, sizeof(renamed_ext), ".%s.%s" + , extension_convert_list[i].org_extension + , extension_convert_list[i].rename_extension); // 比較する拡張子と同じ長さにそろえる。 - cat_before_n_length(work, strlen(extension_convert_list[i].rename_extension)); + strncpy(ext, rename_filename_p, sizeof(ext)); + cat_before_n_length(ext, strlen(renamed_ext)); // 拡張子一致? - if ( strcasecmp(work, extension_convert_list[i].rename_extension) == 0 ) + if ( strcasecmp(ext, renamed_ext) == 0 ) { debug_log_output(" HIT!!!" ); - - // 元のファイルから、拡張子分を削除。 - strncpy(work, rename_filename_p, sizeof(work)); - cat_after_n_length(work, strlen(extension_convert_list[i].rename_extension)); - - // renameされた拡張子を追加。 - strncat(work, extension_convert_list[i].org_extension, sizeof(work) - strlen(work)); - strcpy(rename_filename_p, work); + // 拡張子を「削除」 + cat_after_n_length(rename_filename_p + , strlen(extension_convert_list[i].rename_extension) + 1); debug_log_output("rename_filename_p='%s'", rename_filename_p); - break; } } + return; } - // ************************************************************************** diff -ur wizd_0_12f/source/wizd_tools.h wizd_0_12fa/source/wizd_tools.h --- wizd_0_12f/source/wizd_tools.h Sun Mar 7 23:14:05 2004 +++ wizd_0_12fa/source/wizd_tools.h Wed Mar 10 13:47:55 2004 @@ -4,8 +4,8 @@ // wizd: MediaWiz Server daemon. // // wizd_tools.h -// $Revision: 1.6 $ -// $Date: 2004/03/07 14:14:05 $ +// $Revision: 1.7 $ +// $Date: 2004/03/10 04:47:55 $ // // すべて自己責任でおながいしまつ。 // このソフトについてVertexLinkに問い合わせないでください。 @@ -52,8 +52,8 @@ extern unsigned char *buffer_distill_line(unsigned char *text_buf_p, unsigned char *line_buf_p, unsigned int line_buf_size ); -extern void extension_add_rename(unsigned char *rename_filename_p); -extern void extension_del_rename(unsigned char *rename_filename_p); +extern void extension_add_rename(unsigned char *rename_filename_p, size_t rename_filename_size); +extern void extension_del_rename(unsigned char *rename_filename_p, size_t rename_filename_size); extern char *my_strcasestr(const char *p1, const char *p2);