RDFT MakeMailAccountDB (char* url) { if (startsWith("mailaccount://", url)) { RDFT ntr = NewRemoteStore(url); char* fileurl = getMem(100); int32 n = PR_SKIP_BOTH; PRDirEntry *de; PRDir* dir ; RDF_Resource top = RDF_GetResource(NULL, url, 1); sprintf(fileurl, "%s%s", profileDirURL, &url[14]); dir = OpenDir(fileurl); if (dir == NULL) { if ( CallPRMkDirUsingFileURL(fileurl, 00700) > -1) dir = OpenDir(fileurl); } while ((dir != NULL) && ((de = PR_ReadDir(dir, (PRDirFlags)(n++))) != NULL)) { if ((!endsWith(".ssf", de->name)) && (!endsWith(".dat", de->name)) && (!endsWith(".snm", de->name)) && (!endsWith("~", de->name))) { RDF_Resource r; sprintf(fileurl, "mailbox://folder/%s/%s", &url[14], de->name); r = RDF_GetResource(NULL, fileurl, 1); setResourceType(r, PMF_RT); remoteStoreAdd(ntr, r, gCoreVocab->RDF_parent, top, RDF_RESOURCE_TYPE, 1); remoteStoreAdd(ntr, r, gCoreVocab->RDF_name, copyString(de->name), RDF_STRING_TYPE, 1); } } freeMem(fileurl); if (dir) PR_CloseDir(dir); return ntr; } else return NULL; }
Theyril::Theyril(Inventory* p, int stack) : Resource(p){ setName("Theyril"); setWeight(float(0.1)); setSymbol(new Symbol('*', 15)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(theyril); }
Wood::Wood(Inventory* p, int stack) : Resource(p){ setName("Wood"); setWeight(float(0.1)); setSymbol(new Symbol('*', 6)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(wood); }
Leather::Leather(Inventory* p, int stack) : Resource(p){ setName("Leather"); setWeight(float(0.1)); setSymbol(new Symbol('*', 14)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(leather); }
Cloth::Cloth(Inventory* p, int stack) : Resource(p){ setName("Cloth"); setWeight(float(0.1)); setSymbol(new Symbol('*', 7)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(cloth); }
Selentine::Selentine(Inventory* p, int stack) : Resource(p){ setName("Selentine"); setWeight(float(0.1)); setSymbol(new Symbol('*', 7)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(selentine); }
Veilron::Veilron(Inventory* p, int stack) : Resource(p){ setName("Veilron"); setWeight(float(0.1)); setSymbol(new Symbol('*', 0, BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(veilron); }
Iron::Iron(Inventory* p, int stack) : Resource(p){ setName("Iron"); setWeight(float(0.5)); setSymbol(new Symbol('*', 8)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(iron); }
Neithal::Neithal(Inventory* p, int stack) : Resource(p){ setName("Neithal"); setWeight(float(0.1)); setSymbol(new Symbol('*', 1)); setItemID(getNextID()); setStack(stack); totWeight = getWeight()*stack; setResourceType(neithal); }
void es_GetUrlExitFunc (URL_Struct *urls, int status, MWContext *cx) { RDF_Resource parent = NULL, child = NULL, r; _esFEData *feData; char *newURL, *p; feData = (_esFEData *)urls->fe_data; if ((status >= 0) && (feData != NULL)) { parent = RDF_GetResource(gNCDB, feData->parent, false); child = RDF_GetResource(gNCDB, feData->child, false); if ((parent != NULL) && (child != NULL)) { switch(feData->method) { case URL_POST_METHOD: if (((p = strrchr(resourceID(child), '/')) != NULL) && (*++p != '\0')) { if ((newURL = append2Strings(resourceID(parent), p)) != NULL) { if ((r = RDF_GetResource(gNCDB, newURL, 1)) != NULL) { setContainerp(r, containerp(child)); setResourceType(r, resourceType(child)); remoteStoreAdd(gRemoteStore, r, gCoreVocab->RDF_parent, parent, RDF_RESOURCE_TYPE, 1); } freeMem(newURL); } } break; case URL_DELETE_METHOD: remoteStoreRemove(gRemoteStore, child, gCoreVocab->RDF_parent, parent, RDF_RESOURCE_TYPE); break; } } } else if (status < 0) { if ((cx != NULL) && (urls != NULL) && (urls->error_msg != NULL)) { FE_Alert(cx, urls->error_msg); } } if (feData != NULL) { esFreeFEData(feData); } NET_FreeURLStruct (urls); }
void RDF_FinishMessageDelivery (RDFT rdf) { MF folder = (MF) rdf->pdata; MM msg = folder->add; folder->add = NULL; addMsgToFolder(folder, msg); setResourceType(msg->r, PM_RT); fseek(folder->sfile, 0L, SEEK_END); msg->summOffset = ftell(folder->sfile); writeMsgSum(folder, msg); fseek(folder->mfile, 0L, SEEK_END); fputs("\n", folder->mfile); sendNotifications2(rdf, RDF_ASSERT_NOTIFY, msg->r, gCoreVocab->RDF_parent, folder->top, RDF_RESOURCE_TYPE, 1); }
void RDF_StartMessageDelivery (RDFT rdf) { MF folder = (MF) rdf->pdata; MM msg = (MM) getMem(sizeof(struct MailMessage)); char* nurl = getMem(100); fseek(folder->mfile, 0L, SEEK_END); fprintf(folder->mfile, "From - \n"); msg->offset = ftell(folder->mfile); sprintf(nurl, "%s?%i", rdf->url, msg->offset); msg->r = RDF_GetResource(NULL, nurl, 1); msg->r->pdata = msg; msg->flags = getMem(4); folder->add = msg; setResourceType(msg->r, PM_RT); fseek(folder->mfile, 0L, SEEK_END); fputs("X-Mozilla-Status: 0000\n", folder->mfile); }
RDF_Resource hostUnitOfURL (RDF r, RDF_Resource top, RDF_Resource nu, char* title) { char host[100]; char* url = resourceID(nu); int16 s1, s2, s3; RDF_Resource hostResource, existing; if (strlen(url) > 100) return NULL; if (startsWith("file", url)) { return RDF_GetResource(NULL, "Local Files", 1); } else { memset(host, '\0', 100); s1 = charSearch(':', url)+3; s2 = charSearch('/', &url[s1]); s3 = charSearch(':', &url[s1]); if (s2 == -1) s2 = strlen(url)-s1; if ((s3 != -1) && (s2 > s3)) s2 = s3; if (startsWith("www", &url[s1])) {s1 = s1+4; s2 = s2-4;} if (s2<1) return(NULL); memcpy((char*)host, &url[s1], s2); host[0] = toupper(host[0]); hostResource = RDF_GetResource(NULL, host, 1); setContainerp(hostResource, 1); setResourceType(hostResource, HISTORY_RT); existing = PL_HashTableLookup(hostHash, hostResource); if (existing != NULL) { if (existing == nu) { return existing; } else if (existing == top) { return hostResource; } else { remoteStoreRemove(gRemoteStore, existing, gCoreVocab->RDF_parent, top, RDF_RESOURCE_TYPE); histAddParent(existing, hostResource); histAddParent(hostResource, top); PL_HashTableAdd(hostHash, hostResource, top); return hostResource; } } else { PL_HashTableAdd(hostHash, hostResource, nu); histAddParent(nu, top); return nu; } } }
void parseNextESFTPLine (RDFFile f, char* line) { int16 i1, i2; char url[100]; RDF_Resource ru; PRBool directoryp; if (f->fileType == FTP_RT) { if (!startsWith("201", line)) return; line = &line[5]; } i1 = charSearch(' ', line); if (i1 == -1) return; i2 = charSearch(' ', &line[i1+1]) + i1 + 1; line[i1] = '\0'; directoryp = 0; if (strlen(line) > 64) return; if (resourceType(f->top) == ES_RT) { directoryp = startsWith("Director", &line[i1+1]); sprintf(url, "nes:%s%s%s", f->url, line, (directoryp ? "/" : "")); } else { int i3 = charSearch(' ', &line[i1+i2+1]); directoryp = startsWith("Directory", &line[i1+i2+i3+2]); /* this is bad as files can be of zero-length! if ((charSearch('.', line) ==-1) && (startsWith("0", &line[i1+1]))) directoryp = 1; */ sprintf(url, "%s%s%s", f->url, line, (directoryp ? "/" : "")); } ru = RDF_GetResource(NULL, url, 1); setResourceType(ru, resourceType(f->top)); if (directoryp) setContainerp(ru, 1); /* remoteStoreAdd(gRemoteStore, ru, gCoreVocab->RDF_name, NET_UnEscape(line), RDF_STRING_TYPE, 1); */ remoteStoreAdd(gRemoteStore, ru, gCoreVocab->RDF_parent, f->top, RDF_RESOURCE_TYPE, 1); }
PRBool MoveMessage (char* to, char* from, MM message) { RDFT todb = getBFTranslator(to); RDFT fromdb = getBFTranslator(from); MF tom = todb->pdata; MF fom = fromdb->pdata; RDF_Resource r; MM newMsg = (MM)getMem(sizeof(struct MailMessage)); char* buffer = getMem(BUFF_SIZE); if (!buffer) return 0; setMessageFlag(fromdb, message->r, "0008"); fseek(tom->mfile, 0L, SEEK_END); fseek(fom->mfile, message->offset, SEEK_SET); fputs("From -\n", tom->mfile); sprintf(buffer, "mailbox://%s?%d", &to[17], ftell(tom->mfile)); r = RDF_GetResource(NULL, buffer, 1); newMsg->subject = copyString(message->subject); newMsg->from = copyString(message->from); newMsg->date = copyString(message->date); newMsg->r = r; r->pdata = newMsg; setResourceType(r, PM_RT); newMsg->summOffset = -1; newMsg->offset = ftell(tom->mfile); writeMsgSum(tom, newMsg); addMsgToFolder (tom, newMsg) ; fflush(tom->sfile); while (fgets(buffer, BUFF_SIZE, fom->mfile) && strncmp("From ", buffer, 5)) { fputs(buffer, tom->mfile); } sendNotifications2(todb, RDF_ASSERT_NOTIFY, r, gCoreVocab->RDF_parent, tom->top, RDF_RESOURCE_TYPE, 1); sendNotifications2(fromdb, RDF_DELETE_NOTIFY, message->r, gCoreVocab->RDF_parent, fom->top, RDF_RESOURCE_TYPE, 1); freeMem(buffer); return 1; }
void readSummaryFile (RDFT rdf) { if (startsWith("mailbox://", rdf->url)) { char* url = rdf->url; char* folderURL = &url[10]; int32 flen = strlen(profileDirURL) + strlen(folderURL) + 4; char* fileurl = getMem(flen); char* nurl = getMem(strlen(url) + 20); FILE *f; char* buff = getMem(BUFF_SIZE); MF folder = (MF) getMem(sizeof(struct MailFolder)); MM msg = NULL; FILE *mf; char* aclen; rdf->pdata = folder; sprintf(fileurl, "%s%s.ssf", profileDirURL, folderURL); fileurl = MCDepFileURL(fileurl); f = openPMFile(fileurl); sprintf(fileurl, "%s%s", profileDirURL, folderURL); fileurl = MCDepFileURL(fileurl); mf = openPMFile(fileurl); folder->top = RDF_GetResource(NULL, rdf->url, 1); setResourceType(folder->top, PM_RT); setContainerp(folder->top, 1); folder->top->pdata = folder; folder->rdf = rdf; folder->sfile = f; folder->mfile = mf; while (f && fgets(buff, BUFF_SIZE, f)) { if (startsWith("Status:", buff)) { msg = (MM) getMem(sizeof(struct MailMessage)); msg->flags = stripCopy(&buff[8]); fgets(buff, BUFF_SIZE, f); sscanf(&buff[9], "%d", &msg->summOffset); fgets(buff, BUFF_SIZE, f); msg->from = stripCopy(&buff[6]); fgets(buff, BUFF_SIZE, f); msg->subject = stripCopy(&buff[8]); fgets(buff, BUFF_SIZE, f); msg->date = stripCopy(&buff[6]); fgets(buff, BUFF_SIZE, f); sscanf(&buff[9], "%d", &msg->offset); sprintf(nurl, "%s?%d", url, msg->offset); msg->r = RDF_GetResource(NULL, nurl, 1); msg->r->pdata = msg; addMsgToFolder (folder, msg) ; setResourceType(msg->r, PM_RT); } } if (msg == NULL) { /* either a new mailbox or need to read BMF to recreate */ while (mf && fgets(buff, BUFF_SIZE, mf)) { if (strncmp("From ", buff, 5) ==0) { if (msg) writeMsgSum(folder, msg); msg = (MM) getMem(sizeof(struct MailMessage)); msg->offset = ftell(mf); msg->summOffset = -1; sprintf(nurl, "%s?%i", url, msg->offset); msg->r = RDF_GetResource(NULL, nurl, 1); msg->r->pdata = msg; setResourceType(msg->r, PM_RT); addMsgToFolder (folder, msg) ; } if ((!msg->from) && (startsWith("From:", buff))) { msg->from = stripCopy(&buff[6]); } else if ((!msg->date) && (startsWith("Date:", buff))) { msg->date = stripCopy(&buff[6]); } else if ((!msg->subject) && (startsWith("Subject:", buff))) { msg->subject = stripCopy(&buff[8]); } else if ((!msg->flags) && (startsWith("X-Mozilla-Status:", buff))) { msg->flags = stripCopy(&buff[17]); } } if (msg) writeMsgSum(folder, msg); if (folder->sfile) fflush(folder->sfile); } memset(fileurl, '\0', flen); memcpy(fileurl, rdf->url, strlen(rdf->url)); aclen = strchr(&fileurl[10], '/'); fileurl[aclen-fileurl] = '\0'; strcat(fileurl, "/trash"); folder->trash = fileurl; freeMem(buff); freeMem(nurl); /* GetPopToRDF(rdf); */ } }
NewResourceAssistant::NewResourceAssistant(ResourceModel* resourceModel, QWidget* parent) : KAssistantDialog(parent), m_resourceModel(resourceModel), m_resourceTypesWidget(new ResourceTypesWidget(this)), m_newCourseWidget(new NewCourseWidget(m_resourceModel, this)), m_newKeyboardLayoutWidget(new NewKeyboardLayoutWidget(m_resourceModel, this)), m_resourceTemplateWidget(new ResourceTemplateWidget(m_resourceModel, this)) { setWindowTitle(i18n("New")); m_resourceTypesPage = addPage(m_resourceTypesWidget, i18n("New...")); setValid(m_resourceTypesPage, false); m_newCoursePage = addPage(m_newCourseWidget, i18n("New course")); setValid(m_newCoursePage, false); setAppropriate(m_newCoursePage, false); m_newKeyboardLayoutPage = addPage(m_newKeyboardLayoutWidget, i18n("New keyboard layout")); setValid(m_newKeyboardLayoutPage, false); setAppropriate(m_newKeyboardLayoutPage, false); m_resourceTemplatePage = addPage(m_resourceTemplateWidget, i18n("Template")); setValid(m_resourceTemplatePage, false); connect(m_resourceTypesWidget, SIGNAL(typeSelected(ResourceModel::ResourceItemType)), SLOT(setResourceType(ResourceModel::ResourceItemType))); connect(m_newCourseWidget, SIGNAL(isValidChanged()), SLOT(updateNewCoursePageValidity())); connect(m_newKeyboardLayoutWidget, SIGNAL(isValidChanged()), SLOT(updateNewKeyboardLayoutPageValidity())); connect(m_resourceTemplateWidget, SIGNAL(isValidChanged()), SLOT(updateResourceTemplatePageValidity())); }
void possiblyAccessldap(RDFT rdf, RDF_Resource u, RDF_Resource s, PRBool inversep) { /** try to get the values of u.s from the directory **/ LDAP *ld; LDAPMessage *result=NULL, *entry; LDAPURLDesc *ldURL=NULL; RDF_Resource node; char *attrs[2], **vals; int err, i; char *title = NULL; /* Note: a labeledURI is a url followed by an optional [space title-string] */ if (!stringEquals(resourceID(s), resourceID(gCoreVocab->RDF_parent)) || (!inversep) || (!ldap_is_ldap_url(resourceID(u)))) return; ldap_url_parse(resourceID(u), &ldURL); if (ldURL == NULL) return; ld = ldap_init (ldURL->lud_host, ldURL->lud_port); if (ld == NULL) { ldap_free_urldesc(ldURL); return; } if ((err = ldap_simple_bind_s(ld, NULL, NULL)) != LDAP_SUCCESS) { ldap_unbind(ld); ldap_free_urldesc(ldURL); return; } attrs[0] = "labeledURI"; attrs[1] = NULL; err = ldap_search_s(ld, ldURL->lud_dn, LDAP_SCOPE_BASE, ldURL->lud_filter, attrs, 0, &result); if (err == LDAP_SUCCESS) { for (entry=ldap_first_entry(ld, result); entry!=NULL; entry=ldap_next_entry(ld, entry)) { if ((vals = ldap_get_values(ld, entry, attrs[0])) != NULL) { for (i=0; vals[i] != NULL; i++) { /* vals[i] has a URL... add into RDF graph */ /* if (((title = strstr(vals[i], " ")) != NULL) && (*(title+1) != '\0')) { *(++title) = '\0'; } else { title = NULL; } */ if ((node = RDF_Create(vals[i], true)) != NULL) { setResourceType(node, LDAP_RT); if (ldapContainerp(node) == true) { setContainerp(node, 1); } ldapDBAdd(rdf, node, gCoreVocab->RDF_parent, u, RDF_RESOURCE_TYPE); if (title != NULL) { ldapDBAdd(rdf, node, gCoreVocab->RDF_name, title, RDF_STRING_TYPE); } } } ldap_value_free(vals); } } } if (result != NULL) { ldap_msgfree(result); } ldap_unbind(ld); ldap_free_urldesc(ldURL); }
RDF_Resource hostUnitOfDate (RDF r, RDF_Resource u, time_t lastAccessDate) { RDF_Resource node = NULL, parentNode; /* RDF_Resources std; */ time_t now, tempTime; struct tm *T,nowStruct, dateStruct; char hourBuffer[128], dayBuffer[128], weekBuffer[128]; char bigBuffer[1024]; int numDays; /* NOTE: localtime uses a single static buffer, so MUST copy contents out */ time((time_t *)&now); if ((T = localtime(&now)) == NULL) return(NULL); nowStruct = *T; if ((T = localtime(&lastAccessDate)) == NULL) return(NULL); dateStruct = *T; bigBuffer[0] = hourBuffer[0] = dayBuffer[0] = weekBuffer[0] = 0; if (now < (lastAccessDate + SECS_IN_HOUR)) /* within the last hour */ { strcpy(hourBuffer, XP_GetString(RDF_WITHINLASTHOUR)); } else if ((nowStruct.tm_year == dateStruct.tm_year) && /* some time today */ (nowStruct.tm_yday == dateStruct.tm_yday)) { strcpy(dayBuffer, XP_GetString(RDF_TODAY)); hourRange(hourBuffer, &dateStruct); } else /* check if within last week */ { numDays = 7; do { now -= SECS_IN_DAY; if ((T = localtime(&now)) == NULL) return(NULL); nowStruct = *T; if ((nowStruct.tm_year == dateStruct.tm_year) && (nowStruct.tm_yday == dateStruct.tm_yday)) { sprintf(dayBuffer, "%d/%d - %s", (uint) dateStruct.tm_mon + 1, (uint)dateStruct.tm_mday, XP_GetString(RDF_DAY_0 + nowStruct.tm_wday)); hourRange(hourBuffer, &dateStruct); break; } } while (numDays-- > 0); if (dayBuffer[0] == '\0') /* older than a week */ { tempTime = lastAccessDate; numDays = dateStruct.tm_wday; while (numDays-- > 0) { tempTime -= SECS_IN_DAY; } if ((T = localtime(&tempTime)) == NULL) return(NULL); dateStruct = *T; #ifdef XP_MAC /* Mac epoch according to localtime is 1904 */ PR_snprintf(weekBuffer, sizeof(weekBuffer)-1, XP_GetString(RDF_WEEKOF), (uint)dateStruct.tm_mon + 1, (int)dateStruct.tm_mday, (uint)dateStruct.tm_year + 1904); #else PR_snprintf(weekBuffer, sizeof(weekBuffer)-1, XP_GetString(RDF_WEEKOF), (uint)dateStruct.tm_mon + 1, (int)dateStruct.tm_mday, (uint)dateStruct.tm_year + 1900); #endif if ((T = localtime(&lastAccessDate)) == NULL) return(NULL); dateStruct = *T; #ifdef XP_MAC /* Mac epoch according to localtime is 1904 */ sprintf(dayBuffer, "%s - %d/%d/%d", XP_GetString(RDF_DAY_0 + dateStruct.tm_wday), (uint) dateStruct.tm_mon + 1, (uint)dateStruct.tm_mday, (uint)dateStruct.tm_year + 1904); #else sprintf(dayBuffer, "%s - %d/%d/%d", XP_GetString(RDF_DAY_0 + dateStruct.tm_wday), (uint) dateStruct.tm_mon + 1, (uint)dateStruct.tm_mday, (uint)dateStruct.tm_year + 1900); #endif hourRange(hourBuffer, &dateStruct); } } parentNode = u; if (weekBuffer[0] != '\0') { if ((node = RDF_GetResource(NULL, weekBuffer, false)) == NULL) { if ((node = RDF_GetResource(NULL, weekBuffer, true)) == NULL) return(NULL); } setContainerp(node, 1); setResourceType(node, HISTORY_RT); remoteStoreAdd(gRemoteStore, node, gCoreVocab->RDF_parent, parentNode, RDF_RESOURCE_TYPE, 1); remoteStoreAdd(gRemoteStore, node, gCoreVocab->RDF_name, copyString(weekBuffer), RDF_STRING_TYPE, 1); parentNode = node; } if (dayBuffer[0] != '\0') { sprintf(bigBuffer, "%d/%d", (uint) dateStruct.tm_mon + 1, (uint)dateStruct.tm_mday); if ((node = RDF_GetResource(NULL, bigBuffer, false)) == NULL) { if ((node = RDF_GetResource(NULL, bigBuffer, true)) == NULL) return(NULL); } setContainerp(node, 1); setResourceType(node, HISTORY_RT); histAddParent(node, parentNode); sprintf(bigBuffer,"%s - %s",weekBuffer,dayBuffer); remoteStoreAdd(gRemoteStore, node, gCoreVocab->RDF_name, copyString(dayBuffer), RDF_STRING_TYPE, 1); parentNode = node; } if (hourBuffer[0] == 'W') { sprintf(bigBuffer, "%s", hourBuffer); if ((node = RDF_GetResource(NULL, bigBuffer, false)) == NULL) { if ((node = RDF_GetResource(NULL, bigBuffer, true)) == NULL) return(NULL); } setContainerp(node, 1); setResourceType(node, HISTORY_RT); remoteStoreAdd(gRemoteStore, node, gCoreVocab->RDF_parent, parentNode, RDF_RESOURCE_TYPE, 1); remoteStoreAdd(gRemoteStore, node, gCoreVocab->RDF_name, copyString(hourBuffer), RDF_STRING_TYPE, 1); parentNode = node; } return (node); }