Datum rtrim1(PG_FUNCTION_ARGS) { text *string = PG_GETARG_TEXT_PP(0); text *ret; ret = dotrim(VARDATA_ANY(string), VARSIZE_ANY_EXHDR(string), " ", 1, false, true); PG_RETURN_TEXT_P(ret); }
/* Draw the nurb, possibly with trimming */ void draw_nurb(GLboolean trimming) { static GLfloat angle = 0.0; int i,j; /* wave the flag by rotating Z coords though a sine wave */ for (i=1; i<4; i++) for (j=0; j<4; j++) ctlpoints[i][j][2] = sin((GLfloat)i+angle); angle += 0.1; glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glPushMatrix(); glTranslatef(2.5,-1.0,0.0); glScalef(1.5,1.0,1.0); glRotatef(90,0.,0.,1.); glRotatef(mousey/10.,1.,0.,0.); glRotatef(mousex/10.,0.,1.,0.); gluBeginSurface(nurbsflag); gluNurbsSurface(nurbsflag,S_NUMKNOTS, sknots, T_NUMKNOTS, tknots, 3 * T_NUMPOINTS, 3, &ctlpoints[0][0][0], T_ORDER, S_ORDER, GL_MAP2_VERTEX_3); if (trimming) { dotrim(whole); dotrim(path[0]); dotrim(path[1]); dotrim(path[2]); } gluEndSurface(nurbsflag); if (hull) draw_hull(ctlpoints); glPopMatrix(); }
Datum ltrim(PG_FUNCTION_ARGS) { text *string = PG_GETARG_TEXT_PP(0); text *set = PG_GETARG_TEXT_PP(1); text *ret; ret = dotrim(VARDATA_ANY(string), VARSIZE_ANY_EXHDR(string), VARDATA_ANY(set), VARSIZE_ANY_EXHDR(set), true, false); PG_RETURN_TEXT_P(ret); }
void do_entry(struct conf_entry *ent) { struct stat sb; int modtime; off_t size; if (lstat(ent->log, &sb) != 0) return; if (!S_ISREG(sb.st_mode) && (!S_ISLNK(sb.st_mode) || !(ent->flags & CE_FOLLOW))) { DPRINTF(("--> not a regular file, skipping\n")); return; } if (S_ISLNK(sb.st_mode) && stat(ent->log, &sb) != 0) { DPRINTF(("--> link target does not exist, skipping\n")); return; } if (ent->uid == (uid_t)-1) ent->uid = sb.st_uid; if (ent->gid == (gid_t)-1) ent->gid = sb.st_gid; DPRINTF(("%s <%d%s%s%s%s>: ", ent->log, ent->numlogs, (ent->flags & CE_COMPACT) ? "Z" : "", (ent->flags & CE_BINARY) ? "B" : "", (ent->flags & CE_FOLLOW) ? "F" : "", (ent->flags & CE_MONITOR) && monitormode ? "M" : "")); size = sizefile(&sb); modtime = age_old_log(ent); if (ent->flags & CE_TRIMAT && !force) { if (timenow < ent->trim_at || difftime(timenow, ent->trim_at) >= 60 * 60) { DPRINTF(("--> will trim at %s", ctime(&ent->trim_at))); return; } else if (ent->hours <= 0) { DPRINTF(("--> time is up\n")); } } if (ent->size > 0) DPRINTF(("size (KB): %.2f [%d] ", size / 1024.0, (int)(ent->size / 1024))); if (ent->hours > 0) DPRINTF(("age (hr): %d [%d] ", modtime, ent->hours)); if (monitormode && (ent->flags & CE_MONITOR) && domonitor(ent)) DPRINTF(("--> monitored\n")); else if (!monitormode && (force || (ent->size > 0 && size >= ent->size) || (ent->hours <= 0 && (ent->flags & CE_TRIMAT)) || (ent->hours > 0 && (modtime >= ent->hours || modtime < 0) && ((ent->flags & CE_BINARY) || size >= MIN_SIZE)))) { DPRINTF(("--> trimming log....\n")); if (noaction && !verbose) printf("%s <%d%s%s%s>\n", ent->log, ent->numlogs, (ent->flags & CE_COMPACT) ? "Z" : "", (ent->flags & CE_BINARY) ? "B" : "", (ent->flags & CE_FOLLOW) ? "F" : ""); dotrim(ent); ent->flags |= CE_ROTATED; } else DPRINTF(("--> skipping\n")); }