-/* Copyright 2013 Akira Ohta (akohta001@gmail.com)
+/* Copyright 2013,2014 Akira Ohta (akohta001@gmail.com)
This file is part of ntch.
The ntch is free software: you can redistribute it and/or modify
return &sthreadp->handle;
}
+nt_searched_thread_handle nt_searched_thread_alloc2(
+ nt_2ch_model_handle h_model,
+ const char *url)
+{
+ wchar_t *board_name;
+ wchar_t *dat_name;
+ nt_searched_thread_tp sthreadp;
+ char *cptr, *cptr1;
+ nt_board_handle h_board;
+ wchar_t wbuf[128];
+ char buf[128];
+ int len;
+
+ cptr = strstr(url, "test/read.cgi/");
+ if(!cptr)
+ return NULL;
+ cptr += strlen("test/read.cgi/");
+
+ cptr1 = strchr(cptr, '/');
+ if(!cptr1)
+ return NULL;
+ len = cptr1 - cptr;
+ memcpy(buf, cptr, len);
+ buf[len] = '\0';
+
+ if((size_t)-1 == mbstowcs(wbuf, buf, sizeof(wbuf)/sizeof(wchar_t))){
+ return NULL;
+ }
+
+ h_board = nt_get_board_by_address_match(h_model, wbuf);
+ if(!h_board){
+ return NULL;
+ }
+ board_name = nt_w_str_clone(nt_board_get_name(h_board));
+ nt_board_release_ref(h_board);
+ if(!board_name){
+ return NULL;
+ }
+ cptr1++;
+ cptr = strchr(cptr1, '/');
+ if(!cptr){
+ free(board_name);
+ return NULL;
+ }
+ len = cptr - cptr1;
+ memcpy(buf, cptr1, len);
+ strcpy(buf+len, ".dat");
+ buf[len+4] = '\0';
+
+ if((size_t)-1 == mbstowcs(wbuf, buf, sizeof(wbuf)/sizeof(wchar_t))){
+ free(board_name);
+ return NULL;
+ }
+ dat_name = nt_w_str_clone(wbuf);
+ if(!dat_name){
+ free(board_name);
+ return NULL;
+ }
+
+ sthreadp = malloc(sizeof(nt_searched_thread_t));
+ if(!sthreadp){
+ free(board_name);
+ free(dat_name);
+ return NULL;
+ }
+
+ sthreadp->board_name = board_name;
+ sthreadp->dat_name = dat_name;
+ sthreadp->title = NULL;
+ sthreadp->handle.chk_sum = NT_SEARCHED_THREAD_CHK_SUM;
+ sthreadp->ref_count = 1;
+ return &sthreadp->handle;
+}
+
int nt_searched_thread_add_ref(nt_searched_thread_handle h_searched_thread)
{
nt_searched_thread_tp sthreadp;