From a12676df94755f8707d430cac0d9abb0ddac2895 Mon Sep 17 00:00:00 2001 From: levinsv <44033647+levinsv@users.noreply.github.com> Date: Sun, 1 Sep 2019 19:14:59 +0500 Subject: [PATCH] bug fix pg_query_state incorrect visible Avtoselect query fix non-ansi char --- Release_(3.0)/pgAdmin3.exe | Bin 10447872 -> 10447872 bytes ctl/ctlSQLBox.cpp | 13 +++++++++---- frm/frmStatus.cpp | 5 +++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Release_(3.0)/pgAdmin3.exe b/Release_(3.0)/pgAdmin3.exe index 30bfffaa05e0a01ffebd3c761e3013d892b3dc83..5eadb5dc36bac51ad685ed4f802c67c883d50ae1 100644 GIT binary patch delta 1248 zcmc)H-%pcQ9LMqJdHPT&)LKLavsl_^_**xBG8LGt>KMXgh&q356QPQNsH0V3f^=nj zWK$S(as+h2#2a_9u-zONFT}(wBr^*aMv3!cSx^_fuv<(Z*4e#_SN;Xd$?JR0_mlHI zH>Y*vU%eFrNvh@6aP8?7wZ~TKRg{IttCXxRuPZ#HnnS88hg9u(vNblN#__vi-mq)1 z$QyRO>2^X{UZlB1l#J@G6@O%hqj|x};c+dH93Hm@62jw&!HkMndVFkb#5FiJQfP_f z1)m+e`pD8Ae762**{O>;ilT_JQ9Wbvi}BR>IK>*U$H%iCC4{4%!(1PK`Js7{#>--G zRNo>Z_Togd=$?)QSP}1&U_&xeV8MWW=Fn(*N}r5n2A}KjX9W$d6rsaHQH~9$z(#DsW_*Ax z*otk~jve?AAK_!{L?w2~j{K^hu89pl2Mv*2TbC<#_U+Ee-m5ey9;IG6padrNpi;;3 zD3xT@iboteQIjV2h3edvO#_)~s#)IKgimn{&1k`Kv?7Gh5Jnq5#}_bh0`2$`U*RN9 zp#z=x8eRAXr|~V$pc_J#_nw{go2BLcd2ylJUm!2n^bC}|)ZSfZw#9nTE8AjyPft3Z vYsC#~e5)%;{gu_e#(-aT71WPuvcI7Ium8Emf1<~944=b!=@|a*pT7S9FyI~$ delta 1266 zcmd_m`%ler9LMqV{hn{9bLw;|C2?|ezAoi{ztwSzL=m~)Z*hd&J1!9?r}|bX_m2wm zBgPiLd|WnTGi%e5&Bn}cGK>*FSaXnP+58he+vC0W`?c3kAOFi=njiI6#cZlfKOL^r z*s|kHreTM3O$jI6&On1=G$@K}P}JXHmd4I!G}={|Wusjyd=WAswY6xx$ZFA?y@RQ~ z$UvJ~5Ef{&6odrYLVechslJ~FpM5k}_%x%%)+!UibiVRDEy`$*(7!n93 z?xELK`h9=dVjRXJ1*!000w!V-CSwZHFcs5~j_Jt249r9(vM>v?k&QW+ ziyX|ud@R61EW%+M@mh`8_FSyT26(X% zdDw)_GPZror(!Yhj!ze1Tk_Myq4GS7`20K9CGOh2@y6xid~C%wY{w4l#4hYc0eskl zz1WBS@^W!ueY_HG2J!v@Sn{x#c(uV Mz(wh3zVxl`4;@`O{r~^~ diff --git a/ctl/ctlSQLBox.cpp b/ctl/ctlSQLBox.cpp index 42c4dc5..4f5e8ee 100644 --- a/ctl/ctlSQLBox.cpp +++ b/ctl/ctlSQLBox.cpp @@ -991,6 +991,7 @@ long ctlSQLBox::SelectQuery(int startposition) int match; int pend=endPos; int pstart=0; + if ((ch == ';')) { pend=pos; pos=pos-1; @@ -998,21 +999,23 @@ long ctlSQLBox::SelectQuery(int startposition) { while (pos= 0) + pos--; + while ((pos) >= 0) { ch = GetCharAt(pos); - st = GetStyleAt(pos); + st = GetStyleAt(pos) & 0x1F; if ((ch == ';') && st != 2 && st != 6 && st != 7) { @@ -1020,6 +1023,8 @@ long ctlSQLBox::SelectQuery(int startposition) break; } if (ch>' ') pstart=pos; + int i=IsDBCSLeadByte(ch)? 2 : 1; + pos=pos-i; } if (startposition<0) SetSelection(pstart,pend); diff --git a/frm/frmStatus.cpp b/frm/frmStatus.cpp index 085d0da..ab46452 100644 --- a/frm/frmStatus.cpp +++ b/frm/frmStatus.cpp @@ -395,8 +395,9 @@ frmStatus::frmStatus(frmMain *form, const wxString &_title, pgConn *conn) : pgFr viewMenu->Check(MNU_LOCKPAGE, manager.GetPane(wxT("Locks")).IsShown()); viewMenu->Check(MNU_XACTPAGE, manager.GetPane(wxT("Transactions")).IsShown()); viewMenu->Check(MNU_LOGPAGE, manager.GetPane(wxT("Logfile")).IsShown()); - pgSet *set = connection->ExecuteSet(wxT("SELECT 1 FROM pg_available_extensions WHERE name='pg_query_state'")); + pgSet *set = connection->ExecuteSet(wxT("SELECT 1 FROM pg_available_extensions WHERE installed_version is not null and name='pg_query_state'")); viewMenu->Enable(MNU_QUERYSTATEPAGE,set->NumRows() == 1); + //viewMenu->Check(MNU_QUERYSTATEPAGE,set->NumRows() == 1); delete set; viewMenu->Check(MNU_TOOLBAR, manager.GetPane(wxT("toolBar")).IsShown()); @@ -974,7 +975,7 @@ void frmStatus::AddQuerystatePane() // Create the timer querystateTimer = new wxTimer(this, TIMER_QUERYSTATE_ID); - pgSet *set = connection->ExecuteSet(wxT("SELECT 1 FROM pg_available_extensions WHERE name='pg_query_state'")); + pgSet *set = connection->ExecuteSet(wxT("SELECT 1 FROM pg_available_extensions WHERE installed_version is not null and name='pg_query_state'")); if (set->NumRows() == 1) viewMenu->Check(MNU_QUERYSTATEPAGE,true); else