projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Dimitry Andric spotted that DH gex with SHA-256 was overflowing a buffer.
[u/mdw/putty]
/
windows
/
window.c
diff --git
a/windows/window.c
b/windows/window.c
index
8a476b3
..
1e92550
100644
(file)
--- a/
windows/window.c
+++ b/
windows/window.c
@@
-1987,6
+1987,7
@@
static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
case IDM_RESTART:
if (!back) {
logevent(NULL, "----- Session restarted -----");
case IDM_RESTART:
if (!back) {
logevent(NULL, "----- Session restarted -----");
+ term_pwron(term, FALSE);
start_backend();
}
start_backend();
}
@@
-2154,7
+2155,7
@@
static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
term_clrsb(term);
break;
case IDM_RESET:
term_clrsb(term);
break;
case IDM_RESET:
- term_pwron(term);
+ term_pwron(term
, TRUE
);
if (ldisc)
ldisc_send(ldisc, NULL, 0, 0);
break;
if (ldisc)
ldisc_send(ldisc, NULL, 0, 0);
break;
@@
-3722,31
+3723,31
@@
static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam,
if (cfg.nethack_keypad && !left_alt) {
switch (wParam) {
case VK_NUMPAD1:
if (cfg.nethack_keypad && !left_alt) {
switch (wParam) {
case VK_NUMPAD1:
- *p++ =
shift_state ? 'B' : 'b'
;
+ *p++ =
"bB\002\002"[shift_state & 3]
;
return p - output;
case VK_NUMPAD2:
return p - output;
case VK_NUMPAD2:
- *p++ =
shift_state ? 'J' : 'j'
;
+ *p++ =
"jJ\012\012"[shift_state & 3]
;
return p - output;
case VK_NUMPAD3:
return p - output;
case VK_NUMPAD3:
- *p++ =
shift_state ? 'N' : 'n'
;
+ *p++ =
"nN\016\016"[shift_state & 3]
;
return p - output;
case VK_NUMPAD4:
return p - output;
case VK_NUMPAD4:
- *p++ =
shift_state ? 'H' : 'h'
;
+ *p++ =
"hH\010\010"[shift_state & 3]
;
return p - output;
case VK_NUMPAD5:
*p++ = shift_state ? '.' : '.';
return p - output;
case VK_NUMPAD6:
return p - output;
case VK_NUMPAD5:
*p++ = shift_state ? '.' : '.';
return p - output;
case VK_NUMPAD6:
- *p++ =
shift_state ? 'L' : 'l'
;
+ *p++ =
"lL\014\014"[shift_state & 3]
;
return p - output;
case VK_NUMPAD7:
return p - output;
case VK_NUMPAD7:
- *p++ =
shift_state ? 'Y' : 'y'
;
+ *p++ =
"yY\031\031"[shift_state & 3]
;
return p - output;
case VK_NUMPAD8:
return p - output;
case VK_NUMPAD8:
- *p++ =
shift_state ? 'K' : 'k'
;
+ *p++ =
"kK\013\013"[shift_state & 3]
;
return p - output;
case VK_NUMPAD9:
return p - output;
case VK_NUMPAD9:
- *p++ =
shift_state ? 'U' : 'u'
;
+ *p++ =
"uU\025\025"[shift_state & 3]
;
return p - output;
}
}
return p - output;
}
}
@@
-4399,6
+4400,12
@@
void palette_set(void *frontend, int n, int r, int g, int b)
UnrealizeObject(pal);
RealizePalette(hdc);
free_ctx(hdc);
UnrealizeObject(pal);
RealizePalette(hdc);
free_ctx(hdc);
+ } else {
+ if (n == (ATTR_DEFBG>>ATTR_BGSHIFT))
+ /* If Default Background changes, we need to ensure any
+ * space between the text area and the window border is
+ * redrawn. */
+ InvalidateRect(hwnd, NULL, TRUE);
}
}
}
}
@@
-4427,6
+4434,10
@@
void palette_reset(void *frontend)
hdc = get_ctx(frontend);
RealizePalette(hdc);
free_ctx(hdc);
hdc = get_ctx(frontend);
RealizePalette(hdc);
free_ctx(hdc);
+ } else {
+ /* Default Background may have changed. Ensure any space between
+ * text area and window border is redrawn. */
+ InvalidateRect(hwnd, NULL, TRUE);
}
}
}
}