fbset: shrink code a bit more
This commit is contained in:
parent
09f5ecfa47
commit
8d523cbcd7
@ -170,9 +170,9 @@ enum {
|
||||
};
|
||||
#endif
|
||||
|
||||
static void ss(uint32_t *x, uint32_t flag, char *where, const char *what)
|
||||
static void ss(uint32_t *x, uint32_t flag, char *buf, const char *what)
|
||||
{
|
||||
if (strstr(where, what))
|
||||
if (strstr(buf, what))
|
||||
*x &= ~flag;
|
||||
else
|
||||
*x |= flag;
|
||||
@ -187,8 +187,7 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn,
|
||||
char *p = buf;
|
||||
|
||||
f = xfopen_for_read(fn);
|
||||
while (!feof(f)) {
|
||||
fgets(buf, sizeof(buf), f);
|
||||
while (fgets(buf, sizeof(buf), f)) {
|
||||
p = strstr(buf, "mode ");
|
||||
if (!p && !(p = strstr(buf, "mode\t")))
|
||||
continue;
|
||||
@ -197,13 +196,13 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn,
|
||||
continue;
|
||||
p += strlen(mode);
|
||||
if (!isspace(*p) && (*p != 0) && (*p != '"')
|
||||
&& (*p != '\r') && (*p != '\n'))
|
||||
&& (*p != '\r') && (*p != '\n')
|
||||
) {
|
||||
continue; /* almost, but not quite */
|
||||
}
|
||||
|
||||
while (!feof(f)) {
|
||||
fgets(buf, sizeof(buf), f);
|
||||
p = strstr(buf, "geometry ");
|
||||
if (p) {
|
||||
while (fgets(buf, sizeof(buf), f)) {
|
||||
if ((p = strstr(buf, "geometry "))) {
|
||||
p += 9;
|
||||
/* FIXME: catastrophic on arches with 64bit ints */
|
||||
sscanf(p, "%d %d %d %d %d",
|
||||
@ -245,22 +244,22 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn,
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline void setmode(struct fb_var_screeninfo *base,
|
||||
static void setmode(struct fb_var_screeninfo *base,
|
||||
struct fb_var_screeninfo *set)
|
||||
{
|
||||
if ((int) set->xres > 0)
|
||||
if ((int32_t) set->xres > 0)
|
||||
base->xres = set->xres;
|
||||
if ((int) set->yres > 0)
|
||||
if ((int32_t) set->yres > 0)
|
||||
base->yres = set->yres;
|
||||
if ((int) set->xres_virtual > 0)
|
||||
if ((int32_t) set->xres_virtual > 0)
|
||||
base->xres_virtual = set->xres_virtual;
|
||||
if ((int) set->yres_virtual > 0)
|
||||
if ((int32_t) set->yres_virtual > 0)
|
||||
base->yres_virtual = set->yres_virtual;
|
||||
if ((int) set->bits_per_pixel > 0)
|
||||
if ((int32_t) set->bits_per_pixel > 0)
|
||||
base->bits_per_pixel = set->bits_per_pixel;
|
||||
}
|
||||
|
||||
static inline void showmode(struct fb_var_screeninfo *v)
|
||||
static void showmode(struct fb_var_screeninfo *v)
|
||||
{
|
||||
double drate = 0, hrate = 0, vrate = 0;
|
||||
|
||||
@ -290,12 +289,8 @@ static inline void showmode(struct fb_var_screeninfo *v)
|
||||
v->blue.length, v->blue.offset, v->transp.length, v->transp.offset);
|
||||
}
|
||||
|
||||
#ifdef STANDALONE
|
||||
int main(int argc, char **argv)
|
||||
#else
|
||||
int fbset_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
int fbset_main(int argc, char **argv)
|
||||
#endif
|
||||
{
|
||||
struct fb_var_screeninfo var, varset;
|
||||
int fh, i;
|
||||
|
Loading…
Reference in New Issue
Block a user