static int makepartial(char *fn) { char buf[1024]; char goobuf[60000]; int fd, fd2; int i; fd = open(fn, O_RDONLY); if (fd < 0) return 0; snprintf(buf, sizeof buf, "%s/users/%d/badxfer.dat", origdir, user.user_account_id); fd2 = open(buf, O_WRONLY | O_CREAT, 0666); if (fd2 == -1) { close(fd); snprintf(buf, sizeof buf, "%s/%s", currnode->MULTI_TEMPORARY, fn); unlink(buf); return 0; } fsetperm(fd2, 0666); strlcpy(buf, filepart(fn), sizeof buf); safe_write(fd2, buf, 256); while ((i = read(fd, &goobuf, 60000))) { safe_write(fd2, goobuf, i); } close(fd); close(fd2); unlink(fn); return 1; }
static int ftpdl(char *list, char *loog) { FILE *listh; FILE *logh; char buf[1024]; char buf2[1024]; snprintf(buf2, sizeof buf2, "%s/users/%d/ftp", origdir, user.user_account_id); mkdir(buf2, 0777); setperm(buf2, 0777); snprintf(buf2, sizeof buf2, "%s/users/%d/ftp/dl", origdir, user.user_account_id); mkdir(buf2, 0777); setperm(buf2, 0777); if (!(listh = fopen(list, "r"))) return 0; logh = fopen(loog, "w"); while (fgetsnolf(buf, 1024, listh)) { snprintf(buf2, sizeof buf2, "%s/users/%d/ftp/dl/%s", origdir, user.user_account_id, filepart(buf)); //symlink(buf, buf2); link(buf, buf2); if (logh) { struct stat st; stat(buf, &st); fprintf(logh, "s %6d 0 bps 0 cps 0 errors 0 1024 %s 0\n", (int) st.st_size, filepart(buf)); } } fclose(listh); if (logh) fclose(logh); return 1; }
//Connect detectors (sensors) void VRML97_TriggerRoutesWrite(VRMLData *dat, char *trig, char *name, char *clock,int flags) { name = filepart(name); VRML97_TouchTriggerRoute(dat,trig,name,clock); if(flags&(1UL<<VTAGID_PROXIMITY)) // trigger flags??? VRML97_ProximityTriggerRoute(dat,trig,name,clock); if(flags&(1UL<<VTAGID_VISIBILITY)) VRML97_VisibilityTriggerRoute(dat,trig,name,clock); if(flags&(1UL<<VTAGID_TOUCH)) VRML97_GropeTriggerRoute(dat,trig,name,clock); return; }
static int sflagfile(char *file) { struct stat st; char fpath[1024]; const char *s; memset(fpath, 0, 1024); if (stat(file, &st) == -1) return 0; s = filepart(file); strncpy(fpath, file, s - file); if (!S_ISREG(st.st_mode)) return 0; return flagres(addtag(fpath, s, 0, st.st_size, FLAG_FREE), s, st.st_size); }
int main(int argc, char* argv[]) { char* filename; Log_SetTrace(false); filename = filepart(argv[0]); if (strcmp(filename, "bdbdump") == 0) return bdbdump(argc, argv, true); else if (strcmp(filename, "bdblist") == 0) return bdbdump(argc, argv, false); else if (strcmp(filename, "bdbrestore") == 0) return bdbrestore(argc, argv); else fprintf(stderr, "\n\tusage: bdbdump|bdblist|bdbrestore <bdb-file>\n"); return 1; }
// recursive... static int VRML97_SceneObjWrite (VRMLData *dat,LWItemID id, char *oname) { unsigned int comflags=0,sound=0; int k,s,t=1,typ,clockLoop=1, clockTrigger=0,sclockLoop=1, sclockTrigger=1,csiz=0,LOD=0, animated=0; ObjectDB *odb=NULL; LWItemID kid; double dur=0.0; char cname[84], *com_url=NULL; *cname = 0; *tagBuf = 0; if(getItemTag(itemInfo,id,VTAG_IGNORE"=", tagBuf,MAX_LIGHT_NAME)) { com_url = strtok(tagBuf,"\n"); fprintf(dat->vr->file,"%s### Intentionally Ignoring %s, and descendants ( %s ) \n",dat->vr->indent,oname,com_url); return 0; } typ = itemInfo->type(id); if(typ==LWI_OBJECT) { odb = getObjectDB(id, GlobalGlobal); /* if(getItemTag(itemInfo,id,VTAG_SEQUENCE"=", cname,MAX_LIGHT_NAME)) { com_url = strtok(cname,"\n"); if(*com_url) sscanf(com_url,"%d %d",&sclockLoop,&sclockTrigger); com_url = NULL; } */ if(getItemTag(itemInfo,id,VTAG_MORPH"=", tagBuf,MAX_LIGHT_NAME)) { com_url = strtok(tagBuf,"\n"); if(*com_url) { sscanf(com_url,"%d %d %d %d",&k,&t,&s,&sclockLoop); t -= k; } com_url = NULL; } if(getItemTag(itemInfo,id,VTAG_URL"=", tagBuf,MAX_LIGHT_NAME)) { com_url = strtok(tagBuf,"\n"); fprintf(dat->vr->file,"%sAnchor { url [ %s ] children\n",dat->vr->indent,com_url); } // Handle Collision, LOD, BillBoard here too!? LOD = findItemTag(itemInfo, id, VTAG_LOD); } strncpy(tagBuf,(oname),MAX_LIGHT_NAME); oname = filepart(oname); OpenItemTransform(dat,id,oname); if(typ==LWI_OBJECT) { OpenItemPivotTransform(dat,id,oname); if(LOD) VRML97_LODNodeWrite(dat,id,oname); else { if( (dat->vr->vrprefs&VRPREF_INCLUDE_OBJS) ) { if( (dat->vr->vrprefs&VRPREF_PROTO_OBJS) ) { if(objInfo->numPolygons(id)) // skip NULLs VRML97_ProtoInstWrite(dat,id,oname); } else { if(odb) VRML2_ObjWrite(dat,odb,"",""); } } else { if( (dat->vr->vrprefs&VRPREF_PROTO_OBJS) ) { #ifndef EXTERNPROTO_WORKING VRML97_InlineObjDefWrite(dat,id,odb,oname); #else if(objInfo->numPolygons(id)) // skip NULLs VRML97_ProtoInstWrite(dat,id,oname); // VRML97_ExternProtoWrite(dat,id,oname); #endif } else VRML97_InlineObjDefWrite(dat,id,odb,oname); } } } else if(typ==LWI_LIGHT) VRML97_LightWrite(dat, id, oname, 0); comflags=VRML97_ObjTagsParse(dat,id,oname); k = 1; for(kid=itemInfo->firstChild(id); kid!=LWITEM_NULL; kid=itemInfo->nextChild(id, kid) ) { fprintf(dat->vr->file,"%s \t\t # child #%d of %s\n",dat->vr->indent,k++,oname); buildItemVRCloneName(kid,cname,84); VRML97_SceneObjWrite(dat,kid, cname); } sprintf(cname,"%s",oname); dur = itemAnimationTime(id,&k); // if( ( k || obj->morfTarg if( ( (k>3) || (comflags&(1UL<<VTAGID_SOUND)) || (comflags&(1UL<<VTAGID_MORPH)) ) ) // any animation { animated = 1; VRML97_TriggerWrite(dat,id,odb,comflags,oname); } if(typ==LWI_OBJECT) { CloseItemPivotTransform(dat,id,oname); // enclose children CloseItemTransform(dat,oname); if(com_url) fprintf(dat->vr->file,"%s} #end Anchor\n",dat->vr->indent); } else CloseItemTransform(dat,oname); dur = VRML97_MoveInterpolatorWrite(dat,id,cname, &clockTrigger, &clockLoop); if(dur>0.0) { clockLoop = clockLoop>1 ? 1:0;//(obj->o_motEnv->flags&MOTF_STOP) ? 0:1; clockTrigger = clockTrigger>1 ? 1:0; //comflags&(1UL<<VTAGID_AUTOSTART) ? 1:0; //(obj->o_motEnv->flags&(MOTF_STOP|MOTF_REPEAT)) ? 1:0; VRML97_SceneClockWrite(dat,cname, clockLoop, clockTrigger,dur, VDEF_TIMER); } if(typ==LWI_LIGHT) { LWEnvelopeID intens; lightIntensity(id,0.0,&intens); if(intens) { dur = envDuration(intens, &clockLoop); if( (dur>0.0) && clockLoop) VRML97_ValueInterpolatorWrite(dat,intens,cname,&clockTrigger, &clockLoop); VRML97_SceneClockWrite(dat,cname, clockLoop, clockTrigger,dur, VDEF_TIMER); } } else if(typ==LWI_OBJECT) { if( comflags&(1UL<<VTAGID_MORPH) ) { sclockTrigger = comflags&(1UL<<VTAGID_AUTOSTART) ? 1:0; if(t) dur = ((double)t)/sceneInfo->framesPerSecond; VRML97_SceneClockWrite(dat,cname, sclockLoop, sclockTrigger,dur, VDEF_FXTIMER); } } return comflags; }
// connect timers to interpolators int VRML97_TimerRoutesWrite(VRMLData *dat, LWItemID id, LWChannelID chan, char *name) //, int swtch) { int tot=0; if(!id && !chan) return tot; name = filepart(name); if(id) { LWDVector tim; int k[3]; LWChannelID ch[3]; int mov=0,siz=0,rot=0, typ; name = filepart(name); typ = itemInfo->type(id); k[0] = itemKeys(id, LWIP_POSITION, ch,tim); k[1] = itemKeys(id, LWIP_ROTATION, ch,tim+1); if(typ==LWI_OBJECT) { k[2] = itemKeys(id, LWIP_SCALING, ch,tim+2); tot = MAX3(k[0],k[1],k[2]); } else tot = MAX(k[0],k[1]); if(typ==LWI_OBJECT) { if(k[0]>3) //XYZ { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_MOVER".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_MOVER".value_changed TO %s"VDEF_XFORM".set_translation \n",dat->vr->indent,name,name); tot++; } if(k[2]>3) // Scale { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_SIZER".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_SIZER".value_changed TO %s"VDEF_XFORM".set_scale \n",dat->vr->indent,name,name); tot++; } if(k[1]>3) // HPB { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_ROTATOR".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_ROTATOR".value_changed TO %s"VDEF_XFORM".set_rotation \n",dat->vr->indent,name,name); tot++; } } else if(typ==LWI_LIGHT) // write ROUTES for intensity, if necessary { LWEnvelopeID env; if(k[0]>3) //XYZ { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_MOVER".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_MOVER".value_changed TO %s"VDEF_XFORM".set_translation \n",dat->vr->indent,name,name); tot++; } if(k[1]>3) // HPB { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_ROTATOR".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_ROTATOR".value_changed TO %s"VDEF_XFORM".set_rotation \n",dat->vr->indent,name,name); tot++; } lightIntensity(id, 0.0, &env); if(env) { tim[2] = envDuration(env, &rot); if(rot>1) // keys!! { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_ENVELOPE".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_ENVELOPE".value_changed TO %s.set_intensity \n",dat->vr->indent,name,name); tot++; } } } else // Camera: write ROUTES for ViewPoint position, orientation, not Transform { if(k[0]>3) //XYZ { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_MOVER".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_MOVER".value_changed TO %s.set_position \n",dat->vr->indent,name,name); tot++; } if(k[1]>3) // HPB { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_ROTATOR".set_fraction \n",dat->vr->indent,name,name); tot++; fprintf(dat->vr->file,"%sROUTE %s"VDEF_ROTATOR".value_changed TO %s.set_orientation \n",dat->vr->indent,name,name); tot++; } }/* if(tot && swtch) { fprintf(dat->vr->file,"%sROUTE %s"VDEF_SWITCH".touchTime TO %s"VDEF_TIMER".startTime \n",dat->vr->indent,name,name); tot++; } */ } else if(chan) { fprintf(dat->vr->file,"%sROUTE %s"VDEF_TIMER"."FIELD_FRACTION" TO %s"VDEF_ENVELOPE".set_fraction \n",dat->vr->indent,name,name); tot++; } return tot; }
void extractmatrices(const char* nucsfile, const Projection* P, const Symmetry* S, const Interaction* Int, const void *obs, const double* norm, const double cmfactor, int n, int diagonal, int j, int p) { int odd=P->odd; int jmax=P->jmax; complex double H[n*n]; complex double VC[n*n]; complex double T[n*n]; complex double R2[n*n]; complex double N[n*n]; complex double phase[n]; const Observablesod ***obsme = obs; int a, b; int m, k; int nj, ipj; nj = n*(j+1); ipj = idxpij(jmax,p,j); // calculate phase relation with respect to first Slater det a=0; for (b=0; b<n; b++) for (m=-j; m<=j; m += 2) for (k=-j; k<=j; k+= 2) if (SymmetryAllowed(S[a], p, j, m) && SymmetryAllowed(S[b], p, j, k)) phase[b] = cexp(I*carg(obsme[a+b*n][ipj][idxjmk(j,m,k)].n)); char outfilename[255]; FILE* outfp; // Overlap matrix for (b=0; b<n; b++) { for (a=diagonal ? b : 0; a<n; a += diagonal ? n : 1) for (m=-j; m<=j; m += 2) for (k=-j; k<=j; k+= 2) if (SymmetryAllowed(S[a], p, j, m) && SymmetryAllowed(S[b], p, j, k)) { N[a+b*n] = obsme[a+b*n][ipj][idxjmk(j,m,k)].n/cmfactor* norm[a]*norm[b]/(conj(phase[a])*phase[b]); } } snprintf(outfilename, 255, "%s.N%s-%d%c.bin", filepart(nucsfile), diagonal ? "matrixd" : "matrix", j, p ? '-' : '+'); outfp = fopen(outfilename, "w"); fwritecmatbin(outfp, n, N); fclose(outfp); // Hamiltonian matrix for (b=0; b<n; b++) { for (a=diagonal ? b : 0; a<n; a += diagonal ? n : 1) for (m=-j; m<=j; m += 2) for (k=-j; k<=j; k+= 2) if (SymmetryAllowed(S[a], p, j, m) && SymmetryAllowed(S[b], p, j, k)) { H[a+b*n] = obsme[a+b*n][ipj][idxjmk(j,m,k)].h/cmfactor* norm[a]*norm[b]/(conj(phase[a])*phase[b]); } } snprintf(outfilename, 255, "%s.H%s-%d%c.bin", filepart(nucsfile), diagonal ? "matrixd" : "matrix", j, p ? '-' : '+'); outfp = fopen(outfilename, "w"); fwritecmatbin(outfp, n, H); fclose(outfp); // T matrix for (b=0; b<n; b++) { for (a=diagonal ? b : 0; a<n; a += diagonal ? n : 1) for (m=-j; m<=j; m += 2) for (k=-j; k<=j; k+= 2) if (SymmetryAllowed(S[a], p, j, m) && SymmetryAllowed(S[b], p, j, k)) { T[a+b*n] = obsme[a+b*n][ipj][idxjmk(j,m,k)].t/cmfactor* norm[a]*norm[b]/(conj(phase[a])*phase[b]); } } snprintf(outfilename, 255, "%s.T%s-%d%c.bin", filepart(nucsfile), diagonal ? "matrixd" : "matrix", j, p ? '-' : '+'); outfp = fopen(outfilename, "w"); fwritecmatbin(outfp, n, T); fclose(outfp); // Coulomb matrix // assume Coulomb is latest potential component for (b=0; b<n; b++) { for (a=diagonal ? b : 0; a<n; a += diagonal ? n : 1) for (m=-j; m<=j; m += 2) for (k=-j; k<=j; k+= 2) if (SymmetryAllowed(S[a], p, j, m) && SymmetryAllowed(S[b], p, j, k)) { VC[a+b*n] = obsme[a+b*n][ipj][idxjmk(j,m,k)].v[Int->n-1]/cmfactor* norm[a]*norm[b]/(conj(phase[a])*phase[b]); } } snprintf(outfilename, 255, "%s.VC%s-%d%c.bin", filepart(nucsfile), diagonal ? "matrixd" : "matrix", j, p ? '-' : '+'); outfp = fopen(outfilename, "w"); fwritecmatbin(outfp, n, VC); fclose(outfp); // R2 matrix for (b=0; b<n; b++) { for (a=diagonal ? b : 0; a<n; a += diagonal ? n : 1) for (m=-j; m<=j; m += 2) for (k=-j; k<=j; k+= 2) if (SymmetryAllowed(S[a], p, j, m) && SymmetryAllowed(S[b], p, j, k)) { R2[a+b*n] = obsme[a+b*n][ipj][idxjmk(j,m,k)].r2m/cmfactor* norm[a]*norm[b]/(conj(phase[a])*phase[b]); } } snprintf(outfilename, 255, "%s.R2%s-%d%c.bin", filepart(nucsfile), diagonal ? "matrixd" : "matrix", j, p ? '-' : '+'); outfp = fopen(outfilename, "w"); fwritecmatbin(outfp, n, R2); fclose(outfp); }
int main (int argc, char const * argv []) { static char const * optv [] = { "convert .csv data to .html file", PUTOPTV_S_FUNNEL, "c:n:ps:t", "c s\tcomma characters [" LITERAL (CSV2HTML_COMMA) "]", "n n\tminimum number of columns", "p\tprint HTML page with header", "s s\tpage title string", "t\tprint HTML table only", (char const *) (0) }; char const * string = (char *) (0); char const * comma = CSV2HTML_COMMA; unsigned column = 0; flag_t flags = (flag_t) (0); signed c; while (~ (c = getoptv (argc, argv, optv))) { switch (c) { case 'c': comma = optarg; break; case 'l': column = uintspec (optarg, 1, USHRT_MAX); break; case 'n': column = uintspec (optarg, 1, UCHAR_MAX); break; case 'p': _setbits (flags, CSV2HTML_PAGE); break; case 's': string = optarg; break; case 't': _setbits (flags, CSV2HTML_HTML); break; default: break; } } argc -= optind; argv += optind; if (! argc) { if (! string) { string = "untitled"; } function (string, comma, column, flags); } while ((argc) && (* argv)) { if (efreopen (* argv, "rb", stdin)) { if (! string) { string = filepart (* argv); } function (string, comma, column, flags); } argc--; argv++; } return (0); }
signed ReadPIB (struct int6k *int6k) { struct channel * channel = (struct channel *)(int6k->channel); struct message * message = (struct message *)(int6k->message); #ifndef __GNUC__ #pragma pack (push,1) #endif struct __packed vs_rd_mod_request { struct header_eth ethernet; struct header_int intellon; uint8_t MODULEID; uint8_t MACCESS; uint16_t MLENGTH; uint32_t MOFFSET; uint8_t MSECRET [16]; } * request = (struct vs_rd_mod_request *) (message); struct __packed vs_rd_mod_confirm { struct header_eth ethernet; struct header_int intellon; uint8_t MSTATUS; uint8_t RESERVED1 [3]; uint8_t MODULEID; uint8_t RESERVED; uint16_t MLENGTH; uint32_t MOFFSET; uint32_t CHKSUM; uint8_t BUFFER [INT6K_BLOCKSIZE]; } * confirm = (struct vs_rd_mod_confirm *) (message); #ifndef __GNUC__ #pragma pack (pop) #endif uint32_t extent = 0; uint32_t offset = 0; signed length = INT6K_BLOCKSIZE; Request (int6k, "Read Parameters from Device"); if (lseek (int6k->pib.file, 0, SEEK_SET)) { error ((int6k->flags & INT6K_BAILOUT), errno, "Can't rewind %s", filepart (int6k->pib.name)); return (1); } memset (message, 0, sizeof (struct message)); do { EthernetHeader (&message->ethernet, channel->peer, channel->host); IntellonHeader (&message->intellon, (VS_RD_MOD | MMTYPE_REQ)); int6k->packetsize = ETHER_MIN_LEN; request->MODULEID = VS_MODULE_PIB; request->MLENGTH = HTOLE16 (length); request->MOFFSET = HTOLE32 (offset); if (SendMME (int6k) <= 0) { error ((int6k->flags & INT6K_BAILOUT), ECANCELED, INT6K_CANTSEND); return (-1); } if (ReadMME (int6k, (VS_RD_MOD | MMTYPE_CNF)) <= 0) { error ((int6k->flags & INT6K_BAILOUT), ECANCELED, INT6K_CANTREAD); return (-1); } if (confirm->MSTATUS) { Failure (int6k, INT6K_WONTDOIT); return (-1); } #if 1 if (LE16TOH (confirm->MLENGTH) != length) { Failure (int6k, INT6K_ERR_LENGTH); return (-1); } if (LE32TOH (confirm->MOFFSET) != offset) { Failure (int6k, INT6K_ERR_OFFSET); return (-1); } #else if (LE16TOH (confirm->MLENGTH) != length) { error ((int6k->flags & INT6K_BAILOUT), 0, INT6K_ERR_LENGTH); length = INT6K_BLOCKSIZE; offset = 0; continue; } if (LE32TOH (confirm->MOFFSET) != offset) { error ((int6k->flags & INT6K_BAILOUT), 0, INT6K_ERR_OFFSET); length = INT6K_BLOCKSIZE; offset = 0; continue; } #endif length = LE16TOH (confirm->MLENGTH); offset = LE32TOH (confirm->MOFFSET); if (checksum_32 (confirm->BUFFER, length, confirm->CHKSUM)) { error ((int6k->flags & INT6K_BAILOUT), ECANCELED, "Bad Packet Checksum"); return (-1); } if (offset == extent) { struct header_pib * header_pib = (struct header_pib *) (confirm->BUFFER); extent = header_pib->PIBLENGTH; } if ((offset + length) > extent) { length = extent - offset; } if (lseek (int6k->pib.file, offset, SEEK_SET) != offset) { error ((int6k->flags & INT6K_BAILOUT), errno, "can't seek %s", filepart (int6k->pib.name)); return (-1); } if (write (int6k->pib.file, confirm->BUFFER, length) < length) { error ((int6k->flags & INT6K_BAILOUT), errno, "can't save %s", filepart (int6k->pib.name)); return (-1); } offset += length; } while (offset < extent); Confirm (int6k, "Read %s", int6k->pib.name); return (0); }