mirror of
https://git.savannah.gnu.org/git/screen.git
synced 2026-02-12 18:32:14 +02:00
add function to search for window by number
This commit is contained in:
23
src/window.c
23
src/window.c
@@ -1922,3 +1922,26 @@ void ResetWindow(Window *win)
|
||||
win->w_rend = mchar_null;
|
||||
ResetCharsets(win);
|
||||
}
|
||||
|
||||
Window *GetWindowByNumber(uint16_t n)
|
||||
{
|
||||
if (first_window->w_number <= n &&
|
||||
n <= last_window->w_number)
|
||||
{
|
||||
Window *w;
|
||||
if ((first_window->w_number + (last_window->w_number - first_window->w_number) / 2) > n) {
|
||||
/* look from the start */
|
||||
w = first_window;
|
||||
while (w && w->w_number < n)
|
||||
w = w->w_next;
|
||||
} else {
|
||||
/* look from the end */
|
||||
w = last_window;
|
||||
while (w && w->w_number > n)
|
||||
w = w->w_prev;
|
||||
}
|
||||
if (w->w_number == n)
|
||||
return w;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -331,6 +331,7 @@ void CloseDevice (Window *);
|
||||
void zmodem_abort(Window *, Display *);
|
||||
void WindowDied (Window *, int, int);
|
||||
void ResetWindow (Window *);
|
||||
Window *GetWindowByNumber(uint16_t);
|
||||
#ifndef HAVE_EXECVPE
|
||||
#include <unistd.h>
|
||||
void execvpe(char *, char **, char **);
|
||||
|
||||
Reference in New Issue
Block a user