[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1135]Meadow.plan file
- X-ml-count: 1135
- Subject: [MD:1135]Meadow.plan file
- From: Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: 27 Apr 1999 15:32:53 +0900
- User-agent: T-gnus/6.10.058 (based on Pterodactyl Gnus v0.76) SEMI/1.13.3 (Komaiko) FLIM/1.12.6 (Family-Kōenmae) Emacs/20.3.8 (i386-*-nt4.0) MULE/4.0 (HANANOEN) Meadow/1.04 Alpha1 (TSUTSUJI)
mule-ucs 0.50と、Meadow-1.04a1を近く出します。^^;;;
TODOでは、あんまり柔軟性がないので、こんなファイルを
作って置く事にしました。出来上がっていく一方です。^^;;;
まあ、このファイルを見てわかるとおり、まだpendingの山です。^^;;;
## このファイル編集するための major-modeを作ってくれたら歓迎します。^^;;;
from himi
; "Transaction" choises are
; Bug report.
; Patch for Bug Fix.
; Patch for New feature.
; Request for New feature.
; "Status" choises are
; pending.
; working.
; done.
; confirmed.
;
------------------------------------------------------------
Submitter: Kobayashi
Subject: Meadow hung up.
X-ML-COUNT: 1111
Transaction: Bug report.
Status: pending
------------------------------------------------------------
こばやしです。
昨日、再現性のあるmeadowの落しかたを経験(発見)しました。
1.ediff-files等でediffのframeを表示する。
2.ediffのframeの最大化ボタンを押す。
3.ediffのframeのresizeボタンを押す。
ここで、僕の設定では文字が豆腐表示になってしまいます。
4.meadowのframeをマウスでつつく。
5.ワトソン先生の登場
------------------------------------------------------------
Submitter: Horiguchi Kyotaro
Subject: Frame and input event synclonization.
X-ML-COUNT:
Transaction: Bug report
Status: pending
------------------------------------------------------------
At Tue, 06 Apr 1999 22:53:28 +0900 (JST), kyota@xxxxxxxxxxxxx (Kyotaro HORIGUCHI) wrote in <19990406225328M.kyota@xxxxxxxxxxxxx>
> なんとなくですがフレームを新しく作る瞬間にナニかすると起きること
> があるような気がします.
まさにこのまんまでした. 新しいフレームの初期設定かなにかをしてい
るときに async_handle_message (だったかな?)が WM_MOVE とかを処理
してしまうのが原因のようです. ちなみに新しいフレームのメニューバー
をつついても固まります.
で固める手順は以下の通りです. 他の方はこれで固められますか?
1) とりあえず meadow を起動して, C-x 5 f でたとえば ~/.emacs な
んかを読みこもうとします.
2) 新しいフレーム(Windows のウインドウ)が出てきた瞬間を狙ってそ
の新しいフレームのタイトルバーをつつきます. (WM_MOVE ですね多
分)
これで全フレームが真っ白です. コレだけだとなんだかわたしがケンシ
ロウみたいに聞こえかねないのでコツを言っておきますと.
a) 最初に出てきたフレームをタイトルバー一つ分だけ下にずらしておく.
b) これで新規のフレームはフレームの上側のすぐ外に現れることがわ
かっているので, C-x 5 f ~/.emacs でリターンを押す前にマウスカー
ソルをそこに持って行く.
c) あとはリターンを押してマウスカーソルの下の景色が変わった瞬間
にクリック. タイミングはそんなにシビアじゃありません. シビア
なときもありますが, そのときはバッファとフレームを消して再度
やり直せば何回かやるうちに引っかかると思います.
わたしがこれを試した環境は NT on P-II 266 です.
meadow -q で立ち上げた時でも同じことができます.
# そもそもなんで普通に操作しているときにこんなタイミングでウィン
# ドウをつつけるんだ? > 自分
# それもちょくちょくやるらしい. せっかちなのか..
------------------------------------------------------------
Submitter: Suzuki Keiichi
Subject: Select-Frame problem
X-ML-COUNT:
Transaction: Bug report
Status: pending
------------------------------------------------------------
圭一です。
;; いくらなんでもこれは Semi-gnus の問題ではないと思いますので。 ^^;;;
実害はそれほどないのですが、動きが怪しいところがありますので報告します。
具体的な操作の方がわかりやすいと思いますので、手順を説明します。
1. Frame が一つの状態で gnus の *Group* を表示する。
2. C-x 5 2 で frame を作る。
3. 新しい frame に表示する buffer を *scratch* に切り替える。
4. WINDOW(MS-Windowの ^^;;;)の右上の (compose-chars ?□ ?X) を click し
て WINDOW を閉じる。(Do not use C-x 5 0)
5. q を入力する。
6. Buffer is read-only: #<buffer *Group*> となる。
;; そのほかに WINDOW の focus が変った直後の、一発目のキー入力処理がおか
;; しいような気がします。
------------------------------------------------------------
Submitter: Mori Kesuke
Subject: registry configuration
X-ML-COUNT:
Transaction: Request for new feature.
Status: pending
------------------------------------------------------------
> で、もう一つ、急ぎではありませんが、環境変数を設定しておくレジス
> トリの位置も、バージョン毎に分けませんか? 複数バージョンを使い分
> けるときに共有できないので、今のところ片方は必ずバッチファイルを
> 使わざるを得ないので。
よさげなので、1.04で入れます。
------------------------------------------------------------
Submitter: HORIGUCHI Kyotaro
Subject Drag and Drop
X-ML-COUNT:
Transaction: Patch for New Feature.
Status: Pending
------------------------------------------------------------
== src/ChangeLog.Meadow ==============================
1999-04-22 Horiguchi Kyotaro <kyota@xxxxxxxxxxxxx>
* w32term.c (w32_drag_n_drop_handler, W32read_socket
[case WM_EMACS_CREATE_WINDOW, WM_DROP_FILES],
keyboard.c (make_lispy_event [case drag_n_drop])
Added support for Drag and Drop.
* w32term.c (w32read_socket [case WM_EMACS_POPUP_MENU])
Bug Fix: Fix handling of messages not to fall into infinite loop
when releasing mouse button out of pop-up menu.
== lisp/ChangeLog.Meadow =============================
1999-04-22 Horiguchi Kyotaro <kyota@xxxxxxxxxxxxx>
* term/w32-win.el (w32-drag-n-drop):
Set target window with event object.
--- mw32term.c.org Sun Feb 21 07:41:00 1999
+++ mw32term.c Fri Mar 26 20:18:54 1999
@@ -27,4 +27,6 @@
#include "blockinput.h"
#ifdef MEADOW
+#include <windows.h>
+#include <shellapi.h>
#include "mw32sync.h"
#endif
@@ -2539,4 +2541,29 @@
#endif
+#ifdef MEADOW
+int
+w32_drag_n_drop_handler (frame, msg, emacs_event)
+ FRAME_PTR frame;
+ MSG* msg;
+ struct input_event* emacs_event;
+{
+ HDROP hDrop;
+ POINT pt;
+
+ hDrop = (HANDLE)msg->wParam;
+ DragQueryPoint(hDrop, &pt);
+ /* DragQueryPoint returns position based on window coordination */
+ emacs_event->kind = drag_n_drop;
+ emacs_event->code = (int)hDrop;
+ emacs_event->modifiers = W32GETMODIFIER;
+ XSETINT (emacs_event->x, pt.x);
+ XSETINT (emacs_event->y, pt.y);
+ XSETFRAME (emacs_event->frame_or_window, frame);
+ emacs_event->timestamp = msg->time;
+
+ return 1;
+}
+#endif
+
/* Scroll bar support. */
@@ -2986,5 +3013,5 @@
emacs_event->part = scroll_bar_handle;
#if 0
- printf("Scroll Bar Tracking...%d\n", y);
+ printf("Scroll Bar Positioning...%d\n", y);
fflush(stdout);
#endif
@@ -3522,4 +3549,5 @@
POST_THREAD_INFORM_MESSAGE(main_thread_id, WM_EMACS_CREATE_WINDOW_REPLY,
(WPARAM) hwnd, (LPARAM) 0);
+ DragAcceptFiles(hwnd, TRUE);
break;
}
@@ -3586,4 +3614,5 @@
UINT track_flag;
LPPOINT lppos;
+ MSG msg2;
lppos = (LPPOINT)msg.lParam;
@@ -3602,23 +3631,22 @@
WM_EMACS_POPUP_MENU_REPLY,
(WPARAM) 0, (LPARAM) 0);
- while(1)
+
+ if (!PeekMessage(&msg2, msg.hwnd, 0, 0, PM_REMOVE))
{
- MSG msg2;
-
- if (!PeekMessage(&msg2, msg.hwnd, 0, 0, PM_REMOVE))
- {
- POST_THREAD_INFORM_MESSAGE (main_thread_id,
- WM_EMACS_POPUP_MENU_REPLY,
- (WPARAM) 0, (LPARAM) 0);
- break;
- }
- if ((msg2.message == WM_COMMAND) && (HIWORD(msg2.wParam) == 0))
- {
- POST_THREAD_INFORM_MESSAGE (main_thread_id,
- WM_EMACS_POPUP_MENU_REPLY,
- (WPARAM) msg2.wParam, (LPARAM) 0);
- break;
- }
+ POST_THREAD_INFORM_MESSAGE (main_thread_id,
+ WM_EMACS_POPUP_MENU_REPLY,
+ (WPARAM) 0, (LPARAM) 0);
+ }
+ else if ((msg2.message == WM_COMMAND) &&
+ (HIWORD(msg2.wParam) == 0))
+ {
+ POST_THREAD_INFORM_MESSAGE (main_thread_id,
+ WM_EMACS_POPUP_MENU_REPLY,
+ (WPARAM) msg2.wParam, (LPARAM) 0);
}
+ else
+ POST_THREAD_INFORM_MESSAGE (main_thread_id,
+ WM_EMACS_POPUP_MENU_REPLY,
+ (WPARAM) 0, (LPARAM) 0);
break;
}
@@ -3640,4 +3668,16 @@
LOWORD(msg.wParam));
}
+ break;
+
+ case WM_DROPFILES:
+ {
+ if(f && !f->iconified && f->visible &&
+ (w32_drag_n_drop_handler(f, &msg, bufp)))
+ {
+ bufp++;
+ count++;
+ numchars--;
+ }
+ }
break;
--- keyboard.c.org Wed Mar 03 10:38:48 1999
+++ keyboard.c Fri Mar 26 20:36:56 1999
@@ -41,4 +41,6 @@
#include "blockinput.h"
#ifdef MEADOW
+#include <windows.h>
+#include <shellapi.h>
#include "mw32sync.h"
#endif
@@ -4583,9 +4585,38 @@
which the event occurred and a list of the filenames
dropped. */
+
+#ifdef MEADOW
+ f = XFRAME (event->frame_or_window);
+#else
if (! CONSP (event->frame_or_window))
abort ();
f = XFRAME (XCONS (event->frame_or_window)->car);
+#endif
+
+#ifdef MEADOW
+ {
+ HDROP hDrop;
+ char fname[MAXPATHLEN+1];
+ int nfiles, i;
+
+ hDrop = (HDROP)event->code;
+ nfiles = DragQueryFile(hDrop, 0xffffffff, fname, MAXPATHLEN+1);
+ if (nfiles > 0)
+ {
+ DragQueryFile(hDrop, 0, fname, MAXPATHLEN+1);
+ files = Fcons(build_string(fname), Qnil);
+ for(i = 1 ; i < nfiles ; i++){
+ DragQueryFile(hDrop, i, fname, MAXPATHLEN+1);
+ files = Fcons(build_string(fname), files);
+ }
+ }
+ else
+ files = Qnil;
+ DragFinish(hDrop);
+ }
+#else
files = XCONS (event->frame_or_window)->cdr;
+#endif
/* Ignore mouse events that were made on frames that
--- w32-win.el.org Thu Feb 18 01:21:28 1999
+++ w32-win.el Fri Mar 26 20:29:18 1999
@@ -157,4 +157,5 @@
Switch to a buffer editing the last file dropped."
(interactive "e")
+ (select-window (car (car (cdr event))))
(mapcar 'find-file (car (cdr (cdr event))))
(raise-frame))
------------------------------------------------------------
Submitter: HORIGUCHI Kyotaro
Subject: for argument editing and m17n filename.
X-ML-COUNT:
Transaction: Patch for Bug fix.
Status: Pending
------------------------------------------------------------
*** callproc.c.org Wed Feb 24 18:49:48 1999
--- callproc.c Mon Mar 08 21:59:54 1999
***************
*** 383,388 ****
--- 383,389 ----
display = nargs >= 4 ? args[3] : Qnil;
+ infile = ENCODE_FILE (infile);
filefd = open (XSTRING (infile)->data, O_RDONLY, 0);
if (filefd < 0)
{
***************
*** 393,409 ****
struct gcpro gcpro1;
GCPRO1 (current_dir);
openp (Vexec_path, args[0], EXEC_SUFFIXES, &path, 1);
UNGCPRO;
}
if (NILP (path))
{
- #ifndef MEADOW /* For argument editing, check it later. */
close (filefd);
report_file_error ("Searching for program", Fcons (args[0], Qnil));
- #else
- path = args[0];
- #endif
}
new_argv[0] = XSTRING (path)->data;
if (nargs > 4)
--- 394,412 ----
struct gcpro gcpro1;
GCPRO1 (current_dir);
+ #ifndef MEADOW
openp (Vexec_path, args[0], EXEC_SUFFIXES, &path, 1);
+ #else
+ /* for script execution on MSWindows, not apply exec_only for openp */
+ /* openp without exec_only returns fd not used, free it immediately */
+ close(openp (Vexec_path, args[0], EXEC_SUFFIXES, &path, 0));
+ #endif
UNGCPRO;
}
if (NILP (path))
{
close (filefd);
report_file_error ("Searching for program", Fcons (args[0], Qnil));
}
new_argv[0] = XSTRING (path)->data;
if (nargs > 4)
***************
*** 511,516 ****
--- 514,520 ----
else if (STRINGP (error_file))
{
#ifdef DOS_NT
+ error_file = ENCODE_FILE (error_file);
fd_error = open (XSTRING (error_file)->data,
O_WRONLY | O_TRUNC | O_CREAT | O_TEXT,
S_IREAD | S_IWRITE);
*** process.c.org Thu Feb 04 15:43:36 1999
--- process.c Mon Mar 08 21:52:00 1999
***************
*** 1162,1168 ****
--- 1162,1174 ----
tem = Qnil;
GCPRO4 (name, program, buffer, current_dir);
+ #ifndef MEADOW
openp (Vexec_path, program, EXEC_SUFFIXES, &tem, 1);
+ #else
+ /* for script execution on Windows, not apply exec_only for openp */
+ /* openp without exec_only returns fd not used, free it immediately */
+ close(openp (Vexec_path, program, EXEC_SUFFIXES, &tem, 0));
+ #endif
UNGCPRO;
if (NILP (tem))
report_file_error ("Searching for program", Fcons (program, Qnil));
*** w32proc.c.org Sat Feb 27 19:36:26 1999
--- w32proc.c Mon Mar 08 21:54:16 1999
***************
*** 859,864 ****
--- 859,865 ----
struct gcpro gcpro1;
GCPRO1 (program);
+ #ifndef MEADOW
openp (Vexec_path, program, EXEC_SUFFIXES, &full, 1);
UNGCPRO;
if (NILP (full))
***************
*** 868,875 ****
errno = ENOEXEC;
return -1;
}
}
!
unixtodos_filename(cmdname);
}
#else /* not MEADOW */
--- 869,883 ----
errno = ENOEXEC;
return -1;
}
+ #else
+ /* for script execution on Windows, not apply exec_only for openp */
+ /* openp without exec_only returns fd not used, free it immediately */
+ close(openp (Vexec_path, program, EXEC_SUFFIXES, &full, 0));
+ UNGCPRO;
+ if (NILP (full))
+ return -1;
}
! #endif
unixtodos_filename(cmdname);
}
#else /* not MEADOW */
*** lread.c.org Thu Feb 04 15:43:28 1999
--- lread.c Mon Mar 08 21:45:06 1999
***************
*** 35,40 ****
--- 35,41 ----
#include "commands.h"
#include "keyboard.h"
#include "termhooks.h"
+ #include "coding.h"
#endif
#ifdef lint
***************
*** 882,887 ****
--- 883,889 ----
continue;
}
+ filename = ENCODE_FILE (filename);
/* Calculate maximum size of any filename made from
this path element/specified file name and any possible suffix. */
want_size = strlen (suffix) + XSTRING (filename)->size + 1;
*** ChangeLog.Meadow.org Sat Feb 27 01:17:24 1999
--- ChangeLog.Meadow Mon Mar 08 22:06:48 1999
***************
*** 1,3 ****
--- 1,18 ----
+ 1999-03-08 Horiguchi Kyotaro <kyota@xxxxxxxxxxxxx>
+
+ * callproc.c (Fcall_process), process.c (Fstart_process)
+ w32proc.c (sys_spawnve),
+ PROGRAM, INFILE, STDERR-FILE and cmdname are allowed to be a
+ string containing mutibyte characters (Using ENCODE_FILE to encode
+ string)
+ For argument editing, any program pathes are allowed to pass
+ argument editing program. (Addition to changes on 1999-02-24.)
+
+ * lread.c (openp)
+ str is allowed to be a string containig multibyte characters. This
+ change allows to check files correctly whose names are such strings.
+
1999-02-28 Miyashita Hisashi <himi@xxxxxxxxxxxxxxxxxxxxxxxxx>
* w32.c (w32_get_long_filename):