• R/O
  • HTTP
  • SSH
  • HTTPS

gikonavi: Commit


Commit MetaInfo

Revisionc9a6aec0c787b9d497b16642bf9a6522448f0c2d (tree)
Time2009-01-25 18:38:14
Authorcvs2git <cvs2git>
Commitercvs2git

Log Message

This commit was manufactured by cvs2svn to create tag 'v1_59_0_769'.

Change Summary

Incremental Difference

--- a/Editor.pas
+++ b/Editor.pas
@@ -1882,61 +1882,31 @@ const
18821882 VAL_PON = 'PON=';
18831883 EXPIRES_MARK = 'expires=';
18841884 var
1885- i, pos: Integer;
1885+// i: Integer;
18861886 tmp : string;
18871887 val : string;
1888- curCookies : TStringList;
1889- tmpCookieName : string;
18901888 begin
1891- // 2008.12.14 無条件クリアしてはいけない by もじゅ
1892- curCookies := TStringList.Create;
1893- curCookies.Delimiter := ';';
1894- curCookies.DelimitedText := ABoard.Cookie;
18951889 ABoard.Cookie := '';
1896- try
1897- while (AnsiPos(COOKIE_MARK, Rawtext) > 0 ) do begin
1898- tmp := Copy(Rawtext, AnsiPos(COOKIE_MARK, Rawtext) + Length(COOKIE_MARK), Length(Rawtext));
1899- Delete(Rawtext, 1, AnsiPos('Set-Cookie', Rawtext)+ Length(COOKIE_MARK));
1900- //Cookieを切り出す
1901- val := Trim(GikoSys.GetTokenIndex(tmp, ';', 0));
1902- if( AnsiPos(VAL_SPID, val) > 0 ) then begin
1903- ABoard.SPID := Copy(val, AnsiPos(VAL_SPID, val) + Length(VAL_SPID), Length(val));
1904- end else if( AnsiPos(VAL_PON, val) > 0 ) then begin
1905- ABoard.PON := Copy(val, AnsiPos(VAL_PON, val) + Length(VAL_PON), Length(val));
1906- end else begin
1907- // 既存のCookieの場合は値だけ付け替える
1908- pos := AnsiPos('=', val);
1909- if pos > 0 then begin
1910- tmpCookieName := Copy(val, 0, pos - 1);
1911- for i := 0 to curCookies.Count - 1 do begin
1912- if (curCookies.IndexOfName(tmpCookieName) >= 0) then begin
1913- curCookies.Values[tmpCookieName] := Copy(val, pos + 1, Length(val));
1914- tmpCookieName := '';
1915- break;
1916- end;
1917- end;
1918- if (tmpCookieName <> '') then begin
1919- curCookies.Add(val);
1920- end;
1921- end;
1922- //tmpCookie := tmpCookie + val + '; ';
1923- end;
1924- //expiresを切り出す
1925- val := Trim(GikoSys.GetTokenIndex(tmp, ';', 1));
1926- if( AnsiPos(EXPIRES_MARK, val) > 0) then begin
1927- Delete(val, 1, AnsiPos(EXPIRES_MARK, val) + Length(EXPIRES_MARK) - 1);
1928- ABoard.Expires := GMTToLocalDateTime(val);
1929- end;
1930- end;
1931- for i := 0 to curCookies.Count - 1 do begin
1932- if (curCookies.Strings[i] <> '') then begin
1933- ABoard.Cookie := ABoard.Cookie + curCookies.Strings[i] + '; ';
1934- end;
1935- end;
1936-
1937- finally
1938- curCookies.Free;
1939- end;
1890+ while (AnsiPos(COOKIE_MARK, Rawtext) > 0 ) do begin
1891+ //i := 0;
1892+ tmp := Copy(Rawtext, AnsiPos(COOKIE_MARK, Rawtext) + Length(COOKIE_MARK), Length(Rawtext));
1893+ Delete(Rawtext, 1, AnsiPos('Set-Cookie', Rawtext)+ Length(COOKIE_MARK));
1894+ //Cookieを切り出す
1895+ val := Trim(GikoSys.GetTokenIndex(tmp, ';', 0));
1896+ if( AnsiPos(VAL_SPID, val) > 0 ) then begin
1897+ ABoard.SPID := Copy(val, AnsiPos(VAL_SPID, val) + Length(VAL_SPID), Length(val));
1898+ end else if( AnsiPos(VAL_PON, val) > 0 ) then begin
1899+ ABoard.PON := Copy(val, AnsiPos(VAL_PON, val) + Length(VAL_PON), Length(val));
1900+ end else begin
1901+ ABoard.Cookie := ABoard.Cookie + val + '; ';
1902+ end;
1903+ //expiresを切り出す
1904+ val := Trim(GikoSys.GetTokenIndex(tmp, ';', 1));
1905+ if( AnsiPos(EXPIRES_MARK, val) > 0) then begin
1906+ Delete(val, 1, AnsiPos(EXPIRES_MARK, val) + Length(EXPIRES_MARK) - 1);
1907+ ABoard.Expires := GMTToLocalDateTime(val);
1908+ end;
1909+ end;
19401910 end;
19411911 //! hiddenデータ取得
19421912 procedure TEditorForm.GetHiddenParameter(Rawtext: String; ABoard: TBoard);
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -7609,6 +7609,12 @@ object GikoForm: TGikoForm
76097609 object N84: TMenuItem
76107610 Caption = '-'
76117611 end
7612+ object UpdateGikonaviAction1: TMenuItem
7613+ Action = GikoDM.UpdateGikonaviAction
7614+ end
7615+ object N7: TMenuItem
7616+ Caption = '-'
7617+ end
76127618 object DeleteMenu: TMenuItem
76137619 Action = GikoDM.LogDeleteAction
76147620 end
@@ -8157,12 +8163,6 @@ object GikoForm: TGikoForm
81578163 object N38: TMenuItem
81588164 Caption = '-'
81598165 end
8160- object UpdateGikonaviAction1: TMenuItem
8161- Action = GikoDM.UpdateGikonaviAction
8162- end
8163- object N7: TMenuItem
8164- Caption = '-'
8165- end
81668166 object AboutMenu: TMenuItem
81678167 Action = GikoDM.AboutAction
81688168 end
--- a/Giko.pas
+++ b/Giko.pas
@@ -424,7 +424,6 @@ type
424424 N84: TMenuItem;
425425 procedure FormCreate(Sender: TObject);
426426 procedure FormDestroy(Sender: TObject);
427- procedure SaveSettingAll();
428427 procedure BrowserStatusTextChange(Sender: TObject;
429428 const Text: WideString);
430429 procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -609,8 +608,6 @@ type
609608 FPreviewBrowserRect: TRect; ///< プレビューの表示位置を記憶する
610609 FActionListGroupIndexes: array of Integer; ///<GikoDM上のアクションリストの各アクションに設定されたGroupIndexを保存する配列
611610 FResPopupBrowser: TResPopupBrowser;
612- FUpdateExePath: string; ///ギコナビ更新インストーラパス
613- FUpdateExeArgs: string; ///ギコナビ更新インストーラ引数
614611 procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
615612 procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
616613 procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
@@ -699,8 +696,7 @@ type
699696 procedure AcceptDropFiles(var Msg: TMsg);
700697 //! スレッド一覧更新処理
701698 procedure UpdateListView();
702- //! アイコン読み込み
703- procedure LoadIcon();
699+
704700 protected
705701 procedure CreateParams(var Params: TCreateParams); override;
706702 procedure WndProc(var Message: TMessage); override;
@@ -738,9 +734,6 @@ type
738734 property ScreenCursor : TCursor read GetScreenCursor write SetScreenCursor;
739735 property ActiveBBS : TBBS read FActiveBBS write FActiveBBS;
740736 property WorkCount: Integer read FWorkCount write FWorkCount;
741- property UpdateExePath: string read FUpdateExePath write FUpdateExePath;
742- property UpdateExeArgs: string read FUpdateExeArgs write FUpdateExeArgs;
743-
744737 procedure SetContent(inThread: TBrowserRecord);
745738 function GetActiveContent(popup :Boolean = false): TThreadItem;
746739 function GetActiveList: TObject;
@@ -934,8 +927,6 @@ begin
934927 FResPopupBrowser := nil;
935928 CreateBrowsers(BROWSER_COUNT);
936929 FIconData.uID := 0;
937- FUpdateExePath := '';
938- FUpdateExeArgs := '';
939930
940931 //メニューフォント
941932 SetMenuFont;
@@ -943,9 +934,6 @@ begin
943934 //手のカーソル
944935 Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
945936
946- // アイコンの読み取り
947- LoadIcon;
948-
949937 //アドレス履歴読み込み
950938 AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
951939
@@ -1500,9 +1488,7 @@ begin
15001488 GikoDM.TabsOpenAction.Execute;
15011489 GikoDM.TabsOpenAction.Tag := 0;
15021490 if (GikoSys.Setting.LastCloseTabURL <> '') then begin
1503- if ( FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
1504- PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( FActiveContent.Browser ), 0 );
1505- end;
1491+ PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( FActiveContent.Browser ), 0 );
15061492 if ( FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
15071493 while (FActiveContent.Browser.ReadyState <> READYSTATE_COMPLETE) and
15081494 (FActiveContent.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
@@ -1560,25 +1546,38 @@ begin
15601546
15611547 Application.UnhookMainWindow(Hook);
15621548 //アプリケーション終了の前にダウンロードスレッドに正常終了を促す
1563- FControlThread.DownloadAbort;
15641549 FControlThread.Terminate;
1565-
1566- //OnDestoryだと再起動をかけたときなどに保存されないのでOnCloseQueryで設定保存
1567- SaveSettingAll();
1568-
15691550 Application.Terminate;
15701551 end;
15711552
1572-procedure TGikoForm.SaveSettingAll();
1553+procedure TGikoForm.FormDestroy(Sender: TObject);
15731554 var
1555+ i : Integer;
15741556 wp : TWindowPlacement;
1557+ tmpBool : Boolean;
15751558 WindowPlacement: TWindowPlacement;
15761559 begin
1560+ // タスクトレイのアイコン削除
1561+ if (FIconData.uID <> 0) then begin
1562+ Shell_NotifyIcon(NIM_DELETE, @FIconData);
1563+ end;
1564+
1565+ // マウスジェスチャー開放
1566+ try
1567+ if GikoSys.Setting.GestureEnabled then begin
1568+ MouseGesture.OnGestureStart := nil;
1569+ MouseGesture.OnGestureMove := nil;
1570+ MouseGesture.OnGestureEnd := nil;
1571+ end;
1572+ MouseGesture.Clear;
1573+ MouseGesture.UnHook;
1574+ MouseGesture.Free;
1575+ except
1576+ end;
15771577 try
15781578 ActiveListColumnSave;
15791579 except
15801580 end;
1581-
15821581 try
15831582 WindowPlacement.length := SizeOf(TWindowPlacement);
15841583 GetWindowPlacement(Self.Handle, @WindowPlacement);
@@ -1611,11 +1610,20 @@ begin
16111610 GikoSys.Setting.ResRange := FResRangeMenuSelect;
16121611 except
16131612 end;
1614- //今のwinodwのスタイルでCoolBarの位置、ウィンドウの位置を保存
1615- SaveCoolBarSettings;
1616- GikoSys.Setting.WriteWindowSettingFile;
1617- // 名前とメールの保存なのでエディタが閉じた後ならいつでもいい
1618- GikoSys.Setting.WriteNameMailSettingFile;
1613+ if WindowState <> wsNormal then
1614+ WindowState := wsNormal;
1615+ SaveCoolBarSettings;
1616+ try
1617+ GikoSys.Setting.WriteWindowSettingFile;
1618+ GikoSys.Setting.WriteNameMailSettingFile;
1619+ except
1620+ end;
1621+ // リアルタイムに保存されるので、また、ウィンドウサイズが CoolBar より
1622+ // 小さくなっているときに保存すると値が上書きされてしまうのでここでは保存しない
1623+
1624+ // ↑FormDestroy中に移動したので、ここで保存しないといけないと思う。(もじゅ 2004/04/09)
1625+ // CoolBar 保存
1626+ //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then
16191627
16201628 //入力アシスト機構の設定の保存
16211629 InputAssistDM.SaveToFile(GikoSys.GetInputAssistFileName);
@@ -1627,71 +1635,10 @@ begin
16271635 if not (FavoriteDM.AbEnd) then begin
16281636 FavoriteDM.WriteFavorite;
16291637 end;
1630- except
1631- end;
1632-
1633- //アドレス履歴保存
1634- try
1635- //AddressHistoryDMは自動生成フォームなので、解放は自動的にされる。
1636- AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
1637- except
1638- end;
1639-
1640- //ヒストリリスト保存
1641- try
1642- FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml');
1643- except
1644- end;
1645-
1646- //巡回リスト保存
1647- try
1648- RoundList.SaveRoundFile;
1649- except
1650- end;
1651-
1652- // タスクトレイのアイコン削除
1653- if (FIconData.uID <> 0) then begin
1654- Shell_NotifyIcon(NIM_DELETE, @FIconData);
1655- end;
1656-
1657-end;
1658-
1659-procedure TGikoForm.FormDestroy(Sender: TObject);
1660-var
1661- i : Integer;
1662- tmpBool : Boolean;
1663-begin
1664- //一時的に通常スタイルに戻してCoolBarの位置、ウィンドウの位置を保存
1665- //※注意:OnDestroyで使うことしか考慮されていない
1666- // 他でやると再描画が発生する
1667- if WindowState <> wsNormal then begin
1668- WindowState := wsNormal;
1669- try
1670- SaveCoolBarSettings;
1671- GikoSys.Setting.WriteWindowSettingFile;
1672- except
1673- end;
1674- end;
1675-
1676- // マウスジェスチャー開放
1677- try
1678- if GikoSys.Setting.GestureEnabled then begin
1679- MouseGesture.OnGestureStart := nil;
1680- MouseGesture.OnGestureMove := nil;
1681- MouseGesture.OnGestureEnd := nil;
1682- end;
1683- MouseGesture.Clear;
1684- MouseGesture.UnHook;
1685- MouseGesture.Free;
1686- except
1687- end;
1688-
1689- //お気に入り破棄
1690- try
16911638 FavoriteDM.Clear;
16921639 except
16931640 end;
1694-
1641+ //LockWindowUpdate(Self.Handle);
16951642 try
16961643 //タブクローズ
16971644 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
@@ -1700,7 +1647,6 @@ begin
17001647 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
17011648 except
17021649 end;
1703-
17041650 try
17051651 for i := FBrowsers.Count - 1 downto 0 do begin
17061652 GikoSys.ShowRefCount('browser' + IntToStr(i), TWebBrowser(FBrowsers[i]).ControlInterface);
@@ -1715,7 +1661,6 @@ begin
17151661 finally
17161662 FBrowsers.Free;
17171663 end;
1718-
17191664 try
17201665 if BrowserNullTab <> nil then begin
17211666 BrowserNullTab.Browser := nil; {*BrowserNullTabのBrowserは設計時に貼り付けてる奴
@@ -1734,6 +1679,18 @@ begin
17341679 except
17351680 end;
17361681
1682+ //アドレス履歴保存
1683+ try
1684+ //AddressHistoryDMは自動生成フォームなので、解放は自動的にされる。
1685+ AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
1686+ except
1687+ end;
1688+
1689+ //ヒストリリスト保存
1690+ try
1691+ FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml');
1692+ except
1693+ end;
17371694 try
17381695 try
17391696 FHistoryList.Clear;
@@ -1743,7 +1700,11 @@ begin
17431700 FHistoryList.Free;
17441701 end;
17451702
1746-
1703+ //巡回リスト保存&破棄
1704+ try
1705+ RoundList.SaveRoundFile;
1706+ except
1707+ end;
17471708 try
17481709 try
17491710 RoundList.Clear;
@@ -1755,7 +1716,7 @@ begin
17551716
17561717 try
17571718 try
1758- //FControlThread.DownloadAbort;
1719+ FControlThread.DownloadAbort;
17591720 FControlThread.Terminate;
17601721 FControlThread.WaitFor;
17611722 except
@@ -1807,12 +1768,7 @@ begin
18071768 end;
18081769 except
18091770 end;
1810-
1811- // Updateがいれば実行する
1812- if FileExists(FUpdateExePath) then begin
1813- // アップデート実行
1814- GikoSys.CreateProcess(FUpdateExePath, FUpdateExeArgs);
1815- end;
1771+ //LockWindowUpdate(0);
18161772 end;
18171773
18181774 // 各所にあるキャビネット・ BBS メニューをセット/更新
@@ -7997,53 +7953,6 @@ begin
79977953 FResPopupBrowser.CurrentBrowser.ChildClear;
79987954 end;
79997955 end;
8000-//! アイコン読み込み
8001-procedure TGikoForm.LoadIcon();
8002-const
8003- ICONI6 = 'icon16.bmp';
8004- ICON32 = 'icon32.bmp';
8005- ICONSTAT = 'state_icon.bmp';
8006- ICONMES = 'message_icon.bmp';
8007- ICONADD = 'address_icon.bmp';
8008- ICONITEM = 'item_icon.bmp';
8009- ICONTOOL = 'hottoolbar_icon.bmp';
8010-begin
8011- if FileExists(GikoSys.Setting.GetAppDir + ICONI6) then begin
8012- ItemIcon16.Clear;
8013- ItemIcon16.FileLoad(rtBitmap,
8014- GikoSys.Setting.GetAppDir + ICONI6, clPurple);
8015- end;
8016- if FileExists(GikoSys.Setting.GetAppDir + ICON32) then begin
8017- ItemIcon32.Clear;
8018- ItemIcon32.FileLoad(rtBitmap,
8019- GikoSys.Setting.GetAppDir + ICON32, clPurple);
8020- end;
8021- if FileExists(GikoSys.Setting.GetAppDir + ICONSTAT) then begin
8022- StateIconImageList.Clear;
8023- StateIconImageList.FileLoad(rtBitmap,
8024- GikoSys.Setting.GetAppDir + ICONSTAT, clPurple);
8025- end;
8026- if FileExists(GikoSys.Setting.GetAppDir + ICONMES) then begin
8027- MessageImageList.Clear;
8028- MessageImageList.FileLoad(rtBitmap,
8029- GikoSys.Setting.GetAppDir + ICONMES, clPurple);
8030- end;
8031- if FileExists(GikoSys.Setting.GetAppDir + ICONADD) then begin
8032- AddressImageList.Clear;
8033- AddressImageList.FileLoad(rtBitmap,
8034- GikoSys.Setting.GetAppDir + ICONADD, clPurple);
8035- end;
8036- if FileExists(GikoSys.Setting.GetAppDir + ICONITEM) then begin
8037- ItemImageList.Clear;
8038- ItemImageList.FileLoad(rtBitmap,
8039- GikoSys.Setting.GetAppDir + ICONITEM, clPurple);
8040- end;
8041- if FileExists(GikoSys.Setting.GetAppDir + ICONTOOL) then begin
8042- HotToobarImageList.Clear;
8043- HotToobarImageList.FileLoad(rtBitmap,
8044- GikoSys.Setting.GetAppDir + ICONTOOL, clPurple);
8045- end;
8046-end;
80477956
80487957 initialization
80497958 OleInitialize(nil);
--- a/GikoDataModule.pas
+++ b/GikoDataModule.pas
@@ -4569,29 +4569,18 @@ procedure TGikoDM.UpdateGikonaviActionExecute(Sender: TObject);
45694569 var
45704570 form : TUpdateCheckForm;
45714571 Msg: string;
4572- shutdown: boolean;
45734572 begin
45744573 if (EditorFormExists) then begin
45754574 Msg := 'レスエディタを全て閉じてください';
45764575 MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
45774576 Exit;
45784577 end;
4579- GikoForm.UpdateExePath := '';
4580- GikoForm.UpdateExeArgs := '';
45814578 form := TUpdateCheckForm.Create(Self);
45824579 try
45834580 form.ShowModal;
4584- shutdown := form.Allowshutdown;
4585- GikoForm.UpdateExePath := form.ExecPath;
4586- GikoForm.UpdateExeArgs := form.ExecArgs;
45874581 finally
45884582 form.Release;
45894583 end;
4590- if shutdown then begin
4591- // ギコナビ終了
4592- GikoForm.Close;
4593- end;
4594-
45954584 end;
45964585
45974586 end.
--- a/HTMLCreate.pas
+++ b/HTMLCreate.pas
@@ -1489,7 +1489,7 @@ begin
14891489 s1 := s;
14901490 idx := AnsiPos(mark, s1);
14911491 while idx <> 0 do begin
1492- Result := Result + Copy(s1, 1, idx - 1);
1492+ Result := Copy(s1, 1, idx - 1);
14931493 Delete(s1, 1, idx);
14941494 // タグのエンドを探す
14951495 idx := AnsiPos('">', s1);
--- a/NewBoardURL.pas
+++ b/NewBoardURL.pas
@@ -115,14 +115,9 @@ begin
115115 newURL := IdHTTP.Response.Location;
116116 end;
117117 if (newURL <> '') then begin
118- // リダイレクトすれば必ず移転とは限らない
119- // テレビ番組板などの対策最後の'/'までをURLとする
120- if (Length(newURL) <> LastDelimiter('/', newURL)) then begin
121- newURL := Copy(newURL, 1, LastDelimiter('/', newURL));
122- end;
123118 oldURL := URLs[i];
124- if (oldURL <> newURL) then begin
125- ResultMemo.Lines.Add('URL:' + oldURL + ' -> ' + newURL);
119+ ResultMemo.Lines.Add('URL:' + oldURL + ' -> ' + newURL);
120+ if (newURL <> '') then begin
126121 oldURLs.Add( oldURL );
127122 newURLs.Add( newURL );
128123 end;
--- a/RoundData.pas
+++ b/RoundData.pas
@@ -381,12 +381,6 @@ begin
381381 end;
382382 end;
383383 //Item := TRoundItem.Create;
384-
385- if sl.Count = 0 then begin
386- //エラー落ちするなどしてファイルの内容が空だとエラーになる対策
387- sl.Add(ROUND_INDEX_VERSION);
388- end;
389-
390384 delCount := 0;
391385 //1行目はバージョン
392386 if sl[0] = ROUND_INDEX_VERSION then begin
@@ -448,11 +442,6 @@ begin
448442 end;
449443 end;
450444 //Item := TRoundItem.Create;
451- if sl.Count = 0 then begin
452- //エラー落ちするなどしてファイルの内容が空だとエラーになる対策
453- sl.Add(ROUND_INDEX_VERSION);
454- end;
455-
456445 delCount := 0;
457446 //1行目はバージョン
458447 if sl[0] = ROUND_INDEX_VERSION then begin
--- a/Setting.pas
+++ b/Setting.pas
@@ -1333,15 +1333,6 @@ begin
13331333
13341334 FCheckDatFile := ini.ReadBool('ThreadList', 'CheckDatFile', True);
13351335 FLimitResCountMessage := ini.ReadBool('Thread', 'LimitResCountMessage', True);
1336-
1337- // ギコナビ更新で利用したインストーラの削除
1338- s := ini.ReadString('Update', 'Remove0', '');
1339- if (FileExists(s)) then begin
1340- SysUtils.DeleteFile(s);
1341- // 削除に失敗しても無視する
1342- ini.DeleteKey('Update', 'Remove0');
1343- end;
1344-
13451336 ini.UpdateFile;
13461337 finally
13471338 ini.Free;
--- a/UpdateCheck.dfm
+++ b/UpdateCheck.dfm
@@ -31,15 +31,6 @@ object UpdateCheckForm: TUpdateCheckForm
3131 TabOrder = 0
3232 OnClick = UpdateButtonClick
3333 end
34- object NightBuildCheckButton: TButton
35- Left = 368
36- Top = 8
37- Width = 107
38- Height = 25
39- Caption = #20154#26609#29256#26356#26032
40- TabOrder = 1
41- OnClick = NightBuildCheckButtonClick
42- end
4334 end
4435 object Panel2: TPanel
4536 Left = 0
@@ -72,11 +63,11 @@ object UpdateCheckForm: TUpdateCheckForm
7263 Request.BasicAuthentication = False
7364 Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
7465 HTTPOptions = [hoForceEncodeParams]
75- Left = 304
66+ Left = 400
7667 Top = 8
7768 end
7869 object IdAntiFreeze: TIdAntiFreeze
79- Left = 336
70+ Left = 440
8071 Top = 8
8172 end
8273 end
--- a/UpdateCheck.pas
+++ b/UpdateCheck.pas
@@ -15,25 +15,16 @@ type
1515 UpdateButton: TButton;
1616 IdHTTP: TIdHTTP;
1717 IdAntiFreeze: TIdAntiFreeze;
18- NightBuildCheckButton: TButton;
1918 procedure UpdateButtonClick(Sender: TObject);
2019 procedure FormCreate(Sender: TObject);
21- procedure NightBuildCheckButtonClick(Sender: TObject);
2220 private
2321 { Private 宣言 }
24- FExecPath : string;
25- FExecArgs : string;
26- FAllowshutdown : Boolean;
2722 function GetDesktopDir:string;
2823 function GetDownloadFilePath(FileName: String): String;
2924 function CreateShortCut(FileName, Argment, SavePath :string):boolean;
3025 procedure DonwloadUpdate(url: String);
31- function CheckUpdate(nightbuild :Boolean): Boolean;
3226 public
3327 { Public 宣言 }
34- property ExecPath :String read FExecPath;
35- property ExecArgs :String read FExecArgs;
36- property Allowshutdown :Boolean read FAllowshutdown;
3728 end;
3829
3930 var
@@ -42,53 +33,18 @@ var
4233 implementation
4334 uses
4435 GikoSystem, NewBoard, Giko, IniFiles, MojuUtils, GikoDataModule,
45- ActiveX, ComObj, ShlObj, GikoUtil;
46-
36+ ActiveX, ComObj, ShlObj;
37+
4738 {$R *.dfm}
48-//! 正規版
49-procedure TUpdateCheckForm.UpdateButtonClick(Sender: TObject);
50-begin
51- if CheckUpdate(false) then begin
52- if GikoUtil.MsgBox(Handle, '更新があるためギコナビを再起動しますか?', '終了確認',
53- MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) = ID_YES then begin
54- FAllowshutdown := True;
55- close;
56- end;
57- end;
58-end;
59-//! 人柱版
60-procedure TUpdateCheckForm.NightBuildCheckButtonClick(Sender: TObject);
61-begin
62- if GikoUtil.MsgBox(Handle, '正式リリース版ではありませんがよろしいですか?', '更新確認',
63- MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) = ID_YES then begin
64- if CheckUpdate(true) then begin
65- if GikoUtil.MsgBox(Handle, '更新があるためギコナビを再起動しますか?', '終了確認',
66- MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) = ID_YES then begin
67- FAllowshutdown := True;
68- close;
69- end;
70- end;
71- end;
72-end;
7339
74-//! アップデート対象確認
75-function TUpdateCheckForm.CheckUpdate(nightbuild :Boolean): Boolean;
40+procedure TUpdateCheckForm.UpdateButtonClick(Sender: TObject);
7641 const
77-{$IFDEF DEBUG}
78- CHECK_URL = 'http://gikonavi.sourceforge.jp/updater/debug.txt';
79-{$ELSE}
8042 CHECK_URL = 'http://gikonavi.sourceforge.jp/updater/latest.txt';
81-{$ENDIF}
8243 var
8344 value : string;
8445 ResStream: TMemoryStream;
8546 downResult, current, newest: TStringList;
86- newgiko: Boolean;
8747 begin
88- Result := false;
89- FExecPath := '';
90- FExecArgs := '';
91- FAllowshutdown := False;
9248 ResultMemo.Lines.Clear;
9349 Screen.Cursor := crHourGlass;
9450 UpdateButton.Enabled := False;
@@ -114,35 +70,17 @@ begin
11470 value := GikoSys.GzipDecompress(ResStream,
11571 IdHTTP.Response.ContentEncoding);
11672 downResult.Text := value;
117- if (nightbuild) then begin
118- ResultMemo.Lines.Add('最新のnight buildは、' + downResult.Values[ 'n_version' ]);
119- newest.Text := MojuUtils.CustomStringReplace(downResult.Values[ 'n_version' ],
120- '.', #10, false);
121- end else begin
122- ResultMemo.Lines.Add('最新のギコナビは、' + downResult.Values[ 'version' ]);
123- newest.Text := MojuUtils.CustomStringReplace(downResult.Values[ 'version' ],
73+ newest.Text := MojuUtils.CustomStringReplace(downResult.Values[ 'version' ],
12474 '.', #10, false);
125- end;
12675 current.Text := MojuUtils.CustomStringReplace(GikoSys.Version,
12776 '.', #10, false);
12877 if newest.Count >= 2 then begin
129- newgiko := false;
130- // night buildは、ビルド番号だけで判定する
131- if (nightbuild) then begin
132- newgiko := StrToInt(current[3]) < StrToInt(newest[3]);
133- end else begin
134- newgiko := ( StrToInt(current[1]) < StrToInt(newest[1]) ) or
135- ( (StrToInt(current[1]) = StrToInt(newest[1]))) and
136- ((StrToInt(current[2]) < StrToInt(newest[2])) );
137- end;
138- if (newgiko) then begin
139- if GikoUtil.MsgBox(Handle, '新しいギコナビがあります。ダウンロードしますか?', '更新確認',
140- MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) = ID_YES then begin
78+ if ( StrToInt(current[1]) < StrToInt(newest[1]) ) or
79+ ( (StrToInt(current[1]) = StrToInt(newest[1]))) and
80+ ((StrToInt(current[2]) < StrToInt(newest[2])) ) then begin
81+ ResultMemo.Lines.Add('新しいギコナビがあります。ダウンロードを開始します。' + downResult.Values[ 'url' ]);
14182
142- ResultMemo.Lines.Add('新しいギコナビがあります。ダウンロードを開始します。' + downResult.Values[ 'url' ]);
143- DonwloadUpdate(Trim(downResult.Values[ 'url' ]));
144- Result := True;
145- end;
83+ DonwloadUpdate(Trim(downResult.Values[ 'url' ]));
14684 end else begin
14785 ResultMemo.Lines.Add('今のギコナビが最新です。');
14886 end;
@@ -186,12 +124,12 @@ begin
186124 IdHTTP.Get(url, fileStrem);
187125 ResultMemo.Lines.Add(
188126 IdHttp.ResponseText + '(' + IntToStr(IdHttp.ResponseCode) + ')');
189- FExecPath := filename;
190- FExecArgs := '/SP- /silent /noicons "/dir=' + GikoSys.GetAppDir + '"';
191127 if CreateShortCut(
192- execPath, execArgs, GetDesktopDir) then begin
128+ filename,
129+ '/SP- /silent /noicons "/dir=' + GikoSys.GetAppDir + '"'
130+ , GetDesktopDir) then begin
193131 ResultMemo.Lines.Add('デスクトップに"ギコナビ更新"ショートカットを作成しました。');
194- // ResultMemo.Lines.Add('ギコナビを終了して、"ギコナビ更新"ショートカットをダブルクリックしてください。');
132+ ResultMemo.Lines.Add('ギコナビを終了して、"ギコナビ更新"ショートカットをダブルクリックしてください。');
195133 end else begin
196134 ResultMemo.Lines.Add('デスクトップにショートカットを作成できませんでした。');
197135 end;
@@ -263,9 +201,6 @@ end;
263201 procedure TUpdateCheckForm.FormCreate(Sender: TObject);
264202 begin
265203 ResultMemo.Lines.Clear;
266- FExecPath := '';
267- FExecArgs := '';
268- FAllowshutdown := False;
269204 end;
270205
271206 end.
Binary files a/gikoNavi.res and b/gikoNavi.res differ
--- a/readme/gikoSetup.iss
+++ b/readme/gikoSetup.iss
@@ -56,9 +56,6 @@ Name: japanese; MessagesFile: compiler:Languages\Japanese.isl
5656
5757 [Code]
5858 procedure CurStepChanged(CurStep: TSetupStep);
59-var
60- path :String;
61- srcpath: String;
6259 begin
6360 case CurStep of
6461 ssInstall:
@@ -78,15 +75,6 @@ begin
7875 end;
7976 end;
8077 end;
81- ssPostInstall:
82- begin
83- path := ExpandConstant('{app}') + '\gikoNavi.ini';
84- srcpath := ExpandConstant('{srcexe}');
85- if (FileExists(path)) then
86- begin
87- SetIniString('Update', 'Remove0', srcpath, path);
88- end;
89- end;
9078 end;
9179
9280 end;
--- a/readme/gikoUSetup.iss
+++ b/readme/gikoUSetup.iss
@@ -7,7 +7,7 @@
77 AppName=ギコナビ
88 AppVerName=ギコナビ
99 AppId=gikoNavi
10-AppMutex=gikoNaviInstance
10+AppMutex=http://gikonavi.sourceforge.jp/gikonavi/mutex
1111 AppPublisherURL=http://gikonavi.sourceforge.jp/
1212 AppendDefaultDirName = no
1313 DefaultDirName={pf}\gikonavi
@@ -18,8 +18,8 @@ SourceDir=G:\Release
1818 OutputDir=G:\InnoSetup\Output
1919 SetupIconFile="G:\gikoNaviSFX_102\MainIcon.ico"
2020 ; ギコナビのバージョンにあわせてください
21-VersionInfoVersion=1.59.0.778
22-OutputBaseFilename=gikoNavi_b59_778_usetup
21+VersionInfoVersion=1.59.0.769
22+OutputBaseFilename=gikoNavi_b59_769_usetup
2323 CreateUninstallRegKey=no
2424
2525 [Tasks]
@@ -63,49 +63,8 @@ Type: files; Name: "{app}\gikoNavi.ini"
6363 Name: japanese; MessagesFile: compiler:Languages\Japanese.isl
6464
6565 [Code]
66-function InitializeSetup(): Boolean;
67-var
68- timeout : Integer;
69-begin
70- Result := true;
71- // タイムアウト時間1分
72- timeout := 60 * 1000;
73- // ギコナビの起動時ミューテックスをチェック
74- while CheckForMutexes('gikoNaviInstance') do begin
75- // 起動中なのでスリープ
76- // まずは、タイムアウトチェック
77- if (timeout < 0) then begin
78- // タイムアウト
79- Result := False;
80- break;
81- end;
82- timeout := timeout - 500;
83- // スリープ
84- Sleep(500);
85- end;
86- // タイムアウト時は、手動でギコナビシャットダウンを要求
87- if not Result Then begin
88- if MsgBox('ギコナビが起動しているか。完全に終了していません。ギコナビの終了を確認してください。'
89- + #10#13 + '更新を続行するには,「はい」ボタンを押してください。',
90- mbConfirmation, MB_YESNO) = IDYES then begin
91- Result := not CheckForMutexes('gikoNaviInstance');
92- if not Result Then begin
93- MsgBox('ギコナビが起動しています。ギコナビ更新をキャンセルします。'
94- + #10#13 + 'ギコナビ更新は、デスクトップの「ギコナビ更新」ショートカットから再起動できます。'
95- , mbError, MB_OK);
96- end;
97- end else begin
98- MsgBox('ギコナビ更新をキャンセルします。'
99- + #10#13 + 'ギコナビ更新は、デスクトップの「ギコナビ更新」ショートカットから再起動できます。'
100- , mbError, MB_OK);
101- end;
102- end;
103-end;
10466
10567 procedure CurStepChanged(CurStep: TSetupStep);
106-var
107- path :String;
108- srcpath: String;
10968 begin
11069 case CurStep of
11170 ssInstall:
@@ -125,15 +84,6 @@ begin
12584 end;
12685 end;
12786 end;
128- ssPostInstall:
129- begin
130- path := ExpandConstant('{app}') + '\gikoNavi.ini';
131- srcpath := ExpandConstant('{srcexe}');
132- if (FileExists(path)) then
133- begin
134- SetIniString('Update', 'Remove0', srcpath, path);
135- end;
136- end;
13787 end;
13888
13989 end;
--- a/res/ExternalBoardPlugIn/ShitarabaJBBSPlugIn.dpr
+++ b/res/ExternalBoardPlugIn/ShitarabaJBBSPlugIn.dpr
@@ -2,7 +2,7 @@ library ShitarabaJBBSPlugIn;
22
33 {
44 ShitarabaJBBSPlugIn
5- $Id: ShitarabaJBBSPlugIn.dpr,v 1.46 2008/12/20 04:02:40 h677 Exp $
5+ $Id: ShitarabaJBBSPlugIn.dpr,v 1.45 2008/08/03 02:45:48 h677 Exp $
66 }
77
88 uses
@@ -83,7 +83,7 @@ const
8383 MAJOR_VERSION = 1;
8484 MINOR_VERSION = 1;
8585 RELEASE_VERSION = 'alpha';
86- REVISION_VERSION = 18;
86+ REVISION_VERSION = 17;
8787
8888 SYNCRONIZE_MENU_CAPTION = 'したらばJBBS板更新';
8989
@@ -880,10 +880,11 @@ begin
880880 tmpLine := AnsiLowerCase(tmpHTML[i]);
881881 tS := AnsiPos('<a href="mailto:', tmpLine);
882882 if tS > 0 then begin //メル欄アリ
883- tE := AnsiPos('">', tmpLine);
884- tmpDatToken[2] := Copy(tmpHTML[i], tS + 16, tE - (tS + 16));
885- tmpHTML[i] := Copy(tmpHTML[i], tE + 5, Length(tmpHTML[i]));
886- tmpHTML[i] := CustomStringReplace(tmpHTML[i], '</a>', '', true); end else begin //メル欄無し
883+ tE := AnsiPos('">', tmpLine);
884+ tmpDatToken[2] := Copy(tmpHTML[i], tS + 16, tE - (tS + 16));
885+ tmpHTML[i] := Copy(tmpHTML[i], tE + 5, Length(tmpHTML[i]));
886+ tmpHTML[i] := CustomStringReplace(tmpHTML[i], '</a>', '', true);
887+ end else begin //メル欄無し
887888 tmpDatToken[2] := '';
888889 end;
889890 //====================//
@@ -896,16 +897,7 @@ begin
896897 tmpDatToken[1] := CustomStringReplace(tmpDatToken[1], '</b>', '', true);
897898 tmpHTML[i] := Copy(tmpHTML[i], tE + 8, Length(tmpHTML[i]));
898899 end else begin
899- // 投稿日のないパターンを救う
900- tE := AnsiPos(':', tmpLine);
901- if tE > 0 then begin
902- tmpDatToken[1] := Trim(Copy(tmpHTML[i], 1, tE - 1 ));
903- tmpDatToken[1] := CustomStringReplace(tmpDatToken[1], '<b>', '', true);
904- tmpDatToken[1] := CustomStringReplace(tmpDatToken[1], '</b>', '', true);
905- tmpHTML[i] := Copy(tmpHTML[i], tE + 2, Length(tmpHTML[i]));
906- end else begin
907- tmpDatToken[1] := '';
908- end;
900+ tmpDatToken[1] := '';
909901 end;
910902 //====================//
911903 //==日付時刻の取得==//
Binary files a/res/ExternalBoardPlugIn/ShitarabaJBBSPlugIn.res and b/res/ExternalBoardPlugIn/ShitarabaJBBSPlugIn.res differ
Binary files a/res/icon/address_icon.bmp and /dev/null differ
Binary files a/res/icon/hottoolbar_icon.bmp and /dev/null differ
Binary files a/res/icon/item_icon.bmp and /dev/null differ
Binary files a/res/icon/message_icon.bmp and /dev/null differ
Binary files a/res/icon/state_icon.bmp and b/res/icon/state_icon.bmp differ
Show on old repository browser