add function to search for window by number

This commit is contained in:
Amadeusz Sławiński
2018-04-09 16:50:10 +02:00
parent 7ecf4f1d3e
commit 854a6db170
2 changed files with 24 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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 **);