Re: Can't start X after upgrading to cygwin1.7

2010-01-23 Thread Andrew Senior
Trying to downgrade to 1.5 with the legacy installer from
http://www.cygwin.com/win-9x.html (which would never terminate)
and then reinstalling after a reboot with the latest installer fixed
the problem.

Andrew

On Mon, Jan 18, 2010 at 11:27 PM, Andrew Senior a...@andrewsenior.com wrote:
 Getting the latest cygwin installer (2.677) didn't seem to help with
 any of my problems.
 Is there somewhere other than /var/log/Xwin.0.log that I can see some
 logs for startxwin? I don't see any command line arguments for
 startxwin that might give me verbose output.

  Andrew


 On Sat, Jan 16, 2010 at 12:56 PM, Andrew Senior a...@andrewsenior.com wrote:
 I've had cygwin installed for a year on my Thinkpad T61, running
 Windows XP professional, and just ran the latest setup.exe from
 cygwin.com.
 At installation time there were some complaints about in use files,
 though I wasn't to my knowledge running any cygwin processes at the
 time.
 I now can't run X with startxwin.exe (no process appears, no icon in
 the system tray, clients won't start)
 It (and startx, xinit, Xwin :0)  gives me no logging on the console
 (an rxvt window).
 No /var/log/Xwin.0.log is written, nor anywhere else I can see in /var/log
 I've tried reinstalling all the X  base packages I can find, or
 uninstalling and reinstalling a few (including xinit and xorg-server).
 I've also rebooted several times since first trying this.
 The start menu icons give me no feedback either, except idle which
 says Error: could not start C:\Cygwin\bin\idle -display
 127.0.0.1:0.0
 running xterm, xeyes on the command line gives no error message either.
 Does anyone have any suggestions please?
 (One odd thing I notice with 1.7 is that when starting rxvt  -e
 /usr/bin/bash -login it puts me in /bin, whereas it used to put me in
 my home directory. ~ and $HOME both correctly resolve to c:/aws which
 is in fstab as /home/aws, as well as listed if I type mount. This
 happened without running /bin/copy-user-registry-fstab, and that
 didn't put anything in /etc/fstab.d/.
 Another is that four packages are always scheduled to be installed (as
 New) in partial view of setup.exe : glib, gtk+, imlib, tetex, but
 never seem to be installed, nor are there any failure messages.)
 Thanks,
 Andrew
 I attach a cygcheck output, though I notice various things that look
 like errors in it:
 I was using http://www.gtlib.gatech.edu/pub/cygwin/ as my mirror, but
 setup.exe complained it wasn't an official mirror, so the recent
 installation was from anl.gov, and I tried pointing to waterloo.edu
 more recently.
 Also, it complains that things are hidden in my path by directories,
 e.g. perl is hidden by a directory named perl. 'which perl' gives the
 location of the binary.



--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ:   http://x.cygwin.com/docs/faq/



Re: Can't start X after upgrading to cygwin1.7

2010-01-23 Thread Jeff Spirko
  On Sat, Jan 16, 2010 at 12:56 PM, Andrew Senior a...@andrewsenior.com 
  wrote:
  I've had cygwin installed for a year on my Thinkpad T61, running
  Windows XP professional, and just ran the latest setup.exe from
  cygwin.com.
  I now can't run X with startxwin.exe (no process appears, no icon in
  the system tray, clients won't start)
  No /var/log/Xwin.0.log is written, nor anywhere else I can see in /var/log

I had the same symptoms.  Non-administrator WinXP users couldn't start
the XWin Server, and no /var/log/XWin.0.log was created.  The log file
could get created if there wasn't one already present, which led me to
put the log file in the user's directory instead of /var/log.  The
other problem was that users couldn't create the /tmp/.X0-lock file
and /tmp/.X11-unix/X0 socket if they were left by another user.  The
solution was to give each user their own /tmp directory.

I fixed it with the following:
1.  Added a line in /etc/profile, just before the chmod 1777 /tmp line:
 mount -f $USERPROFILE/Local Settings/Temp /tmp

2.  Changed the XWin Server icon so instead of just startxwin.exe, it says:
 ... startxwin.exe -- -logfile ~/XWin.log
(Don't take out the beginning of the command that runs startxwin
through bash, or the /etc/profile won't get run.  The quotes are
needed because this is the argument to bash's -c option.)

Could any of the guru's comment on how good or bad these solutions are?

-Jeff

--
Jeff Spirko   spi...@gmail.com   WD3V   |=

The study of non-linear physics is like the study of non-elephant biology.

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ:   http://x.cygwin.com/docs/faq/



Re: bug report/suggested temp. patch: handling bursts of sent keys

2010-01-23 Thread Mark Lillibridge

Dennis wrote:
 Hi Mark.
 
 I am a bit new to this list, but not THAT new to programming.  If you don't
 know how many keystrokes you need to have a buffer for, then you have 2
 choices:
 
 1.  Have a ridiculously huge buffer.
 2.  Setup a dynamic array.
 
 Using a 25000 character buffer seems like overkill.  But mieq.c is probably
 reading just from the Operating Systems' keyboard buffer.
 
 You may need to write an input function to feed mieq.c and somehow link to
 it.  Sadly, that level of coding is beyond my abilities.

Option 1 would be a temporary patch.  Browsing through the source
code, keypresses/releases come one at a time in via window messages to
the following routine in hw/xwin/winwndproc.c:

/*
 * Called by winWakeupHandler
 * Processes current Windows message
 */

LRESULT CALLBACK
winWindowProc (HWND hwnd, UINT message, 
   WPARAM wParam, LPARAM lParam)
{
...


case WM_SYSKEYDOWN:
case WM_KEYDOWN:
  if (s_pScreenPriv == NULL || s_pScreenInfo-fIgnoreInput)
break;

  ...

  /* Translate Windows key code to X scan code */
  winTranslateKey (wParam, lParam, iScanCode);

  /* Ignore repeats for CapsLock */
  if (wParam == VK_CAPITAL)
lParam = 1;

  /* Send the key event(s) */
  for (i = 0; i  LOWORD(lParam); ++i)
winSendKeyEvent (iScanCode, TRUE);
  return 0;


winSendKeyEvent in turn lives in hw/xwin/winkeybd.c:

/*
 * Take a raw X key code and send an up or down event for it.
 *
 * Thanks to VNC for inspiration, though it is a simple function.
 */

void
winSendKeyEvent (DWORD dwKey, Bool fDown)
{
  EventListPtr events;
  int i, nevents;

  /*
   * When alt-tabing between screens we can get phantom key up messages
   * Here we only pass them through it we think we should!
   */
  if (g_winKeyState[dwKey] == FALSE  fDown == FALSE) return;

  /* Update the keyState map */
  g_winKeyState[dwKey] = fDown;

  GetEventList(events);
  nevents = GetKeyboardEvents(events, g_pwinKeyboard, fDown ? KeyPress : 
KeyRele
ase, dwKey + MIN_KEYCODE);

  for (i = 0; i  nevents; i++)
mieqEnqueue(g_pwinKeyboard, events[i].event);

#if CYGDEBUG
  ErrorF(winSendKeyEvent: dwKey: %d, fDown: %d, nEvents %d\n,
  dwKey, fDown, nevents);
#endif
}


Note the call to mieqEnqueue there.  


I am not a Windows programmer.  Can someone tell me if it's okay for
winWindowProc to block?  In particular, could we make it block until the
mieq queue is not full?

- Mark



--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ:   http://x.cygwin.com/docs/faq/