/* * redefinition of the lex unput routine * * \param c the character to push back onto the input stream */ void twmUnput (int c) { if (overflowlen < sizeof overflowbuff) { overflowbuff[overflowlen++] = (unsigned char) c; } else { twmrc_error_prefix (); fprintf (stderr, "unable to unput character (%d)\n", c); } }
/** * * \param list squeeze or dont-squeeze list * \param name window name * \param justify left, center, or right * \param num signed num * \param denom 0 or indicates fraction denom */ void do_squeeze_entry (name_list **list, char *name, int justify, int num, int denom) { int absnum = (num < 0 ? -num : num); if (denom < 0) { twmrc_error_prefix(); fprintf (stderr, "negative SqueezeTitle denominator %d\n", denom); return; } if (absnum > denom && denom != 0) { twmrc_error_prefix(); fprintf (stderr, "SqueezeTitle fraction %d/%d outside window\n", num, denom); return; } if (denom == 1) { twmrc_error_prefix(); fprintf (stderr, "useless SqueezeTitle faction %d/%d, assuming 0/0\n", num, denom); num = 0; denom = 0; } if (HasShape) { SqueezeInfo *sinfo; sinfo = (SqueezeInfo *) malloc (sizeof(SqueezeInfo)); if (!sinfo) { twmrc_error_prefix(); fprintf (stderr, "unable to allocate %ld bytes for squeeze info\n", (unsigned long)sizeof(SqueezeInfo)); return; } sinfo->justify = justify; sinfo->num = num; sinfo->denom = denom; AddToList (list, name, (char *) sinfo); } }
void AddToList(name_list **list_head, char *name, char *ptr) { name_list *nptr; if(!list_head) { return; /* ignore empty inserts */ } nptr = (name_list *)malloc(sizeof(name_list)); if(nptr == NULL) { twmrc_error_prefix(); fprintf(stderr, "unable to allocate %lu bytes for name_list\n", (unsigned long) sizeof(name_list)); Done(0); } nptr->next = *list_head; nptr->name = (char *) strdup(name); nptr->ptr = (ptr == NULL) ? (char *)TRUE : ptr; *list_head = nptr; }
int do_string_keyword (int keyword, char *s) { switch (keyword) { case kws_UsePPosition: { int ppos = ParseUsePPosition (s); if (ppos < 0) { twmrc_error_prefix(); fprintf (stderr, "ignoring invalid UsePPosition argument \"%s\"\n", s); } else { Scr->UsePPosition = ppos; } return 1; } case kws_IconFont: if (!Scr->HaveFonts) Scr->IconFont.name = s; return 1; case kws_ResizeFont: if (!Scr->HaveFonts) Scr->SizeFont.name = s; return 1; case kws_MenuFont: if (!Scr->HaveFonts) Scr->MenuFont.name = s; return 1; case kws_TitleFont: if (!Scr->HaveFonts) Scr->TitleBarFont.name = s; return 1; case kws_IconManagerFont: if (!Scr->HaveFonts) Scr->IconManagerFont.name = s; return 1; case kws_UnknownIcon: if (Scr->FirstTime) GetUnknownIcon (s); return 1; case kws_IconDirectory: if (Scr->FirstTime) Scr->IconDirectory = ExpandFilename (s); return 1; case kws_MaxWindowSize: JunkMask = XParseGeometry (s, &JunkX, &JunkY, &JunkWidth, &JunkHeight); if ((JunkMask & (WidthValue | HeightValue)) != (WidthValue | HeightValue)) { twmrc_error_prefix(); fprintf (stderr, "bad MaxWindowSize \"%s\"\n", s); return 0; } if (JunkWidth <= 0 || JunkHeight <= 0) { twmrc_error_prefix(); fprintf (stderr, "MaxWindowSize \"%s\" must be positive\n", s); return 0; } Scr->MaxWindowWidth = JunkWidth; Scr->MaxWindowHeight = JunkHeight; return 1; } return 0; }